Torrent Hunt Bot is a telegram bot to search and explore torrents from different sources. It can show you the result of your query in a snap. Furthermore, you can explore top, trending, & popular torrents and browse torrents of a certain category.
- Superfast and good pagination
- Supports 18 different languages
- Custom query search
- Explore trending, popular, and top torrents
- Browse torrents of a certain category
- Get info, images, magnet link and .Torrent file of the torrent
- Get the shortened URL of the magnet link
- Supports inline query with thumbnail
- Restriction mode to hide explicit content
Torrent Hunt Bot can talk in 18 different languages.
- Bengali (Verified by sobuj53)
- Belarusian
- Catalan
- Dutch
- English (Verified)
- French
- German
- Hindi
- Italian
- Korean
- Malay
- Nepali
- Polish (Verified by Oskar)
- Portuguese
- Russian
- Spanish
- Turkish
- Ukrainian
Unverified languages are translated with Google Translator and may contain errors. Feel free to create a Pull Request with modifications to the language.json file.
While making a PR, make sure to add yourself and a verified tag on the language.
If you want to host this bot for public use, you shall not remove or replace our links.
See LICENSE for more information.
-
Clone the repository, create a virtual environment, and install the requirements
git clone https://github.com/hemantapkh/torrenthunt && virtualenv env && source env/bin/activate && cd torrenthunt && pip install -r requirements.txt
-
Add your bot token in config.json file
-
Run the migration.py file to open a database.
python migrations.py
-
Now, start the bot polling
python torrenthunt.py
While polling and webhooks both accomplish the same task, webhooks are far more efficient. Polling sends a request for new events (specifically, Create, Retrieve, and Delete events, which signal changes in data) at a predetermined frequency and waits for the endpoint to respond whereas, webhooks only transfer data when there is new data to send, making them 100% efficient. That means that polling creates, on average, 66x more server load than webhooks. (r)
-
Generate an SSL certificate
>> openssl genrsa -out sslPrivateKey.pem 2048 >> openssl req -new -x509 -days 3650 -key sslPrivateKey.pem -out sslCertificate.pem
"Common Name (e.g. server FQDN or YOUR name)" should be your Host IP.
-
Edit config.json file and set
- connectionType = webhook
- webhookHost = IP/Host where the bot is running
- webhookPort = PORT (Need to be opened)
- webhookListen = 0.0.0.0 or IP address in some VPS
- sslCertificate = Directory of SSL certificate
- sslPrivateKey = Directory of SSL private key
-
And, start the aioHttp server.
python torrenthunt.py
You can set up GitHub actions to update the bot automatically on every push.
-
Fork the repository on your GitHub account.
-
Create a directory
mkdir /opt/TorrentHunt && cd /opt/TorrentHunt
You should create a directory with the same name as above inside /opt, or edit the deploy.yml and deployScript.sh
-
Create a virtual environment in the directory with name
envvirtualenv env
-
Clone the repository and install the requirements in the virtual environment
git clone https://github.com/hemantapkh/TorrentHunt && cd TorrentHunt && source /opt/TorrentHunt/env/bin/activate && pip install -r requirements.txt
-
Create a database and move the database into
/opt/TorrentHuntpython migrations.py && mv database.sqlite /opt/TorrentHunt -
Generate SSH keys for your VPS and keep the private key in your GitHub secrets
- Create the ssh key pair using the
ssh-keygencommand. You must leave the passphrase empty while generating the SSH key. - Copy and install the public ssh key on the server using
sh-copy-id -i your_public_key user@hostcommand or add the content of the public key in~/.ssh/authorized_keys. - Now, copy the content of the private key and paste it on your GitHub secrets with the name
SSHKEY. (Repository settings >> secrets >> New repository secret)
- Create the ssh key pair using the
-
Create another GitHub secret with name
HOSTand save your Host IP. -
Edit config.json file and set
- database = /opt/TorrentHunt/database.sqlite
- If you are using webhooks, copy the SSL certificate and private key in
/opt/TorrentHuntand set- sslCertificate = /opt/TorrentHunt/sslCertificate.pem
- sslPrivateKey = /opt/TorrentHunt/sslPrivateKey.pem
-
Copy the content of the edited config.json and save it on your repository secrets with name
CONFIG. Don't forget to wrap the content of config file with single quotes like this'Content of config.json'. -
And, start the bot.
source /opt/TorrentHunt/env/bin/activate && screen -dm python /opt/TorrentHunt/TorrentHunt/torrenthunt.py
Now, every time you push on the main branch, the bot automatically gets updated.
Any contributions you make are greatly appreciated.
For minor fix, you can directly create a pull request and for adding a new feature, let's first discuss it in our telegram group or in GitHub Discussion.
Made using 1337x and pyTelegramBotApi in Pythonπ by Hemanta Pokharel [βοΈ π¬ πΊ]
Powered by 1337x.to and The Pirate Bayπ₯