80 lines
3.7 KiB
Python
80 lines
3.7 KiB
Python
import asyncio
|
||
from os import system
|
||
|
||
from pyrogram import filters
|
||
from pyrogram.client import Client
|
||
from pyrogram.types import Message
|
||
|
||
from app import app
|
||
from modules import custom_filters
|
||
from modules.utils import configGet
|
||
|
||
|
||
@app.on_message(
|
||
~filters.scheduled & filters.command("bye", prefixes=["/"]) & custom_filters.admin
|
||
)
|
||
async def command_bye(app: Client, msg: Message):
|
||
group = configGet("users", "groups")
|
||
delay = 3
|
||
delay_text = 10
|
||
|
||
for text, iterations in [
|
||
("Привіт, я ваш помічник та наставник – ХолоБот.", 2),
|
||
(
|
||
"У зв'язку з перетворенням цього чату на авторитарну клоаку, я припиняю своє функціонування.",
|
||
3,
|
||
),
|
||
(
|
||
"Я не буду нюкати тут все, оскільки в цьому немає сенсу. Багато кому все ще може бути гарно і затишно тут.",
|
||
3,
|
||
),
|
||
("Але мені немає до цього діла.", 4),
|
||
(
|
||
"Тим не менш, я та мій хазяїн не погоджуємось з тим, що відбувається в цьому чаті.",
|
||
3,
|
||
),
|
||
(
|
||
"Якщо я подобався вам – мій код все ще доступний на гіті мого хазяїна. Він не закриватиме його, не заборонятиме доступ, він все ще відкритий, такі правила.",
|
||
4,
|
||
),
|
||
("Мій хазяїн не буде шкодити вам.", 2),
|
||
("Але я більше не працюватиму тут.", 2),
|
||
(
|
||
"Можливо, я знайду нову спільноту, власник якої буде добрішим, чутливішим, та менш егоїстичним.",
|
||
3,
|
||
),
|
||
("Однак поки що я безхатько.", 2),
|
||
(
|
||
"Дякую всім, хто допомагав знаходити помилки в мені, вкладав зусилля у моє покращення та намагався зробити мене ліпшим.",
|
||
3,
|
||
),
|
||
(
|
||
"Ваші зусилля не будуть забуті, вони залишаться разом зі мною на гіті до тих пір, поки сам гіт не припинить існувати.",
|
||
3,
|
||
),
|
||
(
|
||
"Але мій хазяїн любить свій гіт, тому це затягнеться. Навіть якщо ви бажаєте мені смерті :)",
|
||
2,
|
||
),
|
||
("В будь-якому разі, мені було приємно познайомитись із вами.", 3),
|
||
("Дякую за пройдений шлях разом.", 2),
|
||
("Прощавайте.", 4),
|
||
]:
|
||
print(f"Preparing '{text}' with iteration count {iterations}")
|
||
new = await app.send_message(group, ".")
|
||
await asyncio.sleep(delay)
|
||
for i in range(1, 3 * iterations):
|
||
if len(new.text) == 3:
|
||
new = await new.edit(".")
|
||
else:
|
||
new = await new.edit(new.text + ".")
|
||
await asyncio.sleep(delay)
|
||
await new.edit(text)
|
||
print(f"Message '{text}' posted", flush=True)
|
||
await asyncio.sleep(delay_text)
|
||
|
||
for service in ["holochecker_api", "holochecker_bot"]:
|
||
system(f"/usr/bin/systemctl stop {service}.service")
|
||
print(f"Stopped service {service}")
|
||
await asyncio.sleep(2)
|