|
@@ -0,0 +1,88 @@
|
|
|
+import pandas as pd
|
|
|
+import datetime as dt
|
|
|
+import pymysql
|
|
|
+pymysql.install_as_MySQLdb()
|
|
|
+import dataset
|
|
|
+import requests
|
|
|
+import gspread
|
|
|
+from gspread_pandas import Spread, Client
|
|
|
+from oauth2client.service_account import ServiceAccountCredentials
|
|
|
+import smtplib
|
|
|
+from userdata import *
|
|
|
+from email.message import EmailMessage
|
|
|
+
|
|
|
+def process_worksheet(ws, n):
|
|
|
+ data = []
|
|
|
+ r1 = ws.row_values(7)
|
|
|
+ r2 = ws.row_values(8)
|
|
|
+ data.append(r1)
|
|
|
+ data.append(r2)
|
|
|
+ f = pd.DataFrame(data)
|
|
|
+ f.columns = f.iloc[0]
|
|
|
+ f = f[1:]
|
|
|
+
|
|
|
+ f.to_excel(c[0] + str(n) + " f.xlsx")
|
|
|
+ print(f)
|
|
|
+ return f
|
|
|
+
|
|
|
+def notify_group(msg):
|
|
|
+ gid='WekCRfnAirSiSxALiD6gcm0B56EejsoK89zFbIaiZQD'
|
|
|
+ headers = {"Authorization": "Bearer " + gid,"Content-Type": "application/x-www-form-urlencoded"}
|
|
|
+ r = requests.post("https://notify-api.line.me/api/notify",headers=headers, params={"message": msg})
|
|
|
+
|
|
|
+def send_email(message):
|
|
|
+ server = smtplib.SMTP_SSL('smtp.gmail.com', 465)
|
|
|
+ server.ehlo()
|
|
|
+ server.login(gmail_username, gmail_password)
|
|
|
+
|
|
|
+ emails = {"Jared": "jared@choozmo.com", "Morrison": "morrison@choozmo.com", "Wizer": "wizer@choozmo.com", "Doris": "doris@choozmo.com"}
|
|
|
+
|
|
|
+ for name in emails:
|
|
|
+ msg = EmailMessage()
|
|
|
+ msg['Subject'] = '廣告績效通知' + str(dt.date.today())
|
|
|
+ msg['From'] = "service@choozmo.com"
|
|
|
+ msg['To'] = emails[name]
|
|
|
+
|
|
|
+ msg.set_content(name + "您好,\n\n" + message)
|
|
|
+
|
|
|
+ print ('Sending email to ' + msg['To'])
|
|
|
+ #server.send_message(msg)
|
|
|
+ print ('Email sent to ' + msg['To'])
|
|
|
+ fname = name+'.txt'
|
|
|
+ with open(fname, 'w', encoding="UTF+8") as f:
|
|
|
+ f.write(name + "您好,\n\n" + message)
|
|
|
+
|
|
|
+ server.close()
|
|
|
+
|
|
|
+scope = ['https://spreadsheets.google.com/feeds','https://www.googleapis.com/auth/drive']
|
|
|
+credentials = ServiceAccountCredentials.from_json_keyfile_name("choozmointernal-2e314f3d4e12.json", scope)
|
|
|
+gc = gspread.authorize(credentials)
|
|
|
+
|
|
|
+clients = [['仁本', '1BZlXtEPD0OFdRRVYdTkXhHBcds6mhB0ILkB3ZB3EW3M', 'https://docs.google.com/spreadsheets/d/1BZlXtEPD0OFdRRVYdTkXhHBcds6mhB0ILkB3ZB3EW3M'], ['元利樂樺', '1jYPBgv2U0nnxN3WqI8X8tHcUon3GTMmnC8YrLFz1c84', 'https://docs.google.com/spreadsheets/d/1jYPBgv2U0nnxN3WqI8X8tHcUon3GTMmnC8YrLFz1c84']]
|
|
|
+
|
|
|
+fields = ["All conv.", "All conv. rate", "All conv. value", "Conversions", "Conv. rate", "Conv. value", "CTR", "Clicks", "Avg. CPC", "Impr.", "Cost", "Avg. cost"]
|
|
|
+
|
|
|
+msg = "以下是目前廣告績效:\n\n"
|
|
|
+for c in clients:
|
|
|
+ msg += "[" + c[0] + "]\n詳細資料: " + c[2] + "\n\n"
|
|
|
+ msg += "[昨日資料與前日比較: 昨日/前日/變化/變化%]\n"
|
|
|
+ sh = gc.open_by_key(c[1])
|
|
|
+ file = process_worksheet(sh.worksheet(c[0] + ' 昨日'), 1)
|
|
|
+ for f in fields:
|
|
|
+ f1 = f
|
|
|
+ f2 = f + " (Compare to)"
|
|
|
+ f3 = f + " (Change)"
|
|
|
+ f4 = f + " (Change %)"
|
|
|
+ msg += f + ": " + file[f1].values[0] + ' / ' + file[f2].values[0] + ' / ' + file[f3].values[0] + ' / ' + file[f4].values[0] + "\n"
|
|
|
+
|
|
|
+ msg += "\n[累積資料]\n"
|
|
|
+ file = process_worksheet(sh.worksheet(c[0] + ' 累積'), 2)
|
|
|
+ for f in fields:
|
|
|
+ msg += f + ": " + file[f].values[0] + "\n"
|
|
|
+ msg += "\n"
|
|
|
+
|
|
|
+msg = msg.replace("#NUM!", "--")
|
|
|
+
|
|
|
+print(msg)
|
|
|
+#notify_group(msg)
|
|
|
+#send_email(msg)
|