117 lines
3.9 KiB
Python
117 lines
3.9 KiB
Python
import json
|
|
import time
|
|
|
|
from access_token import SmartSheet
|
|
from lib import WXworkBaseAPI
|
|
|
|
|
|
class ESmart:
|
|
def __init__(self, time_out: int = 10 * 60):
|
|
self.time_out = time_out
|
|
self.timestamp = int(time.time())
|
|
self.report_sheet = SmartSheet(
|
|
"dc48YTUb9gNYCpIWg5v90-U5HIWT72bm3Fkw9Jvi33_sP3I0H32QEDFNOf69TS1bbUjdsYLmvArqqUootD34nm8Q", "L1wFol")
|
|
self.user_sheet = SmartSheet(
|
|
"dc1zao6J8YnS9p86FKKvKQadukmFXlXv3dU1qVQrgcjB81zdSVI7qoi9a7K_OpN4BTyXc8EbYVXxpnQNUUTMWwIw",
|
|
"8vVxEx")
|
|
self.notice_sheet = SmartSheet(
|
|
"dc1zao6J8YnS9p86FKKvKQadukmFXlXv3dU1qVQrgcjB81zdSVI7qoi9a7K_OpN4BTyXc8EbYVXxpnQNUUTMWwIw", "2943X5")
|
|
self.user_log_sheet = SmartSheet(
|
|
"dcqzSDHPl2ZWoLkEB3Id1wMMaW0meMSwGLjfnuHD0VMh0DVidKdal-3wYfsh7Zb1pGn9moDuzjvhtlRZAXoO-Hjg", "g6dTI2")
|
|
self.base_sheet = SmartSheet(
|
|
"dcqzSDHPl2ZWoLkEB3Id1wMMaW0meMSwGLjfnuHD0VMh0DVidKdal-3wYfsh7Zb1pGn9moDuzjvhtlRZAXoO-Hjg", "1gTulR")
|
|
self._base_data = None
|
|
self._user_info = None
|
|
|
|
@staticmethod
|
|
def _convert_user_info(data):
|
|
_data = {}
|
|
for i in data["data"]:
|
|
if "来源对象ID#eid" in i:
|
|
v = {
|
|
"eid": i["来源对象ID#eid"],
|
|
"name": i["名称#name"],
|
|
"value": i["数值#value"],
|
|
"type": i["类型"],
|
|
"_rid": i["_rid"],
|
|
}
|
|
k = v["name"].split("_")
|
|
k = k[0] if len(k) > 0 else ""
|
|
_data[k] = v
|
|
return _data
|
|
|
|
@property
|
|
def base_data(self):
|
|
if self._base_data is None:
|
|
self._base_data = self.base_sheet.to_json()
|
|
if self._check_timeout():
|
|
self._base_data = self.base_sheet.to_json()
|
|
return self._base_data
|
|
|
|
@property
|
|
def user_info(self):
|
|
if self._user_info is None:
|
|
self._user_info = self._convert_user_info(self.user_sheet.to_json())
|
|
if self._check_timeout():
|
|
self._user_info = self._convert_user_info(self.user_sheet.to_json())
|
|
return self._user_info
|
|
|
|
def get_user_info(self, user_id):
|
|
now = int(time.time())
|
|
if now - self.timestamp > self.time_out:
|
|
print("refresh")
|
|
self.timestamp = now
|
|
|
|
def _check_timeout(self):
|
|
now = int(time.time())
|
|
if now - self.timestamp > self.time_out:
|
|
print("refresh")
|
|
self.timestamp = now
|
|
return True
|
|
else:
|
|
return False
|
|
|
|
def refresh(self):
|
|
self._base_data = self.base_sheet.to_json()
|
|
|
|
|
|
if __name__ == '__main__':
|
|
esmart = ESmart()
|
|
# with open("package.json", "w",encoding="utf-8") as f:
|
|
# f.write(json.dumps(esmart.user_info,ensure_ascii=False))
|
|
with open("package.json", "r",encoding="utf-8") as f:
|
|
u_mapping = json.loads(f.read())
|
|
cache_mapping = {v["深交所上市公司代码"]: [u_mapping.get(j,{}).get('_rid') for j in v.get("跟进负责人",[]) if u_mapping.get(j)] for v in esmart.base_data["data"]}
|
|
print(cache_mapping)
|
|
# user_sheet.search({
|
|
# "conjunction": "CONJUNCTION_AND",
|
|
# "conditions": [{
|
|
# "field_id": 'fmTMGx',
|
|
# "field_type": "FIELD_TYPE_TEXT",
|
|
# "operator": "OPERATOR_CONTAINS",
|
|
# "string_value": {
|
|
# "value": [
|
|
# ""
|
|
# ]
|
|
# }
|
|
# }]
|
|
# })
|
|
# for i in m["data"]:
|
|
# print(i)
|
|
#
|
|
# data = {
|
|
# "*发布日期": time.strftime("%Y-%m-%d", time.localtime()),
|
|
# "*栏目#gName": "",
|
|
# "状态": "待发布",
|
|
# "*摘要#subject": "",
|
|
# "置顶#isTop": False,
|
|
# "*详情#content": "",
|
|
# "*标题#title": "",
|
|
# "消息类型#msgType": "中性",
|
|
# "*消息接收对象#sendList": [
|
|
# ""
|
|
# ]
|
|
# }
|
|
# print(data)
|
|
#
|