All Projects → Steffo99 → greed

Steffo99 / greed

Licence: AGPL-3.0 license
A customizable, multilanguage Telegram shop bot with Telegram Payments support

Programming Languages

python
139335 projects - #7 most used programming language
Dockerfile
14818 projects

Projects that are alternatives of or similar to greed

Music-downloader-bot
A telegram bot that can send you high-quality audio 🎧🎧🎧
Stars: ✭ 35 (-86.94%)
Mutual labels:  telegram-bot, python-telegram-bot
memes-reposter
bot for automatic broadcasting content into telegrams channels from reddit/imgur/rss
Stars: ✭ 35 (-86.94%)
Mutual labels:  telegram-bot, python-telegram-bot
EPUB-to-PDF
Telegram bot EPUB to PDF converter
Stars: ✭ 25 (-90.67%)
Mutual labels:  telegram-bot, python-telegram-bot
nebula8
Open source bot to administer a telegram group with different functionalities and blacklist
Stars: ✭ 21 (-92.16%)
Mutual labels:  telegram-bot, python-telegram-bot
PDF-Bot
A bot for PDF for doing Many Things....
Stars: ✭ 38 (-85.82%)
Mutual labels:  telegram-bot, python-telegram-bot
allukabot
Modular HunterxHunter themed Telegram Bot for managing your group with additional features.
Stars: ✭ 21 (-92.16%)
Mutual labels:  telegram-bot, python-telegram-bot
PglRobot
No description or website provided.
Stars: ✭ 12 (-95.52%)
Mutual labels:  telegram-bot
kiririn
A serverless Telegram bot.
Stars: ✭ 27 (-89.93%)
Mutual labels:  telegram-bot
mqtg-bot
MQTT Client Telegram Bot
Stars: ✭ 67 (-75%)
Mutual labels:  telegram-bot
DailyAnimalsBot
Telegram bot that sends random pictures with cats and dogs
Stars: ✭ 14 (-94.78%)
Mutual labels:  telegram-bot
kirpich
Пацан-бот
Stars: ✭ 77 (-71.27%)
Mutual labels:  telegram-bot
Telegram-PHP-App
App base for Telegram bots
Stars: ✭ 14 (-94.78%)
Mutual labels:  telegram-bot
teleirc
Go implementation of a Telegram <=> IRC bridge for use with any IRC channel and Telegram group
Stars: ✭ 112 (-58.21%)
Mutual labels:  telegram-bot
Telegram-Invite-Users-From-Source-To-Destination-Group
This application invite users in Telegram from a source to destination group.
Stars: ✭ 20 (-92.54%)
Mutual labels:  telegram-bot
genshin task-resin-expedition alert
完全摸了,之后若有需要,请使用下面链接的这个仓库~
Stars: ✭ 91 (-66.04%)
Mutual labels:  telegram-bot
TycotBot
TycotBot
Stars: ✭ 24 (-91.04%)
Mutual labels:  telegram-bot
agala
Full featured messaging bot framework.
Stars: ✭ 70 (-73.88%)
Mutual labels:  telegram-bot
Cloud-UPManager-Bot
Telegram Cloud Upload Manager Bot by @AbirHasan2005
Stars: ✭ 46 (-82.84%)
Mutual labels:  telegram-bot
telegraf-calendar-telegram
Inline calendar for Telegram bots using Telegraf framework
Stars: ✭ 43 (-83.96%)
Mutual labels:  telegram-bot
tgto
Telegram to RSS bot.
Stars: ✭ 20 (-92.54%)
Mutual labels:  telegram-bot

Greed

A customizable, multilanguage Telegram shop bot with Telegram Payments support!

Demo

Send a message to @greedtestbot on Telegram to view a demo of the bot in action!

Use the special credit card number 4242 4242 4242 4242 to add unlimited credit to your account.

Screenshots

Installation via Docker

This installation procedure assumes you are on a system with docker installed, with a supported CPU architecture.

Requirements

Steps

  1. Run a container using the project's Docker image:

    # docker run --volume "$(pwd)/config:/etc/greed" --volume "$(pwd)/strings:/usr/src/greed/strings" --volume "$(pwd)/data:/var/lib/greed" ghcr.io/steffo99/greed
  2. Edit the configuration file config.toml that was created in the strings directory, adding your bot and payment tokens to it:

    # nano config/config.toml

    (Press Ctrl+X and then two times Enter to save and quit nano.)

  3. Optional: customize the files in the strings folder for custom messages.

  4. Start the bot:

    python -OO core.py
  5. Open Telegram, and send a /start command to your bot to be automatically promoted to 💼 Manager.

  6. Stop the bot by pressing Ctrl+C.

Running the bot

After the installation, to run the bot, you'll need to:

  1. Run its Docker container from the same directory you installed it from:
    # docker run --volume "$(pwd)/config:/etc/greed" --volume "$(pwd)/strings:/usr/src/greed/strings" --volume "$(pwd)/data:/var/lib/greed" ghcr.io/steffo99/greed

Keep the bot running

