RootKernelTR commited on
Commit
0346e5f
·
verified ·
1 Parent(s): 6cfe6e8

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +26 -32
app.py CHANGED
@@ -10,9 +10,9 @@ import psutil
10
  from telegram import Update
11
  from telegram.ext import ApplicationBuilder, MessageHandler, filters, ContextTypes
12
 
13
- # --- AYARLAR (BURALARI DOLDUR) ---
14
  TOKEN = "8669709095:AAFRPWdZ9gaVX8PXuVsPJMFlUtOHicjyoyg" # Senin tokenın
15
- ALLOWED_USERS = [7671497065, 6518828406] # Yetkili ID'ler
16
  COMMAND_HISTORY_FILE = "badtime_history.csv"
17
 
18
  # --- STORAGE MANTIĞI ---
@@ -26,7 +26,6 @@ def save_command(user, cmd, status):
26
 
27
  # --- TERMİNAL MOTORU ---
28
  def run_shell(command):
29
- # Kapsamlı Kara Liste
30
  blacklist = ["rm -rf", "shred", "mkfs", "dd ", "shutdown", "reboot", ":(){ :|:& };:"]
31
  if any(b in command.lower() for b in blacklist):
32
  save_command("Sistem", command, "YASAKLANDI")
@@ -45,76 +44,71 @@ def run_shell(command):
45
  save_command("Admin", command, f"Hata: {str(e)}")
46
  return f"Sistem Hatası: {str(e)}"
47
 
48
- # --- GRADIO ARAYÜZ FONKSİYONLARI ---
49
  def get_dashboard_data():
50
  if os.path.exists(COMMAND_HISTORY_FILE):
51
  df = pd.read_csv(COMMAND_HISTORY_FILE)
52
- # Son 15 komut
53
- recent = df.tail(15).iloc[::-1] # Tersten sırala (en yeni üstte)
54
- # Grafik: Başarı vs Hata
55
- fig = px.pie(df, names='Durum', title="BadTiMe İşlem Dağılımı", color_discrete_sequence=px.colors.sequential.RdBu)
56
  return recent, fig
57
  return pd.DataFrame(columns=['Tarih', 'Kullanıcı', 'Komut', 'Durum']), None
58
 
59
  def get_system_stats():
60
  cpu = psutil.cpu_percent()
61
  ram = psutil.virtual_memory().percent
62
- disk = psutil.disk_usage('/').percent
63
- return f"CPU: %{cpu} | RAM: %{ram} | DISK: %{disk}"
64
 
65
  # --- TELEGRAM BRIDGE ---
66
  async def telegram_bridge(update: Update, context: ContextTypes.DEFAULT_TYPE):
67
  user_id = update.effective_chat.id
68
  if user_id not in ALLOWED_USERS:
69
- await update.message.reply_text("🚫 Yetkisiz erişim denemesi loglandı.")
70
  save_command(f"Korsan:{user_id}", update.message.text, "REDDEDİLDİ")
71
  return
72
 
73
  cmd = update.message.text
74
  response = run_shell(cmd)
75
-
76
- # Telegram'a özet bilgi gönder
77
- await update.message.reply_text(f"💀 *BadTiMe İşlendi*\n\nÇıktı Dashboard'a gönderildi.", parse_mode='Markdown')
78
 
79
  def run_tg_bot():
80
- """Telegram botunu ayrı bir thread'de çalıştırmak için"""
81
  loop = asyncio.new_event_loop()
82
  asyncio.set_event_loop(loop)
83
  app = ApplicationBuilder().token(TOKEN).build()
84
  app.add_handler(MessageHandler(filters.TEXT & (~filters.COMMAND), telegram_bridge))
85
  app.run_polling(stop_signals=None)
86
 
87
- # --- GRADIO DASHBOARD TASARIMI ---
88
- with gr.Blocks(theme=gr.themes.Monochrome(), title="BadTiMe Control") as badtime_ui:
 
89
  gr.Markdown("# 💀 BadTiMe Command & Storage Center")
90
 
91
  with gr.Row():
92
- stats_box = gr.Textbox(value=get_system_stats(), label="Anlık Sistem Kaynakları", interactive=False)
93
- refresh_stats = gr.Button("Sistemi Yenile", variant="secondary")
94
 
95
  with gr.Tab("🚀 Canlı Terminal"):
96
  with gr.Row():
97
- cmd_input = gr.Textbox(label="Komut Girişi", placeholder="Örn: ls -la /home/user", scale=4)
98
  run_btn = gr.Button("ÇALIŞTIR", variant="primary", scale=1)
99
- output_display = gr.Code(label="Terminal Çıktısı (Bash)", language="bash", lines=15)
 
100
 
101
- with gr.Tab("📁 Storage Bucket (Geçmiş)"):
102
- with gr.Row():
103
- history_refresh = gr.Button("Kayıtları Getir", variant="primary")
104
-
105
  with gr.Row():
106
- history_table = gr.DataFrame(label="Komut Geçmişi", interactive=False)
107
- stats_plot = gr.Plot(label="Analiz Grafiği")
108
 
109
- # Eventler
110
  run_btn.click(run_shell, inputs=cmd_input, outputs=output_display)
111
  refresh_stats.click(get_system_stats, outputs=stats_box)
112
  history_refresh.click(get_dashboard_data, outputs=[history_table, stats_plot])
113
 
114
- # --- BAŞLATICI ---
115
  if __name__ == "__main__":
116
- # Telegram Botunu Arka Planda Başlat
117
  threading.Thread(target=run_tg_bot, daemon=True).start()
118
 
119
- # Gradio Arayüzünü Başlat
120
- badtime_ui.launch(server_name="0.0.0.0", server_port=7860)
 
 
 
 
 
 
10
  from telegram import Update
11
  from telegram.ext import ApplicationBuilder, MessageHandler, filters, ContextTypes
12
 
13
+ # --- AYARLAR ---
14
  TOKEN = "8669709095:AAFRPWdZ9gaVX8PXuVsPJMFlUtOHicjyoyg" # Senin tokenın
15
+ ALLOWED_USERS = [7671497065, 6518828406]
16
  COMMAND_HISTORY_FILE = "badtime_history.csv"
17
 
18
  # --- STORAGE MANTIĞI ---
 
26
 
27
  # --- TERMİNAL MOTORU ---
28
  def run_shell(command):
 
29
  blacklist = ["rm -rf", "shred", "mkfs", "dd ", "shutdown", "reboot", ":(){ :|:& };:"]
30
  if any(b in command.lower() for b in blacklist):
31
  save_command("Sistem", command, "YASAKLANDI")
 
44
  save_command("Admin", command, f"Hata: {str(e)}")
45
  return f"Sistem Hatası: {str(e)}"
46
 
47
+ # --- GRADIO FONKSİYONLARI ---
48
  def get_dashboard_data():
49
  if os.path.exists(COMMAND_HISTORY_FILE):
50
  df = pd.read_csv(COMMAND_HISTORY_FILE)
51
+ recent = df.tail(15).iloc[::-1]
52
+ fig = px.pie(df, names='Durum', title="BadTiMe İşlem Dağılımı")
 
 
53
  return recent, fig
54
  return pd.DataFrame(columns=['Tarih', 'Kullanıcı', 'Komut', 'Durum']), None
55
 
56
  def get_system_stats():
57
  cpu = psutil.cpu_percent()
58
  ram = psutil.virtual_memory().percent
59
+ return f"CPU: %{cpu} | RAM: %{ram}"
 
60
 
61
  # --- TELEGRAM BRIDGE ---
62
  async def telegram_bridge(update: Update, context: ContextTypes.DEFAULT_TYPE):
63
  user_id = update.effective_chat.id
64
  if user_id not in ALLOWED_USERS:
 
65
  save_command(f"Korsan:{user_id}", update.message.text, "REDDEDİLDİ")
66
  return
67
 
68
  cmd = update.message.text
69
  response = run_shell(cmd)
70
+ await update.message.reply_text(f"💀 *BadTiMe İşlendi*\n\nDashboard güncellendi.", parse_mode='Markdown')
 
 
71
 
72
  def run_tg_bot():
 
73
  loop = asyncio.new_event_loop()
74
  asyncio.set_event_loop(loop)
75
  app = ApplicationBuilder().token(TOKEN).build()
76
  app.add_handler(MessageHandler(filters.TEXT & (~filters.COMMAND), telegram_bridge))
77
  app.run_polling(stop_signals=None)
78
 
79
+ # --- GRADIO ARAYÜZÜ (v6.0 Uyumlu) ---
80
+ # Title parametresi Blocks'tan kaldırıldı, launch içine alınacak.
81
+ with gr.Blocks() as badtime_ui:
82
  gr.Markdown("# 💀 BadTiMe Command & Storage Center")
83
 
84
  with gr.Row():
85
+ stats_box = gr.Textbox(value=get_system_stats(), label="Sistem Durumu", interactive=False)
86
+ refresh_stats = gr.Button("Yenile")
87
 
88
  with gr.Tab("🚀 Canlı Terminal"):
89
  with gr.Row():
90
+ cmd_input = gr.Textbox(label="Komut", placeholder="ls -la", scale=4)
91
  run_btn = gr.Button("ÇALIŞTIR", variant="primary", scale=1)
92
+ # Dil 'bash' yerine 'shell' olarak güncellendi (Hata veren satır)
93
+ output_display = gr.Code(label="Terminal Çıktısı", language="shell", lines=15)
94
 
95
+ with gr.Tab("📁 Storage Bucket"):
96
+ history_refresh = gr.Button("Kayıtları Getir", variant="primary")
 
 
97
  with gr.Row():
98
+ history_table = gr.DataFrame(label="Komut Geçmişi")
99
+ stats_plot = gr.Plot(label="Analiz")
100
 
 
101
  run_btn.click(run_shell, inputs=cmd_input, outputs=output_display)
102
  refresh_stats.click(get_system_stats, outputs=stats_box)
103
  history_refresh.click(get_dashboard_data, outputs=[history_table, stats_plot])
104
 
 
105
  if __name__ == "__main__":
 
106
  threading.Thread(target=run_tg_bot, daemon=True).start()
107
 
108
+ # Theme ve Title artık burada (v6.0 standardı)
109
+ badtime_ui.launch(
110
+ server_name="0.0.0.0",
111
+ server_port=7860,
112
+ theme=gr.themes.Monochrome(),
113
+ title="BadTiMe Control"
114
+ )