MCPcopy Create free account
hub / github.com/Vinyzu/Botright / Faker

Class Faker

botright/modules/faker.py:11–315  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

9
10
11class Faker(AsyncObject):
12 locale: str = ""
13 language_code: str = ""
14 fingerprint: ChromeFingerprint
15
16 async def __ainit__(self, botright, proxy):
17 """
18 Initialize a Faker instance with a botright instance and a proxy, and generate fake data.
19
20 Args:
21 botright: An instance of Botright for linking purposes.
22 proxy: The proxy to be used for generating locale-related fake data.
23 """
24 self.botright = botright
25 link(self, botright)
26
27 threads = [self.get_computer(), self.get_locale(proxy)]
28 await asyncio.gather(*threads)
29
30 @staticmethod
31 def adjust_browser_version(useragent: str, browser_type: str, browser_version: str) -> str:
32 """
33 Adjust the browser version in a user agent string.
34
35 Args:
36 useragent (str): The user agent string to be adjusted.
37 browser_type (str): The type of the browser (e.g., "Firefox").
38 browser_version (str): The desired browser version (e.g., "92.0").
39
40 Returns:
41 str: The adjusted user agent string.
42 """
43 ua_browser_version = [word for word in useragent.split() if browser_type.capitalize() + "/" in word]
44 browser_version_list = browser_version.split(".")[:2] + ["0", "0"]
45 browser_version = ".".join(browser_version_list)
46 return useragent.replace(ua_browser_version[0], f"{browser_type}/{browser_version}")
47
48 async def get_computer(self) -> None:
49 """
50 Generate fake computer-related data such as user agent, vendor, GPU information, screen dimensions, etc.
51 """
52 self.fingerprint = await self.botright.fingerprint_generator.get_fingerprint()
53
54 async def get_locale(self, proxy: ProxyManager) -> None:
55 """
56 Generate fake locale-related data such as locale and language code based on the provided proxy.
57
58 Args:
59 proxy (ProxyManager): The proxy manager used to determine the locale.
60 """
61 language_dict = {
62 "AF": ["pr-AF", "pr"],
63 "AX": ["sw-AX", "sw"],
64 "AL": ["sq-AL", "sq"],
65 "DZ": ["ar-DZ", "ar"],
66 "AS": ["en-AS", "en"],
67 "AD": ["ca-AD", "ca"],
68 "AO": ["po-AO", "po"],

Callers 1

new_browserMethod · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected