|
@@ -0,0 +1,90 @@
|
|
|
+import datetime
|
|
|
+import os
|
|
|
+import time
|
|
|
+from Utils.AccessToken import access_token
|
|
|
+from Utils.UserId import userid
|
|
|
+from Utils.JobId import jobid
|
|
|
+from Utils.HikAccessToken import hik_access_token
|
|
|
+from Utils.HikGetUserlist import hik_getuserlist
|
|
|
+from Utils.HikAdduser import hik_adduser
|
|
|
+from Utils.HikPermissionGroupsPersons import hik_permissiongroupspersons
|
|
|
+from Utils.HikAddcard import hik_addcard
|
|
|
+from Utils.Hik_isToken import hik_is_token
|
|
|
+import json
|
|
|
+
|
|
|
+def datetime_now():
|
|
|
+ datetimenow = datetime.datetime.now().strftime("%Y%m%d%H%M%S")
|
|
|
+ return datetimenow
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+with open("config.json") as f:
|
|
|
+ data = json.load(f)
|
|
|
+ appkey = data["appkey"]
|
|
|
+ appsecret = data["appsecret"]
|
|
|
+ client_id = data["client_id"]
|
|
|
+ client_secret = data["client_secret"]
|
|
|
+ groupId = data["groupId"]
|
|
|
+ sleeptime = data["sleeptime"]
|
|
|
+
|
|
|
+#容器获取环境变量
|
|
|
+# appkey = os.getenv("appkey")
|
|
|
+# appsecret = os.getenv("appsecret")
|
|
|
+# client_id = os.getenv("client_id")
|
|
|
+# client_secret = os.getenv("client_secret")
|
|
|
+# groupId = os.getenv("groupId")
|
|
|
+# sleeptime = os.getenv("sleeptime")
|
|
|
+
|
|
|
+
|
|
|
+#获取Hik token
|
|
|
+hik_accesstoken = hik_access_token(client_id,client_secret)
|
|
|
+ # print(hik_accesstoken)
|
|
|
+while True:
|
|
|
+
|
|
|
+ #获取钉钉token
|
|
|
+ ding_accesstoken = access_token(appkey,appsecret)
|
|
|
+ print("%s,获取钉钉token成功"%datetime_now())
|
|
|
+ #获取钉钉用户id
|
|
|
+ ding_userid_list = userid(ding_accesstoken)
|
|
|
+ print("%s,获取钉钉用户id成功"%datetime_now())
|
|
|
+
|
|
|
+ #获取钉钉用户工号
|
|
|
+ ding_jobidlists = jobid(ding_userid_list,ding_accesstoken)
|
|
|
+ print("%s,获取钉钉用户工号成功"%datetime_now())
|
|
|
+
|
|
|
+ #判断token是否有效
|
|
|
+ hik_accesstoken = hik_is_token(hik_accesstoken,client_id,client_secret)
|
|
|
+ # print(hik_accesstoken)
|
|
|
+
|
|
|
+ #获取Hik 用户列表
|
|
|
+ hik_userlists = hik_getuserlist(hik_accesstoken)
|
|
|
+ # print(hik_userlists)
|
|
|
+
|
|
|
+ #钉钉用户数据同步到海康云眸
|
|
|
+
|
|
|
+
|
|
|
+ #查询出海康云眸里没有的钉钉jobid
|
|
|
+ diff_value = set(ding_jobidlists) - set(hik_userlists)
|
|
|
+ diff_value = list(diff_value)
|
|
|
+ #删除jobid为空的
|
|
|
+ j = 0
|
|
|
+ for i in range(len(diff_value)):
|
|
|
+ if diff_value[j] == "":
|
|
|
+ diff_value.pop(j)
|
|
|
+ else:
|
|
|
+ j += 1
|
|
|
+ if diff_value:
|
|
|
+ print("%s,需要添加用户列表%s,共计%s个"%(datetime_now(),diff_value,len(diff_value)))
|
|
|
+ #根据以上取出的jobid往海康云眸里添加用户
|
|
|
+ for id in diff_value:
|
|
|
+ name = ding_jobidlists[id]
|
|
|
+ hik_adduser(hik_accesstoken,id,name)
|
|
|
+ time.sleep(2)
|
|
|
+ #根据以上取出的jobid在海康云眸里权限组绑定人员
|
|
|
+ hik_permissiongroupspersons(hik_accesstoken,groupId,diff_value)
|
|
|
+ #根据以上取出的jobid在海康云眸里创建卡片
|
|
|
+ hik_addcard(hik_accesstoken,diff_value)
|
|
|
+ else:
|
|
|
+ print("%s,没有需要同步的人员"%datetime_now())
|
|
|
+
|
|
|
+ time.sleep(int(sleeptime))
|