mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
A spot of refactoring
This commit is contained in:
parent
caac92bbd8
commit
e20230c9a7
@ -20,31 +20,61 @@ def common_user_agents():
|
|||||||
return user_agent_data()['common_user_agents']
|
return user_agent_data()['common_user_agents']
|
||||||
|
|
||||||
|
|
||||||
|
def all_firefox_versions(limit=7):
|
||||||
|
return user_agent_data()['firefox_versions'][:limit]
|
||||||
|
|
||||||
|
|
||||||
def random_firefox_version():
|
def random_firefox_version():
|
||||||
versions = user_agent_data()['firefox_versions'][:7]
|
return random.choice(all_firefox_versions())
|
||||||
return random.choice(versions)
|
|
||||||
|
|
||||||
|
|
||||||
def random_desktop_platform():
|
def random_desktop_platform():
|
||||||
return random.choice(user_agent_data()['desktop_platforms'])
|
return random.choice(user_agent_data()['desktop_platforms'])
|
||||||
|
|
||||||
|
|
||||||
def random_firefox_ua():
|
def render_firefox_ua(platform, version):
|
||||||
# https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent/Firefox
|
# https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent/Firefox
|
||||||
return 'Mozilla/5.0 ({p}; rv:{ver}) Gecko/20100101 Firefox/{ver}'.format(
|
return 'Mozilla/5.0 ({p}; rv:{ver}) Gecko/20100101 Firefox/{ver}'.format(
|
||||||
p=random_desktop_platform(), ver=random_firefox_version())
|
p=platform, ver=version)
|
||||||
|
|
||||||
|
|
||||||
|
def random_firefox_ua():
|
||||||
|
render_firefox_ua(random_desktop_platform(), random_firefox_version())
|
||||||
|
|
||||||
|
|
||||||
|
def all_chrome_versions(limit=7):
|
||||||
|
return user_agent_data()['chrome_versions'][:limit]
|
||||||
|
|
||||||
|
|
||||||
def random_chrome_version():
|
def random_chrome_version():
|
||||||
versions = user_agent_data()['chrome_versions'][:7]
|
return random.choice(all_chrome_versions())
|
||||||
return random.choice(versions)
|
|
||||||
|
|
||||||
|
def render_chrome_ua(platform, version):
|
||||||
|
return 'Mozilla/5.0 ({p}) AppleWebKit/{wv} (KHTML, like Gecko) Chrome/{cv} Safari/{wv}'.format(
|
||||||
|
p=platform, wv=version['webkit_version'], cv=version['chrome_version'])
|
||||||
|
|
||||||
|
|
||||||
def random_chrome_ua():
|
def random_chrome_ua():
|
||||||
v = random_chrome_version()
|
return render_chrome_ua(random_desktop_platform(), random_chrome_version())
|
||||||
return 'Mozilla/5.0 ({p}) AppleWebKit/{wv} (KHTML, like Gecko) Chrome/{cv} Safari/{wv}'.format(
|
|
||||||
p=random_desktop_platform(), wv=v['webkit_version'], cv=v['chrome_version'])
|
|
||||||
|
def all_user_agents():
|
||||||
|
ans = getattr(all_user_agents, 'ans', None)
|
||||||
|
if ans is None:
|
||||||
|
uas = []
|
||||||
|
g = globals()
|
||||||
|
platforms = user_agent_data()['desktop_platforms']
|
||||||
|
for b in ('chrome', 'firefox'):
|
||||||
|
versions = g['all_%s_versions' % b]()
|
||||||
|
func = g['render_%s_ua' % b]
|
||||||
|
for v in versions:
|
||||||
|
for p in platforms:
|
||||||
|
uas.append(func(p, v))
|
||||||
|
random.shuffle(uas)
|
||||||
|
ans = all_user_agents.ans = tuple(uas)
|
||||||
|
return ans
|
||||||
|
|
||||||
|
|
||||||
def random_user_agent():
|
def random_user_agent():
|
||||||
return random.choice((random_chrome_ua, random_firefox_ua))()
|
return random.choice(all_user_agents())
|
||||||
|
Loading…
x
Reference in New Issue
Block a user