d4rktg 0.3.7__py3-none-any.whl → 0.3.8__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.
d4rk/Handlers/_bot.py CHANGED
@@ -21,38 +21,22 @@ class BotManager(Client):
21
21
  _is_connected = False
22
22
  _rename = False
23
23
  _flood_data = {}
24
- TOKEN_INDEX = 0
25
24
  _loop = None
26
25
  _scheduler_thread = None
27
26
  font = 0
28
27
  sudo_users = []
29
28
 
30
29
 
31
- def create_client(self,token_index):
30
+ def create_client(self,app_name,token):
32
31
  super().__init__(
33
- name=self.app_name,
32
+ name=app_name,
34
33
  api_id=self.api_id,
35
34
  api_hash=self.api_hash,
36
- bot_token=self.tokens[token_index],
35
+ bot_token=token,
37
36
  plugins=self.plugins,
38
37
  in_memory=True
39
38
  )
40
39
 
41
- def load_flood_data(self):
42
- if not os.path.exists('flood.txt'):
43
- return self._flood_data
44
-
45
- with open('flood.txt', "r") as f:
46
- for line in f:
47
- if ":" not in line:
48
- continue
49
- try:
50
- token_index, until = map(int, line.strip().split(":"))
51
- if token_index not in self._flood_data or until > self._flood_data[token_index]:
52
- self._flood_data[token_index] = until
53
- except:
54
- continue
55
-
56
40
  async def handle_flood_wait(self, wait_time: int):
57
41
  logger.info(f"FloodWait: Sleeping for {wait_time} seconds.")
58
42
 
@@ -64,46 +48,7 @@ class BotManager(Client):
64
48
  if self._loop:asyncio.run_coroutine_threadsafe(coro_func(), self._loop)
65
49
  else:logger.error("Event loop is not set for _safe_async")
66
50
 
67
- def get_token_index_from_flood_file(self):
68
- if not os.path.exists("flood.txt"):
69
- return random.choice(range(len(self.tokens)))
70
- now = int(datetime.now(self.TZ).timestamp())
71
- flooded = []
72
- non_flooded = []
73
- for i in range(len(self.tokens)):
74
- until = self._flood_data.get(i, 0)
75
- if until <= now:
76
- logger.info(f"Token 0{i + 1} is not in flood.")
77
- self._flood_data.pop(i, None)
78
- self.save_flood_data()
79
- non_flooded.append((i))
80
- else:
81
- flooded.append((i, until))
82
- if non_flooded != []:
83
- return random.choice(non_flooded)
84
- logger.warning("All tokens are in flood. Picking the one with the soonest expiry.")
85
- flooded.sort(key=lambda x: x[1])
86
- return flooded[0][0]
87
- def save_flood_data(self):
88
- with open('flood.txt', "w") as f:
89
- for token_index, until in self._flood_data.items():
90
- f.write(f"{token_index}:{until}\n")
91
-
92
- async def change_token(self, token_index,wait_time):
93
- flood_until = datetime.now(self.TZ) + timedelta(seconds=wait_time)
94
- self._flood_data[token_index] = int(flood_until.timestamp())
95
- self.save_flood_data()
96
- try:
97
- self.TOKEN_INDEX = token_index + 1
98
- self.create_client(self.TOKEN_INDEX)
99
- await asyncio.sleep(2)
100
- except:
101
- self.TOKEN_INDEX = 0
102
- self.create_client(self.TOKEN_INDEX)
103
- await self.handle_flood_wait(wait_time)
104
-
105
- async def setup_webserver(self):
106
- self._web_runner = await self.web_server.setup_web_server(8443)
51
+
107
52
 
108
53
  async def powerup(self):
109
54
  if hasattr(self, "db"):
@@ -115,9 +60,7 @@ class BotManager(Client):
115
60
  self.db.Settings.set("font", "1")
116
61
  self.font = 1
117
62
 
118
- self.load_flood_data()
119
- self.TOKEN_INDEX= self.get_token_index_from_flood_file()
120
- self.create_client(self.TOKEN_INDEX)
63
+ self.create_client(self.token)
121
64
  max_retries = 3
122
65
  for attempt in range(max_retries):
123
66
  try:
