more meaningful variable naming and compact

This commit is contained in:
limkokhole
2020-08-17 21:24:37 +08:00
parent 345534e87f
commit 7bad9f07ec

View File

@@ -249,10 +249,10 @@ def get_pin_info(pin_id, arg_timestamp_log, arg_force_update, arg_dir, arg_cut,
print() print()
def get_board_info(board_name, exclude_section, section, proxies): def get_board_info(board_or_sec_path, exclude_section, section, proxies):
s = get_session(0, proxies) s = get_session(0, proxies)
r = s.get('https://www.pinterest.com/{}/'.format(board_name), timeout=15) r = s.get('https://www.pinterest.com/{}/'.format(board_or_sec_path), timeout=15)
root = html.fromstring(r.content) root = html.fromstring(r.content)
tag = root.xpath("//script[@id='initial-state']")[0] tag = root.xpath("//script[@id='initial-state']")[0]
initial_data = json.loads(tag.text) initial_data = json.loads(tag.text)
@@ -987,8 +987,7 @@ def main():
url_path = args.path.strip().split('?')[0].split('#')[0] url_path = args.path.strip().split('?')[0].split('#')[0]
# Convert % format of unicode url when copied from Firefox # Convert % format of unicode url when copied from Firefox
# This is important especially section need compare the section name later # This is important especially section need compare the section name later
url_path = urllib.parse.unquote_plus(url_path) url_path = urllib.parse.unquote_plus(url_path).rstrip('/')
url_path = url_path.rstrip('/')
if '://' in url_path: if '://' in url_path:
url_path = '/'.join( url_path.split('/')[3:] ) url_path = '/'.join( url_path.split('/')[3:] )
if not url_path: if not url_path:
@@ -1050,12 +1049,12 @@ def main():
get_pin_info(pin_id.strip(), args.log_timestamp, args.force, args.dir, args.cut, arg_el, fs_f_max, proxies) get_pin_info(pin_id.strip(), args.log_timestamp, args.force, args.dir, args.cut, arg_el, fs_f_max, proxies)
if len(slash_path) == 3: if len(slash_path) == 3:
u_url = '/'.join(slash_path) sec_path = '/'.join(slash_path)
print('[i] Job is download single section by username/boardname/section: {}'.format(u_url)) print('[i] Job is download single section by username/boardname/section: {}'.format(sec_path))
# Will err if try to create section by naming 'more_ideas' # Will err if try to create section by naming 'more_ideas'
if ( slash_path[-3] in ('search', 'categories', 'topics') ) or ( slash_path[-1] in ['more_ideas'] ): if ( slash_path[-3] in ('search', 'categories', 'topics') ) or ( slash_path[-1] in ['more_ideas'] ):
return quit('{}'.format('\n[' + x_tag + '] Search, Categories, Topics, more_ideas are not supported.\n') ) return quit('{}'.format('\n[' + x_tag + '] Search, Categories, Topics, more_ideas are not supported.\n') )
board = get_board_info(u_url, False, slash_path[-1], proxies) # need_get_section's True/False not used board = get_board_info(sec_path, False, slash_path[-1], proxies) # need_get_section's True/False not used
try: try:
IMGS_SESSION = get_session(2, proxies) IMGS_SESSION = get_session(2, proxies)
IMG_SESSION = get_session(3, proxies) IMG_SESSION = get_session(3, proxies)
@@ -1067,11 +1066,11 @@ def main():
return quit(traceback.format_exc()) return quit(traceback.format_exc())
elif len(slash_path) == 2: elif len(slash_path) == 2:
u_url = '/'.join(slash_path) board_path = '/'.join(slash_path)
print('[i] Job is download single board by username/boardname: {}'.format(u_url)) print('[i] Job is download single board by username/boardname: {}'.format(board_path))
if slash_path[-2] in ('search', 'categories', 'topics'): if slash_path[-2] in ('search', 'categories', 'topics'):
return quit('{}'.format('\n[' + x_tag + '] Search, Categories and Topics not supported.\n') ) return quit('{}'.format('\n[' + x_tag + '] Search, Categories and Topics not supported.\n') )
board, sections = get_board_info(u_url, args.exclude_section, None, proxies) board, sections = get_board_info(board_path, args.exclude_section, None, proxies)
try: try:
IMGS_SESSION = get_session(2, proxies) IMGS_SESSION = get_session(2, proxies)
IMG_SESSION = get_session(3, proxies) IMG_SESSION = get_session(3, proxies)
@@ -1082,8 +1081,8 @@ def main():
sec_c = len(sections) sec_c = len(sections)
print('[i] Trying to get ' + str(sec_c) + ' section{}'.format('s' if sec_c > 1 else '')) print('[i] Trying to get ' + str(sec_c) + ' section{}'.format('s' if sec_c > 1 else ''))
for sec in sections: for sec in sections:
s_url = u_url + '/' + sec['slug'] sec_path = board_path + '/' + sec['slug']
board = get_board_info(s_url, False, sec['slug'], proxies) # False not using bcoz sections not [] already board = get_board_info(sec_path, False, sec['slug'], proxies) # False not using bcoz sections not [] already
fetch_imgs( board, slash_path[-2], slash_path[-1], sec['slug'], args.board_timestamp fetch_imgs( board, slash_path[-2], slash_path[-1], sec['slug'], args.board_timestamp
, args.log_timestamp, args.force, args.dir, args.thread_max , args.log_timestamp, args.force, args.dir, args.thread_max
, IMGS_SESSION, IMG_SESSION, V_SESSION, args.cut, arg_el, fs_f_max ) , IMGS_SESSION, IMG_SESSION, V_SESSION, args.cut, arg_el, fs_f_max )
@@ -1115,15 +1114,14 @@ def main():
if (not args.exclude_section) and (board['section_count'] > 0): if (not args.exclude_section) and (board['section_count'] > 0):
sec_c = board['section_count'] sec_c = board['section_count']
print('[i] Trying to get ' + str(sec_c) + ' section{}'.format('s' if sec_c > 1 else '')) print('[i] Trying to get ' + str(sec_c) + ' section{}'.format('s' if sec_c > 1 else ''))
u_url = board['url']
# E.g. /example/commodore-computers/ need trim to example/commodore-computers # E.g. /example/commodore-computers/ need trim to example/commodore-computers
u_url = u_url.strip('/') board_path = board['url'].strip('/')
# ags.es placeholder below always False bcoz above already check (not args.exclude_section) # ags.es placeholder below always False bcoz above already check (not args.exclude_section)
board, sections = get_board_info(u_url, False, None, proxies) board, sections = get_board_info(board_path, False, None, proxies)
for sec in sections: for sec in sections:
s_url = u_url + '/' + sec['slug'] sec_path = board_path + '/' + sec['slug']
board = get_board_info(s_url, False, sec['slug'], proxies) board = get_board_info(sec_path, False, sec['slug'], proxies)
sec_uname, sec_bname = u_url.split('/') sec_uname, sec_bname = board_path.split('/')
fetch_imgs( board, sec_uname, sec_bname, sec['slug'], args.board_timestamp fetch_imgs( board, sec_uname, sec_bname, sec['slug'], args.board_timestamp
, args.log_timestamp, args.force, args.dir, args.thread_max , args.log_timestamp, args.force, args.dir, args.thread_max
, IMGS_SESSION, IMG_SESSION, V_SESSION, args.cut, arg_el, fs_f_max ) , IMGS_SESSION, IMG_SESSION, V_SESSION, args.cut, arg_el, fs_f_max )