mirror of
https://github.com/house-of-vanity/techops_bot.git
synced 2025-07-06 17:34:08 +00:00
Update readme.
This commit is contained in:
37
README.md
37
README.md
@ -10,8 +10,41 @@ There is a Docker image. Run your own bot:
|
|||||||
```shell
|
```shell
|
||||||
export ALLOWED_CHAT=-11111111
|
export ALLOWED_CHAT=-11111111
|
||||||
export TG_TOKEN=<token>
|
export TG_TOKEN=<token>
|
||||||
export OPS_LIST=@ultradesu,@jesus_christ
|
export OPS_LIST=@ultradesu,@jesus_christ,156754155
|
||||||
|
|
||||||
docker run -ti -e ALLOWED_CHAT=${ALLOWED_CHAT} -e TG_TOKEN=${TG_TOKEN} -e OPS_LIST=${OPS_LIST} techops_bot:latest
|
docker run -ti \
|
||||||
|
-e ALLOWED_CHAT=${ALLOWED_CHAT} \
|
||||||
|
-e TG_TOKEN=${TG_TOKEN} \
|
||||||
|
-e OPS_LIST=${OPS_LIST} \
|
||||||
|
ultradesu/techops_bot:latest
|
||||||
```
|
```
|
||||||
|
|
||||||
|
Or via systemd unit.
|
||||||
|
```
|
||||||
|
git clone https://github.com/house-of-vanity/techops_bot /opt/techops-bot
|
||||||
|
cd /opt/techops-bot && pip3 install -r requirements.txt
|
||||||
|
|
||||||
|
cat > /lib/systemd/system/techops-bot.service <<EOF
|
||||||
|
[Unit]
|
||||||
|
Description=Telegram TechOps destiny bot
|
||||||
|
[Service]
|
||||||
|
Type=simple
|
||||||
|
User=conf-bot
|
||||||
|
Group=conf-bot
|
||||||
|
Restart=always
|
||||||
|
RestartSec=5
|
||||||
|
StartLimitInterval=60s
|
||||||
|
StartLimitBurst=3
|
||||||
|
Environment=ALLOWED_CHAT=-11111111
|
||||||
|
Environment=TG_TOKEN=<token>
|
||||||
|
Environment=OPS_LIST=@ultradesu,@jesus_christ,156754155
|
||||||
|
WorkingDirectory=/opt/techops-bot
|
||||||
|
ExecStart=/usr/bin/python3 /opt/techops-bot/bot.py
|
||||||
|
ExecStop=/usr/bin/killall -TERM /usr/bin/python3 /opt/techops-bot/bot.py
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
||||||
|
EOF
|
||||||
|
|
||||||
|
systemctl start techops-bot.service
|
||||||
|
systemctl status techops-bot.service
|
||||||
|
```
|
||||||
|
14
bot.py
14
bot.py
@ -50,6 +50,9 @@ bot = Bot(config['TG_TOKEN'])
|
|||||||
opses = list()
|
opses = list()
|
||||||
try:
|
try:
|
||||||
for ops in config['OPS_LIST'].split(','):
|
for ops in config['OPS_LIST'].split(','):
|
||||||
|
if ops.isdigit():
|
||||||
|
name = bot.get_chat_member(config['ALLOWED_CHAT'], ops)['user']['first_name']
|
||||||
|
ops=f"[{name}](tg://user?id={ops})"
|
||||||
opses.append(ops)
|
opses.append(ops)
|
||||||
except Exception as error:
|
except Exception as error:
|
||||||
logger.error(f"Can't parse OPS_LIST env var: {error}")
|
logger.error(f"Can't parse OPS_LIST env var: {error}")
|
||||||
@ -77,6 +80,7 @@ def restricted(func):
|
|||||||
help_text = f"""This bot will choose your destiny.
|
help_text = f"""This bot will choose your destiny.
|
||||||
|
|
||||||
*Configured Ops list:*
|
*Configured Ops list:*
|
||||||
|
|
||||||
{', '.join(config['OPS_LIST'])}
|
{', '.join(config['OPS_LIST'])}
|
||||||
|
|
||||||
*Commands:*
|
*Commands:*
|
||||||
@ -98,18 +102,20 @@ def roll(update, context):
|
|||||||
bot.sendChatAction(
|
bot.sendChatAction(
|
||||||
chat_id=update.message.chat_id, action=ChatAction.TYPING
|
chat_id=update.message.chat_id, action=ChatAction.TYPING
|
||||||
)
|
)
|
||||||
message_id = update.message.reply_text(f"Rolling.")
|
message_id = update.message.reply_markdown(f"_Rolling._")
|
||||||
sleep(1)
|
sleep(1)
|
||||||
bot.edit_message_text(chat_id=update.message.chat_id,
|
bot.edit_message_text(chat_id=update.message.chat_id,
|
||||||
|
parse_mode='Markdown',
|
||||||
message_id=message_id.message_id,
|
message_id=message_id.message_id,
|
||||||
text='Rolling..',)
|
text='_Rolling.._',)
|
||||||
bot.sendChatAction(
|
bot.sendChatAction(
|
||||||
chat_id=update.message.chat_id, action=ChatAction.TYPING
|
chat_id=update.message.chat_id, action=ChatAction.TYPING
|
||||||
)
|
)
|
||||||
sleep(1)
|
sleep(1)
|
||||||
bot.edit_message_text(chat_id=update.message.chat_id,
|
bot.edit_message_text(chat_id=update.message.chat_id,
|
||||||
|
parse_mode='Markdown',
|
||||||
message_id=message_id.message_id,
|
message_id=message_id.message_id,
|
||||||
text='Rolling...',)
|
text='_Rolling..._',)
|
||||||
bot.sendChatAction(
|
bot.sendChatAction(
|
||||||
chat_id=update.message.chat_id, action=ChatAction.TYPING
|
chat_id=update.message.chat_id, action=ChatAction.TYPING
|
||||||
)
|
)
|
||||||
@ -117,13 +123,13 @@ def roll(update, context):
|
|||||||
for ops in config['OPS_LIST']:
|
for ops in config['OPS_LIST']:
|
||||||
result[ops] = randint(1, 100)
|
result[ops] = randint(1, 100)
|
||||||
result = sorted(result.items(),key=operator.itemgetter(1),reverse=False)
|
result = sorted(result.items(),key=operator.itemgetter(1),reverse=False)
|
||||||
# [%s](tg://user?id=%s)
|
|
||||||
body = ""
|
body = ""
|
||||||
for user, score in result:
|
for user, score in result:
|
||||||
if user.isdigit():
|
if user.isdigit():
|
||||||
user = f"[{user}](tg://user?id={user})"
|
user = f"[{user}](tg://user?id={user})"
|
||||||
body += f'\n{user}: {score}'
|
body += f'\n{user}: {score}'
|
||||||
bot.edit_message_text(chat_id=update.message.chat_id,
|
bot.edit_message_text(chat_id=update.message.chat_id,
|
||||||
|
parse_mode='Markdown',
|
||||||
message_id=message_id.message_id,
|
message_id=message_id.message_id,
|
||||||
text=f"Result: {body}",)
|
text=f"Result: {body}",)
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user