mirror of
https://github.com/yasirarism/MissKatyPyro.git
synced 2026-01-06 20:04:51 +00:00
Add userbot as optional [test]
This commit is contained in:
parent
bddcef7134
commit
802c8f013e
5 changed files with 82 additions and 15 deletions
40
README.md
40
README.md
|
|
@ -59,13 +59,43 @@ You can check demo this repo in this bot [MissKatyPyro](https://t.me/MissKatyRoB
|
||||||
* `API_ID`: Get this value from [telegram.org](https://my.telegram.org/apps)
|
* `API_ID`: Get this value from [telegram.org](https://my.telegram.org/apps)
|
||||||
* `API_HASH`: Get this value from [telegram.org](https://my.telegram.org/apps)
|
* `API_HASH`: Get this value from [telegram.org](https://my.telegram.org/apps)
|
||||||
* `DATABASE_URI`: [mongoDB](https://www.mongodb.com) URI. Get this value from [mongoDB](https://www.mongodb.com). For more help watch this [video](https://youtu.be/1G1XwEOnxxo)
|
* `DATABASE_URI`: [mongoDB](https://www.mongodb.com) URI. Get this value from [mongoDB](https://www.mongodb.com). For more help watch this [video](https://youtu.be/1G1XwEOnxxo)
|
||||||
* `DATABASE_NAME`: Name of the database in [mongoDB](https://www.mongodb.com). For more help watch this [video](https://youtu.be/1G1XwEOnxxo)
|
|
||||||
* `LOG_CHANNEL` : A channel to log the activities of bot. Make sure bot is an admin in the channel.
|
* `LOG_CHANNEL` : A channel to log the activities of bot. Make sure bot is an admin in the channel.
|
||||||
* `USER_SESSION` : Session string for Userbot.
|
|
||||||
### Optional Variables
|
|
||||||
Check by yourself in config files.
|
|
||||||
|
|
||||||
## Deploy (Must Use Docker to Run This Bot, since i had make it built in all requirements)
|
### Optional Variables
|
||||||
|
* `USER_SESSION` : Session string for Userbot.
|
||||||
|
* `DATABASE_NAME`: Name of the database in MongoDB
|
||||||
|
* `COMMAND_HANDLER`: List of handler bot command splitted by space. Ex: `. !` > so bot will respond with `.cmd` or `!cmd`
|
||||||
|
* `SUDO`: User ID that have access to bot, split by space
|
||||||
|
* `OPENAI_API`: Get it from OpenAI Web
|
||||||
|
* `CURRENCY_API`: Get API Key from https://app.exchangerate-api.com/sign-up
|
||||||
|
|
||||||
|
## Deploy (Recommended using Docker/Docker Compose)
|
||||||
|
|
||||||
|
#### Build And Run Using Legacy Method
|
||||||
|
- Make sure minimum python version is 3.8 to prevent some errors. Check it with this command:
|
||||||
|
```
|
||||||
|
python3 --version
|
||||||
|
```
|
||||||
|
- Install all dependency that needed bot to run. *(need root access, you can skip this if your server didn't have root access but some plugins will not work)*
|
||||||
|
```
|
||||||
|
apt update -y & apt install libjpeg-dev zlib1g-dev libwebp-dev python3-pip python3-lxml git wget curl ffmpeg locales tzdata neofetch mediainfo speedtest-cli -y
|
||||||
|
```
|
||||||
|
- Install requirements.txt, if using python 3.11, you need pass `--break-system-packages` parameter.
|
||||||
|
*Python < 3.10*
|
||||||
|
```
|
||||||
|
pip3 install -r requirements.txt
|
||||||
|
```
|
||||||
|
*Python 3.11*
|
||||||
|
```
|
||||||
|
pip3 install -r requirements.txt --break-system-packages
|
||||||
|
```
|
||||||
|
- Setting your config.env or via environment. Make sure you fill all required env/
|
||||||
|
- Run Bot
|
||||||
|
```
|
||||||
|
bash start.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Build And Run Using Docker
|
||||||
|
|
||||||
- Start Docker daemon (Skip if already running):
|
- Start Docker daemon (Skip if already running):
|
||||||
```
|
```
|
||||||
|
|
|
||||||
|
|
@ -51,10 +51,11 @@ jobstores = {"default": MongoDBJobStore(client=pymonclient, database="MissKatyDB
|
||||||
scheduler = AsyncIOScheduler(jobstores=jobstores, timezone=TZ)
|
scheduler = AsyncIOScheduler(jobstores=jobstores, timezone=TZ)
|
||||||
|
|
||||||
app.start()
|
app.start()
|
||||||
user.start()
|
if USER_SESSION:
|
||||||
|
user.start()
|
||||||
|
UBOT_ID = user.me.id
|
||||||
|
UBOT_NAME = user.me.first_name
|
||||||
|
UBOT_USERNAME = user.me.username
|
||||||
BOT_ID = app.me.id
|
BOT_ID = app.me.id
|
||||||
BOT_NAME = app.me.first_name
|
BOT_NAME = app.me.first_name
|
||||||
BOT_USERNAME = app.me.username
|
BOT_USERNAME = app.me.username
|
||||||
UBOT_ID = user.me.id
|
|
||||||
UBOT_NAME = user.me.first_name
|
|
||||||
UBOT_USERNAME = user.me.username
|
|
||||||
|
|
|
||||||
|
|
@ -24,7 +24,7 @@ from misskaty import (
|
||||||
scheduler
|
scheduler
|
||||||
)
|
)
|
||||||
from misskaty.plugins import ALL_MODULES
|
from misskaty.plugins import ALL_MODULES
|
||||||
from misskaty.vars import SUDO
|
from misskaty.vars import SUDO, USER_SESSION
|
||||||
from utils import auto_clean
|
from utils import auto_clean
|
||||||
|
|
||||||
LOGGER = getLogger(__name__)
|
LOGGER = getLogger(__name__)
|
||||||
|
|
@ -59,10 +59,16 @@ async def start_bot():
|
||||||
try:
|
try:
|
||||||
LOGGER.info("[INFO]: SENDING ONLINE STATUS")
|
LOGGER.info("[INFO]: SENDING ONLINE STATUS")
|
||||||
for i in SUDO:
|
for i in SUDO:
|
||||||
await app.send_message(
|
if USER_SESSION:
|
||||||
i,
|
await app.send_message(
|
||||||
f"USERBOT AND BOT STARTED with Pyrogram v{__version__}..\nUserBot: {UBOT_NAME}\nBot: {BOT_NAME}\n\nwith Pyrogram v{__version__} (Layer {layer}) started on @{BOT_USERNAME}.\n\n<code>{bot_modules}</code>",
|
i,
|
||||||
)
|
f"USERBOT AND BOT STARTED with Pyrogram v{__version__}..\nUserBot: {UBOT_NAME}\nBot: {BOT_NAME}\n\nwith Pyrogram v{__version__} (Layer {layer}) started on @{BOT_USERNAME}.\n\n<code>{bot_modules}</code>",
|
||||||
|
)
|
||||||
|
else:
|
||||||
|
await app.send_message(
|
||||||
|
i,
|
||||||
|
f"BOT STARTED with Pyrogram v{__version__}..\nBot: {BOT_NAME}\n\nwith Pyrogram v{__version__} (Layer {layer}) started on @{BOT_USERNAME}.\n\n<code>{bot_modules}</code>",
|
||||||
|
)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
LOGGER.error(str(e))
|
LOGGER.error(str(e))
|
||||||
scheduler.start()
|
scheduler.start()
|
||||||
|
|
|
||||||
|
|
@ -22,7 +22,7 @@ from psutil import virtual_memory
|
||||||
from pyrogram import enums, filters, Client, __version__ as pyrover
|
from pyrogram import enums, filters, Client, __version__ as pyrover
|
||||||
from pyrogram.types import InlineKeyboardButton, InlineKeyboardMarkup, Message
|
from pyrogram.types import InlineKeyboardButton, InlineKeyboardMarkup, Message
|
||||||
from pyrogram.raw.types import UpdateBotStopped
|
from pyrogram.raw.types import UpdateBotStopped
|
||||||
from pykeyboard import InlineKeyboard
|
from pykeyboard import InlineKeyboard, InlineButton
|
||||||
|
|
||||||
from misskaty import app, user, botStartTime, misskaty_version, BOT_NAME
|
from misskaty import app, user, botStartTime, misskaty_version, BOT_NAME
|
||||||
from misskaty.helper.http import http
|
from misskaty.helper.http import http
|
||||||
|
|
|
||||||
30
requirements.txt
Normal file
30
requirements.txt
Normal file
|
|
@ -0,0 +1,30 @@
|
||||||
|
emoji
|
||||||
|
git+https://github.com/yasirarism/pyrofork
|
||||||
|
tgcrypto
|
||||||
|
pymongo
|
||||||
|
python-dotenv
|
||||||
|
motor[srv]>=3.1.2
|
||||||
|
requests
|
||||||
|
bs4
|
||||||
|
aiohttp
|
||||||
|
chevron
|
||||||
|
gTTS
|
||||||
|
regex
|
||||||
|
apscheduler
|
||||||
|
pytz
|
||||||
|
pykeyboard
|
||||||
|
pySmartDL
|
||||||
|
psutil
|
||||||
|
python-dateutil
|
||||||
|
telegraph
|
||||||
|
hachoir
|
||||||
|
Pillow>=9.5.0
|
||||||
|
httpx[http2]
|
||||||
|
git+https://github.com/yasirarism/vcsi
|
||||||
|
git+https://github.com/yasirarism/iytdl
|
||||||
|
deep-translator
|
||||||
|
telethon
|
||||||
|
pyrate_limiter
|
||||||
|
cachetools
|
||||||
|
cfscrape
|
||||||
|
openai
|
||||||
Loading…
Reference in a new issue