Skip to content

Commit 467418b

Browse files
author
Julian Zimmermann
committed
Fixed tests, resolved conflicts
1 parent e1bf460 commit 467418b

File tree

6 files changed

+37
-9
lines changed

6 files changed

+37
-9
lines changed

.gitignore

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
config/prod.cfg
1010
config/client_secrets.json
1111
config/auth_token.json
12-
config/lastNewsletterUrl.csv
12+
config/lastNewsletterUrl
1313

1414
ebooks/
1515
node_modules/

config/dev.cfg

+1
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ url.loginPostNewsletter=/loginPostNewsletter.html
66
url.account=/myEbooks.html
77
# params: 0=id, 1=format
88
url.download=/ebook_download/{0}/{1}
9+
url.bookFromNewsletter=http://localhost:8080/urlFromNewsletter.html
910

1011
#time in seconds
1112
[delay]

dev/public/loginPostNewsletter.html

+23-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,29 @@
1616
"currency_symbol": "\u20ac"
1717
};
1818
</script>
19-
19+
<form accept-charset="UTF-8" method="post" id="packt-user-login-form">
20+
<div>
21+
<div id="login-form" class="cf">
22+
<div id="login-form-email">
23+
<div class="form-item" id="email-wrapper">
24+
<input type="text" maxlength="128" name="email" id="email" size="24" value="" placeholder="E-mail address" class="form-text required" />
25+
</div>
26+
</div>
27+
<div id="login-form-pass">
28+
<div class="form-item" id="password-wrapper">
29+
<input type="password" name="password" id="password" maxlength="128" size="24" placeholder="Password" class="form-text required" />
30+
</div>
31+
</div>
32+
<div id="login-form-submit">
33+
<input type="submit" name="op" id="edit-submit-1" value="Login" class=" form-submit" />
34+
</div>
35+
<br />
36+
</div>
37+
<a href="https://www.packtpub.com/account/password">Forgotten your password?</a>
38+
<input type="hidden" name="form_build_id" id="form-aaaaaaaaaa1111111111bbbbbbbbbb22" value="form-aaaaaaaaaa1111111111bbbbbbbbbb22" />
39+
<input type="hidden" name="form_id" id="edit-packt-user-login-form" value="packt_user_login_form" />
40+
</div>
41+
</form>
2042
<div id="main-book" class="cf promo" itemscope itemtype="http://schema.org/Book">
2143
<div class="book-top-block-wrapper cf">
2244
<div class="cf section-inner">

dev/public/urlFromNewsletter.html

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
http://localhost:8080/loginPostNewsletter.html

script/packtpub.py

+9-5
Original file line numberDiff line numberDiff line change
@@ -37,13 +37,11 @@ def __log_response(self, response, method='GET', detail=False):
3737
log_dict(response.headers)
3838

3939
def __GET_login(self, url):
40-
if self.__dev:
41-
url = self.__url_base + self.__config.get('url', 'url.loginGet')
42-
4340
response = self.__session.get(url, headers=self.__headers)
4441
self.__log_response(response, 'GET', self.__dev)
4542

4643
soup = make_soup(response)
44+
4745
form = soup.find('form', {'id': 'packt-user-login-form'})
4846
self.info['form_build_id'] = form.find('input', attrs={'name': 'form_build_id'})['value']
4947
self.info['form_id'] = form.find('input', attrs={'name': 'form_id'})['value']
@@ -57,7 +55,6 @@ def __POST_login(self, url):
5755

5856
response = None
5957
if self.__dev:
60-
url = self.__url_base + self.__config.get('url', 'url.loginPost')
6158
response = self.__session.get(url, headers=self.__headers, data=data)
6259
self.__log_response(response, 'GET', self.__dev)
6360
else:
@@ -124,10 +121,17 @@ def __GET_claim(self):
124121
def runDaily(self):
125122
"""
126123
"""
124+
if self.__dev:
125+
loginUrl = self.__url_base + self.__config.get('url', 'url.loginGet')
126+
else:
127+
loginUrl = self.__url_base + self.__config.get('url', 'url.login')
127128

128-
loginUrl = self.__url_base + self.__config.get('url', 'url.login')
129129
self.__GET_login(loginUrl)
130130
wait(self.__delay, self.__dev)
131+
132+
if self.__dev:
133+
loginUrl = self.__url_base + self.__config.get('url', 'url.loginPost')
134+
131135
soup = self.__POST_login(loginUrl)
132136
self.__parseDailyBookInfo(soup)
133137
wait(self.__delay, self.__dev)

script/spider.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -101,10 +101,10 @@ def main():
101101

102102
if os.path.isfile(lastNewsletterUrlPath):
103103
with open(lastNewsletterUrlPath, 'r+') as f:
104-
lastNewsletterUrl = f.read()
104+
lastNewsletterUrl = f.read().strip()
105105

106106
# the default URL is generated by an Google apps script, see README for details and self-hosting
107-
currentNewsletterUrl = requests.get(config.get('url', 'url.bookFromNewsletter')).text
107+
currentNewsletterUrl = requests.get(config.get('url', 'url.bookFromNewsletter')).text.strip()
108108

109109
if lastNewsletterUrl != currentNewsletterUrl:
110110
log_info('[*] getting free ebook from newsletter')

0 commit comments

Comments
 (0)