# -*- coding: utf-8 -*-
import os
import time
import sys
import lineNotify as line
import json
from datetime import datetime as dt
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
import chromedriver_binary
from bs4 import BeautifulSoup
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.support.ui import Select
import kindle_sqlite
import urllib.request
import datetime
import calendar
from datetime import timedelta

from pprint import pprint
from webdriver_manager.chrome import ChromeDriverManager

def get_first_date(year, month):
    return datetime.date(year, month, 1)

def get_last_date(year, month):
    return datetime.date(year, month, calendar.monthrange(year, month)[1])

keys_json = open('config.json', 'r')
keys = json.load(keys_json)


#任意に変更してください
MAIL_ADDRESS = keys["mail_address"]
PASSWORD = keys["password"]
BASE_URL = 'https://affiliate.amazon.co.jp/home/'


TARGET_UPDATE_TAG_URL = "https://comicy.jp/items/update_associate_tags"
# TARGET_UPDATE_TAG_URL = "http://192.168.10.20/items/update_associate_tags"
associate_tag = 'koooo10000-22'
# associate_tags = ['allstars-22']


#キャッシュディレクトリの作成
path = os.getcwd()
tmp_dir_name = 'tmp_data'
os.makedirs(tmp_dir_name, exist_ok=True)


# start_date = dt.now().strftime('%Y-%m-01')
# end_date = dt.now().strftime('%Y-%m-28')



print("start")


list = []
options = Options()
options.add_argument('--user-data-dir='+ path + '\\' + tmp_dir_name)
#https://www.cloudgate.jp/ua.php
#ここにUAを書きます。
#--user-agent= ***
if('user_agent' in keys == False):
    options.add_argument('--user-agent=' + keys["user_agent"])
else:
    options.add_argument('--user-agent=' + 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36')

# driver = webdriver.Chrome(chrome_options=options)
driver = webdriver.Chrome(ChromeDriverManager().install(),options=options)
# if DRIVER_PATH == '':
    # driver = webdriver.Chrome(chrome_options=options)
# else:
#     driver = webdriver.Chrome(chrome_options=options,executable_path=DRIVER_PATH)




if __name__ == '__main__':
    try:



        #昨日のデータを集計する
        target_date = datetime.date.today() - timedelta(days=1)

        print(target_date.strftime('%Y-%m-%d'))

        year = int(target_date.strftime('%Y'))
        month = int(target_date.strftime('%m'))




        # year = 2020
        # month = 12


        start_date = str(get_first_date(year,month))
        end_date = str(get_last_date(year,month))

        print(start_date + " ~ " + end_date)


        url = "https://affiliate.amazon.co.jp/home/reports/table.json?"
        url += "query%5Btype%5D=earnings&"
        
        url += "query%5B" + "start_date%5D="+start_date+"&"
        url += "query%5B" + "end_date%5D="+end_date+"&"
        url += "query%5B" + "order%5D=desc&"
        url += "query%5B" + "tag_id%5D=all&"
        url += "query%5B" + "last_accessed_row_index%5D=0&"
        url += "query%5B" + "group_by%5D=tag_id&"
        url += "query%5B" + "columns%5D=tag_value%2Cclicks%2Ctag_id%2Cshipped_items%2Crevenue%2Chva_total_earnings%2Ccommission_earnings%2Creturned_items%2Creturned_revenue%2Creturned_earnings&"
        url += "query%5B" + "skip%5D=0&"
        url += "query%5B" + "sort%5D=shipped_items&"    
        url += "query%5B" + "limit%5D=3000&"
        url += "store_id=" + associate_tag + "&"

        # https://affiliate.amazon.co.jp/home/reports/table.json?query%5Btype%5D=earnings&query%5Bstart_date%5D=2021-01-01&query%5Bend_date%5D=2021-01-13&query%5Btag_id%5D=all&query%5Border%5D=desc&query%5Bdevice_type%5D=all&query%5Blast_accessed_row_index%5D=0&query%5Bgroup_by%5D=tag_id&query%5Bcolumns%5D=tag_value%2Cclicks%2Ctag_id%2Cshipped_items%2Crevenue%2Chva_total_earnings%2Ccommission_earnings%2Creturned_items%2Creturned_revenue%2Creturned_earnings&query%5Bskip%5D=0&query%5Bsort%5D=shipped_items&query%5Blimit%5D=25&store_id=koooo10000-22

        driver.get(url)
        time.sleep(3)



        html = driver.page_source.encode('utf-8')
        soup = BeautifulSoup(html, 'lxml')

        info = soup.find("pre").text
        json_data = json.loads(info)

        url = TARGET_UPDATE_TAG_URL
        method = "POST"
        obj = {
            "json_data" : json_data,
        }

        json_data = json.dumps(obj).encode("utf-8")
        headers = {"Content-Type" : "application/json"}

        request = urllib.request.Request(url, data=json_data, headers=headers, method=method)
        with urllib.request.urlopen(request) as response:
            pprint(response)
            response_body = response.read().decode("utf-8")
            print(response_body)



        print("処理終了")







    except Exception as e:
        exc_type, exc_obj, exc_tb = sys.exc_info()
        fname = os.path.split(exc_tb.tb_frame.f_code.co_filename)[1]
        print(exc_type, fname, exc_tb.tb_lineno)

    finally:
        driver.quit()
        print("end")




    
