Telegram Bot to store Posts and Documents and it can Access by Special Links.

Overview

File-sharing-Bot


     

Telegram Bot to store Posts and Documents and it can Access by Special Links. I Guess This Will Be Usefull For Many People..... 😇 .

If you need any more modes in repo or If you find out any bugs, mention in @codexbotzsupport

Features

  • Fully customisable.
  • Customisable welcome messages.
  • More than one Posts in One Link.
  • Can be deployed on heroku directly.

Setup

  • Add the bot to Database Channel with all permission
  • Add bot to ForceSub channel as Admin with Invite Users via Link Permission if you enabled ForceSub

Installation

Deploy on Heroku

Deploy

Check This Tutorial Video on YouTube for any Help
Thanks to Erich and his InFoTel for this Video

Deploy in your VPS

git clone https://github.com/CodeXBotz/File-Sharing-Bot
cd File-Sharing-Bot
pip3 install -r requirements.txt
# <Create config.py appropriately>
python3 main.py

Admin Commands

/start - start the bot or get posts

/batch - create link for more than one posts

/genlink - create link for one post

Variables

  • API_HASH Your API Hash from my.telegram.org
  • API_ID Your API ID from my.telegram.org
  • TG_BOT_TOKEN Your bot token from @BotFather
  • OWNER_ID Must enter Your Telegram Id
  • CHANNEL_ID Your Channel ID eg:- -100xxxxxxxx
  • ADMINS Optional: A space separated list of user_ids of Admins, they can only create links
  • START_MESSAGE Optional: start message of bot, use HTML parsemode format
  • FORCE_SUB_CHANNEL Optional: ForceSub Channel ID, leave 0 if you want disable force sub

Support

Join Our Telegram Group For Support/Assistance And Our Channel For Updates.

Report Bugs, Give Feature Requests There..

Credits

  • Thanks To Dan For His Awsome Libary
  • Our Support Group Members

Licence

GNU GPLv3 Image

FILE-SHARING-BOT is Free Software: You can use, study share and improve it at your will. Specifically you can redistribute and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

Star this Repo if you Liked it

