Skip to content
/ Gojo_Satoru Public template

Gojo Satoru is an anime themed group management bot built with python and pyrogram with anti-spam feature

License

Notifications You must be signed in to change notification settings

Gojo-Bots/Gojo_Satoru

Gojo_Satoru


GitHub forks GitHub Repo stars

Repo Size Branch

Maintenance GitHub license

Python GitHub language count

A python and pyrogram based group management bot for telegram. If you like the bot make sure to give a ⭐ star ⭐ to this respository and feel free to updating and sending pull requests


Inspiration ✨

Not a particular inspiration, inspired by many bots

Mainly:


About

The Gojo Satoru is a powerful Group Management bot with awesome plugins and features.

If you counter any problem or face any bugs for help join 🌟 ɢօʝօ ɮօȶֆ 🌟 and then join the gc and ask your problem.

Features

  • Modern
  • Fast
  • Fully asynchronous
  • Fully open-source
  • Frequently updated

Can be found on Telegram as @GojoSuperbot

  • Feel free to give ideas for next update. Drop your ideas here

License

GPLv3
Licensed Under GNU General Public License v3


DEPLOYMENT 🚀

Deploy To Heroku

  • Make Sure you have Heroku account

  • If you don't have heroku account what are you waiting for click here to make one or just deploy on other platform gudie is given below

  • Just click on the button it will redirect you to Heroku website and deploy your bot there....enjoy 😉

DEPLOY


Deploy To Railway

DEPLOY

How To Deploy On Railway

  • Make Sure You have an github account which is minimum 30 days old.
  • Fork the repo by clicking here
  • Click on deploy button
  • Login in railway using github account
  • Now search the repo in the search bar given like iamgojoof6eyes/Gojo_Satoru replace iamgojoof6eyes with your github username.
  • Now add the values and keys by creating values and keys Make sure to add keys as per given below I'll advide you to just copy and paste it
  • Then wait for 10-15 minutes.
  • Vars are given below
  • The bot can be used by provideing mandotry variables only..

Deploy To Okteto

Develop on Okteto

How To Deploy On Okteto

  • Make sure you have an github account.
  • Fork the repo and give a star to repo
  • Click on deploy button provided above...
  • Login using github.
  • Fill the values
  • Then wait for 10-15 minutes.
  • Vars are given below
  • If you want to add more data of yours just go to the variable section and add the key and values to it then hit on relaunch

In case the button doesn't work just fork the repo give it a star open okteto login using github give okteto access to your github account repo search for your bot repo add the key and values provided below and wait for few minutes


Deploy locally

Using git

  • Install Python v3.7 or later from Python's Website
  • Install virtualenv using python3 -m pip -U install virtualenv.
  • Fork or Clone the project using git clone https://github.com/Gojo-Bots/Gojo_Satoru.git
  • Create Virtualenv using: virtualenv venv
  • Install the requirements using python3 -m pip install -r requirements.txt
  • Fill in all the variables in the Development class, not the Config class. Sudo, Dev, Whitelist users are optional!!
  • If you want, you can remove all the things
  • Change to virtualenv shell by using: . venv/bin/activate (Linux) venv\Scripts\activate (Windows)
  • Run the bot using python3 -m Powers

Traditional method:

  • Update apt by using sudo apt update && sudo apt upgrade -y
  • Now install required packages by sudo apt install --no-install-recommends -y python3-lxml python3-psycopg2 libpq-dev libcurl4-openssl-dev libxml2-dev libxslt1-dev python3-pip python3-sqlalchemy openssl wget curl git libffi-dev libjpeg-dev libwebp-dev python3 python3-dev pv tree mediainfo nano nodejs libreadline-dev libyaml-dev gcc zlib1g ffmpeg libssl-dev libgconf-2-4 libxi6 unzip libopus0 libopus-dev python3-virtualenv tmux libmagickwand-dev
  • Clone the GitHub repo by https://github.com/Gojo-Bots/Gojo_Satoru
  • Now make it the current directory by cd Gojo_Satoru
  • Edit the vars file by nano Powers/vars.py
  • Fill in all the variables in the Development class, not the Config class. Sudo, Dev, and Whitelist users are optional!!
  • Create and activate a new virtualenv by virtualenv venv source venv/bin/activate
  • Install requirements to run the bot by pip3 install -r requirements.txt
  • After requirements are installed, start the bot by python3 -m Powers
  • Exit the window CTRL + B then D

