SkillAgentSearch skills...

ReVot

Reverse Image Search Telegram Bot Using MS Azure/Local (server maybe off)

Install / Use

/learn @c0sm0void/ReVot

README

<a id="top"></a>

<div align="center"> <h1 align="center" style="display: block; font-size: 3em; font-weight: bold; margin-block-end: 1em;"><strong>ReVot<img src="https://raw.githubusercontent.com/Tarikul-Islam-Anik/Telegram-Animated-Emojis/main/Smileys/Robot.webp" alt="Robot" width="30" height="30" /></strong></h1> <p>Reverse Image Search Telegram Bot Using MS Azure/Local (server maybe off) <table align="center"> <thead align="center"> <tr border: 1px;> <td><b>🌟 Stars</b></td> <td><b>🍴 Forks</b></td> <td><b>🐛 Issues</b></td> <td><b>🔔 Open PRs</b></td> <td><b>🔕 Close PRs</b></td> <td><b>🛠 Languages</b></td> <td><b>🌐 Contributors </b></td> </tr> </thead> <tbody> <tr> <td><img alt="Stars" src="https://img.shields.io/github/stars/c0sm0void/ReVot?style=flat&logo=github"/></td> <td><img alt="Forks" src="https://img.shields.io/github/forks/c0sm0void/ReVot?style=flat&logo=github"/></td> <td><img alt="Issues" src="https://img.shields.io/github/issues/c0sm0void/ReVot?style=flat&logo=github"/></td> <td><img alt="Open Pull Requests" src="https://img.shields.io/github/issues-pr/c0sm0void/ReVot?style=flat&logo=github"/></td> <td><img alt="Close Pull Requests" src="https://img.shields.io/github/issues-pr-closed/c0sm0void/ReVot?style=flat&color=critical&logo=github"/></td> <td><img alt="GitHub language count" src="https://img.shields.io/github/languages/count/c0sm0void/ReVot?style=flat&color=critical&logo=github"></td> <td><img alt="GitHub contributors" src="https://img.shields.io/github/contributors/c0sm0void/ReVot?color=2b9348"></td> </tr> </tbody> </table> </div> <br> <p> <img src="http://forthebadge.com/images/badges/made-with-python.svg"/> <img src="http://forthebadge.com/images/badges/license-mit.svg"/> <a href="https://t.me/ReVot_Local_Bot"> <img src="https://img.shields.io/badge/Telegram%20ReVot%20Bot-blue?style=for-the-badge&logo=telegram&color=302d41&logoColor=0088CC" alt="Contact"/> </a> <table align="center"> <thead align="center"> <tr border: 1px;> <td><b>☁️ Cloud</b></td> <td><b>🐧 OS</b></td> <td><b>💻 Terminal</b></td> <td><b>📦 PyPI</b></td> <td><b>❤️ Open Source</b></td> </tr> </thead> <tbody> <tr> <td><img src="https://badgen.net/badge/icon/azure?icon=azure&label"></td> <td><img src="https://img.shields.io/badge/OS-Linux-informational?style=flat&logo=linux&logoColor=white&color=2bbc8a"></td> <td><img src="https://badgen.net/badge/icon/terminal?icon=terminal&label"></td> <td><img src="https://badgen.net/badge/icon/pypi?icon=pypi&label"></td> <td><img src="https://img.shields.io/badge/open%20source-%E2%9D%A4%EF%B8%8F-green"></td> </tr> </tbody> </table> </div>
<details> <summary><h2>:sparkles:Table of Contents:</h2></summary> </details> <hr>

How To Use Me: <img src="https://raw.githubusercontent.com/Tarikul-Islam-Anik/Telegram-Animated-Emojis/main/Smileys/Alien%20Monster.webp" alt="Alien Monster" width="25" height="25" />

Send me images, gifs or stickers(non-animated), I will send you direct reverse image search links of IQDB, Google, TinEye, Yandex and Bing. For anime images IQDB and TinEye, for other images, I recommend using Google, Bing and Yandex.

Features: <img src="https://raw.githubusercontent.com/Tarikul-Islam-Anik/Animated-Fluent-Emojis/master/Emojis/Travel%20and%20places/Roller%20Coaster.png" alt="Roller Coaster" width="25" height="25" />

  • Give you image reverse search links
  • Supports normal images like JPG, PNG, WEBP
  • Supports stickers
  • Supports GIFs (can take some time till the GIFs are ready)

Commands:🧩

  • /help, /start: show a help message with information about the bot and its usage.
  • /best_match URL: Search for the best match on TinEye (and IQDB when nothing is found on TinEye). The URL is a link to an image

Local installation: <img src="https://raw.githubusercontent.com/Tarikul-Islam-Anik/Animated-Fluent-Emojis/master/Emojis/People%20with%20professions/Technologist%20Light%20Skin%20Tone.png" alt="Technologist Light Skin Tone" width="25" height="25" />

With this info, we now install our virtual environment with (check pre-installations file):

