randydev commited on
Commit
7d60737
·
verified ·
1 Parent(s): 42717ba

Update chatbot/plugins/join_request.py

Browse files
Files changed (1) hide show
  1. chatbot/plugins/join_request.py +79 -4
chatbot/plugins/join_request.py CHANGED
@@ -35,15 +35,90 @@ from logger import LOGS
35
  logging.basicConfig(level=logging.INFO)
36
  logger = logging.getLogger(__name__)
37
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
38
  @Client.on_chat_join_request(filters.chat("KillerXSupport"))
39
  async def join_request(client: Client, event: ChatJoinRequest):
40
  logger.info(f"join request {event}")
41
  if event.chat.type == ChatType.SUPERGROUP:
42
  try:
43
- await client.approve_chat_join_request(
44
- chat_id=event.chat.id,
45
- user_id=event.from_user.id,
 
 
46
  )
47
- await client.send_message(event.chat.id, "Good joined request")
48
  except Exception as e:
 
 
 
 
49
  logger.error(str(e))
 
35
  logging.basicConfig(level=logging.INFO)
36
  logger = logging.getLogger(__name__)
37
 
38
+ @Client.on_callback_query(filters.regex("^joinrequest_"))
39
+ async def joinrequest_callback(client: Client, cb: CallbackQuery):
40
+ data = cb.data.split("_")
41
+ if len(data) != 2:
42
+ await cb.answer("Invalid data format.", True)
43
+ return
44
+ try:
45
+ user_id = int(data[1])
46
+ except ValueError:
47
+ await cb.answer("Invalid user ID.", True)
48
+ return
49
+ try:
50
+ if cb.from_user.id == 1191668125:
51
+ await client.approve_chat_join_request(
52
+ chat_id=cb.message.chat.id,
53
+ user_id=user_id,
54
+ )
55
+ await cb.edit_message_text(
56
+ f"User {user_id} joined the request in the group",
57
+ disable_web_page_preview=True,
58
+ )
59
+ else:
60
+ await cb.answer("Only the Developer can perform this action.", True)
61
+ except Exception as e:
62
+ await cb.answer(f"Error: {e}", True)
63
+
64
+ @Client.on_callback_query(filters.regex("^declinerequest_"))
65
+ async def declinerequest_callback(client: Client, cb: CallbackQuery):
66
+ data = cb.data.split("_")
67
+ if len(data) != 2:
68
+ await cb.answer("Invalid data format.", True)
69
+ return
70
+ try:
71
+ user_id = int(data[1])
72
+ except ValueError:
73
+ await cb.answer("Invalid user ID.", True)
74
+ return
75
+ try:
76
+ if cb.from_user.id == 1191668125:
77
+ await client.decline_chat_join_request(
78
+ chat_id=cb.message.chat.id,
79
+ user_id=user_id,
80
+ )
81
+ await cb.edit_message_text(
82
+ f"User {user_id} declined to join the support group",
83
+ disable_web_page_preview=True,
84
+ )
85
+ else:
86
+ await cb.answer("Only the Developer can perform this action.", True)
87
+ except Exception as e:
88
+ await cb.answer(f"Error: {e}", True)
89
+
90
+ def create_button_join_request(user_id):
91
+ return InlineKeyboardMarkup(
92
+ [
93
+ [
94
+ InlineKeyboardButton(
95
+ text="✅ Approve",
96
+ callback_data=f"joinrequest_{user_id}"
97
+ )
98
+ ],
99
+ [
100
+ InlineKeyboardButton(
101
+ text="❌ Decline",
102
+ callback_data=f"declinerequest_{user_id}"
103
+ )
104
+ ]
105
+ ]
106
+ )
107
+
108
  @Client.on_chat_join_request(filters.chat("KillerXSupport"))
109
  async def join_request(client: Client, event: ChatJoinRequest):
110
  logger.info(f"join request {event}")
111
  if event.chat.type == ChatType.SUPERGROUP:
112
  try:
113
+ user_request_text = f"UserID: {event.from_user.id} by admin @xtdevs"
114
+ await client.send_message(
115
+ event.chat.id,
116
+ user_request_text,
117
+ reply_markup=create_button_join_request(event.from_user.id)
118
  )
 
119
  except Exception as e:
120
+ await client.send_message(
121
+ event.chat.id,
122
+ text=str(e)
123
+ )
124
  logger.error(str(e))