add latency/readtime reporting for more things, round the numbers by reasonable amount

This commit is contained in:
James Taylor 2018-10-01 18:01:05 -07:00
parent 03f5ccbacb
commit dd800485f0
3 changed files with 7 additions and 8 deletions

View File

@ -168,7 +168,7 @@ def fetch_url(url, headers=(), timeout=15, report_text=None):
content = response.read()
read_finish = time.time()
if report_text:
print(report_text, ' Latency:', response_time - start_time, ' Read time:', read_finish - response_time)
print(report_text, ' Latency:', round(response_time - start_time,3), ' Read time:', round(read_finish - response_time,3))
content = decode_content(content, response.getheader('Content-Encoding', default='identity'))
return content

View File

@ -46,9 +46,9 @@ headers_1 = (
('X-YouTube-Client-Version', '2.20180614'),
)
def playlist_first_page(playlist_id):
def playlist_first_page(playlist_id, report_text = "Retrieved playlist"):
url = 'https://m.youtube.com/playlist?list=' + playlist_id + '&ajax=1&disable_polymer=true'
content = common.fetch_url(url, common.mobile_ua + headers_1)
content = common.fetch_url(url, common.mobile_ua + headers_1, report_text=report_text)
if content[0:4] == b")]}'":
content = content[4:]
content = json.loads(common.uppercase_escape(content.decode('utf-8')))
@ -66,12 +66,11 @@ def get_videos_ajax(playlist_id, page):
'X-YouTube-Client-Name': '2',
'X-YouTube-Client-Version': '1.20180508',
}
print("Sending playlist ajax request")
content = common.fetch_url(url, headers)
content = common.fetch_url(url, headers, report_text="Retrieved playlist")
'''with open('debug/playlist_debug', 'wb') as f:
f.write(content)'''
content = content[4:]
print("Finished recieving playlist response")
info = json.loads(common.uppercase_escape(content.decode('utf-8')))
return info
@ -88,7 +87,7 @@ def get_playlist_page(query_string):
this_page_json = first_page_json
else:
tasks = (
gevent.spawn(playlist_first_page, playlist_id ),
gevent.spawn(playlist_first_page, playlist_id, report_text="Retrieved playlist info" ),
gevent.spawn(get_videos_ajax, playlist_id, page)
)
gevent.joinall(tasks)

View File

@ -55,7 +55,7 @@ def get_search_json(query, page, autocorrect, sort):
'X-YouTube-Client-Version': '2.20180418',
}
url += "&pbj=1&sp=" + page_number_to_sp_parameter(page, autocorrect, sort).replace("=", "%3D")
content = common.fetch_url(url, headers=headers)
content = common.fetch_url(url, headers=headers, report_text="Got search results")
info = json.loads(content)
return info