vchrome 0.0.12__py3-none-any.whl → 0.0.13__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
vchrome/__init__.py CHANGED
@@ -1,4 +1,4 @@
1
- __version__ = '0.0.12'
1
+ __version__ = '0.0.13'
2
2
  __author__ = 'v'
3
3
  # ----------------------------------------------------------------------------------------------------
4
4
  _allowed = {'Chrome'}
@@ -1949,7 +1949,7 @@ def cdp_client(hostname, port, debug=False):
1949
1949
  c.get_userAgent = lambda:self.f.rootf.browser.userAgent
1950
1950
  c.set_userAgent = lambda v:(setattr(self,'userAgent',v),self.set_user_agent({"userAgent":v,"acceptLanguage":self.languages,"platform":self.platform}))
1951
1951
  c.get_languages = lambda:self.f.rootf.browser.languages
1952
- c.set_languages = lambda v:(setattr(self,'languages',v),self.set_user_agent({"acceptLanguage":v,"platform":self.platform}))
1952
+ c.set_languages = lambda v:(setattr(self,'languages',v),self.set_user_agent({"acceptLanguage":v,"platform":self.platform,"is_lang":True}))
1953
1953
  c.get_platform = lambda:self.f.rootf.browser.platform
1954
1954
  c.set_platform = lambda v:(setattr(self,'platform',v),self.set_user_agent({"acceptLanguage":self.languages,"platform":v}))
1955
1955
  self.f.root.extension.attach(c)
@@ -1957,18 +1957,70 @@ def cdp_client(hostname, port, debug=False):
1957
1957
  if 'Headless' in self.userAgent:
1958
1958
  self.userAgent = self.userAgent.replace('Headless','')
1959
1959
  self.set_user_agent({"userAgent":self.userAgent, "languages":self.languages, "platform":self.platform})
1960
+ def guess_timezone_from_language(self, lang):
1961
+ if not lang: return None
1962
+ lang = lang.replace("_", "-")
1963
+ parts = lang.split("-", 1)
1964
+ language = parts[0]
1965
+ region = parts[1] if len(parts) > 1 else None
1966
+ mapping = {
1967
+ "en-US": "America/New_York",
1968
+ "en-GB": "Europe/London",
1969
+ "en-AU": "Australia/Sydney",
1970
+ "en-CA": 'America/Toronto',
1971
+ "zh-CN": "Asia/Shanghai",
1972
+ "zh-TW": "Asia/Taipei",
1973
+ "zh-HK": "Asia/Hong_Kong",
1974
+ "ja-JP": "Asia/Tokyo",
1975
+ "ko-KR": "Asia/Seoul",
1976
+ "fr-FR": "Europe/Paris",
1977
+ "de-DE": "Europe/Berlin",
1978
+ "es-ES": "Europe/Madrid",
1979
+ "pt-BR": "America/Sao_Paulo",
1980
+ "ru-RU": "Europe/Moscow",
1981
+ "ar-SA": "Asia/Riyadh",
1982
+ "hi-IN": "Asia/Kolkata",
1983
+ "it-IT": "Europe/Rome",
1984
+ "nl-NL": "Europe/Amsterdam",
1985
+ }
1986
+ if region:
1987
+ key = f"{language}-{region.upper()}"
1988
+ if key in mapping:
1989
+ return mapping[key]
1990
+ fallback = {
1991
+ "zh": "Asia/Shanghai",
1992
+ "ja": "Asia/Tokyo",
1993
+ "ko": "Asia/Seoul",
1994
+ "fr": "Europe/Paris",
1995
+ "de": "Europe/Berlin",
1996
+ "es": "Europe/Madrid",
1997
+ "pt": "America/Sao_Paulo",
1998
+ "ru": "Europe/Moscow",
1999
+ "ar": "Asia/Riyadh",
2000
+ "hi": "Asia/Kolkata",
2001
+ "en": "America/New_York",
2002
+ }
2003
+ return fallback.get(language, None)
1960
2004
  def set_user_agent(self, info):
1961
2005
  d = {"userAgent": info.get('userAgent', self.userAgent)} # userAgent must exist.
1962
2006
  platform = info.get('platform', None)
1963
2007
  acceptLanguage = info.get('acceptLanguage', None)
2008
+ is_lang = info.get('is_lang', None)
1964
2009
  if platform: d['platform'] = platform
1965
2010
  if acceptLanguage:
1966
2011
  if type(acceptLanguage) == str:
1967
- d['acceptLanguage'] = acceptLanguage.split(';')[0]
2012
+ acceptLanguage = acceptLanguage.split(';')[0]
1968
2013
  elif type(acceptLanguage) in (list, tuple):
1969
- d['acceptLanguage'] = ','.join(acceptLanguage)
2014
+ acceptLanguage = ','.join(acceptLanguage)
1970
2015
  else:
1971
2016
  raise Exception('type error must be str/list[str], curr type:'+type(acceptLanguage))
2017
+ d['acceptLanguage'] = acceptLanguage
2018
+ if is_lang:
2019
+ lang = acceptLanguage.split(',')[0]
2020
+ auto_timezone = self.guess_timezone_from_language(lang)
2021
+ if auto_timezone:
2022
+ self.f.cdp('Emulation.setTimezoneOverride', {"timezoneId":auto_timezone})
2023
+ self.f.cdp('Emulation.setLocaleOverride', {'locale': lang})
1972
2024
  self.f.cdp('Network.setUserAgentOverride', d)
1973
2025
  class CookieManager:
1974
2026
  def __init__(self, f): self.f = f
@@ -1,3 +1,3 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: vchrome
3
- Version: 0.0.12
3
+ Version: 0.0.13
@@ -0,0 +1,6 @@
1
+ v/__init__.py,sha256=7sbAHSk_EElMBcJeHVoXGMmt9bqmci36NWFVRk1sUn4,21
2
+ vchrome/__init__.py,sha256=_0kCGTstF2x741a6286sP1Bm0Q-1Zim-bWO0AWzymIE,214865
3
+ vchrome-0.0.13.dist-info/METADATA,sha256=H8yukVgwE59eeMe_MVezAemKQUJlXBRWz4HfRUaNl00,55
4
+ vchrome-0.0.13.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
5
+ vchrome-0.0.13.dist-info/top_level.txt,sha256=IYbkbnFb2FGoroYj_ZXIitmnJDgYBA29_HmK9BdEUkY,10
6
+ vchrome-0.0.13.dist-info/RECORD,,
@@ -1,6 +0,0 @@
1
- v/__init__.py,sha256=7sbAHSk_EElMBcJeHVoXGMmt9bqmci36NWFVRk1sUn4,21
2
- vchrome/__init__.py,sha256=9C9AQNFCsViFiicaVJQE4i6z04Nu-lgQxuMzbt3c2gQ,212657
3
- vchrome-0.0.12.dist-info/METADATA,sha256=wa5DeGCCXutyNOt-8AqXNJWMUq3mfRdWIY2KkRAa5e8,55
4
- vchrome-0.0.12.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
5
- vchrome-0.0.12.dist-info/top_level.txt,sha256=IYbkbnFb2FGoroYj_ZXIitmnJDgYBA29_HmK9BdEUkY,10
6
- vchrome-0.0.12.dist-info/RECORD,,