diff --git a/.env b/.env
new file mode 100644
index 00000000..a4969f8f
--- /dev/null
+++ b/.env
@@ -0,0 +1,2 @@
+REDIRECTOR_DOMAIN=sukuna.site
+ENCRYPTION_KEY=e2d7c581a9f032b4c6e917d84b2c1f3a5e8d9b0a1f2c3d4e5f6a7b8c9d0e1f2a
diff --git a/Dockerfile b/Dockerfile
index c3a46a13..4dc5a34f 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,5 +1,11 @@
FROM python:3.10
+
WORKDIR /app
+
COPY . .
+
+RUN pip install --no-cache-dir -r requirements.txt
+
RUN chmod +x start.sh
+
CMD ["bash", "start.sh"]
diff --git a/bot.log b/bot.log
new file mode 100644
index 00000000..da596a96
--- /dev/null
+++ b/bot.log
@@ -0,0 +1,178 @@
+[13-Apr-26 15:30:27 - WARNING] - yato - bot - Bot can't Export Invite link from Force Sub Channel!
+[13-Apr-26 15:30:27 - WARNING] - yato - bot -
+Bot Stopped.
+[13-Apr-26 15:30:27 - WARNING] - yato - bot -
+Bot Stopped.
+[13-Apr-26 15:31:10 - WARNING] - yato - bot - Could not load dynamic fsub channel -1002270729362: Telegram says: [400 CHANNEL_INVALID] (caused by "channels.GetChannels") Pyrogram 2.3.50 thinks: The channel parameter is invalid
+[13-Apr-26 15:31:11 - WARNING] - yato - bot - Could not load dynamic fsub channel -1002345643351: Telegram says: [400 CHANNEL_INVALID] (caused by "channels.GetChannels") Pyrogram 2.3.50 thinks: The channel parameter is invalid
+[13-Apr-26 15:31:11 - WARNING] - yato - bot - Could not load dynamic fsub channel -1002345643351: Telegram says: [400 CHANNEL_INVALID] (caused by "channels.GetChannels") Pyrogram 2.3.50 thinks: The channel parameter is invalid
+[13-Apr-26 15:31:11 - WARNING] - yato - bot - Could not load dynamic fsub channel -1002239371276: Telegram says: [400 CHANNEL_INVALID] (caused by "channels.GetChannels") Pyrogram 2.3.50 thinks: The channel parameter is invalid
+[13-Apr-26 15:31:11 - WARNING] - yato - bot - Could not load dynamic fsub channel -1002239371276: Telegram says: [400 CHANNEL_INVALID] (caused by "channels.GetChannels") Pyrogram 2.3.50 thinks: The channel parameter is invalid
+[13-Apr-26 15:31:11 - WARNING] - yato - bot - Could not load dynamic fsub channel -1002239371276: Telegram says: [400 CHANNEL_INVALID] (caused by "channels.GetChannels") Pyrogram 2.3.50 thinks: The channel parameter is invalid
+[13-Apr-26 15:31:11 - WARNING] - yato - bot - Could not load DB channel -1003720992938: Telegram says: [400 CHANNEL_INVALID] (caused by "channels.GetChannels") Pyrogram 2.3.50 thinks: The channel parameter is invalid
+[13-Apr-26 15:31:11 - WARNING] - yato - bot - Could not load DB channel -1003720992938: Telegram says: [400 CHANNEL_INVALID] (caused by "channels.GetChannels") Pyrogram 2.3.50 thinks: The channel parameter is invalid
+[13-Apr-26 15:31:11 - WARNING] - yato - bot - Could not load DB channel -1003720992938: Telegram says: [400 CHANNEL_INVALID] (caused by "channels.GetChannels") Pyrogram 2.3.50 thinks: The channel parameter is invalid
+[13-Apr-26 15:31:11 - WARNING] - yato - bot - Could not load DB channel -1003720992938: Telegram says: [400 CHANNEL_INVALID] (caused by "channels.GetChannels") Pyrogram 2.3.50 thinks: The channel parameter is invalid
+[13-Apr-26 15:31:11 - WARNING] - yato - bot - Could not load DB channel -1002558171315: Telegram says: [400 CHANNEL_INVALID] (caused by "channels.GetChannels") Pyrogram 2.3.50 thinks: The channel parameter is invalid
+[13-Apr-26 15:31:11 - WARNING] - yato - bot - Could not load DB channel -1002558171315: Telegram says: [400 CHANNEL_INVALID] (caused by "channels.GetChannels") Pyrogram 2.3.50 thinks: The channel parameter is invalid
+[13-Apr-26 15:31:11 - WARNING] - yato - bot - Could not load DB channel -1002558171315: Telegram says: [400 CHANNEL_INVALID] (caused by "channels.GetChannels") Pyrogram 2.3.50 thinks: The channel parameter is invalid
+[13-Apr-26 15:31:11 - WARNING] - yato - bot - Could not load DB channel -1002558171315: Telegram says: [400 CHANNEL_INVALID] (caused by "channels.GetChannels") Pyrogram 2.3.50 thinks: The channel parameter is invalid
+[13-Apr-26 15:31:11 - WARNING] - yato - bot - Could not load DB channel -1002558171315: Telegram says: [400 CHANNEL_INVALID] (caused by "channels.GetChannels") Pyrogram 2.3.50 thinks: The channel parameter is invalid
+[13-Apr-26 15:31:12 - WARNING] - yato - bot - Telegram says: [400 CHANNEL_INVALID] (caused by "channels.GetChannels") Pyrogram 2.3.50 thinks: The channel parameter is invalid
+[13-Apr-26 15:31:12 - WARNING] - yato - bot - Telegram says: [400 CHANNEL_INVALID] (caused by "channels.GetChannels") Pyrogram 2.3.50 thinks: The channel parameter is invalid
+[13-Apr-26 15:31:12 - WARNING] - yato - bot - Telegram says: [400 CHANNEL_INVALID] (caused by "channels.GetChannels") Pyrogram 2.3.50 thinks: The channel parameter is invalid
+[13-Apr-26 15:31:12 - WARNING] - yato - bot - Telegram says: [400 CHANNEL_INVALID] (caused by "channels.GetChannels") Pyrogram 2.3.50 thinks: The channel parameter is invalid
+[13-Apr-26 15:31:12 - WARNING] - yato - bot - Telegram says: [400 CHANNEL_INVALID] (caused by "channels.GetChannels") Pyrogram 2.3.50 thinks: The channel parameter is invalid
+[13-Apr-26 15:31:12 - WARNING] - yato - bot - Telegram says: [400 CHANNEL_INVALID] (caused by "channels.GetChannels") Pyrogram 2.3.50 thinks: The channel parameter is invalid
+[13-Apr-26 15:31:12 - WARNING] - yato - bot - Make Sure bot is Admin in DB Channel, and Double check the database channel Value, Current Value -1002558171315
+[13-Apr-26 15:31:12 - WARNING] - yato - bot - Make Sure bot is Admin in DB Channel, and Double check the database channel Value, Current Value -1002558171315
+[13-Apr-26 15:31:12 - WARNING] - yato - bot - Make Sure bot is Admin in DB Channel, and Double check the database channel Value, Current Value -1002558171315
+[13-Apr-26 15:31:12 - WARNING] - yato - bot - Make Sure bot is Admin in DB Channel, and Double check the database channel Value, Current Value -1002558171315
+[13-Apr-26 15:31:12 - WARNING] - yato - bot - Make Sure bot is Admin in DB Channel, and Double check the database channel Value, Current Value -1002558171315
+[13-Apr-26 15:31:12 - WARNING] - yato - bot - Make Sure bot is Admin in DB Channel, and Double check the database channel Value, Current Value -1002558171315
+[13-Apr-26 15:31:12 - WARNING] - yato - bot - Make Sure bot is Admin in DB Channel, and Double check the database channel Value, Current Value -1002558171315
+[13-Apr-26 15:31:12 - INFO] - yato - bot -
+Bot Stopped. Join https://t.me/animes_cruise for support
+[13-Apr-26 15:31:12 - INFO] - yato - bot -
+Bot Stopped. Join https://t.me/animes_cruise for support
+[13-Apr-26 15:31:12 - INFO] - yato - bot -
+Bot Stopped. Join https://t.me/animes_cruise for support
+[13-Apr-26 15:31:12 - INFO] - yato - bot -
+Bot Stopped. Join https://t.me/animes_cruise for support
+[13-Apr-26 15:31:12 - INFO] - yato - bot -
+Bot Stopped. Join https://t.me/animes_cruise for support
+[13-Apr-26 15:31:12 - INFO] - yato - bot -
+Bot Stopped. Join https://t.me/animes_cruise for support
+[13-Apr-26 15:31:12 - INFO] - yato - bot -
+Bot Stopped. Join https://t.me/animes_cruise for support
+[13-Apr-26 15:31:12 - INFO] - yato - bot -
+Bot Stopped. Join https://t.me/animes_cruise for support
+[13-Apr-26 15:33:36 - INFO] - yato - bot - Primary DB Channel: -1002558171315
+[13-Apr-26 15:33:36 - INFO] - yato - bot - Total DB Channels: 0
+[13-Apr-26 15:33:36 - INFO] - yato - bot - Total DB Channels: 0
+[13-Apr-26 15:33:36 - INFO] - yato - bot - Bot Started!!
+[13-Apr-26 15:33:36 - INFO] - yato - bot - Bot Started!!
+[13-Apr-26 15:33:36 - INFO] - yato - bot - Bot Started!!
+[13-Apr-26 15:33:36 - INFO] - yato - bot - Restart notification sent to owner: 6123108288
+[13-Apr-26 15:33:36 - INFO] - yato - bot - Restart notification sent to owner: 6123108288
+[13-Apr-26 15:33:36 - INFO] - yato - bot - Restart notification sent to owner: 6123108288
+[13-Apr-26 15:33:36 - INFO] - yato - bot - Restart notification sent to owner: 6123108288
+[13-Apr-26 15:35:07 - INFO] - yato - plugins.start - Trying to get messages from source channel: -1002558171315
+[13-Apr-26 15:35:07 - INFO] - yato - plugins.start - Found 1 messages from source channel -1002558171315
+[13-Apr-26 15:35:07 - INFO] - yato - plugins.start - Found 1 messages from source channel -1002558171315
+[13-Apr-26 15:35:34 - INFO] - yato - bot - Bot stopped.
+[13-Apr-26 15:35:34 - INFO] - yato - bot - Bot stopped.
+[13-Apr-26 15:35:34 - INFO] - yato - bot - Bot stopped.
+[13-Apr-26 15:35:34 - INFO] - yato - bot - Bot stopped.
+[13-Apr-26 15:35:34 - INFO] - yato - bot - Bot stopped.
+[13-Apr-26 15:40:57 - INFO] - yato - bot - Primary DB Channel: -1002558171315
+[13-Apr-26 15:40:57 - INFO] - yato - bot - Total DB Channels: 0
+[13-Apr-26 15:40:57 - INFO] - yato - bot - Total DB Channels: 0
+[13-Apr-26 15:40:57 - INFO] - yato - bot - Bot Started!!
+[13-Apr-26 15:40:57 - INFO] - yato - bot - Bot Started!!
+[13-Apr-26 15:40:57 - INFO] - yato - bot - Bot Started!!
+[13-Apr-26 15:40:57 - INFO] - yato - bot - Restart notification sent to owner: 6123108288
+[13-Apr-26 15:40:57 - INFO] - yato - bot - Restart notification sent to owner: 6123108288
+[13-Apr-26 15:40:57 - INFO] - yato - bot - Restart notification sent to owner: 6123108288
+[13-Apr-26 15:40:57 - INFO] - yato - bot - Restart notification sent to owner: 6123108288
+[13-Apr-26 15:41:38 - INFO] - yato - plugins.start - Trying to get messages from source channel: -1002558171315
+[13-Apr-26 15:41:38 - INFO] - yato - plugins.start - Found 1 messages from source channel -1002558171315
+[13-Apr-26 15:41:38 - INFO] - yato - plugins.start - Found 1 messages from source channel -1002558171315
+[13-Apr-26 15:50:21 - INFO] - yato - bot - Bot stopped.
+[13-Apr-26 15:50:21 - INFO] - yato - bot - Bot stopped.
+[13-Apr-26 15:50:21 - INFO] - yato - bot - Bot stopped.
+[13-Apr-26 15:50:21 - INFO] - yato - bot - Bot stopped.
+[13-Apr-26 15:50:21 - INFO] - yato - bot - Bot stopped.
+[13-Apr-26 16:08:20 - INFO] - yato - bot - Primary DB Channel: -1002558171315
+[13-Apr-26 16:08:20 - INFO] - yato - bot - Total DB Channels: 0
+[13-Apr-26 16:08:20 - INFO] - yato - bot - Total DB Channels: 0
+[13-Apr-26 16:08:20 - INFO] - yato - bot - Bot Started!!
+[13-Apr-26 16:08:20 - INFO] - yato - bot - Bot Started!!
+[13-Apr-26 16:08:20 - INFO] - yato - bot - Bot Started!!
+[13-Apr-26 16:08:20 - INFO] - yato - bot - Restart notification sent to owner: 6123108288
+[13-Apr-26 16:08:20 - INFO] - yato - bot - Restart notification sent to owner: 6123108288
+[13-Apr-26 16:08:20 - INFO] - yato - bot - Restart notification sent to owner: 6123108288
+[13-Apr-26 16:08:20 - INFO] - yato - bot - Restart notification sent to owner: 6123108288
+[13-Apr-26 16:09:49 - INFO] - yato - plugins.start - Trying to get messages from source channel: -1002558171315
+[13-Apr-26 16:09:49 - INFO] - yato - plugins.start - Found 1 messages from source channel -1002558171315
+[13-Apr-26 16:09:49 - INFO] - yato - plugins.start - Found 1 messages from source channel -1002558171315
+[13-Apr-26 16:10:49 - INFO] - yato - plugins.start - Trying to get messages from source channel: -1002558171315
+[13-Apr-26 16:10:49 - INFO] - yato - plugins.start - Trying to get messages from source channel: -1002558171315
+[13-Apr-26 16:10:49 - INFO] - yato - plugins.start - Trying to get messages from source channel: -1002558171315
+[13-Apr-26 16:10:49 - INFO] - yato - plugins.start - Found 1 messages from source channel -1002558171315
+[13-Apr-26 16:10:49 - INFO] - yato - plugins.start - Found 1 messages from source channel -1002558171315
+[13-Apr-26 16:10:49 - INFO] - yato - plugins.start - Found 1 messages from source channel -1002558171315
+[13-Apr-26 16:10:49 - INFO] - yato - plugins.start - Found 1 messages from source channel -1002558171315
+[13-Apr-26 16:11:46 - INFO] - yato - plugins.start - Trying to get messages from source channel: -1002558171315
+[13-Apr-26 16:11:46 - INFO] - yato - plugins.start - Trying to get messages from source channel: -1002558171315
+[13-Apr-26 16:11:46 - INFO] - yato - plugins.start - Trying to get messages from source channel: -1002558171315
+[13-Apr-26 16:11:46 - INFO] - yato - plugins.start - Trying to get messages from source channel: -1002558171315
+[13-Apr-26 16:11:46 - INFO] - yato - plugins.start - Trying to get messages from source channel: -1002558171315
+[13-Apr-26 16:11:47 - INFO] - yato - plugins.start - Found 1 messages from source channel -1002558171315
+[13-Apr-26 16:11:47 - INFO] - yato - plugins.start - Found 1 messages from source channel -1002558171315
+[13-Apr-26 16:11:47 - INFO] - yato - plugins.start - Found 1 messages from source channel -1002558171315
+[13-Apr-26 16:11:47 - INFO] - yato - plugins.start - Found 1 messages from source channel -1002558171315
+[13-Apr-26 16:11:47 - INFO] - yato - plugins.start - Found 1 messages from source channel -1002558171315
+[13-Apr-26 16:11:47 - INFO] - yato - plugins.start - Found 1 messages from source channel -1002558171315
+[13-Apr-26 16:12:25 - INFO] - yato - plugins.start - Trying to get messages from source channel: -1002558171315
+[13-Apr-26 16:12:25 - INFO] - yato - plugins.start - Trying to get messages from source channel: -1002558171315
+[13-Apr-26 16:12:25 - INFO] - yato - plugins.start - Trying to get messages from source channel: -1002558171315
+[13-Apr-26 16:12:25 - INFO] - yato - plugins.start - Trying to get messages from source channel: -1002558171315
+[13-Apr-26 16:12:25 - INFO] - yato - plugins.start - Trying to get messages from source channel: -1002558171315
+[13-Apr-26 16:12:25 - INFO] - yato - plugins.start - Trying to get messages from source channel: -1002558171315
+[13-Apr-26 16:12:25 - INFO] - yato - plugins.start - Trying to get messages from source channel: -1002558171315
+[13-Apr-26 16:12:25 - INFO] - yato - plugins.start - Found 1 messages from source channel -1002558171315
+[13-Apr-26 16:12:25 - INFO] - yato - plugins.start - Found 1 messages from source channel -1002558171315
+[13-Apr-26 16:12:25 - INFO] - yato - plugins.start - Found 1 messages from source channel -1002558171315
+[13-Apr-26 16:12:25 - INFO] - yato - plugins.start - Found 1 messages from source channel -1002558171315
+[13-Apr-26 16:12:25 - INFO] - yato - plugins.start - Found 1 messages from source channel -1002558171315
+[13-Apr-26 16:12:25 - INFO] - yato - plugins.start - Found 1 messages from source channel -1002558171315
+[13-Apr-26 16:12:25 - INFO] - yato - plugins.start - Found 1 messages from source channel -1002558171315
+[13-Apr-26 16:12:25 - INFO] - yato - plugins.start - Found 1 messages from source channel -1002558171315
+[13-Apr-26 16:13:06 - INFO] - yato - plugins.start - Trying to get messages from source channel: -1002558171315
+[13-Apr-26 16:13:06 - INFO] - yato - plugins.start - Trying to get messages from source channel: -1002558171315
+[13-Apr-26 16:13:06 - INFO] - yato - plugins.start - Trying to get messages from source channel: -1002558171315
+[13-Apr-26 16:13:06 - INFO] - yato - plugins.start - Trying to get messages from source channel: -1002558171315
+[13-Apr-26 16:13:06 - INFO] - yato - plugins.start - Trying to get messages from source channel: -1002558171315
+[13-Apr-26 16:13:06 - INFO] - yato - plugins.start - Trying to get messages from source channel: -1002558171315
+[13-Apr-26 16:13:06 - INFO] - yato - plugins.start - Trying to get messages from source channel: -1002558171315
+[13-Apr-26 16:13:06 - INFO] - yato - plugins.start - Trying to get messages from source channel: -1002558171315
+[13-Apr-26 16:13:06 - INFO] - yato - plugins.start - Trying to get messages from source channel: -1002558171315
+[13-Apr-26 16:13:06 - INFO] - yato - plugins.start - Found 1 messages from source channel -1002558171315
+[13-Apr-26 16:13:06 - INFO] - yato - plugins.start - Found 1 messages from source channel -1002558171315
+[13-Apr-26 16:13:06 - INFO] - yato - plugins.start - Found 1 messages from source channel -1002558171315
+[13-Apr-26 16:13:06 - INFO] - yato - plugins.start - Found 1 messages from source channel -1002558171315
+[13-Apr-26 16:13:06 - INFO] - yato - plugins.start - Found 1 messages from source channel -1002558171315
+[13-Apr-26 16:13:06 - INFO] - yato - plugins.start - Found 1 messages from source channel -1002558171315
+[13-Apr-26 16:13:06 - INFO] - yato - plugins.start - Found 1 messages from source channel -1002558171315
+[13-Apr-26 16:13:06 - INFO] - yato - plugins.start - Found 1 messages from source channel -1002558171315
+[13-Apr-26 16:13:06 - INFO] - yato - plugins.start - Found 1 messages from source channel -1002558171315
+[13-Apr-26 16:13:06 - INFO] - yato - plugins.start - Found 1 messages from source channel -1002558171315
+[13-Apr-26 16:13:24 - INFO] - yato - plugins.start - Trying to get messages from source channel: -1002558171315
+[13-Apr-26 16:13:24 - INFO] - yato - plugins.start - Trying to get messages from source channel: -1002558171315
+[13-Apr-26 16:13:24 - INFO] - yato - plugins.start - Trying to get messages from source channel: -1002558171315
+[13-Apr-26 16:13:24 - INFO] - yato - plugins.start - Trying to get messages from source channel: -1002558171315
+[13-Apr-26 16:13:24 - INFO] - yato - plugins.start - Trying to get messages from source channel: -1002558171315
+[13-Apr-26 16:13:24 - INFO] - yato - plugins.start - Trying to get messages from source channel: -1002558171315
+[13-Apr-26 16:13:24 - INFO] - yato - plugins.start - Trying to get messages from source channel: -1002558171315
+[13-Apr-26 16:13:24 - INFO] - yato - plugins.start - Trying to get messages from source channel: -1002558171315
+[13-Apr-26 16:13:24 - INFO] - yato - plugins.start - Trying to get messages from source channel: -1002558171315
+[13-Apr-26 16:13:24 - INFO] - yato - plugins.start - Trying to get messages from source channel: -1002558171315
+[13-Apr-26 16:13:24 - INFO] - yato - plugins.start - Trying to get messages from source channel: -1002558171315
+[13-Apr-26 16:13:24 - INFO] - yato - plugins.start - Found 1 messages from source channel -1002558171315
+[13-Apr-26 16:13:24 - INFO] - yato - plugins.start - Found 1 messages from source channel -1002558171315
+[13-Apr-26 16:13:24 - INFO] - yato - plugins.start - Found 1 messages from source channel -1002558171315
+[13-Apr-26 16:13:24 - INFO] - yato - plugins.start - Found 1 messages from source channel -1002558171315
+[13-Apr-26 16:13:24 - INFO] - yato - plugins.start - Found 1 messages from source channel -1002558171315
+[13-Apr-26 16:13:24 - INFO] - yato - plugins.start - Found 1 messages from source channel -1002558171315
+[13-Apr-26 16:13:24 - INFO] - yato - plugins.start - Found 1 messages from source channel -1002558171315
+[13-Apr-26 16:13:24 - INFO] - yato - plugins.start - Found 1 messages from source channel -1002558171315
+[13-Apr-26 16:13:24 - INFO] - yato - plugins.start - Found 1 messages from source channel -1002558171315
+[13-Apr-26 16:13:24 - INFO] - yato - plugins.start - Found 1 messages from source channel -1002558171315
+[13-Apr-26 16:13:24 - INFO] - yato - plugins.start - Found 1 messages from source channel -1002558171315
+[13-Apr-26 16:13:24 - INFO] - yato - plugins.start - Found 1 messages from source channel -1002558171315
+[13-Apr-26 16:13:39 - INFO] - yato - bot - Bot stopped.
+[13-Apr-26 16:13:39 - INFO] - yato - bot - Bot stopped.
+[13-Apr-26 16:13:39 - INFO] - yato - bot - Bot stopped.
+[13-Apr-26 16:13:39 - INFO] - yato - bot - Bot stopped.
+[13-Apr-26 16:13:39 - INFO] - yato - bot - Bot stopped.
diff --git a/bot.py b/bot.py
index 8db3a070..ceeb4719 100644
--- a/bot.py
+++ b/bot.py
@@ -139,6 +139,13 @@ async def start(self):
self.tutorial_link = SHORT_TUT
self.shortner_enabled = True
+ # Load bot settings
+ try:
+ self.auto_watermark = await self.mongodb.get_bot_setting('auto_watermark', True)
+ except Exception as e:
+ self.LOGGER(__name__, self.name).warning(f"Error loading bot settings: {e}")
+ self.auto_watermark = True
+
try:
db_channel = await self.get_chat(self.db)
self.db_channel = db_channel
diff --git a/config.py b/config.py
index 96052157..082f0147 100644
--- a/config.py
+++ b/config.py
@@ -3,28 +3,28 @@
# Bot Configuration
LOG_FILE_NAME = "bot.log"
-PORT = '5010'
-OWNER_ID = 6497757690
+PORT = 5010
+OWNER_ID = 6123108288
MSG_EFFECT = 5046509860389126442
SHORT_URL = "linkshortify.com" # shortner url
-SHORT_API = ""
-SHORT_TUT = "https://t.me/How_to_Download_7x/26"
+SHORT_API = "573350da0e10a5a44f7e6fec3bc2b3f836b47805"
+SHORT_TUT = "https://t.me/Infinix_Tutorial/10"
# Bot Configuration
SESSION = "yato"
-TOKEN = "642712"
-API_ID = ""
-API_HASH = ""
+TOKEN = "7751221792:AAERWAIjUrhiEIVW-mWzF6v7l3dBLNrez14"
+API_ID = "21446955"
+API_HASH = "e6f34a6186963663342b88b88c2b4750"
WORKERS = 5
-DB_URI = "mongodb"
-DB_NAME = "yato"
+DB_URI = "mongodb+srv://souravagarwal14092007:szXRs8g7fErCnn4@cluster0.xlsbf3o.mongodb.net/?retryWrites=true&w=majority&appName=Cluster0"
+DB_NAME = "Cluster0"
-FSUBS = [[-1003016571084, True, 10]] # Force Subscription Channels [channel_id, request_enabled, timer_in_minutes]
+FSUBS = [] # Temporarily disabled so bot can run locally without being an admin in the channel
# Database Channel (Primary)
-DB_CHANNEL = # just put channel id dont add ""
+DB_CHANNEL = -1002558171315 # just put channel id dont add ""
# Multiple Database Channels (can be set via bot settings)
# DB_CHANNELS = {
# "-1002595092736": {"name": "Primary DB", "is_primary": True, "is_active": True},
@@ -33,22 +33,22 @@
# Auto Delete Timer (seconds)
AUTO_DEL = 300
# Admin IDs
-ADMINS = [6497757690, 6103092779]
+ADMINS = [6123108288]
# Bot Settings
DISABLE_BTN = True
PROTECT = True
# Messages Configuration
MESSAGES = {
- "START": "›› ʜᴇʏ!!, {first} ~ ʟᴏᴠᴇ ᴘᴏʀɴʜᴡᴀ? ɪ ᴀᴍ ᴍᴀᴅᴇ ᴛᴏ ʜᴇʟᴘ ʏᴏᴜ ᴛᴏ ғɪɴᴅ ᴡʜᴀᴛ ʏᴏᴜ aʀᴇ ʟᴏᴏᴋɪɴɢ ꜰᴏʀ.
",
+ "START": "›› ʜᴇʏ!!, {first} ~ ʟᴏᴠᴇ ᴘᴏʀɴ? ɪ ᴀᴍ ᴍᴀᴅᴇ ᴛᴏ ʜᴇʟᴘ ʏᴏᴜ ᴛᴏ ғɪɴᴅ ᴡʜᴀᴛ ʏᴏᴜ aʀᴇ ʟᴏᴏᴋɪɴɢ ꜰᴏʀ.
",
"FSUB": "›› ʜᴇʏ ×
\n ʏᴏᴜʀ ғɪʟᴇ ɪs ʀᴇᴀᴅʏ ‼️ ʟᴏᴏᴋs ʟɪᴋᴇ ʏᴏᴜ ʜᴀᴠᴇɴ'ᴛ sᴜʙsᴄʀɪʙᴇᴅ ᴛᴏ ᴏᴜʀ ᴄʜᴀɴɴᴇʟs ʏᴇᴛ, sᴜʙsᴄʀɪʙᴇ ɴᴏᴡ ᴛᴏ ɢᴇᴛ ʏᴏᴜʀ ғɪʟᴇs",
- "ABOUT": "›› ғᴏʀ ᴍᴏʀᴇ: @Nova_Flix \n ›› ᴜᴘᴅᴀᴛᴇs ᴄʜᴀɴɴᴇʟ: Cʟɪᴄᴋ ʜᴇʀᴇ \n›› ᴏᴡɴᴇʀ: @ProYato\n›› ʟᴀɴɢᴜᴀɢᴇ: Pʏᴛʜᴏɴ 3 \n›› ʟɪʙʀᴀʀʏ: Pʏʀᴏɢʀᴀᴍ ᴠ2 \n›› ᴅᴀᴛᴀʙᴀsᴇ: Mᴏɴɢᴏ ᴅʙ \n›› ᴅᴇᴠᴇʟᴏᴘᴇʀ: @cosmic_freak
",
- "REPLY": "For More Join - @Hanime_Arena",
+ "ABOUT": "◈ ᴏᴡɴᴇʀ : ɪᴍ•Ꮪᴜ͢ᴋᴜɴᴀ\n◈ ꜰᴏᴜɴᴅᴇʀ ᴏꜰ : ɪɴғɪɴɪx sʏɴᴅɪᴄᴀᴛᴇ\n◈ ᴍᴏᴠɪᴇs ᴄʜᴀɴɴᴇʟ : ɪɴғɪɴɪx ᴍᴏᴠɪᴇs\n◈ ᴅᴇᴠᴇʟᴏᴘᴇʀ : Sᴜᴋᴜɴᴀ
",
+ "REPLY": "For More Join - @Infinix_Adult",
"SHORT_MSG": "📊 ʜᴇʏ {first}, \n\n‼️ ɢᴇᴛ ᴀʟʟ ꜰɪʟᴇꜱ ɪɴ ᴀ ꜱɪɴɢʟᴇ ʟɪɴᴋ ‼️\n\n ⌯ ʏᴏᴜʀ ʟɪɴᴋ ɪꜱ ʀᴇᴀᴅʏ, ᴋɪɴᴅʟʏ ᴄʟɪᴄᴋ ᴏɴ ᴏᴘᴇɴ ʟɪɴᴋ ʙᴜᴛᴛᴏɴ..",
- "START_PHOTO": "https://graph.org/file/510affa3d4b6c911c12e3.jpg",
- "FSUB_PHOTO": "https://telegra.ph/file/7a16ef7abae23bd238c82-b8fbdcb05422d71974.jpg",
- "SHORT_PIC": "https://telegra.ph/file/7a16ef7abae23bd238c82-b8fbdcb05422d71974.jpg",
- "SHORT": "https://telegra.ph/file/8aaf4df8c138c6685dcee-05d3b183d4978ec347.jpg"
+ "START_PHOTO": "https://i.ibb.co/GvJsGpyL/x.jpg",
+ "FSUB_PHOTO": "https://i.ibb.co/GvJsGpyL/x.jpg",
+ "SHORT_PIC": "https://i.ibb.co/GvJsGpyL/x.jpg",
+ "SHORT": "https://i.ibb.co/GvJsGpyL/x.jpg"
}
def LOGGER(name: str, client_name: str) -> logging.Logger:
diff --git a/helper/helper_func.py b/helper/helper_func.py
index 51b14fcb..e218268d 100644
--- a/helper/helper_func.py
+++ b/helper/helper_func.py
@@ -480,7 +480,7 @@ async def batch_auto_del_notification(bot_username, messages, delay_time, transf
# Update notification with get files button
try:
- if transfer_link:
+ if transfer_link and getattr(client, 'get_files_btn', True):
try:
name = "• ɢᴇᴛ ғɪʟᴇs •"
link = f"https://t.me/{bot_username}?start={transfer_link}"
diff --git a/plugins/channel_post.py b/plugins/channel_post.py
index d4f6b61a..35aa5fed 100644
--- a/plugins/channel_post.py
+++ b/plugins/channel_post.py
@@ -3,7 +3,7 @@
from pyrogram.types import Message, InlineKeyboardMarkup, InlineKeyboardButton
from pyrogram.errors import FloodWait
from helper.helper_func import encode
-
+import re
#===============================================================#
@Client.on_message(filters.private & ~filters.command(['start', 'shortner','users','broadcast','batch','genlink','stats', 'pbroadcast', 'db', 'adddb', 'add_db', 'removedb', 'rm_db', 'ban', 'unban', 'addpremium', 'delpremium', 'premiumusers', 'request', 'profile']))
@@ -54,6 +54,3 @@ async def new_post(client: Client, message: Message):
pass
-
-
-
diff --git a/plugins/settings.py b/plugins/settings.py
index 66e6e5b4..04d1623b 100644
--- a/plugins/settings.py
+++ b/plugins/settings.py
@@ -65,6 +65,8 @@ async def settings_page_2(client, query):
›› **ᴀᴜᴛᴏ ᴅᴇʟᴇᴛᴇ ᴛɪᴍᴇʀ:** `{client.auto_del}`
›› **ᴘʀᴏᴛᴇᴄᴛ ᴄᴏɴᴛᴇɴᴛ:** `{"✓ ᴛʀᴜᴇ" if client.protect else "✗ ꜰᴀʟsᴇ"}`
›› **ᴅɪsᴀʙʟᴇ ʙᴜᴛᴛᴏɴ:** `{"✓ ᴛʀᴜᴇ" if client.disable_btn else "✗ ꜰᴀʟsᴇ"}`
+›› **ᴀᴜᴛᴏ ᴡᴀᴛᴇʀᴍᴀʀᴋ:** `{"✓ ᴛʀᴜᴇ" if getattr(client, 'auto_watermark', True) else "✗ ꜰᴀʟsᴇ"}`
+›› **ɢᴇᴛ ꜰɪʟᴇs ʙᴛɴ:** `{"✓ ᴛʀᴜᴇ" if getattr(client, 'get_files_btn', True) else "✗ ꜰᴀʟsᴇ"}`
›› **ʀᴇᴘʟʏ ᴛᴇxᴛ:** `{client.reply_text if client.reply_text else 'ɴᴏɴᴇ'}`
›› **ᴀᴅᴍɪɴs:** `{len(client.admins)}`
›› **sʜᴏʀᴛɴᴇʀ ᴜʀʟ:** `{getattr(client, 'short_url', 'ɴᴏᴛ sᴇᴛ')}`
@@ -83,6 +85,7 @@ async def settings_page_2(client, query):
reply_markup = InlineKeyboardMarkup([
[InlineKeyboardButton('ᴘʀᴏᴛᴇᴄᴛ ᴄᴏɴᴛᴇɴᴛ', 'protect'), InlineKeyboardButton('ᴘʜᴏᴛᴏs', 'photos')],
[InlineKeyboardButton('ᴛᴇxᴛs', 'texts'), InlineKeyboardButton('sʜᴏʀᴛɴᴇʀ', 'shortner')],
+ [InlineKeyboardButton('ᴀᴜᴛᴏ ᴡᴀᴛᴇʀᴍᴀʀᴋ', 'toggle_watermark'), InlineKeyboardButton('ɢᴇᴛ ꜰɪʟᴇs ʙᴛɴ', 'toggle_get_files')],
[InlineKeyboardButton('‹ ᴘʀᴇᴠ', 'settings'), InlineKeyboardButton('ʜᴏᴍᴇ', 'home')]
])
await query.message.edit_text(msg, reply_markup=reply_markup)
@@ -474,6 +477,23 @@ async def protect(client, query):
#===============================================================#
+@Client.on_callback_query(filters.regex("^toggle_get_files$"))
+async def toggle_get_files(client, query):
+ current = getattr(client, 'get_files_btn', True)
+ client.get_files_btn = not current
+ return await settings_page_2(client, query)
+
+#===============================================================#
+
+@Client.on_callback_query(filters.regex("^toggle_watermark$"))
+async def toggle_watermark(client, query):
+ current = getattr(client, 'auto_watermark', True)
+ client.auto_watermark = not current
+ await client.mongodb.update_bot_setting('auto_watermark', client.auto_watermark)
+ return await settings_page_2(client, query)
+
+#===============================================================#
+
@Client.on_callback_query(filters.regex("^auto_del$"))
async def auto_del(client, query):
msg = f"""
**Change Auto Delete Time:**diff --git a/plugins/shortner.py b/plugins/shortner.py index 34418532..8da8c386 100644 --- a/plugins/shortner.py +++ b/plugins/shortner.py @@ -1,6 +1,7 @@ import requests import random import string +import base64 from config import SHORT_URL, SHORT_API, MESSAGES from pyrogram import Client, filters from pyrogram.types import Message, InlineKeyboardMarkup, InlineKeyboardButton, CallbackQuery, InputMediaPhoto @@ -36,9 +37,21 @@ def get_short(url, client): rjson = response.json() if rjson.get("status") == "success" and response.status_code == 200: - short_url = rjson.get("shortenedUrl", url) - shortened_urls_cache[url] = short_url - return short_url + # Get the original shortener link (lksfy.com) + original_short_link = rjson.get("shortenedUrl", url) + + # --- CUSTOM DOMAIN REDIRECT LOGIC --- + # 1. Encode the lksfy link to Base64 + encoded_link = base64.b64encode(original_short_link.encode("utf-8")).decode("utf-8") + + # 2. Build the new sukuna.site link + secure_domain_link = f"https://sukuna.site/?to={encoded_link}" + + # 3. Save to cache and return the new custom domain link + shortened_urls_cache[url] = secure_domain_link + return secure_domain_link + # ------------------------------------ + except Exception as e: print(f"[Shortener Error] {e}") diff --git a/plugins/start.py b/plugins/start.py index 29ff4000..fe6fdd19 100644 --- a/plugins/start.py +++ b/plugins/start.py @@ -6,6 +6,7 @@ from plugins.shortner import get_short from helper.helper_func import get_messages, force_sub, decode, batch_auto_del_notification import asyncio +import re #===============================================================# @@ -69,7 +70,7 @@ async def start_command(client: Client, message: Message): InlineKeyboardButton("ᴛᴜᴛᴏʀɪᴀʟ •", url=tutorial_link) ], [ - InlineKeyboardButton(" • ʙᴜʏ ᴘʀᴇᴍɪᴜᴍ •", url="https://t.me/Premium_Fliix/21") + InlineKeyboardButton(" • ʙᴜʏ ᴘʀᴇᴍɪᴜᴍ •", url="https://t.me/Infinix_Adult/27") ] ]) ) @@ -161,7 +162,7 @@ async def start_command(client: Client, message: Message): return await message.reply("⚠️ Invalid or expired link.") # 7. Get messages from the specific source channel first - temp_msg = await message.reply("Wait A Sec..") + temp_msg = await message.reply("⏳") messages = [] try: @@ -206,12 +207,15 @@ async def start_command(client: Client, message: Message): yugen_msgs = [] for msg in messages: - caption = ( - client.messages.get('CAPTION', '').format( - previouscaption=msg.caption.html if msg.caption else msg.document.file_name - ) if bool(client.messages.get('CAPTION', '')) and bool(msg.document) - else ("" if not msg.caption else msg.caption.html) - ) + if getattr(client, 'auto_watermark', True): + caption = ( + client.messages.get('CAPTION', '').format( + previouscaption=msg.caption.html if msg.caption else msg.document.file_name + ) if bool(client.messages.get('CAPTION', '')) and bool(msg.document) + else ("" if not msg.caption else msg.caption.html) + ) + else: + caption = "" if not msg.caption else msg.caption.html reply_markup = msg.reply_markup if not client.disable_btn else None try: @@ -237,8 +241,8 @@ async def start_command(client: Client, message: Message): # 8. Auto delete timer if messages and client.auto_del > 0: - # Create transfer link for getting files again (original base64_string) - transfer_link = original_payload + # Create transfer link with the raw base64 string to force the shortener ad again + transfer_link = base64_string # Start batch auto delete notification - single notification for all files asyncio.create_task(batch_auto_del_notification( @@ -296,7 +300,7 @@ async def request_command(client: Client, message: Message): return if not is_user_premium: - BUTTON_URL = "https://t.me/hanime_arena/5" + BUTTON_URL = "https://t.me/Infinix_Adult/27" reply_markup = InlineKeyboardMarkup([ [InlineKeyboardButton("💎 Upgrade to Premium", url=BUTTON_URL)] ]) diff --git a/yato.session b/yato.session new file mode 100644 index 00000000..4bad7148 Binary files /dev/null and b/yato.session differ