# coding:utf-8
#
import datetime
import time
import requests
import json
import ssl
from functools import wraps
import sys
import logging
import schedule
from watch import get_all_data
def loginit(path):
logger = logging.getLogger()
handler = logging.FileHandler(path)
formatter = logging.Formatter('%(asctime)s %(levelname)s %(message)s')
handler.setFormatter(formatter)
logger.addHandler(handler)
logger.setLevel(logging.NOTSET)
return logger
log = loginit("./wechat.log")
#_id = sys.argv[1]
# _id = sys.argv[2].strip()
# _data = sys.argv[3:]
def sslwrap(func):
@wraps(func)
def bar(*args, **kw):
kw['ssl_version'] = ssl.PROTOCOL_TLSv1
return func(*args, **kw)
return bar
def get_token():
corp_id = 'ww33d58ed4fce7940'
corp_secret = '__F0pq2ddJaXCL6ssTzyjayZGZBR2Rfj7DAe1B-Jr8'
get_token_url = 'https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=%s&corpsecret=%s' % (corp_id, corp_secret)
ssl.wrap_socket = sslwrap(ssl.wrap_socket)
try:
req = requests.get(get_token_url, verify=False)
except Exception as e:
print('==='+str(e)+'===')
else:
print('get token no error')
data = json.loads(req.text)
return data["access_token"]
def send_msg(_data="hello world"):
svr = None
url = "https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=%s" % get_token()
values = {
#"touser" : "@all" ,
"toparty":"%s" % 6,
"msgtype":"text",
"agentid":"1000002",
"text":{
"content":"{}".format(_data)
},
"safe":"0"
}
# print url
# data = json.loads(values)
ssl.wrap_socket = sslwrap(ssl.wrap_socket)
req = requests.post(url, data=json.dumps(values), verify=False)
log.info("%s , %s" % (0, _data))
print(req.text)
# log.warn("%s , %s" % (_id, _data))
def get_yesterday_time():
yesterday = (datetime.date.today() + datetime.timedelta(-1)).strftime('%Y%m%d')
return yesterday
def party_list():
url = "https://qyapi.weixin.qq.com/cgi-bin/department/list?access_token={}".format(get_token())
req = requests.get(url, verify=False)
print(req.text)
def get_yesterday_data():
# send_msg(_data)
# print(get_token())
# party_list()
all_data=get_all_data()
time = "昨日时间:"+get_yesterday_time()+"\n"+all_data
send_msg(time)
# print()
schedule.every().day.at("09:30").do(get_yesterday_data)
while True:
schedule.run_pending()
time.sleep(3)