-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathupload.py
74 lines (51 loc) · 2.6 KB
/
upload.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
import os
import csv
from selenium import webdriver, common
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.firefox.options import Options
from dotenv import load_dotenv, find_dotenv
# loading env file
load_dotenv(find_dotenv())
# initializing the titles and rows list
csv_fields = []
csv_rows = []
filename = "data.csv"
opts = Options()
#opts.set_headless()
browser = webdriver.Firefox("./")
def performSignIn():
browser.get('https://kdp.amazon.com/en_US/')
browser.find_element_by_css_selector("span#signinButton").click()
browser.find_element_by_id("ap_email").send_keys(os.getenv('U_USEREMAIL'))
browser.find_element_by_id("ap_password").send_keys(os.getenv('U_PASSWORD'))
browser.find_element_by_id("signInSubmit").click()
def createPaperback(title, subtitle, description, keywords):
browser.get('https://kdp.amazon.com/en_US/title-setup/paperback/new/details?ref_=kdp_kdp_BS_D_cr_ti')
browser.find_element_by_id("data-print-book-title").send_keys(title)
browser.find_element_by_id("data-print-book-subtitle").send_keys(subtitle)
# fill author info if available
browser.find_element_by_id("data-print-book-primary-author-prefix").send_keys(os.getenv('U_AUTHOR_PREFIX'))
browser.find_element_by_id("data-print-book-primary-author-first-name").send_keys(os.getenv('U_AUTHOR_FIRST_NAME'))
browser.find_element_by_id("data-print-book-primary-author-middle-name").send_keys(os.getenv('U_AUTHOR_MIDDLE_NAME'))
browser.find_element_by_id("data-print-book-primary-author-last-name").send_keys(os.getenv('U_AUTHOR_LAST_NAME'))
# wait for the text editor to become available and then click the source button
wait = WebDriverWait(browser, 10)
wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR, '#cke_editor1 a.cke_button__source.cke_button_off')))
browser.find_element_by_css_selector("#cke_editor1 a.cke_button__source.cke_button_off").click()
browser.find_element_by_css_selector("textarea.cke_source").send_keys(description)
if __name__=="__main__":
performSignIn()
with open(filename, 'r') as csvfile:
csvreader = csv.reader(csvfile)
for row in csvreader:
csv_rows.append(row)
print("Found %d entries"%(csvreader.line_num - 1))
for row in csv_rows[1:]:
title = row[0]
subtitle = row[1]
description = row[2]
keywords = row[3]
print(row)
createPaperback(title, subtitle, description, keywords)