Variables

List of all mandatory variables

BOT_TOKEN You can get your bot token at @BotFather

API_ID You can get your api id here

API_HASH You can get your api hash here

DB_URI Your MongoDB connection string.

MESSAGE_DUMP: Event logs channel where the bot will send updates. Note that it should start with -100. If you don't give it or pass 0 in it your owner id will be the message dump for the bot.

List of all variables

BOT_TOKEN You can get your bot token at @BotFather

API_ID You can get your api id here

API_HASH You can get your api hash here

PREFIX_HANDLER Your bot handler which will activate commands

DB_URI Your MongoDB connection string.

DB_NAME Your MongoDB database name.

OWNER_ID Your user ID as an integer.

GENIUS_API Your Lyrics Genius Api Token. To fetch lyrics of songs.

BDB_URI Your mongodb uri is different from the previous one to store more info.

TIME_ZONE Your time zone.

RMBG_API Your removebackground api to remove the background/

SUPPORT_GROUP: Your Telegram support group chat username that users can contact in case of a problem.

PREFIX_HANDLER: Something like '/' to execute commands.

SUPPORT_CHANNEL: Your Telegram support channel username where users can see bot updates.

DEV_USERS: ID of users who are Devs of your bot. Use space to separate values.

SUDO_USERS: A space-separated list of user IDs you want to assign as sudo users.

WHITELIST_USERS: A space-separated list of user IDs whitelisted, cannot be restricted.

CHROME_BIN: Location of your chrome bin.

CHROME_DRIVER: Location of your chrome driver.

⚠️ Note: In case you are passing more than one value separate them using whitespace (space) for example If I want to pass more than one PREFIX_HANDLER I'll pass it like '/' '.' '!' this.

YOU CAN ALSO HAVE A LOOK AT VARS FILE


Adding your own plugin

To add your very own plugin just use the format given below and go through the utils and custom_filters

from traceback import format_exc

from Powers.utils.custom_filters import command 
from Powers import LOGGER
from Powers.bot_class import Gojo 
# All the import provided above is mandatory in case you don't want to use logger remove the first and third import 
# Import more functions and modules as per your need

@Gojo.on_message(command("<your command>")) # Pass additional filters if you need
async def <function name>(<arguments to take>):
  <your code>
    
  '''use logger to add log info using LOGGER.info(<string>) in the platform on which bot is running 
    and error as LOGGER.error(<string>) and after LOGGER.error() use        
    LOGGER.error(format_exc())'''
    
__PLUGIN__ = <name of plugin> # Pass the name of your plugin as string
_DISABLE_CMDS_ = [<command as string>] # Enter the commands if you want so that they can be disabled if needed.

__alt_name__ = [<command as string>] # Alternative name of the plugin
    
__HELP__ = <string> # To tell about your plugin and commands you must use it


# See any plugin to get more information about how to make a plugin 

Add plugins in plugin section

Note : Don't use <> this bracket while writing the code...


Contributors

Contributors


Special Thanks ❤️

Some special thanks to the person/repo who/which helped and motivated me to create this project

  • PSYREX for logos and motivating me and giving me new ideas.

  • Dan for pyrogram library

  • Anand for helping me to enhance the bot's security and look and also helping me out with various stuff and bugs and also for motivating me to create this project.

  • Alita_Robot for base code.

  • WilliamButcherBot for few plugins inspirations.


Gojo Bots