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

# In[85]:


pip install webdriver-manager


# In[86]:


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[87]:


##初期設定
asp_id="plus0501"
asp_pw="Yz2rP4n5Buaq"
login_page="https://www.felmat.net/publisher/login"
report_page="https://www.felmat.net/publisher/payment"
asp_name='felmat'
#スプレッドシート関連
SPREADSHEET_KEY = '1upV-9uAclRMdPsgmtdhamqHV55LRY8kxGAPPAW57-DY'
TAB_NAME='felmat'
spread_json="decoded-cove-298205-261119a2dc7d.json"
#アカウント設定
Acount_name="nakatafumito"
dir_time=datetime.datetime.today().strftime("%Y%m%d")
Download_dir="/Users/"+Acount_name+"/Downloads/"+dir_time+"/"+asp_name


# In[88]:


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


# In[89]:


#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[90]:


browser.get(login_page)
try:
    #フェルマログイン
    ##ID入力
    felma_id_input = browser.find_element_by_css_selector('#p_username')
    felma_id_input.send_keys(asp_id)
    ##PW入力
    felma_pw_input = browser.find_element_by_css_selector('#p_password')
    felma_pw_input.send_keys(asp_pw)
    ##ログインボタン
    felma_login_btn= browser.find_element_by_css_selector('body > div.wrapper > div.page-content.no-left-sidebar > div > div > div > div > form > div > div.panel-body > div:nth-child(4) > button')
    felma_login_btn.click()
    #フェルマレポートページ移動
    browser.get(report_page)
except:
    pass


# In[91]:


#今日の日付
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[92]:


try:
    #文字列を検索して隣接の値を取得
    last_month_datas=browser.find_element_by_css_selector('.the-box table').find_element_by_xpath(("//*[text()=\""+last_month+"\"]")).find_element_by_xpath("..").find_elements_by_xpath("td")
    #報酬額
    reward_amount= last_month_datas[1].text
    #消費税
    consumption_tax=last_month_datas[2].text
    #支払額
    amount_of_payment=last_month_datas[3].text
    #状態：「振込予定」か「振込済み」
    payment_status=last_month_datas[4].text
except:
    reward_amount="エラー：取得できませんでした"
    consumption_tax=""
    amount_of_payment=""
    payment_status=""
    
browser.close()


# In[93]:


#スプレッドシート連携
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[94]:


new_row = int(len(worksheet.col_values(1)))+ 1
#支払年月
worksheet.update_cell(new_row, 1,last_month)
#報酬額
worksheet.update_cell(new_row, 2, reward_amount)
#消費税
#worksheet.update_cell(new_row, 2,consumption_tax)
#支払額
worksheet.update_cell(new_row, 3, amount_of_payment)
#状態：「振込予定」か「振込済み」
worksheet.update_cell(new_row, 4, payment_status)