Comments
  • Source code violates the salesforce and cannot deploy in Heroku 🥺🥺🥺

    Source code violates the salesforce and cannot deploy in Heroku 🥺🥺🥺

    Hello Sir, Today I try to deploy File Sharing Bot in Heroku, but then there's a notification that said "We cannot deploy your app because the source code violates the Salesforce Acceptable Use and External-Facing Services Policy."

    image

    Please help me...

    opened by awanyuya 5
  • #OffTopic

    #OffTopic

    Hello @rahulps1000 Sir, there is no problem with the bot.

    I open this issue to ask you how can I use get.chat.member so that bot users can see the chat title they are subscribed to. And I don't want to enable force subscription on multiple channels. I just wanted to know if a bot user has joined some of my channels, I want to greet them by showing chat title.

    I asked in two big telegram group, but they sent me to read docs but docs don't have any information on how to use it to check user status in multiple chat at once. I have come across some repos which are using multiple force subscriber, I don't like that idea.

    I just want that if users are already in my channels, they will get a special greeting when they start the bot. e.g. if they are in one of my channels, message = thanks for joining {chat1} If they are two or more then the greeting should be like: Thanks for joining {chat1} {chat2} {chat3} ets.

    If you can help me in understanding this and how to implement this is my pyrogram bot, I will be thankful to you.

    Sorry if I wasted your time, you may delete this message.

    help wanted 
    opened by X-Uchiha 3
  • On new command

    On new command

    hello sir good afternoon

    I have deployed your advance file share bot for movies purpose and its great i appreciate but the only problem is that people kept send movie titles to the bot directly....which the bot doesn't support and i wanted the bot to auto respond every directs texts except the known commands with "❌Don't send me messages directly I'm only File Share bot! Search for movie file links here (channel link) to access me"

    if there is any string i can add on GitHub please help me

    enhancement 
    opened by Nempah 3
  • Issue with sqllchamy arg erro

    Issue with sqllchamy arg erro

    2022-07-20T03:07:43.095666+00:00 heroku[worker.1]: State changed from crashed to starting 2022-07-20T03:07:47.281447+00:00 heroku[worker.1]: Starting process with command python3 main.py 2022-07-20T03:07:47.871357+00:00 heroku[worker.1]: State changed from starting to up 2022-07-20T03:07:56.685015+00:00 app[worker.1]: Traceback (most recent call last): 2022-07-20T03:07:56.685033+00:00 app[worker.1]: File "/app/main.py", line 3, in 2022-07-20T03:07:56.685102+00:00 app[worker.1]: Bot().run() 2022-07-20T03:07:56.685110+00:00 app[worker.1]: File "/app/.heroku/python/lib/python3.10/site-packages/pyrogram/methods/utilities/run.py", line 54, in run 2022-07-20T03:07:56.685205+00:00 app[worker.1]: run(self.start()) 2022-07-20T03:07:56.685208+00:00 app[worker.1]: File "/app/.heroku/python/lib/python3.10/asyncio/base_events.py", line 646, in run_until_complete 2022-07-20T03:07:56.685359+00:00 app[worker.1]: return future.result() 2022-07-20T03:07:56.685361+00:00 app[worker.1]: File "/app/bot.py", line 24, in start 2022-07-20T03:07:56.685430+00:00 app[worker.1]: await super().start() 2022-07-20T03:07:56.685433+00:00 app[worker.1]: File "/app/.heroku/python/lib/python3.10/site-packages/pyrogram/methods/utilities/start.py", line 67, in start 2022-07-20T03:07:56.685506+00:00 app[worker.1]: await self.initialize() 2022-07-20T03:07:56.685508+00:00 app[worker.1]: File "/app/.heroku/python/lib/python3.10/site-packages/pyrogram/methods/auth/initialize.py", line 44, in initialize 2022-07-20T03:07:56.685577+00:00 app[worker.1]: self.load_plugins() 2022-07-20T03:07:56.685579+00:00 app[worker.1]: File "/app/.heroku/python/lib/python3.10/site-packages/pyrogram/client.py", line 723, in load_plugins 2022-07-20T03:07:56.685749+00:00 app[worker.1]: module = import_module(module_path) 2022-07-20T03:07:56.685759+00:00 app[worker.1]: File "/app/.heroku/python/lib/python3.10/importlib/init.py", line 126, in import_module 2022-07-20T03:07:56.685833+00:00 app[worker.1]: return _bootstrap._gcd_import(name[level:], package, level) 2022-07-20T03:07:56.685836+00:00 app[worker.1]: File "", line 1050, in _gcd_import 2022-07-20T03:07:56.685910+00:00 app[worker.1]: File "", line 1027, in _find_and_load 2022-07-20T03:07:56.685961+00:00 app[worker.1]: File "", line 1006, in _find_and_load_unlocked 2022-07-20T03:07:56.685998+00:00 app[worker.1]: File "", line 688, in _load_unlocked 2022-07-20T03:07:56.686041+00:00 app[worker.1]: File "", line 883, in exec_module 2022-07-20T03:07:56.686091+00:00 app[worker.1]: File "", line 241, in _call_with_frames_removed 2022-07-20T03:07:56.686150+00:00 app[worker.1]: File "/app/plugins/start.py", line 11, in 2022-07-20T03:07:56.686225+00:00 app[worker.1]: from database.sql import add_user, query_msg, full_userbase 2022-07-20T03:07:56.686227+00:00 app[worker.1]: File "/app/database/sql.py", line 18, in 2022-07-20T03:07:56.686287+00:00 app[worker.1]: SESSION = start() 2022-07-20T03:07:56.686289+00:00 app[worker.1]: File "/app/database/sql.py", line 11, in start 2022-07-20T03:07:56.686352+00:00 app[worker.1]: engine = create_engine(DB_URI, client_encoding="utf8") 2022-07-20T03:07:56.686353+00:00 app[worker.1]: File "/app/.heroku/python/lib/python3.10/site-packages/sqlalchemy/engine/init.py", line 525, in create_engine 2022-07-20T03:07:56.686510+00:00 app[worker.1]: return strategy.create(*args, **kwargs) 2022-07-20T03:07:56.686512+00:00 app[worker.1]: File "/app/.heroku/python/lib/python3.10/site-packages/sqlalchemy/engine/strategies.py", line 54, in create 2022-07-20T03:07:56.686582+00:00 app[worker.1]: u = url.make_url(name_or_url) 2022-07-20T03:07:56.686585+00:00 app[worker.1]: File "/app/.heroku/python/lib/python3.10/site-packages/sqlalchemy/engine/url.py", line 229, in make_url 2022-07-20T03:07:56.686680+00:00 app[worker.1]: return _parse_rfc1738_args(name_or_url) 2022-07-20T03:07:56.686683+00:00 app[worker.1]: File "/app/.heroku/python/lib/python3.10/site-packages/sqlalchemy/engine/url.py", line 290, in _parse_rfc1738_args 2022-07-20T03:07:56.686777+00:00 app[worker.1]: raise exc.ArgumentError( 2022-07-20T03:07:56.686817+00:00 app[worker.1]: sqlalchemy.exc.ArgumentError: Could not parse rfc1738 URL from string '' 2022-07-20T03:07:56.889589+00:00 heroku[worker.1]: Process exited with status 1 2022-07-20T03:07:56.991161+00:00 heroku[worker.1]: State changed from up to crashed

    opened by baba-code 3
  • how to make force sub more than one?

    how to make force sub more than one?

    I have 7 channels and 1 group, how do I get people to follow the seven channels and enter the group and then they can take the file . bts Thank you very much to the developers and everyone who has contributed to this program

    opened by ahnaffauzanorg 3
  • Error in heroku app

    Error in heroku app

    Error notif "We couldn't deploy your app because the source code violates the Salesforce Acceptable Use and External-Facing Services Policy." thank you

    opened by updutech 2
  • plugins/link_generator.py got an error

    plugins/link_generator.py got an error

    base64_string = base64_string.rstrip("=") is working but i think you didn't add the support to encode the string please add it now the bot is giving the safe url but it cannot decode it could you please give me your contact user id of telegram please replay

    opened by sarangsahajan 2
  • [400 CHANNEL_INVALID]: The channel parameter is invalid (caused by

    [400 CHANNEL_INVALID]: The channel parameter is invalid (caused by "channels.GetChannels")

    I want to deploy the File Sharing Bot Telegram on my vps linux debian 10.4 but the code is error when i run the main.py like in the log. Bot is already admin in channel force sub and db channel

    [email protected]:/home/dwiki/File-Sharing-Bot# python3 main.py 
    Pyrogram v1.2.18, Copyright (C) 2017-2021 Dan 
    Licensed under the terms of the GNU Lesser General Public License v3 or later (LGPLv3+)
    
    [16-Dec-21 16:19:43 - WARNING] - bot - [400 CHANNEL_INVALID]: The channel parameter is invalid (caused by "channels.GetChannels")
    [16-Dec-21 16:19:43 - WARNING] - bot - Bot can't Export Invite link from Force Sub Channel!
    [16-Dec-21 16:19:43 - WARNING] - bot - Please Double check the FORCE_SUB_CHANNEL value and Make sure Bot is Admin in channel with Invite Users via Link Permission, Current Force Sub Channel Value: -1001671790214
    [16-Dec-21 16:19:43 - INFO] - bot - 
    Bot Stopped. Join https://t.me/ CodeXBotzSupport for support
    

    IF i dont fill the FORCE_SUB

    The error log

    [email protected]:/home/dwiki/File-Sharing-Bot# python3 main.py 
    Pyrogram v1.2.18, Copyright (C) 2017-2021 Dan <https://github.com/delivrance>
    Licensed under the terms of the GNU Lesser General Public License v3 or later (LGPLv3+)
    
    [16-Dec-21 16:24:09 - WARNING] - bot - [400 CHANNEL_INVALID]: The channel parameter is invalid (caused by "channels.GetChannels")
    [16-Dec-21 16:24:09 - WARNING] - bot - Make Sure bot is Admin in DB Channel, and Double check the CHANNEL_ID Value, Current Value -1001671790214
    [16-Dec-21 16:24:09 - INFO] - bot - 
    Bot Stopped. Join https://t.me/CodeXBotzSupport for support
    
    opened by DwikiPermana 2
  • bot not working fine.

    bot not working fine.

    this bot used to work fine till 30 nov.

    but on 1st dec it stopped working. now only the channel admins are able to get content using the link generated by bot. previously any user with the special link was able to use bot

    here are the logs when other users try it

    [02-Dec-21 09:28:43 - ERROR] - pyrogram.dispatcher - 5048476112

    Traceback (most recent call last):

    File "/home/travis/virtualenv/python3.9.7/lib/python3.9/site-packages/pyrogram/dispatcher.py", line 191, in handler_worker

    await parser(update, users, chats)
    

    File "/home/travis/virtualenv/python3.9.7/lib/python3.9/site-packages/pyrogram/dispatcher.py", line 83, in message_parser

    return await pyrogram.types.Message._parse(
    

    File "/home/travis/virtualenv/python3.9.7/lib/python3.9/site-packages/pyrogram/types/messages_and_media/message.py", line 655, in _parse

    sender_chat = types.Chat._parse(client, message, users, chats) if not from_user else None
    

    File "/home/travis/virtualenv/python3.9.7/lib/python3.9/site-packages/pyrogram/types/user_and_chats/chat.py", line 243, in _parse

    return Chat._parse_user_chat(client, users[message.peer_id.user_id])
    

    KeyError: 5048476112

    opened by ShashiTharoor 2
  • broadcast.py

    broadcast.py

    (c) @AbirHasan2005

    import time import string import random import asyncio import datetime import aiofiles.os import traceback from configs import Config from helpers.database.access_db import db from pyrogram.types import Message from pyrogram.errors import FloodWait, InputUserDeactivated, UserIsBlocked, PeerIdInvalid

    broadcast_ids = {}

    async def send_msg(user_id, message): try: if Config.BROADCAST_AS_COPY is False: await message.forward(chat_id=user_id) elif Config.BROADCAST_AS_COPY is True: await message.copy(chat_id=user_id) return 200, None except FloodWait as e: await asyncio.sleep(e.x) return send_msg(user_id, message) except InputUserDeactivated: return 400, f"{user_id} : deactivated\n" except UserIsBlocked: return 400, f"{user_id} : blocked the bot\n" except PeerIdInvalid: return 400, f"{user_id} : user id invalid\n" except Exception as e: return 500, f"{user_id} : {traceback.format_exc()}\n"

    async def broadcast_handler(m: Message): all_users = await db.get_all_users() broadcast_msg = m.reply_to_message while True: broadcast_id = ''.join([random.choice(string.ascii_letters) for i in range(3)]) if not broadcast_ids.get(broadcast_id): break out = await m.reply_text( text=f"Broadcast Started! You will be notified with log file when all the users are notified." ) start_time = time.time() total_users = await db.total_users_count() done = 0 failed = 0 success = 0 broadcast_ids[broadcast_id] = dict( total=total_users, current=done, failed=failed, success=success ) async with aiofiles.open('broadcast.txt', 'w') as broadcast_log_file: async for user in all_users: sts, msg = await send_msg( user_id=int(user['id']), message=broadcast_msg ) if msg is not None: await broadcast_log_file.write(msg) if sts == 200: success += 1 else: failed += 1 if sts == 400: await db.delete_user(user['id']) done += 1 if broadcast_ids.get(broadcast_id) is None: break else: broadcast_ids[broadcast_id].update( dict( current=done, failed=failed, success=success ) ) if broadcast_ids.get(broadcast_id): broadcast_ids.pop(broadcast_id) completed_in = datetime.timedelta(seconds=int(time.time() - start_time)) await asyncio.sleep(3) await out.delete() if failed == 0: await m.reply_text( text=f"broadcast completed in {completed_in}\n\nTotal users {total_users}.\nTotal done {done}, {success} success and {failed} failed.", quote=True ) else: await m.reply_document( document='broadcast.txt', caption=f"broadcast completed in {completed_in}\n\nTotal users {total_users}.\nTotal done {done}, {success} success and {failed} failed.", quote=True ) await aiofiles.os.remove('broadcast.txt')

    opened by Thiyaku17 2
  • Help sir, im deployed on railway but... This happens

    Help sir, im deployed on railway but... This happens

    Traceback (most recent call last): File "main.py", line 3, in Bot().run() File "/usr/local/lib/python3.8/site-packages/pyrogram/methods/utilities/run.py", line 80, in run run(self.start()) File "/usr/local/lib/python3.8/asyncio/base_events.py", line 616, in run_until_complete return future.result() File "/app/bot.py", line 40, in start await super().start() File "/usr/local/lib/python3.8/site-packages/pyrogram/methods/utilities/start.py", line 74, in start await self.initialize() File "/usr/local/lib/python3.8/site-packages/pyrogram/methods/auth/initialize.py", line 46, in initialize self.load_plugins() File "/usr/local/lib/python3.8/site-packages/pyrogram/client.py", line 664, in load_plugins module = import_module(module_path) File "/usr/local/lib/python3.8/importlib/init.py", line 127, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "", line 1014, in _gcd_import File "", line 991, in _find_and_load File "", line 975, in _find_and_load_unlocked File "", line 671, in _load_unlocked File "", line 843, in exec_module File "", line 219, in _call_with_frames_removed File "/app/plugins/start.py", line 16, in from database.database import add_user, del_user, full_userbase, present_user File "/app/database/database.py", line 10, in dbclient = pymongo.MongoClient(DB_URI) File "/usr/local/lib/python3.8/site-packages/pymongo/mongo_client.py", line 736, in init res = uri_parser.parse_uri( File "/usr/local/lib/python3.8/site-packages/pymongo/uri_parser.py", line 478, in parse_uri raise InvalidURI( pymongo.errors.InvalidURI: Invalid URI scheme: URI must begin with 'mongodb://' or 'mongodb+srv://' Traceback (most recent call last): File "main.py", line 3, in Bot().run()

    opened by sasangeo 0
Releases(v10.4)
Owner
Code X Botz
Purpose of this Organisation is Making Maximum Useful Bots in Telegram. We will publish Open Source Projects here
Code X Botz
Senditapp.com bot spammer, spam your friends

Sendit Spammer Python ⚠️ I am not responsible for how you use this tool. This tool is against "Sendit" ToS and shall not be used in a production envir

Glaukio 1 Dec 31, 2021
An all-in-one financial analytics and smart portfolio creator as a Discord bot!

An all-in-one financial analytics bot to help you gain quantitative financial insights. Finn is a Discord Bot that lets you explore the stock market like you've never before!

6 Jan 12, 2022
数字货币动态趋势网格,随着行情变动。目前实盘月化10%。目前支持币安,未来上线火币、OKEX。

数字货币动态趋势网格,随着行情变动。目前实盘月化10%。目前支持币安,未来上线火币、OKEX。

幸福村的码农 98 Dec 27, 2022
Make low level API wrapper in fast, easy.

The lowrapper is a library for quickly and easily creating an environment for tapping the API without implementation.

tasuren 1 Oct 25, 2022
A discord bot that manages your server's hedge fund

Can't Hide Money Bot A discord bot that manages your server's hedge fund Installing Install wkhtmltopdf sudo apt-get install wkhtmltopdf OR brew insta

Kelvin Abrokwa-Johnson 0 Oct 16, 2021
Telegram bot implementing Lex Arcana using python-telegram-bot library.

Lex Arcana Telegram Bot 🤖 Telegram bot implementing Lex Arcana using python-telegram-bot library. This bot was evaluated for the course "Computer Eng

Nicolò Sonnino 6 Jun 22, 2022
Telegram bot that sends new offers from otomoto.pl

Telegram bot that sends new offers under certain filters from otomoto.pl How to use this bot? Install requirements with pip install -r requirements.tx

Mikhail Zanka 1 Feb 14, 2022
A simple Python script using Telethon to log all (or some) messages a user or bot account can see on Telegram.

telegram-logger A simple Python script using Telethon to log all (or some) messages a user or bot account can see on Telegram. Requirements Python 3.6

Richard 13 Oct 06, 2022
Bot playing "mathbattle" game from Telegram messenger

mathbattlebot Bot playing mathbattle game from Telegram messenger Installing: run in command line pip3 install -r requirements.txt Running: Example c

Egor 1 May 30, 2022
An open-source Discord bot that alerts your server when it's Funky Monkey Friday!

Funky-Monkey-Friday-Bot An open-source Discord bot that alerts your server when it's Funky Monkey Friday! Add it to your server here! https://discord.

Cole Swinford 0 Nov 10, 2022
A telegram bot that messages you available vaccine appointments in the Veneto region

Serenissimo, domande frequenti Chi sei? Sono Alberto Granzotto, libero professionista a Berlino. Mi occupo di servizi software, privacy, decentralizza

vrde 31 Sep 30, 2022
A bot written in python that send prefilled Google Forms. It supports multithreading for faster execution time.

GoogleFormsBot https://flassy.xyz https://github.com/Shawey/GoogleFormsBot Requirements: os (Default) ast (Default) threading (Default) configparser (

Shawey 1 Jul 10, 2022
Aria/qBittorrent Telegram mirror/leech bot

This Telegram Bot written in Python for mirroring files on the Internet to our Google Drive or Telegram. Based on python-aria-mirror-bot Features: qBi

Anas 2.1k Jan 04, 2023
This repository contains free labs for setting up an entire workflow and DevOps environment from a real-world perspective in AWS

DevOps-The-Hard-Way-AWS This tutorial contains a full, real-world solution for setting up an environment that is using DevOps technologies and practic

Mike Levan 1.6k Jan 05, 2023
YouTube bot, this is just my introduction to api and requests, this isn't intended on being an actual view bot.

YouTube bot, this is just my introduction to api and requests, this isn't intended on being an actual view bot.

Aran 2 Jul 25, 2022
Telegram vc userbot

Telegram Vc Userbot Available Commands /ping :- To check whether userbot is up or not /joinvc :- To join vc /leavevc :- To leave vc /join_group :- To

NandyDark 7 Nov 18, 2022
Discord Bot that leverages the idea of nested containers using podman, runs untrusted user input, executes Quantum Circuits, allows users to refer to the Qiskit Documentation, and provides the ability to search questions on the Quantum Computing StackExchange.

Discord Bot that leverages the idea of nested containers using podman, runs untrusted user input, executes Quantum Circuits, allows users to refer to the Qiskit Documentation, and provides the abilit

Mehul 23 Oct 18, 2022
Hassium Server Manager For Python

Hassium Server Manager This is meant to be a tool for mostly internal use. I decided that I would make it open souce in case anyone wanted to use it.

0 Nov 24, 2022
A simple way to create a request to the coinpayment API with a valid HMAC using your private key and command

Coinpayments Verify TXID Created for Astral Discord bot A simple way to create a request to the coinpayment API with a valid HMAC using your private k

HellSec 1 Nov 07, 2022
AWS SQS event redrive Lambda

This repository contains the Lambda function to redrive sqs events from source to destination queue while controlling maxRetry per event.

1 Oct 19, 2021