2022-12-05 19:49:51 +02:00
from os import sep
from time import time
from app import app
from pyrogram . types import InlineKeyboardMarkup , InlineKeyboardButton
2022-12-05 19:53:09 +02:00
from pyrogram import filters
2022-12-05 19:49:51 +02:00
from modules . utils import configGet , configSet , jsonLoad , jsonSave , locale , logWrite
# Callbacks application ========================================================================================================
2022-12-06 11:26:22 +02:00
@app.on_callback_query ( filters . regex ( " sub_yes_[ \ s \ S]* " ) )
2022-12-05 19:49:51 +02:00
async def callback_query_accept ( app , clb ) :
fullclb = clb . data . split ( " _ " )
2022-12-06 11:26:22 +02:00
await app . send_message ( configGet ( " admin_group " ) , locale ( " approved_by " , " message " ) . format ( clb . from_user . first_name , fullclb [ 2 ] ) , disable_notification = True )
2022-12-05 19:49:51 +02:00
logWrite ( f " User { fullclb [ 2 ] } got approved by { clb . from_user . id } " )
need_link = True
async for member in app . get_chat_members ( configGet ( " destination_group " ) ) :
if member . user . id == int ( fullclb [ 2 ] ) :
need_link = False
if need_link :
link = await app . create_chat_invite_link ( configGet ( " destination_group " ) , name = f " Invite for { fullclb [ 2 ] } " , member_limit = 1 ) #, expire_date=datetime.now()+timedelta(days=1))
await app . send_message ( int ( fullclb [ 2 ] ) , locale ( " read_rules " , " message " ) )
for rule_msg in locale ( " rules " ) :
await app . send_message ( int ( fullclb [ 2 ] ) , rule_msg )
await app . send_message ( int ( fullclb [ 2 ] ) , locale ( " approved " , " message " ) , reply_markup = InlineKeyboardMarkup (
[ [
InlineKeyboardButton ( str ( locale ( " join " , " button " ) ) , url = link . invite_link )
] ]
) )
configSet ( [ " link " ] , link . invite_link , file = fullclb [ 2 ] )
logWrite ( f " User { fullclb [ 2 ] } got an invite link { link . invite_link } " )
else :
await app . send_message ( int ( fullclb [ 2 ] ) , locale ( " approved_joined " , " message " ) )
configSet ( [ " approved " ] , True , file = fullclb [ 2 ] )
configSet ( [ " sent " ] , False , file = fullclb [ 2 ] )
application = jsonLoad ( f " { configGet ( ' data ' , ' locations ' ) } { sep } applications.json " )
application [ fullclb [ 2 ] ] [ " approved " ] = True
application [ fullclb [ 2 ] ] [ " approved_by " ] = clb . from_user . id
application [ fullclb [ 2 ] ] [ " approval_date " ] = int ( time ( ) )
jsonSave ( application , f " { configGet ( ' data ' , ' locations ' ) } { sep } applications.json " )
edited_markup = [ [ InlineKeyboardButton ( text = str ( locale ( " accepted " , " button " ) ) , callback_data = " nothing " ) ] ]
await clb . message . edit ( text = clb . message . text , reply_markup = InlineKeyboardMarkup ( edited_markup ) )
2022-12-06 11:26:22 +02:00
await clb . answer ( text = locale ( " sub_accepted " , " callback " ) . format ( fullclb [ 2 ] ) , show_alert = True )
2022-12-05 19:49:51 +02:00
2022-12-06 11:26:22 +02:00
@app.on_callback_query ( filters . regex ( " sub_no_aggressive_[ \ s \ S]* " ) )
2022-12-05 19:49:51 +02:00
async def callback_query_refuse_aggressive ( app , clb ) :
fullclb = clb . data . split ( " _ " )
2022-12-06 11:26:22 +02:00
await app . send_message ( configGet ( " admin_group " ) , locale ( " refused_by_agr " , " message " ) . format ( clb . from_user . first_name , fullclb [ 3 ] ) , disable_notification = True )
2022-12-05 19:49:51 +02:00
await app . send_message ( int ( fullclb [ 3 ] ) , locale ( " refused " , " message " ) )
logWrite ( f " User { fullclb [ 3 ] } got refused by { clb . from_user . id } due to being aggressive " )
configSet ( [ " refused " ] , True , file = fullclb [ 3 ] )
configSet ( [ " sent " ] , False , file = fullclb [ 3 ] )
application = jsonLoad ( f " { configGet ( ' data ' , ' locations ' ) } { sep } applications.json " )
application [ fullclb [ 3 ] ] [ " refused " ] = True
application [ fullclb [ 3 ] ] [ " refused_by " ] = clb . from_user . id
application [ fullclb [ 3 ] ] [ " refusal_date " ] = int ( time ( ) )
jsonSave ( application , f " { configGet ( ' data ' , ' locations ' ) } { sep } applications.json " )
edited_markup = [ [ InlineKeyboardButton ( text = str ( locale ( " declined " , " button " ) ) , callback_data = " nothing " ) ] ]
await clb . message . edit ( text = clb . message . text , reply_markup = InlineKeyboardMarkup ( edited_markup ) )
2022-12-06 11:26:22 +02:00
await clb . answer ( text = locale ( " sub_no_aggressive " , " callback " ) . format ( fullclb [ 3 ] ) , show_alert = True )
2022-12-05 19:49:51 +02:00
2022-12-06 11:26:22 +02:00
@app.on_callback_query ( filters . regex ( " sub_no_russian_[ \ s \ S]* " ) )
2022-12-05 19:49:51 +02:00
async def callback_query_refuse_russian ( app , clb ) :
fullclb = clb . data . split ( " _ " )
2022-12-06 11:26:22 +02:00
await app . send_message ( configGet ( " admin_group " ) , locale ( " refused_by_rus " , " message " ) . format ( clb . from_user . first_name , fullclb [ 3 ] ) , disable_notification = True )
2022-12-05 19:49:51 +02:00
await app . send_message ( int ( fullclb [ 3 ] ) , locale ( " refused " , " message " ) )
await app . send_message ( int ( fullclb [ 3 ] ) , locale ( " refused_russian " , " message " ) )
logWrite ( f " User { fullclb [ 3 ] } got refused by { clb . from_user . id } due to being russian " )
configSet ( [ " refused " ] , True , file = fullclb [ 3 ] )
configSet ( [ " sent " ] , False , file = fullclb [ 3 ] )
application = jsonLoad ( f " { configGet ( ' data ' , ' locations ' ) } { sep } applications.json " )
application [ fullclb [ 3 ] ] [ " refused " ] = True
application [ fullclb [ 3 ] ] [ " refused_by " ] = clb . from_user . id
application [ fullclb [ 3 ] ] [ " refusal_date " ] = int ( time ( ) )
jsonSave ( application , f " { configGet ( ' data ' , ' locations ' ) } { sep } applications.json " )
edited_markup = [ [ InlineKeyboardButton ( text = str ( locale ( " declined " , " button " ) ) , callback_data = " nothing " ) ] ]
await clb . message . edit ( text = clb . message . text , reply_markup = InlineKeyboardMarkup ( edited_markup ) )
2022-12-06 11:26:22 +02:00
await clb . answer ( text = locale ( " sub_no_russian " , " callback " ) . format ( fullclb [ 3 ] ) , show_alert = True )
2022-12-05 19:49:51 +02:00
2022-12-06 11:26:22 +02:00
@app.on_callback_query ( filters . regex ( " sub_no_[ \ s \ S]* " ) )
2022-12-05 19:49:51 +02:00
async def callback_query_refuse ( app , clb ) :
fullclb = clb . data . split ( " _ " )
2022-12-06 11:26:22 +02:00
await app . send_message ( configGet ( " admin_group " ) , locale ( " refused_by " , " message " ) . format ( clb . from_user . first_name , fullclb [ 2 ] ) , disable_notification = True )
2022-12-05 19:49:51 +02:00
await app . send_message ( int ( fullclb [ 2 ] ) , locale ( " refused " , " message " ) )
logWrite ( f " User { fullclb [ 2 ] } got refused by { clb . from_user . id } " )
configSet ( [ " refused " ] , True , file = fullclb [ 2 ] )
configSet ( [ " sent " ] , False , file = fullclb [ 2 ] )
application = jsonLoad ( f " { configGet ( ' data ' , ' locations ' ) } { sep } applications.json " )
application [ fullclb [ 2 ] ] [ " refused " ] = True
application [ fullclb [ 2 ] ] [ " refused_by " ] = clb . from_user . id
application [ fullclb [ 2 ] ] [ " refusal_date " ] = int ( time ( ) )
jsonSave ( application , f " { configGet ( ' data ' , ' locations ' ) } { sep } applications.json " )
edited_markup = [ [ InlineKeyboardButton ( text = str ( locale ( " declined " , " button " ) ) , callback_data = " nothing " ) ] ]
await clb . message . edit ( text = clb . message . text , reply_markup = InlineKeyboardMarkup ( edited_markup ) )
2022-12-06 11:26:22 +02:00
await clb . answer ( text = locale ( " sub_refused " , " callback " ) . format ( fullclb [ 2 ] ) , show_alert = True )
2022-12-05 19:49:51 +02:00
# ==============================================================================================================================