Muttered3 commited on
Commit
3f5b0ae
Β·
verified Β·
1 Parent(s): d142137

Update bot.py

Browse files
Files changed (1) hide show
  1. bot.py +31 -14
bot.py CHANGED
@@ -106,22 +106,29 @@ async def generate_status_msg():
106
  processed = int(state.get("processed", 0))
107
  pct = (processed / total * 100) if total > 0 else 0
108
 
109
- run_str = "RUNNING" if state.get("running") == "1" else "STOPPED"
110
- if state.get("paused") == "1": run_str = "PAUSED"
111
 
112
  bar_len = 20
113
  filled = int(bar_len * (processed / total)) if total > 0 else 0
114
  bar = "=" * filled + "-" * (bar_len - filled)
115
 
116
  return (
117
- f"**SYSTEM DASHBOARD**\n━━━━━━━━━━━━━━━━━━━━━\n"
118
- f"**State:** `{run_str}`\n**Queue:** `{qlen:,}` waiting\n"
119
- f"**Speed:** `{concurrency}` workers\n**Progress:** `{pct:.2f}%`\n"
120
- f"`[{bar}]` `{processed:,} / {total:,}`\n\n"
121
- f"**METRICS**\n━━━━━━━━━━━━━━━━━━━━━\n"
122
- f"Taken: `{counts.get('taken', 0):,}` | Unavail: `{counts.get('unavailable', 0):,}`\n"
123
- f"Sale: `{counts.get('forsale', 0):,}` | Auction: `{counts.get('auction', 0):,}`\n"
124
- f"Sold: `{counts.get('sold', 0):,}`"
 
 
 
 
 
 
 
125
  )
126
 
127
  # --- BACKGROUND HELPERS ---
@@ -270,26 +277,38 @@ def setup_handlers(client):
270
 
271
  if data == "back_main":
272
  await event.edit("**Fragment Control System**", buttons=get_main_menu())
 
273
  elif data == "menu_settings":
274
  await event.edit("**System Settings**", buttons=get_settings_menu())
 
275
  elif data == "load_words":
276
  await event.edit("⏳ Loading chunk...")
277
  await _load_words(event)
 
278
  elif data == "start_scan":
279
  await db.set_state(running="1", paused="0")
280
  await event.edit("▢️ Scanner Running", buttons=get_main_menu())
 
281
  elif data == "pause_scan":
282
  s = await db.get_state()
283
  p = "0" if s.get("paused") == "1" else "1"
284
  await db.set_state(paused=p)
285
  await event.edit("⏸ Scanner Paused" if p=="1" else "▢️ Resumed", buttons=get_main_menu())
 
286
  elif data == "stop_scan":
287
  await db.set_state(running="0", paused="0")
288
  await event.edit("⏹ Scanner Stopped", buttons=get_main_menu())
 
289
  elif data in ("show_status", "refresh_status"):
290
  await event.edit(await generate_status_msg(), buttons=[[Button.inline("πŸ”„ Refresh", b"refresh_status")], [Button.inline("Β« Back", b"back_main")]])
 
291
  elif data == "set_speed":
292
- await event.edit("Select Speed:", buttons=[[Button.inline("10", b"spd_10"), Button.inline("20", b"spd_20")], [Button.inline("30", b"spd_30"), Button.inline("50", b"spd_50")], [Button.inline("Β« Back", b"menu_settings")]])
 
 
 
 
 
293
  elif data.startswith("spd_"):
294
  await db.set_concurrency(int(data.split("_")[1]))
295
  await event.edit("βœ… Speed Updated", buttons=get_settings_menu())
@@ -298,12 +317,9 @@ def setup_handlers(client):
298
  await event.edit("⏳ Exporting data... Generating text files.")
299
  exported_count = 0
300
 
301
- # BUG FIX: Added 'auction' to the list so we don't miss auction exports!
302
  for s in ["taken", "unavailable", "sold", "forsale", "auction"]:
303
- # Fetches the corresponding function dynamically from db.py
304
  lst = sorted(list(await (getattr(db, f"get_all_{s}")())))
305
  if lst:
306
- # BUG FIX: Added the explicit .name attribute
307
  f = io.BytesIO("\n".join(lst).encode('utf-8'))
308
  f.name = f"{s}.txt"
309
 
@@ -317,6 +333,7 @@ def setup_handlers(client):
317
 
318
  elif data == "reset_confirm":
319
  await event.edit("⚠️ WIPE ALL?", buttons=[[Button.inline("CONFIRM", b"reset_do")], [Button.inline("Cancel", b"menu_settings")]])
 
