summaryrefslogtreecommitdiffstats
path: root/g4f/utils.py
blob: d5ab41c79b44ab81e1843d209cb342bd83dafb42 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
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