@@ -141,11 +84,9 @@ class BotManager(Client):
141
84
 
142
85
  except FloodWait as e:
143
86
  logger.error(f"FloodWait: {e.value} seconds")
144
- await self.change_token(self.TOKEN_INDEX,e.value)
145
-
87
+ await self.handle_flood_wait(e.value)
146
88
  except AccessTokenExpired:
147
89
  logger.error(f"Access token expired (attempt {attempt + 1})")
148
- await self.change_token(self.TOKEN_INDEX, 60)
149
90
  except Exception as e:
150
91
  logger.error(f"Error starting Client (attempt {attempt + 1}): {e}")
151
92
  logger.error(traceback.format_exc())
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: d4rktg
3
- Version: 0.3.7
3
+ Version: 0.3.8
4
4
  Summary: A module for create with easy and fast
5
5
  Author: D4rkShell
6
6
  Author-email: premiumqtrst@gmail.com
@@ -2,7 +2,7 @@ d4rk/__init__.py,sha256=Xq5qqX-FwosTJBLrSPF53FPD6fEISH750hbImZpSu5k,202
2
2
  d4rk/Database/__init__.py,sha256=TQB5D8PBDCq80jPq6rsC2G939yYYKTh_bCcOWsZ-nA8,18
3
3
  d4rk/Database/db.py,sha256=5T-dbHPQp9JF2rQb707SLSSkAaz8ghX4lO7g_Siy7oA,1870
4
4
  d4rk/Handlers/__init__.py,sha256=lO1b7Tnu3GWgwcJmX5qepiNqaBBi6qTgjj0SlzVUyEA,63
5
- d4rk/Handlers/_bot.py,sha256=wnySGyMJn6evtIiRa2ByAghN223dwH2xrWDPQqWr9yM,11050
5
+ d4rk/Handlers/_bot.py,sha256=G439hM7OcOCRYnz7OTmwW7yn0UdfuGX--D_mlgR5pYQ,8523
6
6
  d4rk/Handlers/_scheduler.py,sha256=AyqexO4nxZlIzRfU9vWTfJtTWQVQmP4de7GRPg-3JkA,1236
7
7
  d4rk/Logs/__init__.py,sha256=mXWD5jXnyH3_AvS7K_ki3iw5BpoEAvrDFbmr-iEFNnY,22
8
8
  d4rk/Logs/_logger.py,sha256=lqfVvCO0vZ_IaGOdIE4HA2KAUQZh7yW2iAHZcBz7F4o,4120
@@ -17,7 +17,7 @@ d4rk/Utils/_ip.py,sha256=KJJW2QSngshIVWCO5YPXF1wj4IPQzVN5oFofpfzlU5w,559
17
17
  d4rk/Utils/_movie_parser.py,sha256=QEPd3z04p4pk2vxZ-2fYlRxHmQbmwQd2mCIlBsBM5AY,7039
18
18
  d4rk/Utils/_ractions.py,sha256=wOVPyoFnbDuMgoP6NF_gLO1DYcfhERC0trdAK1jWSE8,2170
19
19
  d4rk/Utils/_terminal.py,sha256=Anu4OcffY3v6LMOrCskP1cHrJIliomo1Hjownbhh2sQ,125
20
- d4rktg-0.3.7.dist-info/METADATA,sha256=wurgcR_XO-_emR9gHhy-zZotuiaOxbpvG5wVutzy__g,652
21
- d4rktg-0.3.7.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
22
- d4rktg-0.3.7.dist-info/top_level.txt,sha256=qs1qTnKWImmGi7E0FoJS0OAEOHoVZA9vHRS3Pm6ncAo,5
23
- d4rktg-0.3.7.dist-info/RECORD,,
20
+ d4rktg-0.3.8.dist-info/METADATA,sha256=3UaGDXAe7lwJWu47CrILiOkXEmmTGeGbKa3MiSJokyE,652
21
+ d4rktg-0.3.8.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
22
+ d4rktg-0.3.8.dist-info/top_level.txt,sha256=qs1qTnKWImmGi7E0FoJS0OAEOHoVZA9vHRS3Pm6ncAo,5
23
+ d4rktg-0.3.8.dist-info/RECORD,,
File without changes