320
  elif data == "reset_do":
321
  await db.flush_all()
322
  await event.edit("πŸ’£ Purged.", buttons=get_settings_menu())
 
106
  processed = int(state.get("processed", 0))
107
  pct = (processed / total * 100) if total > 0 else 0
108
 
109
+ run_str = "🟒 RUNNING" if state.get("running") == "1" else "⏹ STOPPED"
110
+ if state.get("paused") == "1": run_str = "⏸ PAUSED"
111
 
112
  bar_len = 20
113
  filled = int(bar_len * (processed / total)) if total > 0 else 0
114
  bar = "=" * filled + "-" * (bar_len - filled)
115
 
116
  return (
117
+ f"**SYSTEM DASHBOARD**\n"
118
+ f"━━━━━━━━━━━━━━━━━━━━━\n"
119
+ f"**State:** `{run_str}`\n"
120
+ f"**Queue:** `{qlen:,}` waiting\n"
121
+ f"**Speed:** `{concurrency}` workers\n"
122
+ f"**Progress:** `{pct:.2f}%`\n"
123
+ f"`[{bar}]`\n"
124
+ f"`{processed:,} / {total:,}`\n\n"
125
+ f"**DATABASE METRICS**\n"
126
+ f"━━━━━━━━━━━━━━━━━━━━━\n"
127
+ f"πŸ”΄ Taken : `{counts.get('taken', 0):,}`\n"
128
+ f"🚫 Unavail : `{counts.get('unavailable', 0):,}`\n"
129
+ f"πŸ’° For Sale : `{counts.get('forsale', 0):,}`\n"
130
+ f"πŸ”¨ Auction : `{counts.get('auction', 0):,}`\n"
131
+ f"πŸ›’ Sold : `{counts.get('sold', 0):,}`\n"
132
  )
133
 
134
  # --- BACKGROUND HELPERS ---
 
277
 
278
  if data == "back_main":
279
  await event.edit("**Fragment Control System**", buttons=get_main_menu())
280
+
281
  elif data == "menu_settings":
282
  await event.edit("**System Settings**", buttons=get_settings_menu())
283
+
284
  elif data == "load_words":
285
  await event.edit("⏳ Loading chunk...")
286
  await _load_words(event)
287
+
288
  elif data == "start_scan":
289
  await db.set_state(running="1", paused="0")
290
  await event.edit("▢️ Scanner Running", buttons=get_main_menu())
291
+
292
  elif data == "pause_scan":
293
  s = await db.get_state()
294
  p = "0" if s.get("paused") == "1" else "1"
295
  await db.set_state(paused=p)
296
  await event.edit("⏸ Scanner Paused" if p=="1" else "▢️ Resumed", buttons=get_main_menu())
297
+
298
  elif data == "stop_scan":
299
  await db.set_state(running="0", paused="0")
300
  await event.edit("⏹ Scanner Stopped", buttons=get_main_menu())
301
+
302
  elif data in ("show_status", "refresh_status"):
303
  await event.edit(await generate_status_msg(), buttons=[[Button.inline("πŸ”„ Refresh", b"refresh_status")], [Button.inline("Β« Back", b"back_main")]])
304
+
305
  elif data == "set_speed":
306
+ await event.edit("Select Speed:", buttons=[
307
+ [Button.inline("10", b"spd_10"), Button.inline("20", b"spd_20")],
308
+ [Button.inline("30", b"spd_30"), Button.inline("50", b"spd_50")],
309
+ [Button.inline("Β« Back", b"menu_settings")]
310
+ ])
311
+
312
  elif data.startswith("spd_"):
313
  await db.set_concurrency(int(data.split("_")[1]))
314
  await event.edit("βœ… Speed Updated", buttons=get_settings_menu())
 
317
  await event.edit("⏳ Exporting data... Generating text files.")
318
  exported_count = 0
319
 
 
320
  for s in ["taken", "unavailable", "sold", "forsale", "auction"]:
 
321
  lst = sorted(list(await (getattr(db, f"get_all_{s}")())))
322
  if lst:
 
323
  f = io.BytesIO("\n".join(lst).encode('utf-8'))
324
  f.name = f"{s}.txt"
325
 
 
333
 
334
  elif data == "reset_confirm":
335
  await event.edit("⚠️ WIPE ALL?", buttons=[[Button.inline("CONFIRM", b"reset_do")], [Button.inline("Cancel", b"menu_settings")]])
336
+
337
  elif data == "reset_do":
338
  await db.flush_all()
339
  await event.edit("πŸ’£ Purged.", buttons=get_settings_menu())