If you want to keep the bot open even after you closed your terminal window, you'll need to pass the appropriate arguments to the docker command:

  1. Set the Docker container to always restart and to detach on successful start:
    # docker run --detach --restart always --volume "$(pwd)/config:/etc/greed" --volume "$(pwd)/strings:/usr/src/greed/strings" --volume "$(pwd)/data:/var/lib/greed" ghcr.io/steffo99/greed

Updating

To update the bot, run the following commands:

  1. Find the ID of the Docker container of the bot:

    # docker container ls
    CONTAINER ID   IMAGE                    COMMAND                CREATED         STATUS                  PORTS     NAMES
    abcdefabcdef   ghcr.io/steffo99/greed   "python -OO core.py"   6 seconds ago   Up Less than a second             relaxed_hypatia
  2. Stop the Docker container of the bot:

    # docker container stop abcdefabcdef
  3. Remove the Docker container of the bot:

    # docker container rm abcdefabcdef
  4. Pull the latest Docker image of the bot:

    # docker pull ghcr.io/steffo99/greed:latest
  5. Restart the bot with the newly downloaded image:

    # docker run --detach --restart always --volume "$(pwd)/config:/etc/greed" --volume "$(pwd)/strings:/usr/src/greed/strings" --volume "$(pwd)/data:/var/lib/greed" ghcr.io/steffo99/greed

Installation from source

This installation procedure assumes you are on a Linux system, using bash and have python3.8 installed.

Requirements

Consider renting a VPS to host the bot on; a cheap one should do, as greed is pretty lightweight! :)

Steps

  1. Download the project files by running:

    git clone https://github.com/Steffo99/greed.git
  2. Enter the newly created folder:

    cd greed
  3. Create a new virtualenv:

    python3.8 -m venv venv
  4. Activate the virtualenv:

    source venv/bin/activate
  5. Install the project requirements:

    pip install -r requirements.txt
  6. Optional: For colored console output, install coloredlogs:

    pip install coloredlogs
  7. Generate the configuration file:

    python -OO core.py
  8. Edit the configuration file config.toml, adding your bot and payment tokens to it:

    nano config/config.toml

    (Press Ctrl+X and then two times Enter to save and quit nano.)

  9. Optional: customize the files in the strings folder for custom messages.

  10. Start the bot:

    python -OO core.py
  11. Open Telegram, and send a /start command to your bot to be automatically promoted to 💼 Manager.

  12. Stop the bot by pressing Ctrl+C.

Running the bot

After the installation, to run the bot, you'll need to:

  1. Activate the virtualenv (if it's not already activated in the current console session):

    source venv/bin/activate
  2. Start the bot:

    python -OO core.py

Keep the bot running

If you want to keep the bot open even after you closed your terminal window, you'll need to use some external program.

Some of them are:

  • screen (easier, but doesn't restart automatically)
  • systemd (recommended, but more difficult)

screen

  1. Open a screen that will be running the bot with the following command:
    screen venv/bin/python -OO core.py
    To safely detach the screen, press Ctrl+A and then Ctrl+D.

systemd

Assuming you downloaded greed in /srv/greed:

  1. Create a new user named greed:

    useradd greed --system
  2. Give ownership of the greed folder you downloaded earlier to the greed user:

    chown -R greed: /srv/greed
  3. Create a new file in /etc/systemd/system named bot-greed.service with the following contents:

    [Unit]
    Name=bot-greed
    Description=Greed Bot
    Wants=network-online.target
    After=network-online.target nss-lookup.target
    
    [Service]
    Type=exec
    User=greed
    WorkingDirectory=/srv/greed
    ExecStart=/srv/greed/venv/bin/python -OO /srv/greed/core.py
    Environment=PYTHONUNBUFFERED=1
    
    [Install]
    WantedBy=multi-user.target
  4. Start the bot-greed service:

    systemctl start bot-greed
  5. If everything goes well, enable the bot-greed service, so it will automatically start on a reboot:

    systemctl enable bot-greed   

Updating

To update the bot, run the following commands:

git stash
git pull
git stash pop

If you're using an older version of greed, you may need to recreate the configuration, as greed won't use config.ini anymore and will use config.toml instead.

Usage

All features can be accessed through the Telegram bot chat.

As a 💼 Manager, you can add new products, check the placed orders, create new transactions and generate .csv log files.
You can also add additional 💼 Managers.

Users will be able to add credit to their wallet, place orders and contact you in case they require assistance.

Documentation and help

If you find a bug, have an idea for a new feature or just require help with greed, please post an issue or open a discussion on GitHub, or, if GitHub is blocked in your country, send me an email at [email protected]!

If you can read Italian, you can try to read the paper I wrote about greed for my final High School exam.

If you are proficient in Python, you can also try reading the code. Most of the bot interactions can be found in the worker.py file, so try to have a look there.

Forks

Some people made a copy of Greed and added or changed some things to it (they made a fork).
These forks are listed below.

Please note that @Steffo99, the main developer of greed, does not endorse any of these forks.
Do not file bug reports here for bugs in a fork!

Bitcoin - Blockonomics

DarrenWestwood is currently maintaining a greed fork adding Bitcoin support through Blockonomics.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].