diff --git a/daily_report/get_grafana.py b/daily_report/get_grafana.py new file mode 100644 index 0000000..f6f5dde --- /dev/null +++ b/daily_report/get_grafana.py @@ -0,0 +1,66 @@ +# -*- coding: utf-8 -*- +import requests +import pdb +# Head = {"Accept": "application/json", +# "Authorization": "Bearer eyJrIjoiczVHc2lpWkw1a2Jsb0RxeXNKaEhPczQ3QzNtSUtRNHIiLCJuIjoibWlsZXMiLCJpZCI6MX0="} +# url = "http://grafana.kingsome.cn/d/oN5uGwEik/kingsomeren-shu-qu-xian?orgId=1&from=1572226084591&to=1572247684591" + +import os, stat +import urllib.request +from datetime import datetime, date, time, timedelta +import time as Time + + +# 获取七日前0点与今日0点的时间戳 +def last_seven_day(): + midnight = datetime.combine(date.today(), time.min) + yesterday_mid = midnight - timedelta(days=7) # 想要此前几天的,就改这个参数 + epoch = datetime.utcfromtimestamp(0) + midnight = midnight - timedelta(seconds=1) + midnight = int((midnight - epoch).total_seconds() * 1000.0) + yesterday_mid = int((yesterday_mid - epoch).total_seconds() * 1000.0) + return str(yesterday_mid), str(midnight) + + +# 下载指定的dashboard +def download_db(): + # 组装url,跑代码之前现在浏览器试试 + dbuid = "p5aRo00Wz" + # dbuid = "mI5F3QnWk" + grafana_server = "https://grafana-test.kingsome.cn" + # grafana_server = "http://grafana.kingsome.cn" + # url = f"""{grafana_server}/render/d/{dbuid}?from{last_seven_day()[0]}&to={last_seven_day()[ + # 1]}&&var-datasource=xxx&width=1500&height=700&tz=UTC%2B08%3A00""" + url="http://grafana.kingsome.cn/render/d-solo/hzR9LcoZk/taptappai-ming-fen-xi?orgId=1&from=1572413361151&to=1572434961151&var-gameid=10056&var-date=All&var-catename=download&panelId=2&width=1000&height=1500&tz=Asia%2FShanghai" + # url="http://grafana.kingsome.cn/d/e2zRV1emk/shu-ju-yan-shi?orgId=1&from=1571715151698&to=1572319951698&var-name=All&var-date=All" + + # header = {"Accept": "application/json", "Content-Type": "application/json", + # "Authorization": "Bearer eyJrIjoiczVHc2lpWkw1a2Jsb0RxeXNKaEhPczQ3QzNtSUtRNHIiLCJuIjoibWlsZXMiLCJpZCI6MX0="} + keys="eyJrIjoiczVHc2lpWkw1a2Jsb0RxeXNKaEhPczQ3QzNtSUtRNHIiLCJuIjoibWlsZXMiLCJpZCI6MX0=" + #keys = "eyJrIjoiWGFFMXp4YTlaODFHUFpVQmxBcHVDWUZNSUFvb2doNDEiLCJuIjoidGVzdCIsImlkIjoyfQ==" + header = {"Accept": "application/json", "Content-Type": "application/json", "Authorization": f"Bearer {keys}"} + print(url) + request = urllib.request.Request(url, headers=header) + #pdb.set_trace() + try: + # 访问并下载面板图 + response = urllib.request.urlopen(request) + time_now = int(Time.time()) + time_local = Time.localtime(time_now) + dt = Time.strftime("%Y-%m-%d", time_local) + img_name = f"img{dt}.png" + + filename = img_name + # print(response.getcode()) + if (int(response.getcode()) == 200): + with open(filename, "wb") as f: + f.write(response.read()) + return filename + else: + return "failed" + except: + return "failed" + + +if __name__ == "__main__": + download_db() diff --git a/daily_report/templates/index.html b/daily_report/templates/index.html new file mode 100644 index 0000000..ec2e894 --- /dev/null +++ b/daily_report/templates/index.html @@ -0,0 +1,9 @@ + + + + Index + + + test Image + + \ No newline at end of file diff --git a/daily_report/test01.html b/daily_report/test01.html new file mode 100644 index 0000000..236d7b8 --- /dev/null +++ b/daily_report/test01.html @@ -0,0 +1,11 @@ + + + + + Title + + + + + \ No newline at end of file diff --git a/daily_report/test_report.py b/daily_report/test_report.py new file mode 100644 index 0000000..5b1f933 --- /dev/null +++ b/daily_report/test_report.py @@ -0,0 +1,50 @@ +# -*- coding: utf-8 -*- +from flask import Flask, render_template, jsonify +from flask_mail import Mail, Message +import os +from threading import Thread + +PEOPLE_FOLDER = os.path.abspath('.') + +app = Flask(__name__) +app.config['UPLOAD_FOLDER'] = PEOPLE_FOLDER + +sender = "ops@kingsome.cn" +app = Flask(__name__) +app.config['MAIL_SERVER'] = 'smtp.exmail.qq.com' +app.config['MAIL_PORT'] = '465' +app.config['MAIL_USE_SSL'] = True +app.config['MAIL_USE_TLS'] = False ## 默认就是 false, 加上警示自己 +app.config['MAIL_USERNAME'] = sender +app.config['MAIL_PASSWORD'] = 'bX8cfBAyj9MBqH22' +mail = Mail(app) +recipients = ['pengtao@kingsome.cn'] + + +def send_async_email(app, msg): + with app.app_context(): + mail.send(msg) + + +@app.route('/') +def show_index(): + title = "test报表" + # day = request.args.get('day') + # project = request.args.get('project') or 'mini_games' + + + msg = Message(title, sender=sender, recipients=recipients) + + msg.subject = f"test_游戏日报" + full_filename = os.path.join(app.config['UPLOAD_FOLDER'], 'img2019-10-31.png') + msg.html = render_template('index.html', user_image=full_filename) + + thread = Thread(target=send_async_email, args=[app, msg]) + thread.start() + + return jsonify("邮件发送成功") + + +if __name__ == "__main__": + # main() + app.run(host='0.0.0.0', port=6700, debug=False)