import traceback
import copy
import operator
import codecs
import sys
import os
import searchconsole
import dataset
import datetime
import time


fname=os.path.abspath(__file__)
elmts=fname.split(os.path.sep)
path2=os.path.sep.join(elmts[0:-1])
keysdir=path2+os.path.sep+'keys'+os.path.sep

account = searchconsole.authenticate(client_config=keysdir+'client_secret.json',credentials=keysdir+'credentials.json')
webproperty = account['https://hhh.com.tw/']

#db = dataset.connect('mysql://choozmo:pAssw0rd@db.ptt.cx:3306/hhh?charset=utf8mb4')
db = dataset.connect('mysql://choozmo:pAssw0rd@127.0.0.1:3306/hhh?charset=utf8mb4')

table=db['gsc_weekly']

#report=webproperty.query.range('2021-01-01', '2020-01-02').dimension('page','query').get()
report=webproperty.query.range('2021-05-30', '2020-06-05').dimension('query').get()
total_pos=0
total_count=0
total_clicks=0
records=[]

ts = time.time()
sessionid=int(ts)

for r in report:
#    print(r)
    query=r[0]
    clicks=r[1]
    impressions=r[2]
    ctr=r[3]
    position=r[4]
    records.append({'sessionid':sessionid,'query':query,'clicks':int(clicks),'impressions':int(impressions),'ctr':float(ctr),'position':float(position),'dt':datetime.datetime.now()})

print('complete')

db.begin()
for r in records:
    try:
        table.insert(r)
        db.commit()
    except:
        db.rollback()
print('done')