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

# In[89]:


#pip install webdriver-manager


# In[90]:


import re
from selenium import webdriver
import os
from pathlib import Path
import datetime
from dateutil.relativedelta import relativedelta
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[91]:


##初期設定
asp_id="admin@plus-company.jp"
asp_pw="plusadmin0501"
login_page="https://grp02.id.rakuten.co.jp/rms/nid/vc?__event=login&service_id=p11"
report_page="https://affiliate.rakuten.co.jp/report/reward"
asp_name='Rakuten'
#スプレッドシート関連
SPREADSHEET_KEY = '1upV-9uAclRMdPsgmtdhamqHV55LRY8kxGAPPAW57-DY'
TAB_NAME='Rakuten'
spread_json="decoded-cove-298205-261119a2dc7d.json"

#アカウント設定
Acount_name="plus"
dir_time=datetime.datetime.today().strftime("%Y%m%d")
Download_dir="/Users/"+Acount_name+"/Downloads/"+dir_time+"/"+asp_name


# In[92]:


#ディレクトリ作成
try:
    os.mkdir(Download_dir)
except:
    pass
try:
    os.mkdir(Download_dir)
    print(Download_dir+"にフォルダ作成しました")
except:
    print("すでに"+Download_dir+"にフォルダ作成しています")


# In[93]:


#Selenium設定
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[11]:


browser.get(login_page)
try:
    #ログイン
    ##ID入力
    id_input = browser.find_element_by_css_selector('#loginInner_u')
    id_input.send_keys(asp_id)
    ##PW入力
    pw_input = browser.find_element_by_css_selector('#loginInner_p')
    pw_input.send_keys(asp_pw)
    ##ログインボタン
    login_btn= browser.find_element_by_css_selector('.loginButton')
    login_btn.click()
    #レポートページ移動
    browser.get(report_page)
except:
    browser.get(report_page)


# In[12]:


#今日の日付
datetime.date.today()#今日の日付
datetime.date.today().year#年
datetime.date.today().day#日
datetime.date.today().isoformat()
today=datetime.datetime.today().strftime("%Y-%m-%d")
#先月の年月[XXXX年XX月]
now = datetime.datetime.now()
#d = datetime.timedelta(months=1)
#yesterday=(now-d).strftime("%Y-%m-%d")
(now - relativedelta(months=1)).strftime("%Y-%m-%d")
last_month = (now - relativedelta(months=1)).strftime("%Y-%m")  #年をまたいだ1ヶ月減算


# In[18]:


try:
    last_month_datas=browser.find_element_by_css_selector('#reward_report_table').find_element_by_xpath(("//*[text()=\""+last_month+"\"]")).find_element_by_xpath("..").find_elements_by_xpath("td")
    point=last_month_datas[1].text
    cash=last_month_datas[2].text
except:
    point="取得できませんでした　Err"
    cash=0 
browser.close()


# In[19]:


#スプレッドシート連携
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)
wb = gc.open_by_key(SPREADSHEET_KEY)
worksheet = gc.open_by_key(SPREADSHEET_KEY).worksheet(TAB_NAME)


# In[21]:


new_row = int(len(worksheet.col_values(1)))+ 1
worksheet.update_cell(new_row, 1, last_month)
worksheet.update_cell(new_row, 2, point)
worksheet.update_cell(new_row, 3, cash)
