diff options
Diffstat (limited to 'g4f/utils.py')
-rw-r--r-- | g4f/utils.py | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/g4f/utils.py b/g4f/utils.py new file mode 100644 index 00000000..d5ab41c7 --- /dev/null +++ b/g4f/utils.py @@ -0,0 +1,49 @@ +import browser_cookie3 + + +class Utils: + browsers = [ + browser_cookie3.chrome, # 62.74% market share + browser_cookie3.safari, # 24.12% market share + browser_cookie3.firefox, # 4.56% market share + browser_cookie3.edge, # 2.85% market share + browser_cookie3.opera, # 1.69% market share + browser_cookie3.brave, # 0.96% market share + browser_cookie3.opera_gx, # 0.64% market share + browser_cookie3.vivaldi, # 0.32% market share + ] + + def get_cookies(domain: str, setName: str = None, setBrowser: str = False) -> dict: + cookies = {} + + if setBrowser != False: + for browser in Utils.browsers: + if browser.__name__ == setBrowser: + try: + for c in browser(domain_name=domain): + if c.name not in cookies: + cookies = cookies | {c.name: c.value} + + except Exception as e: + pass + + else: + for browser in Utils.browsers: + try: + for c in browser(domain_name=domain): + if c.name not in cookies: + cookies = cookies | {c.name: c.value} + + except Exception as e: + pass + + if setName: + try: + return {setName: cookies[setName]} + + except ValueError: + print(f'Error: could not find {setName} cookie in any browser.') + exit(1) + + else: + return cookies |