config.py 9.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310
  1. """
  2. 公用配置文件
  3. """
  4. import os
  5. import datetime
  6. import logging
  7. import firebase_admin
  8. from firebase_admin import credentials
  9. # 日志配置
  10. LOGGER = logging.getLogger('info')
  11. ERROR_INFO_LOGGER = logging.getLogger('error_info')
  12. # 配置信息
  13. CONFIG_TEST = 'test'
  14. CONFIG_CN = 'cn'
  15. CONFIG_US = 'us'
  16. CONFIG_EUR = 'eur'
  17. # 配置模式和根路径
  18. SERVER_TYPE = os.environ.get('DJANGO_SETTINGS_MODULE')
  19. BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
  20. # redis列表
  21. JPUSH_UID_LIST = 'jpush_uid_list'
  22. # 华为云配置
  23. HUAWEICLOUD_AK = 'TN9T7ZPN3QRBBQ9NQHNB'
  24. HUAWEICLOUD_SK = 'rIlTBJ85MUC1WNLyJBZM2077HTsQ0qJaJf4IpTjU'
  25. HUAWEICLOUD_OBS_SERVER = 'https://obs.cn-east-3.myhuaweicloud.com'
  26. HUAWEICLOUD_PUSH_BUKET = 'asj-push'
  27. # 阿里云发邮箱
  28. ALY_SES_ACCESS_NAME = 'message@dvema.com'
  29. ALY_SES_ACCESS_PAW = 'SMtp123456'
  30. ALY_SES_ACCESS_REPLYTO = '***'
  31. # 发送邮件邮箱
  32. SES_COMPANY_EMAIL = 'user_server@nsst.com'
  33. AWS_SES_ACCESS_ID = 'AKIAJKPU23EU5QWHFPKQ'
  34. AWS_SES_ACCESS_SECRET = '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'
  35. AWS_SES_ACCESS_REGION = 'us-east-1'
  36. AWS_BUCKET = 'ansjertest'
  37. # 设定离线时间为5分钟
  38. OFF_LINE_TIME_DELTA = 5
  39. # token的secret
  40. OAUTH_ACCESS_TOKEN_SECRET = 'a+jbgnw%@1%zy^=@dn62%'
  41. OAUTH_REFRESH_TOKEN_SECRET = 'r+jbgnw%@1%zy^=@dn62%'
  42. # access_token超时
  43. OAUTH_ACCESS_TOKEN_TIME = datetime.timedelta(days=60)
  44. # refresh_token超时
  45. OAUTH_REFRESH_TOKEN_TIME = datetime.timedelta(days=60)
  46. # 腾讯验证,短信发送
  47. TX_PHONE_APP_ID = '1400052907'
  48. TX_PHONE_APP_KEY = '7705976ca6e85fe7b86d6bc2d11f7783'
  49. # 验证码超时时间
  50. AuthCode_Expire = 600
  51. # uid token key
  52. UID_TOKEN_KEY = 'c+565*j@%^'
  53. # oss param
  54. OSS_STS_ACCESS_KEY = 'LTAIyMkGfEdogyL9'
  55. OSS_STS_ACCESS_SECRET = '71uIjpsqVOmF7DAITRyRuc259jHOjO'
  56. OSS_ROLE_ARN = 'acs:ram::1901342792446414:role/stsoss'
  57. # aws api key
  58. AWS_ARN = ['arn:aws-cn:s3', 'arn:aws:s3']
  59. AWS_ACCESS_KEY_ID = ['AKIA2MMWBR4DSFG67DTG', 'AKIA2E67UIMD45Y3HL53'] # 0国内, 1国外
  60. AWS_SECRET_ACCESS_KEY = ['aI9gxcAKPmiGgPy9axrtFKzjYGbvpuytEX4xWweL', 'ckYLg4Lo9ZXJIcJEAKkzf2rWvs8Xth1FCjqiAqUw']
  61. # 服务器域名
  62. NGINX_RTMP_STAT = 'http://www.dvema.com/stat'
  63. SERVER_DOMAIN = 'http://www.dvema.com/'
  64. SERVER_DOMAIN_SSL = 'https://www.dvema.com/'
  65. DOMAIN_HOST = 'www.dvema.com'
  66. ALEXA_DOMAIN = 'https://www.zositech.xyz/'
  67. PAYPAL_CRD = {
  68. "mode": "live", # sandbox or live
  69. "client_id": "AdSRd6WBn-qLl9OiQHQuNYTDFSx0ZX0RUttqa58au8bPzoGYQUrt8bc6591RmH8_pEAIPijdvVYSVXyI",
  70. "client_secret": "ENT-J08N3Fw0B0uAokg4RukljAwO9hFHPf8whE6-Dwd8oBWJO8AWMgpdTKpfB1pOy89t4bsFEzMWDowm"
  71. }
  72. DETECT_PUSH_DOMAIN = 'http://push.dvema.com/'
  73. APNS_MODE = 'dev'
  74. if SERVER_TYPE == 'AnsjerPush.dev_config.local_settings':
  75. from AnsjerPush.dev_config.local_config import *
  76. elif SERVER_TYPE == 'AnsjerPush.test_config.test_settings':
  77. from AnsjerPush.test_config.test_config import *
  78. elif SERVER_TYPE == 'AnsjerPush.us_config.formal_settings':
  79. from AnsjerPush.us_config.formal_config import *
  80. elif SERVER_TYPE == 'AnsjerPush.cn_config.cn_formal_settings':
  81. from AnsjerPush.cn_config.cn_formal_config import *
  82. elif SERVER_TYPE == 'AnsjerPush.eur_config.eur_formal_settings':
  83. from AnsjerPush.eur_config.eur_formal_config import *
  84. APNS_CODE = {
  85. -1: '只库存不推送',
  86. 200: '推送成功',
  87. 400: '请求有问题',
  88. 403: '证书或Token有问题',
  89. 405: '请求方式不正确, 只支持POST请求',
  90. 410: '设备的Token与证书不一致'
  91. }
  92. JPUSH_CODE = {
  93. -1: '只库存不推送',
  94. 200: '推送成功',
  95. 400: '错误请求',
  96. 401: '没有验证信息或者验证失败',
  97. 403: '请求被拒绝',
  98. 404: '资源不存在,请求的用户的不存在,请求的格式不被支持',
  99. 405: '请求方法不合适',
  100. 410: '请求的资源已下线',
  101. 429: '请求超出了频率限制',
  102. 500: '极光内部服务错误',
  103. 502: '业务服务器下线了或者正在升级。请稍后重试',
  104. 503: '服务暂时失效',
  105. 504: '代理超时'
  106. }
  107. FCM_CODE = {
  108. -1: '只库存不推送',
  109. 200: '推送成功',
  110. 400: '无效数据',
  111. 401: '没有验证信息或者验证失败'
  112. }
  113. APP_TYPE = {
  114. 1: 'ios',
  115. 2: 'android'
  116. }
  117. # appBundleId配置
  118. APP_BUNDLE_DICT = {
  119. 'com.ansjer.customizedd_a': 'DVS',
  120. 'com.ansjer.zccloud_a': 'ZosiSmart',
  121. 'com.ansjer.zccloud_ab': '周视',
  122. 'com.ansjer.adcloud_a': 'ADCloud',
  123. 'com.ansjer.adcloud_ab': 'ADCloud',
  124. 'com.ansjer.accloud_a': 'ACCloud',
  125. 'com.ansjer.loocamccloud_a': 'Loocam',
  126. 'com.ansjer.loocamdcloud_a': 'Anlapus',
  127. 'com.ansjer.customizedb_a': 'COCOONHD',
  128. 'com.ansjer.customizeda_a': 'Guardian365',
  129. 'com.ansjer.customizedc_a': 'PatrolSecure',
  130. }
  131. MULTI_CHANNEL_TYPE_LIST = [1, 2, 3, 4, 10001, 300]
  132. # 事件类型,完整内容见企业微信的《开发类型定义》文档的推送类型表
  133. # 系统消息事件类型
  134. SYS_EVENT_TYPE_LIST = [702, 703, 704, 706]
  135. # 不限频推送事件类型
  136. UNRESTRICTED_FREQUENCY_PUSH_EVENT_TYPE_LIST = [606, 607, 706, 1022, 1023]
  137. # 透传推送事件类型列表(音视频通话)
  138. DATA_PUSH_EVENT_TYPE_LIST = [606, 607, 1022]
  139. # 主用户推送事件类型列表
  140. PRIMARY_USERS_PUSH_EVENT_TYPE_LIST = [606, 607, 706, 1022]
  141. # AI识别标签
  142. AI_IDENTIFICATION_TAGS_DICT = {
  143. '1': 'Person',
  144. '2': 'Pet',
  145. '3': 'Vehicle',
  146. '4': 'Package'
  147. }
  148. EVENT_DICT_CN = {
  149. 51: '检测到画面变化 ',
  150. 52: '传感器报警 ',
  151. 53: '影像遗失 ',
  152. 54: 'PIR ',
  153. 55: '门磁报警 ',
  154. 56: '外部发报 ',
  155. 57: '有人出现 ',
  156. 58: '有车出现 ',
  157. 59: '有宠物出现 ',
  158. 60: '发现人脸 ',
  159. 61: '有异响 ',
  160. 62: '区域闯入 ',
  161. 63: '区域离开 ',
  162. 64: '有人徘徊 ',
  163. 65: '长时间无人出现 ',
  164. 66: {
  165. 1: '有人进入 ',
  166. 2: '有人离开 '
  167. },
  168. 67: '检测到哭声 ',
  169. 68: '检测到手势 ',
  170. 69: '检测到火焰 ',
  171. 70: '看不到宝宝的脸了,快去看看!',
  172. 71: '有包裹出现',
  173. 72: '检测到电瓶车',
  174. 73: '检测到画面被遮挡',
  175. }
  176. EVENT_DICT = {
  177. 51: 'Screen change detected ',
  178. 52: 'Sensor alarms ',
  179. 53: 'Lost images ',
  180. 54: 'PIR ',
  181. 55: 'Door magnetic alarm ',
  182. 56: 'External reporting ',
  183. 57: 'Someone showed up ',
  184. 58: 'A car appeared ',
  185. 59: 'There are pets present ',
  186. 60: 'Discover faces ',
  187. 61: 'There is a strange noise ',
  188. 62: 'Area break-in ',
  189. 63: 'Area departure ',
  190. 64: 'Someone wanders ',
  191. 65: 'No one shows up for a long time ',
  192. 66: {
  193. 1: 'Someone entered ',
  194. 2: 'Someone left '
  195. },
  196. 67: 'Cries detected ',
  197. 68: 'Gesture detected ',
  198. 69: 'Flame detected ',
  199. 70: 'Cant see the baby\'s face now, go take a look!',
  200. 71: 'Package detected ',
  201. 72: 'The battery cart was detected',
  202. 73: 'The image is detected to be occluded'
  203. }
  204. # 小米推送通知类别id
  205. XM_PUSH_CHANNEL_ID = {
  206. 'push_to_talk': 111934, # 一键通话
  207. 'device_reminder': 104551, # 设备提醒
  208. 'service_reminder': 104552, # 服务提醒
  209. 'sys_notification': 104553, # 系统通知
  210. 'single_login': 126707 # 单点登录
  211. }
  212. XM_PUSH_CHANNEL_DICT = {
  213. 'com.ansjer.zccloud_ab': {
  214. 'push_to_talk': 111934, # 一键通话
  215. 'device_reminder': 104551, # 设备提醒
  216. 'service_reminder': 104552, # 服务提醒
  217. 'sys_notification': 104553, # 系统通知
  218. 'single_login': 126707 # 单点登录
  219. },
  220. 'com.cloudlife.commissionf_a': {
  221. 'push_to_talk': 131636, # 一键通话
  222. 'device_reminder': 131638, # 设备提醒
  223. 'service_reminder': 131640, # 服务提醒
  224. 'sys_notification': 131639, # 系统通知
  225. 'single_login': 131637 # 单点登录
  226. }
  227. }
  228. firebase_admin.initialize_app(credentials.Certificate(
  229. BASE_DIR + '/static/fcm/adcloud-fdf9b-firebase-adminsdk-dcvn1-d53e047cc8.json'))
  230. OCI_CONFIG = {
  231. 'us': {
  232. 'user': 'ocid1.user.oc1..aaaaaaaa63vtn64izdujrghlfby6xrlrrdce4yldtnjm7tmqzoc5i2b36s5q',
  233. 'fingerprint': '09:ff:f4:fa:64:bd:7b:72:64:67:5e:9a:ba:01:68:7b',
  234. 'tenancy': 'ocid1.tenancy.oc1..aaaaaaaaemreyqoegf4wbegfzetg63bwvzxa7ahfptbziexslzfmc7gnuwmq',
  235. 'region': 'us-phoenix-1',
  236. 'key_file': 'AnsjerPush/servers@ansjer.com_2023-12-20T07_21_33.069Z.pem'
  237. },
  238. 'eur': {
  239. 'user': 'ocid1.user.oc1..aaaaaaaa63vtn64izdujrghlfby6xrlrrdce4yldtnjm7tmqzoc5i2b36s5q',
  240. 'fingerprint': '09:ff:f4:fa:64:bd:7b:72:64:67:5e:9a:ba:01:68:7b',
  241. 'tenancy': 'ocid1.tenancy.oc1..aaaaaaaaemreyqoegf4wbegfzetg63bwvzxa7ahfptbziexslzfmc7gnuwmq',
  242. 'region': 'uk-london-1',
  243. 'key_file': 'AnsjerPush/servers@ansjer.com_2023-12-20T07_21_33.069Z.pem'
  244. }
  245. }
  246. OCI_NAMESPACE_NAME = 'cnmlmfa4fooi'
  247. APP_MAPPING = {
  248. 'ACCloud': ['com.ansjer.accloud', 'com.ansjer.accloud_a'],
  249. 'ADCloud': ['com.ansjer.adcloud', 'com.ansjer.adcloud_a'],
  250. 'ZosiSmart': ['com.ansjer.zccloud', 'com.ansjer.zccloud_a'],
  251. 'Loocam': ['com.ansjer.loocamccloud', 'com.ansjer.loocamccloud_a'],
  252. 'Anlapus': ['com.ansjer.zosidcloud', 'com.ansjer.zosidcloud_a'],
  253. 'Guardian_365': ['com.ansjer.customizeda', 'com.ansjer.customizeda_a'],
  254. 'COCOON_HD': ['com.ansjer.customizedb', 'com.ansjer.customizedb_a'],
  255. 'ZOSI': ['com.ansjer.customizede', 'com.ansjer.zccloud_ab'],
  256. 'DVS_Mobile': ['com.ansjer.customizedd', 'com.ansjer.customizedd_a'],
  257. 'Loocam_Home': ['com.ansjer.loocamhome', 'com.ansjer.loocamhome_a'],
  258. 'PatrolSecure': ['com.ansjer.customizedc', 'com.ansjer.customizedc_a'],
  259. 'VSees': ['com.cloudlife.commissionf', 'com.cloudlife.commissionf_a'],
  260. 'ZosiLink': ['com.ansjer.zosilink', 'com.ansjer.zosilink_a'],
  261. 'PTC': ['com.livecamera.cooperationh_a'],
  262. 'WinUser': ['WinUser'],
  263. 'MacUser': ['MacUser']
  264. }