A customizable, multilanguage Telegram shop bot with Telegram Payments support!
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.
This installation procedure assumes you are on a Linux system, using bash
and have python3.8
installed.
- Git
- Python 3.6 (or higher)
- An Internet connection
- A Telegram bot token (obtainable at @Botfather)
- A payment provider token (obtainable by connecting a provider with your bot)
Consider renting a VPS to host the bot on; a cheap one should do, as greed is pretty lightweight! :)
-
Download the project files by running:
git clone https://github.com/Steffo99/greed.git
-
Enter the newly created folder:
cd greed
-
Create a new virtualenv:
python3.8 -m venv venv
-
Activate the virtualenv:
source venv/bin/activate
-
Install the project requirements:
pip install -r requirements.txt
-
Optional: For colored console output, install coloredlogs:
pip install coloredlogs
-
Generate the configuration file:
python -OO core.py
-
Edit the configuration file, 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
.) -
Optional: customize the files in the
strings
folder for custom messages. -
Start the bot:
python -OO core.py
-
Open Telegram, and send a
/start
command to your bot to be automatically promoted to 💼 Manager. -
Stop the bot by pressing Ctrl+C.
After the installation, to run the bot, you'll need to:
-
Activate the virtualenv (if it's not already activated in the current console session):
source venv/bin/activate
-
Start the bot:
python -OO core.py
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)
- Open a
screen
that will be running the bot with the following command:To safely detach the screen, press Ctrl+A and then Ctrl+D.screen venv/bin/python -OO core.py
Assuming you downloaded greed
in /srv/greed
:
-
Create a new user named
greed
:useradd greed --system
-
Give ownership of the greed folder you downloaded earlier to the
greed
user:chown -R greed: /srv/greed
-
Create a new file in
/etc/systemd/system
namedbot-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
-
Start the bot-greed service:
systemctl start bot-greed
-
If everything goes well, enable the bot-greed service, so it will automatically start on a reboot:
systemctl enable bot-greed
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 useconfig.toml
instead.
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.
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 ste.pigozzi@gmail.com!
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.
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!
DarrenWestwood is currently maintaining a greed
fork adding Bitcoin support through Blockonomics.