├── .gitignore ├── README.md ├── config.example.ini ├── filters.py ├── functions.py ├── main.py ├── requirements.txt └── settings ├── send_message_to_friend ├── id.txt └── message.txt └── status.txt /.gitignore: -------------------------------------------------------------------------------- 1 | config.ini 2 | *.session 3 | *.session-journal 4 | __pycache__ -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # simple-pyrogram-bot 2 | Simple telegram self-bot 3 | 4 | ## ⚙️ Install requirements 5 | ``` 6 | $ pip install -r requirements.txt 7 | ``` 8 | or 9 | ``` 10 | $ pip install -U pyrogram 11 | ``` 12 | 13 | **Note: Make sure you've installed Python ^3** 14 | 15 | ## 🔧 Configuration 16 | ``` 17 | $ mv config.example.ini config.ini 18 | ``` 19 | Get your account info from [Here](https://my.telegram.org/apps), then put your `api_id` and `api_hash` to `config.ini`. 20 | 21 | And finally run the main.py file: 22 | ``` 23 | $ python3 main.py 24 | ``` 25 | 26 | ## 📿 Usage 27 | | Command | Description | 28 | |---|---| 29 | | /on | Turn on | 30 | | /off | Turn off | 31 | | /status | Shows status | 32 | | /setid DibDmini | Set friend's ID | 33 | | /setmsg "I Love Potato 🥔" | Set message | 34 | | /send | Send your message (👆) to your friend | 35 | -------------------------------------------------------------------------------- /config.example.ini: -------------------------------------------------------------------------------- 1 | [pyrogram] 2 | api_id = 3 | api_hash = -------------------------------------------------------------------------------- /filters.py: -------------------------------------------------------------------------------- 1 | from pyrogram import filters 2 | from functions import * 3 | 4 | async def isOn_func(_, __, ___): 5 | return getStatus() == 'on' 6 | isOn = filters.create(isOn_func) 7 | 8 | def text_filter(text): 9 | async def func(flt, _, query): 10 | return flt.text == query.text 11 | return filters.create(func, text=text) -------------------------------------------------------------------------------- /functions.py: -------------------------------------------------------------------------------- 1 | def createFile(path, data): 2 | with open(path, 'w') as file: 3 | file.write(data) 4 | 5 | def openFile(path): 6 | return open(path, 'r').readline() 7 | 8 | def getStatus(): 9 | return openFile('./settings/status.txt') 10 | 11 | def setStatus(arg): 12 | createFile('./settings/status.txt', arg) 13 | -------------------------------------------------------------------------------- /main.py: -------------------------------------------------------------------------------- 1 | from pyrogram import Client, filters 2 | from pyrogram.errors import InternalServerError 3 | from functions import * 4 | from filters import * 5 | 6 | app = Client('my_account') 7 | 8 | @app.on_message(filters.text & filters.private & ~filters.me & filters.regex('سلام') & isOn) 9 | def reply_handler(client, message): 10 | message.reply_text('😐🖐🏻') 11 | 12 | @app.on_message(filters.me & filters.command('on')) 13 | def bot_on_handler(client, message): 14 | setStatus('on') 15 | message.reply_text('i\'m on now') 16 | 17 | @app.on_message(filters.me & filters.command('off')) 18 | def bot_off_handler(client, message): 19 | setStatus('off') 20 | message.reply_text('i\'m off now') 21 | 22 | @app.on_message(filters.me & filters.command('status')) 23 | def bot_status_handler(client, message): 24 | status = getStatus() 25 | message.reply_text(f'i\'m {status}') 26 | 27 | @app.on_message(filters.me & filters.command('setid') & isOn) 28 | def setid_handler(client, message): 29 | try: 30 | createFile('./settings/send_message_to_friend/id.txt', message.command[1]) 31 | message.reply_text('Set your message by `/setmsg MESSAGE`') 32 | except InternalServerError as e: 33 | message.reply_text('Failed❗️\nCheck your logs.') 34 | createFile('logs.txt', e) 35 | 36 | @app.on_message(filters.me & filters.command('setmsg') & isOn) 37 | def setmsg_handler(client, message): 38 | try: 39 | createFile('./settings/send_message_to_friend/message.txt', message.command[1]) 40 | message.reply_text('Send by `/send`') 41 | except InternalServerError as e: 42 | message.reply_text('Failed❗️\nCheck your logs.') 43 | createFile('logs.txt', e) 44 | 45 | @app.on_message(filters.me & filters.command('send') & isOn) 46 | def send_handler(client, message): 47 | try: 48 | app.send_message(openFile('./settings/send_message_to_friend/id.txt'), openFile('./settings/send_message_to_friend/message.txt')) 49 | message.reply_text('Message sent.') 50 | except InternalServerError as e: 51 | message.reply_text('Failed❗️\nCheck your logs.') 52 | createFile('logs.txt', e) 53 | 54 | app.run() 55 | -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | Pyrogram==1.2.9 2 | -------------------------------------------------------------------------------- /settings/send_message_to_friend/id.txt: -------------------------------------------------------------------------------- 1 | dibdmini -------------------------------------------------------------------------------- /settings/send_message_to_friend/message.txt: -------------------------------------------------------------------------------- 1 | i love potato 🥔 -------------------------------------------------------------------------------- /settings/status.txt: -------------------------------------------------------------------------------- 1 | on --------------------------------------------------------------------------------