├── Bikash.py ├── Dockerfile ├── Installer ├── README.md ├── app.json └── heroku.yml /Bikash.py: -------------------------------------------------------------------------------- 1 | from pyrogram import Client, filters, idle 2 | from pyrogram.types import * 3 | from pymongo import MongoClient 4 | from pyrogram import enums 5 | import requests 6 | import random 7 | import os 8 | import re 9 | 10 | 11 | API_ID = os.environ.get("API_ID", "none") 12 | API_HASH = os.environ.get("API_HASH", "none") 13 | BOT_TOKEN = os.environ.get("BOT_TOKEN", "none") 14 | MONGO_URL = os.environ.get("MONGO_URL", "none") 15 | BOT_IMAGE = os.environ.get("BOT_IMAGE", "none") 16 | BOT_USERNAME = os.environ.get("BOT_USERNAME", "none") 17 | OWNER_USERNAME = os.environ.get("OWNER_USERNAME", "none") 18 | SUPPORT_GROUP = os.environ.get("SUPPORT_GROUP", "none") 19 | UPDATES_CHANNEL = os.environ.get("UPDATES_CHANNEL", "none") 20 | 21 | 22 | bot = Client( 23 | "V_Chat_Bot" , 24 | api_id = API_ID, 25 | api_hash = API_HASH , 26 | bot_token = BOT_TOKEN 27 | ) 28 | 29 | 30 | async def is_admins(chat_id: int): 31 | return [ 32 | member.user.id 33 | async for member in bot.get_chat_members( 34 | chat_id, filter="administrators" 35 | ) 36 | ] 37 | 38 | 39 | @bot.on_message(filters.command("start") & filters.private) 40 | async def start_(client: Client, message: Message): 41 | await message.reply_photo( 42 | photo=f"{BOT_IMAGE}", 43 | caption=f"""**━━━━━━━━━━━━━━━━━━━━━━━━ 44 | 💥 𝐇𝐢 𝐈'𝐦 𝐀 𝐀𝐝𝐯𝐚𝐧𝐜𝐞 𝐂𝐡𝐚𝐭 𝐁𝐨𝐭 🌷.\n\n📌 𝐌𝐲 𝐍𝐚𝐦𝐞 𝐈𝐬 𝐕 𝐂𝐡𝐚𝐭 𝐁𝐨𝐭 🌷 𝐅𝐨𝐫𝐦 𝐈𝐧𝐝𝐢𝐚 🇮🇳 \n\n🌷 𝐈'𝐦 𝐀 𝐀𝐫𝐭𝐢𝐟𝐢𝐜𝐢𝐚𝐥 𝐈𝐧𝐭𝐞𝐥𝐥𝐢𝐠𝐞𝐧𝐜𝐞 🌷\n\n /chatbot - [on|off] 𝐓𝐡𝐢𝐬 𝐂𝐨𝐦𝐦𝐚𝐧𝐝 𝐔𝐬𝐞 𝐎𝐧𝐥𝐲 𝐀𝐧𝐲 𝐆𝐫𝐨𝐮𝐩 45 | 46 | ┏━━━━━━━━━━━━━━━━━┓ 47 | ┣❥︎ ♕︎𝐎𝐰𝐧𝐞𝐫♕︎ » [𝐂𝐥𝐢𝐜𝐤 𝐇𝐞𝐫𝐞](https://t.me/{OWNER_USERNAME}) 48 | ┣❥︎ 𝐔𝐩𝐝𝐚𝐭𝐞𝐬 ➪ » [𝐂𝐥𝐢𝐜𝐤 𝐇𝐞𝐫𝐞](https://t.me/{UPDATES_CHANNEL}) 49 | ┣❥︎ 𝐒𝐮𝐩𝐩𝐨𝐫𝐭 ➪ » [𝐂𝐥𝐢𝐜𝐤 𝐇𝐞𝐫𝐞](https://t.me/{SUPPORT_GROUP}) 50 | ┣❥︎ 𝐂𝐫𝐞𝐚𝐭𝐨𝐫 ➪ » [𝐁𝐢𝐤𝐚𝐬𝐡](https://t.me/BikashHalder) 51 | ┗━━━━━━━━━━━━━━━━━┛ 52 | 53 | 💞 𝐉𝐮𝐬𝐭 𝐀𝐝𝐝 𝐌𝐞 » 𝐓𝐨 𝐘𝐨𝐮𝐫 𝐆𝐫𝐨𝐮𝐩 𝐀𝐧𝐝 54 | 𝐄𝐧𝐣𝐨𝐲 𝐒𝐮𝐩𝐞𝐫 𝐐𝐮𝐚𝐥𝐢𝐭𝐲 ❥︎𝐂𝐡𝐚𝐭. 55 | ━━━━━━━━━━━━━━━━━━━━━━━━**""", 56 | reply_markup=InlineKeyboardMarkup( 57 | [ 58 | [ 59 | InlineKeyboardButton( 60 | "➕ ❰ 𝐀𝐝𝐝 𝐌𝐞 𝐓𝐨 𝐘𝐨𝐮𝐫 𝐆𝐫𝐨𝐮𝐩 ❱ ➕", url=f"https://t.me/{BOT_USERNAME}?startgroup=true") 61 | ] 62 | 63 | ] 64 | ), 65 | ) 66 | 67 | 68 | @bot.on_message(filters.command(["/start", f"start@{BOT_USERNAME}", "/alive", ".alive", "#bikash", "#aditya"]) & filters.group) 69 | async def start(client: Client, message: Message): 70 | await message.reply_photo( 71 | photo=f"{BOT_IMAGE}", 72 | caption=f"""💥 𝐇𝐢! 𝐈'𝐦 𝐀 𝐀𝐝𝐯𝐚𝐧𝐜𝐞 𝐂𝐡𝐚𝐭 𝐁𝐨𝐭 🌷.\n\n📌 𝐌𝐲 𝐍𝐚𝐦𝐞 𝐈𝐬 𝐕 𝐁𝐨𝐭 🌷 𝐅𝐨𝐫𝐦 𝐈𝐧𝐝𝐢𝐚 🇮🇳 \n\n🌷 𝐈'𝐦 𝐀 𝐀𝐫𝐭𝐢𝐟𝐢𝐜𝐢𝐚𝐥 𝐈𝐧𝐭𝐞𝐥𝐥𝐢𝐠𝐞𝐧𝐜𝐞 🌷\n\n𝐀𝐧𝐲 𝐏𝐫𝐨𝐛𝐥𝐞𝐦 𝐓𝐨 [𝐑𝐞𝐩𝐨𝐫𝐭](https://t.me/{SUPPORT_GROUP}) 🥀\n\n[𝐔𝐩𝐝𝐚𝐭𝐞𝐬](https://t.me/{UPDATES_CHANNEL}) 🌷\n\n /chatbot - [on|off]""", 73 | reply_markup=InlineKeyboardMarkup( 74 | [ 75 | [ 76 | InlineKeyboardButton( 77 | " 💥 𝐉𝐨𝐢𝐧 𝐎𝐮𝐫 𝐂𝐡𝐚𝐭 𝐆𝐫𝐨𝐮𝐩 💞", url=f"https://t.me/bgt_chat") 78 | ] 79 | ] 80 | ), 81 | ) 82 | 83 | 84 | 85 | @bot.on_message( 86 | filters.command("chatbot off", prefixes=["/", ".", "?", "-"]) 87 | & ~filters.private) 88 | async def chatbotofd(client, message): 89 | vdb = MongoClient(MONGO_URL) 90 | v = vdb["vDb"]["v"] 91 | if message.from_user: 92 | user = message.from_user.id 93 | chat_id = message.chat.id 94 | if user not in ( 95 | await is_admins(chat_id) 96 | ): 97 | return await message.reply_text( 98 | "💥 𝐇𝐞𝐲 𝐘𝐨𝐮 𝐀𝐫𝐞 𝐍𝐨𝐭 𝐀 𝐀𝐝𝐦𝐢𝐧 💥" 99 | ) 100 | is_v = v.find_one({"chat_id": message.chat.id}) 101 | if not is_v: 102 | v.insert_one({"chat_id": message.chat.id}) 103 | await message.reply_text(f"🌷 𝐕 𝐂𝐡𝐚𝐭𝐛𝐨𝐭 𝐃𝐢𝐬𝐚𝐛𝐥𝐞𝐝 🥀!\n\n𝐀𝐧𝐲 𝐏𝐫𝐨𝐛𝐥𝐞𝐦 𝐓𝐨 [𝐑𝐞𝐩𝐨𝐫𝐭](https://t.me/{SUPPORT_GROUP}) 🥀\n\n[𝐔𝐩𝐝𝐚𝐭𝐞𝐬](https://t.me/{UPDATES_CHANNEL}) 🌷") 104 | if is_v: 105 | await message.reply_text(f"🌷𝐕 𝐂𝐡𝐚𝐭𝐛𝐨𝐭 𝐈𝐬 𝐀𝐥𝐫𝐞𝐚𝐝𝐭 𝐃𝐢𝐬𝐚𝐛𝐥𝐞𝐝 🥀!\n\n𝐀𝐧𝐲 𝐏𝐫𝐨𝐛𝐥𝐞𝐦 𝐓𝐨 [𝐑𝐞𝐩𝐨𝐫𝐭](https://t.me/{SUPPORT_GROUP}) 🥀\n\n[𝐔𝐩𝐝𝐚𝐭𝐞𝐬](https://t.me/{UPDATES_CHANNEL}) 🌷") 106 | 107 | 108 | @bot.on_message( 109 | filters.command("chatbot on", prefixes=["/", ".", "?", "-"]) 110 | & ~filters.private) 111 | async def chatboton(client, message): 112 | vdb = MongoClient(MONGO_URL) 113 | v = vdb["vDb"]["v"] 114 | if message.from_user: 115 | user = message.from_user.id 116 | chat_id = message.chat.id 117 | if user not in ( 118 | await is_admins(chat_id) 119 | ): 120 | return await message.reply_text( 121 | "You are not admin" 122 | ) 123 | is_v = v.find_one({"chat_id": message.chat.id}) 124 | if not is_v: 125 | await message.reply_text(f"💥 𝐕 𝐂𝐡𝐚𝐭𝐛𝐨𝐭 𝐈𝐬 𝐀𝐥𝐫𝐞𝐚𝐝𝐲𝐄𝐧𝐚𝐛𝐥𝐞𝐝🌷!\n\n𝐀𝐧𝐲 𝐏𝐫𝐨𝐛𝐥𝐞𝐦 𝐓𝐨 [𝐑𝐞𝐩𝐨𝐫𝐭](https://t.me/{SUPPORT_GROUP}) 🥀\n\n[𝐔𝐩𝐝𝐚𝐭𝐞𝐬](https://t.me/{UPDATES_CHANNEL}) 🌷") 126 | if is_v: 127 | v.delete_one({"chat_id": message.chat.id}) 128 | await message.reply_text(f"💥 𝐕 𝐂𝐡𝐚𝐭𝐛𝐨𝐭 𝐈𝐬 𝐄𝐧𝐚𝐛𝐥𝐞𝐝 🌷!\n\n𝐀𝐧𝐲 𝐏𝐫𝐨𝐛𝐥𝐞𝐦 𝐓𝐨 [𝐑𝐞𝐩𝐨𝐫𝐭](https://t.me/{SUPPORT_GROUP}) 🥀\n\n[𝐔𝐩𝐝𝐚𝐭𝐞𝐬](https://t.me/{UPDATES_CHANNEL}) 🌷") 129 | 130 | 131 | @bot.on_message( 132 | filters.command("chatbot", prefixes=["/", ".", "?", "-"]) 133 | & ~filters.private) 134 | async def chatbot(client, message): 135 | await message.reply_text(f"**🇮🇳 𝐔𝐬𝐚𝐠𝐞 🌷 :**\n/chatbot [on|off] 𝐎𝐧𝐥𝐲 𝐆𝐫𝐨𝐮𝐩 🇮🇳 !\n\n𝐀𝐧𝐲 𝐏𝐫𝐨𝐛𝐥𝐞𝐦 𝐓𝐨 [𝐑𝐞𝐩𝐨𝐫𝐭](https://t.me/{SUPPORT_GROUP}) 🥀\n\n[𝐔𝐩𝐝𝐚𝐭𝐞𝐬](https://t.me/{UPDATES_CHANNEL}) 🌷") 136 | 137 | 138 | @bot.on_message( 139 | ( 140 | filters.text 141 | | filters.sticker 142 | ) 143 | & ~filters.private 144 | & ~filters.bot, 145 | ) 146 | async def vai(client: Client, message: Message): 147 | 148 | chatdb = MongoClient(MONGO_URL) 149 | chatai = chatdb["Word"]["WordDb"] 150 | 151 | if not message.reply_to_message: 152 | vdb = MongoClient(MONGO_URL) 153 | v = vdb["vDb"]["v"] 154 | is_v = v.find_one({"chat_id": message.chat.id}) 155 | if not is_v: 156 | await bot.send_chat_action(message.chat.id, enums.ChatAction.TYPING) 157 | K = [] 158 | is_chat = chatai.find({"word": message.text}) 159 | k = chatai.find_one({"word": message.text}) 160 | if k: 161 | for x in is_chat: 162 | K.append(x['text']) 163 | hey = random.choice(K) 164 | is_text = chatai.find_one({"text": hey}) 165 | Yo = is_text['check'] 166 | if Yo == "sticker": 167 | await message.reply_sticker(f"{hey}") 168 | if not Yo == "sticker": 169 | await message.reply_text(f"{hey}") 170 | 171 | if message.reply_to_message: 172 | vdb = MongoClient(MONGO_URL) 173 | v = vdb["vDb"]["v"] 174 | is_v = v.find_one({"chat_id": message.chat.id}) 175 | getme = await bot.get_me() 176 | bot_id = getme.id 177 | if message.reply_to_message.from_user.id == bot_id: 178 | if not is_v: 179 | await bot.send_chat_action(message.chat.id, enums.ChatAction.TYPING) 180 | K = [] 181 | is_chat = chatai.find({"word": message.text}) 182 | k = chatai.find_one({"word": message.text}) 183 | if k: 184 | for x in is_chat: 185 | K.append(x['text']) 186 | hey = random.choice(K) 187 | is_text = chatai.find_one({"text": hey}) 188 | Yo = is_text['check'] 189 | if Yo == "sticker": 190 | await message.reply_sticker(f"{hey}") 191 | if not Yo == "sticker": 192 | await message.reply_text(f"{hey}") 193 | if not message.reply_to_message.from_user.id == bot_id: 194 | if message.sticker: 195 | is_chat = chatai.find_one({"word": message.reply_to_message.text, "id": message.sticker.file_unique_id}) 196 | if not is_chat: 197 | chatai.insert_one({"word": message.reply_to_message.text, "text": message.sticker.file_id, "check": "sticker", "id": message.sticker.file_unique_id}) 198 | if message.text: 199 | is_chat = chatai.find_one({"word": message.reply_to_message.text, "text": message.text}) 200 | if not is_chat: 201 | chatai.insert_one({"word": message.reply_to_message.text, "text": message.text, "check": "none"}) 202 | 203 | 204 | @bot.on_message( 205 | ( 206 | filters.sticker 207 | | filters.text 208 | ) 209 | & ~filters.private 210 | & ~filters.bot, 211 | ) 212 | async def vstickerai(client: Client, message: Message): 213 | 214 | chatdb = MongoClient(MONGO_URL) 215 | chatai = chatdb["Word"]["WordDb"] 216 | 217 | if not message.reply_to_message: 218 | vdb = MongoClient(MONGO_URL) 219 | v = vdb["vDb"]["v"] 220 | is_v = v.find_one({"chat_id": message.chat.id}) 221 | if not is_v: 222 | await bot.send_chat_action(message.chat.id, enums.ChatAction.TYPING) 223 | K = [] 224 | is_chat = chatai.find({"word": message.sticker.file_unique_id}) 225 | k = chatai.find_one({"word": message.text}) 226 | if k: 227 | for x in is_chat: 228 | K.append(x['text']) 229 | hey = random.choice(K) 230 | is_text = chatai.find_one({"text": hey}) 231 | Yo = is_text['check'] 232 | if Yo == "text": 233 | await message.reply_text(f"{hey}") 234 | if not Yo == "text": 235 | await message.reply_sticker(f"{hey}") 236 | 237 | if message.reply_to_message: 238 | vdb = MongoClient(MONGO_URL) 239 | v = vdb["vDb"]["v"] 240 | is_v = v.find_one({"chat_id": message.chat.id}) 241 | getme = await bot.get_me() 242 | bot_id = getme.id 243 | if message.reply_to_message.from_user.id == bot_id: 244 | if not is_v: 245 | await bot.send_chat_action(message.chat.id, enums.ChatAction.TYPING) 246 | K = [] 247 | is_chat = chatai.find({"word": message.text}) 248 | k = chatai.find_one({"word": message.text}) 249 | if k: 250 | for x in is_chat: 251 | K.append(x['text']) 252 | hey = random.choice(K) 253 | is_text = chatai.find_one({"text": hey}) 254 | Yo = is_text['check'] 255 | if Yo == "text": 256 | await message.reply_text(f"{hey}") 257 | if not Yo == "text": 258 | await message.reply_sticker(f"{hey}") 259 | if not message.reply_to_message.from_user.id == bot_id: 260 | if message.text: 261 | is_chat = chatai.find_one({"word": message.reply_to_message.sticker.file_unique_id, "text": message.text}) 262 | if not is_chat: 263 | toggle.insert_one({"word": message.reply_to_message.sticker.file_unique_id, "text": message.text, "check": "text"}) 264 | if message.sticker: 265 | is_chat = chatai.find_one({"word": message.reply_to_message.sticker.file_unique_id, "text": message.sticker.file_id}) 266 | if not is_chat: 267 | chatai.insert_one({"word": message.reply_to_message.sticker.file_unique_id, "text": message.sticker.file_id, "check": "none"}) 268 | 269 | 270 | 271 | @bot.on_message( 272 | ( 273 | filters.text 274 | | filters.sticker 275 | ) 276 | & filters.private 277 | & ~filters.bot, 278 | ) 279 | async def vprivate(client: Client, message: Message): 280 | 281 | chatdb = MongoClient(MONGO_URL) 282 | chatai = chatdb["Word"]["WordDb"] 283 | if not message.reply_to_message: 284 | await bot.send_chat_action(message.chat.id, enums.ChatAction.TYPING) 285 | K = [] 286 | is_chat = chatai.find({"word": message.text}) 287 | for x in is_chat: 288 | K.append(x['text']) 289 | hey = random.choice(K) 290 | is_text = chatai.find_one({"text": hey}) 291 | Yo = is_text['check'] 292 | if Yo == "sticker": 293 | await message.reply_sticker(f"{hey}") 294 | if not Yo == "sticker": 295 | await message.reply_text(f"{hey}") 296 | if message.reply_to_message: 297 | getme = await bot.get_me() 298 | bot_id = getme.id 299 | if message.reply_to_message.from_user.id == bot_id: 300 | await bot.send_chat_action(message.chat.id, enums.ChatAction.TYPING) 301 | K = [] 302 | is_chat = chatai.find({"word": message.text}) 303 | for x in is_chat: 304 | K.append(x['text']) 305 | hey = random.choice(K) 306 | is_text = chatai.find_one({"text": hey}) 307 | Yo = is_text['check'] 308 | if Yo == "sticker": 309 | await message.reply_sticker(f"{hey}") 310 | if not Yo == "sticker": 311 | await message.reply_text(f"{hey}") 312 | 313 | 314 | @bot.on_message( 315 | ( 316 | filters.sticker 317 | | filters.text 318 | ) 319 | & filters.private 320 | & ~filters.bot, 321 | ) 322 | async def vprivatesticker(client: Client, message: Message): 323 | 324 | chatdb = MongoClient(MONGO_URL) 325 | chatai = chatdb["Word"]["WordDb"] 326 | if not message.reply_to_message: 327 | await bot.send_chat_action(message.chat.id, enums.ChatAction.TYPING) 328 | K = [] 329 | is_chat = chatai.find({"word": message.sticker.file_unique_id}) 330 | for x in is_chat: 331 | K.append(x['text']) 332 | hey = random.choice(K) 333 | is_text = chatai.find_one({"text": hey}) 334 | Yo = is_text['check'] 335 | if Yo == "text": 336 | await message.reply_text(f"{hey}") 337 | if not Yo == "text": 338 | await message.reply_sticker(f"{hey}") 339 | if message.reply_to_message: 340 | getme = await bot.get_me() 341 | bot_id = getme.id 342 | if message.reply_to_message.from_user.id == bot_id: 343 | await bot.send_chat_action(message.chat.id, enums.ChatAction.TYPING) 344 | K = [] 345 | is_chat = chatai.find({"word": message.sticker.file_unique_id}) 346 | for x in is_chat: 347 | K.append(x['text']) 348 | hey = random.choice(K) 349 | is_text = chatai.find_one({"text": hey}) 350 | Yo = is_text['check'] 351 | if Yo == "text": 352 | await message.reply_text(f"{hey}") 353 | if not Yo == "text": 354 | await message.reply_sticker(f"{hey}") 355 | 356 | bot.start() 357 | print("BGT CHAT BOT BOOTED SUCCESSFULLY") 358 | idle() 359 | -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | FROM python:latest 2 | RUN apt-get update && apt-get upgrade -y 3 | RUN pip3 install -U pip 4 | COPY . /bikash/ 5 | WORKDIR /bikash/ 6 | RUN pip3 install -U -r Installer 7 | CMD python3 Bikash.py 8 | -------------------------------------------------------------------------------- /Installer: -------------------------------------------------------------------------------- 1 | pyrogram 2 | pymongo 3 | requests 4 | dnspython 5 | tgcrypto 6 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ## About This Repository 2 | Best Smart Artificial intelligence Chat bot For Telegram Groups 3 | Click Below Picture To Open VChat Bot Owner Id... 4 | 5 | 6 |
7 | 8 | 9 | 10 | ### Deploy To Heroku 11 | 12 | [](https://dashboard.heroku.com/new?template=https://github.com/BikashhalderNew/BikashChatBot) 13 | 14 | 15 | ## Deploy 16 | 🌷 You can Deploy Easily Fork repo and Give Start 🌷 17 | 18 | ## 🥀 Bot Deploy On Workflow / (KAALI LINUX) 19 | At 1st Import This Repo Then Input All Value In Bikash.py || Then Proceed Kaali Linux Value Or Ect. 20 | 21 | ## 🥀 Kaali Linux Tutorial 22 | 23 | [Kaali Linux](https://youtu.be/_nZT5lhcL8U) 24 | 25 | ## 🥀 Chat Bot Deploy Tutorial On Kaali Linux 26 | 27 | [Kaali Linux](https://youtu.be/fFRxAG1mCVU) 28 | 29 | ## ⚒️ 𝐂𝐫𝐞𝐝𝐢𝐭 30 | [𝐁𝐢𝐤𝐚𝐬𝐡](https://t.me/BikashHalder) 31 | 32 | ## Telegram 🏪 33 | 34 | [](https://t.me/BGT_Chat) 35 | 36 | [](https://t.me/Bikashgadgetstech) 37 | 38 | ## YouTube 📺 39 | 40 | [YouTube Channel](https://youtube.com/channel/UCUkj6FFzdsOO5acUXVOEECg) 41 | 42 | 43 | #### 🥺 Copy Pasters You Can Copy This Repo But Must Give Credits ... 44 | 45 | ### 🌷 Owner Of This Repository 🇮🇳 46 | [](https://t.me/BikashHalder) 47 | 48 | 49 | #### Main Developer = [Bikash](https://t.me/BikashHalder) 50 | 51 | ## 💕 Special Thanks 52 | 53 | ✅ Aditya Halder Thanks For Fixed All Error Or Lovely Support 💕 54 | 55 | 56 | ## 🥀 Powered By [BikashHalder](https://t.me/Bikashhalder) & [AdityaHalder](https://t.me/Adityahalder) 57 | -------------------------------------------------------------------------------- /app.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "BikashRobot", 3 | "description": "A Telegram Best Artificial Intelligence Chat Bot , written in Python with Pyrogram", 4 | "logo": "https://te.legra.ph/file/f73af9a4ffe130a83d8d2.jpg", 5 | "stack": "container", 6 | "env": { 7 | "BOT_TOKEN": { 8 | "description": "Input Bot token here", 9 | "required": true 10 | }, 11 | "OWNER_USERNAME": { 12 | "description": "Input Owner Username here ( Without @)", 13 | "required": true 14 | }, 15 | "SUPPORT_GROUP": { 16 | "description": "Input support group username here ( Without @)", 17 | "required": true 18 | }, 19 | "UPDATES_CHANNEL": { 20 | "description": "Input updates channel username here ( Without @) ", 21 | "required": true 22 | }, 23 | "BOT_USERNAME": { 24 | "description": "Input Bot USERNAME here ( Without @)", 25 | "required": true 26 | }, 27 | "BOT_IMAGE": { 28 | "description": "Input Bot start pic link here", 29 | "required": true 30 | }, 31 | "MONGO_URL": { 32 | "description": "Input mongo db url here", 33 | "required": true 34 | }, 35 | "API_ID": { 36 | "description": "Input api id here", 37 | "required": true 38 | }, 39 | "API_HASH": { 40 | "description": "Input api hash here", 41 | "required": true 42 | } 43 | }, 44 | "buildpacks": [ 45 | { 46 | "url": "heroku/python" 47 | }, 48 | { 49 | "url": "https://github.com/jonathanong/heroku-buildpack-ffmpeg-latest.git" 50 | } 51 | ], 52 | "addons": [ 53 | { 54 | "plan": "heroku-postgresql" 55 | } 56 | ], 57 | "formation": { 58 | "worker": { 59 | "quantity": 1, 60 | "size": "eco" 61 | } 62 | } 63 | } 64 | -------------------------------------------------------------------------------- /heroku.yml: -------------------------------------------------------------------------------- 1 | build: 2 | docker: 3 | worker: Dockerfile 4 | run: 5 | worker: python3 Bikash.py --------------------------------------------------------------------------------