#!/usr/bin/env python
# coding: utf-8

# In[140]:


 #pip install webdriver-manager


# In[ ]:


import re
from selenium import webdriver
import os
from pathlib import Path
import datetime
from selenium import webdriver
from selenium.webdriver.support.ui import Select
import pandas as pd

import requests

import json
import csv
import time
import gspread
import traceback
from oauth2client.service_account import ServiceAccountCredentials
import math
import datetime

from pydrive.auth import GoogleAuth
from pydrive.drive import GoogleDrive


# In[128]:


##楽天 rktn
rktn_id="admin@plus-company.jp"
rktn_pw="plusadmin0501"
rktn_login_page="https://grp02.id.rakuten.co.jp/rms/nid/vc?__event=login&service_id=p11"
rktn_report_page="https://affiliate.rakuten.co.jp/report/monthly"
asp_name='rakuten'
#スプレッドシート情報
SPREADSHEET_KEY = '1qb-FOKemBNzxGnHPqn-hhoZLIsksVEQBC9ySKso20qY'

#フォルダID # スプレッドシート格納フォルダ（https://drive.google.com/drive/folders/<フォルダのID>）
folder_id = '1Xw7t0MLLhyFXXjhw-h02eT4KS7N6xfli'


# In[129]:


#ダウンロードディレクトリのパスを指定してください。
Download_dir="/Users/plus/Downloads/"
dir_time=datetime.datetime.today().strftime("%Y%m%d")
#今日の日付
datetime.date.today()#今日の日付
datetime.date.today().year#年
datetime.date.today().day#日
datetime.date.today().isoformat()
today=datetime.datetime.today().strftime("%Y-%m-%d")
#昨日の日付
now = datetime.datetime.now()
d = datetime.timedelta(days=1)
yesterday=(now-d).strftime("%Y-%m-%d")


# In[130]:


Download_dir=Download_dir+dir_time
try:
    os.mkdir(Download_dir)
except:
    pass


# In[131]:


Download_dir=Download_dir+"/"+asp_name+"/"
try:
    os.mkdir(Download_dir)
    print(Download_dir+"にフォルダ作成しました")
except:
    print("すでに"+Download_dir+"にフォルダ作成しています")


# In[132]:


from webdriver_manager.chrome import ChromeDriverManager
options = webdriver.ChromeOptions()
prefs = {'download.default_directory' : Download_dir }
options.add_experimental_option('prefs',prefs)
# ドライバのパス設定
driver_path = '/usr/local/bin/chromedriver'

browser = webdriver.Chrome(ChromeDriverManager().install(),chrome_options = options)


# In[133]:


#rktnログインページ
browser.get(rktn_login_page)
#rktnログイン
##ID入力
try:
    rktn_id_input = browser.find_element_by_css_selector('#loginInner_u')
    rktn_id_input.send_keys(rktn_id)
    ##PW入力
    rktn_pw_input = browser.find_element_by_css_selector('#loginInner_p')
    rktn_pw_input.send_keys(rktn_pw)
    ##ログインボタン
    rktn_login_btn= browser.find_element_by_css_selector('#loginInner > p:nth-child(3) > input')
    rktn_login_btn.click()
except:
    pass
#rktnレポートページ移動
browser.get(rktn_report_page)
time.sleep(10)

rktn_datas = browser.find_element_by_css_selector('#monthly_report_table').find_element_by_xpath(("//*[text()=\""+yesterday+"\"]")).find_element_by_xpath("..").find_elements_by_xpath("td")
rktn_dates=[]
rktn_rewards=[]
rktn_clicks=[]
rktn_counts=[]
rknt_sales=[]
rktn_dates.append(yesterday)
rktn_rewards.append(rktn_datas[1].text)
rktn_clicks.append(rktn_datas[2].text)
rktn_counts.append(rktn_datas[3].text)
rknt_sales.append(rktn_datas[4].text)


# In[134]:


df = pd.DataFrame()
df['発生日'] = rktn_dates
df['成果報酬'] = rktn_rewards
df['クリック数'] = rktn_clicks
df['売上件数'] = rktn_counts
df['売上金額'] = rknt_sales
now = datetime.datetime.now()
nowdate = "{0:%Y-%m-%d %H:%M:%S}".format(now)
nowdate2 = "{0:%Y_%m_%d}".format(now)
#CSVファイルに出力
df.to_csv(Download_dir+'csv_up_rktn.csv',index=False)


# In[135]:


browser.close()


# In[136]:


try:
    #ダウンロードしたファイル名を取得
    newst_file_path=Download_dir+"csv_up_rktn.csv"
    csv_file_name = (newst_file_path)

    TAB_NAME=asp_name+'_'+today
    # 認証用キー
    #spread_json="/Users/plus/Desktop/python/asp_scr/decoded-cove-298205-261119a2dc7d.json"
    spread_json="decoded-cove-298205-261119a2dc7d.json"
    json_keyfile_path = 'decoded-cove-298205-261119a2dc7d.json'
    scope = ['https://spreadsheets.google.com/feeds','https://www.googleapis.com/auth/drive']
    credentials = ServiceAccountCredentials.from_json_keyfile_name(spread_json, scope)
    gc = gspread.authorize(credentials)

    # In[37]:
    workbook = gc.open_by_key(SPREADSHEET_KEY)
    worksheet = workbook.sheet1
    # ワークシートを末尾に新規作成する
    workbook.add_worksheet(title=TAB_NAME, rows=3000, cols=26)

    worksheet = gc.open_by_key(SPREADSHEET_KEY).worksheet(TAB_NAME)

    # GoogleAPI
    scope = ['https://spreadsheets.google.com/feeds',
             'https://www.googleapis.com/auth/drive']

    # インポートするCSVファイル
    csv_path = csv_file_name

    # サービスアカウントキーを読み込む
    credentials = ServiceAccountCredentials.from_json_keyfile_name(json_keyfile_path, scope)
    # pydrive用の認証
    gauth = GoogleAuth()
    gauth.credentials = credentials
    drive = GoogleDrive(gauth)

    # スプレッドシートを開く
    workbook = gc.open_by_key(SPREADSHEET_KEY)
    # 作成したスプレッドシートにCSVをインポート
    workbook.values_update(
        TAB_NAME,
        params={'valueInputOption': 'USER_ENTERED'},
        body={'values': list(csv.reader(open(csv_path)))}
    )
except:
    print("データがありません")


# In[157]:


try:
    for i in range(len(rktn_dates)):
        payload = {'api_key': 'plus0501','type': 'rakuten','accrual_date':rktn_dates[i],'achievement_reward':rktn_rewards[i],'click_count':rktn_clicks[i],'number_of_sales':rktn_counts[i],'sales_amount':rknt_sales[i]}
        r = requests.post("https://plustest:plussp@plus-creative.xyz/asp2/insert/index.php", data=payload)
except:
    print("データがありません")


# In[158]:


 #payload


# In[159]:


#r.text


# In[ ]:




