randydev commited on
Commit
43eea36
Β·
verified Β·
1 Parent(s): 9fee460

Upload bots_manage.py

Browse files
Files changed (1) hide show
  1. akn/manage/bots_manage.py +105 -3
akn/manage/bots_manage.py CHANGED
@@ -1,5 +1,6 @@
1
  # -*- coding: utf-8 -*-
2
  import time
 
3
  import uuid
4
  import asyncio
5
  import pyromod
@@ -74,13 +75,58 @@ async def userbotdashboardub(client: Client, callback: CallbackQuery):
74
  )
75
  await callback.answer()
76
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
77
  @Client.on_callback_query(filters.regex("^ubsetting$"))
78
  async def userbotsettingsub(client: Client, callback: CallbackQuery):
79
  user_id = callback.from_user.id
80
 
81
  buttons = [
82
- [InlineKeyboardButton("πŸ“ Session Info", callback_data="session_infoub")],
83
- [InlineKeyboardButton("πŸ—‘ Delete Userbot", callback_data="delete_userbotub")],
 
 
84
  [InlineKeyboardButton("πŸ”™ Back", callback_data="my_userbotub")]
85
  ]
86
 
@@ -91,6 +137,62 @@ async def userbotsettingsub(client: Client, callback: CallbackQuery):
91
  )
92
  await callback.answer()
93
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
94
  @Client.on_callback_query(filters.regex("^session_infoub$"))
95
  async def infosessionstringub(client: Client, callback: CallbackQuery):
96
  user_data = await db_client.session.find_one({"user_id": callback.from_user.id})
@@ -182,7 +284,7 @@ async def asksessionstringub(client: Client, callback: CallbackQuery):
182
  message=f"🚨 <b>Error in asksessionstringub handler</b>\n\n"
183
  f"πŸ‘€ User: {user_mention} ({callback.from_user.id})\n"
184
  f"🧠 Error: <code>{str(e)}</code>",
185
- user_id=user_id,
186
  is_button=False
187
  )
188
 
 
1
  # -*- coding: utf-8 -*-
2
  import time
3
+ import os
4
  import uuid
5
  import asyncio
6
  import pyromod
 
75
  )
76
  await callback.answer()
77
 
78
+ @Client.on_callback_query(filters.regex("^session_exportuball$"))
79
+ async def export_all_sessionsub(client, callback):
80
+ user_data = await db_client.session.find_one({"user_id": callback.from_user.id})
81
+ if not user_data or not user_data.get("user_client"):
82
+ return await callback.answer("⚠️ No sessions to export!", show_alert=True)
83
+
84
+ sessions = user_data["user_client"]
85
+ export_text = ""
86
+ for index, session in enumerate(sessions, 1):
87
+ status = session.get("status", "unknown")
88
+ is_active = session.get("is_active", False)
89
+ session_str = session.get("session_string", "None")
90
+ export_text += (
91
+ f"Userbot #{index}\n"
92
+ f"Status: {status}\n"
93
+ f"Active: {is_active}\n"
94
+ f"Session: {session_str}\n\n"
95
+ )
96
+ filename = f"sessions_{callback.from_user.id}.txt"
97
+ with open(filename, "w") as f:
98
+ f.write(export_text)
99
+
100
+ try:
101
+ await callback.message.edit_text("Downloading export all session.....", reply_markup=None)
102
+ await callback.message.edit_media(
103
+ media=InputMediaDocument(
104
+ media=filename,
105
+ caption="πŸ“ Here are your session details."
106
+ ),
107
+ reply_markup=InlineKeyboardMarkup([
108
+ [InlineKeyboardButton("πŸ”™ Back", callback_data="my_userbotub")]
109
+ ])
110
+ )
111
+ os.remove(filename)
112
+ await callback.answer()
113
+ except Exception as e:
114
+ LOGS.error(f"Error in export_all_sessionsub handler: {str(e)}")
115
+ await callback.answer(f"❌ Error: Please try again later.", True)
116
+ try:
117
+ os.remove(filename)
118
+ except:
119
+ pass
120
+
121
  @Client.on_callback_query(filters.regex("^ubsetting$"))
122
  async def userbotsettingsub(client: Client, callback: CallbackQuery):
123
  user_id = callback.from_user.id
124
 
125
  buttons = [
126
+ [InlineKeyboardButton("πŸ“ Session Info", callback_data="session_infoub"),
127
+ InlineKeyboardButton("πŸ—‘ Delete Userbot", callback_data="delete_userbotub")
128
+ ],
129
+ [InlineKeyboardButton("πŸ“₯ Export All Sessions", callback_data="session_exportuball")],
130
  [InlineKeyboardButton("πŸ”™ Back", callback_data="my_userbotub")]
131
  ]
132
 
 
137
  )
138
  await callback.answer()
139
 
140
+ @Client.on_callback_query(filters.regex("^delete_userbotub$"))
141
+ async def sessionconfirmdeleteub(client, callback):
142
+ await callback.message.edit_text(
143
+ "⚠️ This will permanently delete your userbot!",
144
+ reply_markup=InlineKeyboardMarkup([
145
+ [InlineKeyboardButton("βœ… Confirm", "confirm_rmdeleteub")],
146
+ [InlineKeyboardButton("❌ Cancel", "my_userbotub")]
147
+ ])
148
+ )
149
+
150
+ @Client.on_callback_query(filters.regex("^confirm_rmdeleteub$"))
151
+ async def sessionrmdeleteubnow(client, callback):
152
+ user_mention = callback.from_user.mention
153
+ user_data = await db_client.session.find_one({"user_id": callback.from_user.id})
154
+ if not user_data or not user_data.get("user_client"):
155
+ return await callback.answer(
156
+ "❌ You don't have any Userbot deployed yet!",
157
+ show_alert=True
158
+ )
159
+ try:
160
+ result = await db_client.session.update_one(
161
+ {
162
+ "_id": user_data["_id"],
163
+ "user_id": callback.from_user.id,
164
+ "user_client.user_id": callback.from_user.id
165
+ },
166
+ {"$pull": {"user_client": {"user_id": callback.from_user.id}}}
167
+ )
168
+ if result.modified_count == 1:
169
+ await callback.message.edit_text(
170
+ f"βœ… User `{callback.from_user.id}` has been permanently removed",
171
+ reply_markup=InlineKeyboardMarkup([
172
+ [InlineKeyboardButton("⭐ My Userbot", callback_data="my_userbotub")]
173
+ ])
174
+ )
175
+ await notify_admins_user(
176
+ client=client,
177
+ message=f"πŸ›‘ <b>Deleted Userbot</b>\n\n"
178
+ f"πŸ‘€ User: {user_mention} ({callback.from_user.id})\n",
179
+ user_id=callback.from_user.id,
180
+ is_button=False
181
+ )
182
+ else:
183
+ raise Exception("Database update failed")
184
+ except Exception as e:
185
+ LOGS.error(f"Error in sessionrmdeleteubnow handler: {str(e)}")
186
+ await callback.answer(f"❌ Error: Please try again later.", True)
187
+ await notify_admins_user(
188
+ client=client,
189
+ message=f"🚨 <b>Error in sessionrmdeleteubnow handler</b>\n\n"
190
+ f"πŸ‘€ User: {user_mention} ({callback.from_user.id})\n"
191
+ f"🧠 Error: <code>{str(e)}</code>",
192
+ user_id=callback.from_user.id,
193
+ is_button=False
194
+ )
195
+
196
  @Client.on_callback_query(filters.regex("^session_infoub$"))
197
  async def infosessionstringub(client: Client, callback: CallbackQuery):
198
  user_data = await db_client.session.find_one({"user_id": callback.from_user.id})
 
284
  message=f"🚨 <b>Error in asksessionstringub handler</b>\n\n"
285
  f"πŸ‘€ User: {user_mention} ({callback.from_user.id})\n"
286
  f"🧠 Error: <code>{str(e)}</code>",
287
+ user_id=callback.from_user.id,
288
  is_button=False
289
  )
290