chmod +x pre-installations.sh
./pre-installations.sh
pip install pipenv  # Install pipenv
pipenv --version
git clone https://github.com/c0sm0void/ReVot.git
cd /ReVot
pipenv shell
pipenv install      # Install all requirements

You have to get an API Token from Telegram. You can easily get one via the @BotFather.

Now that you have your API Token, create a settings.py file and add one of the configurations below based on your preferred uploading method.

Option 1: SSH Uploader

If you want to upload files using SSH, use the following configuration in your settings.py:

TELEGRAM_API_TOKEN = 'Tel Bot Token By @BotFather'

UPLOADER = {
    'uploader': 'reverse_image_search_bot.uploaders.ssh.SSHUploader',
    'url': 'Host Domain Name',
    'configuration': {
        'host': 'Host IP (PUBLIC)',
        'user': 'Yourname',
        'password': 'Password',
        'upload_dir': '/path/to/ReVot/',
        'key_filename': '/path/to/.ssh/rsakey.pub (Public key)',
    }
}

Option 2: File System Uploader

If you prefer to upload files from your local file system, use the following configuration in your settings.py:

TELEGRAM_API_TOKEN = 'Tel Bot Token By @BotFather'

UPLOADER = {
    'uploader': 'reverse_image_search_bot.uploaders.file_system.FileSystemUploader',
    'url': 'Host Domain Name',
    'configuration': {
       'path': '/path/to/ReVot/',
    }
}

Finally, you can use this to start your bot.

python run_bot.py

Errors and Fixes:❌

  • Use Python v3.12 as default
  • ssh-keyscan -H <IP address/Hostname> >> ~/.shh/known_hosts
  • sudo -H pip install -U pipenv

Techstack

Programming Language:

  • Python 3.12+

Libraries:

  • pipenv: For virtual environment and dependency management
  • python-telegram-bot: For interacting with Telegram APIs
  • Reverse Image Search Engines:
    • Google
    • Bing
    • Yandex
    • TinEye
    • IQDB

Platform:

  • MS Azure for hosting
  • Ubuntu virtual machine for hosting
<hr> <details> <summary><h3>Repository Structure: <img src="https://raw.githubusercontent.com/Tarikul-Islam-Anik/Animated-Fluent-Emojis/master/Emojis/Activities/Crystal%20Ball.png" alt="Crystal Ball" width="25" height="25" /></h3></summary>
ReVot/
│
├── .github/                    # GitHub-specific files
│   └── ISSUE_TEMPLATE/
│       ├── bug_report.md       # Template for reporting bugs
│       ├── custom.md           # Custom issue template
│       └── feature_request.md  # Template for requesting features
│   │
│   └── workflows/                     # Directory for GitHub Actions workflows
│		├── greetings.yml      # Workflow for greeting new contributors
│		└── labeler.yml        # Workflow for auto-labeling pull requests and issues
│   
├── deploy/                        # Deployment scripts and configurations
│   └── after_push                 # Post-deployment scripts
│
├── reverse_image_search_bot/      # Main bot directory
│   ├── images/                    # Sample image for demonstration
│   │   └── example_usage.png      # Example bot usage
│   │
│   ├── uploaders/             # Uploader modules
│   │   ├── __init__.py        # Initialize uploaders package
│   │   ├── base_uploader.py   # Base class for uploaders
│   │   ├── file_system.py     # File system operations
│   │   └── ssh.py             # SSH related functions
│   │
│   ├── __init__.py            # Initialize bot package
│   ├── bot.py                 # Main bot logic
│   ├── commands.py            # Command handling for the bot
│   ├── image_search.py        # Functions for reverse image search
│   ├── settings.example.py    # Example settings file for API tokens
│   ├── settings.example1.py   # Another example settings file
│   ├── settings.py            # Settings file
│   └── utils.py               # Utility functions and helpers
│
├── .gitignore                 # Files and directories to be ignored by Git
├── CODE_OF_CONDUCT.md         # Community guidelines and rules
├── CONTRIBUTING.md            # Contribution guidelines
├── LICENSE                    # License information
├── Pipfile                    # Pipenv dependencies
├── Pipfile.lock               # Locked dependency versions
├── pre-installations.sh       # Pre-installation
├── README.md                  # Main project documentation
└── run_bot.py                 # Script to run the bot


</details> <hr>

License:📜

This project is licensed under the MIT License. You are free to use, modify, and distribute this software as long as the original license and copyright notice are retained.

<!-- Added Hacktoberfest 2024 and GSSoc Extended 2024 banners -->

This project is now OFFICIALLY accepted for

<div align="center"> <img src="https://gssoc.girlscript.tech/GS_logo_Black.svg" alt="GSSoC 2024 Extd" width="80%"> <img src="https://hacktoberfest.com/_next

Related Skills

View on GitHub
GitHub Stars15
CategoryDevelopment
Updated2mo ago
Forks29

Languages

Python

Security Score

95/100

Audited on Jan 20, 2026

No findings