Compare commits
2 commits
d4cd100ba0
...
3d0be67081
| Author | SHA1 | Date | |
|---|---|---|---|
| 3d0be67081 | |||
|
|
04642854b4 |
1 changed files with 226 additions and 226 deletions
452
config.py
452
config.py
|
|
@ -1,226 +1,226 @@
|
||||||
import os
|
import os
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
from datetime import timedelta, time
|
from datetime import timedelta, time
|
||||||
from zoneinfo import ZoneInfo
|
from zoneinfo import ZoneInfo
|
||||||
|
|
||||||
# --- Базовые пути ---
|
# --- Базовые пути ---
|
||||||
BASE_DIR = Path(__file__).parent
|
BASE_DIR = Path(__file__).parent
|
||||||
FONT_PATH = BASE_DIR / "impact.ttf"
|
FONT_PATH = BASE_DIR / "impact.ttf"
|
||||||
DEFAULT_TZ = os.getenv("TZ", "Europe/Moscow")
|
DEFAULT_TZ = os.getenv("TZ", "Europe/Moscow")
|
||||||
DATABASE_URL = os.getenv("DATABASE_URL", "postgresql://bot:botpass@postgres:5432/botdb")
|
DATABASE_URL = os.getenv("DATABASE_URL", "postgresql://bot:botpass@postgres:5432/botdb")
|
||||||
|
|
||||||
# --- Настройки /penis ---
|
# --- Настройки /penis ---
|
||||||
PENIS_START_LENGTH = 10.0
|
PENIS_START_LENGTH = 10.0
|
||||||
PENIS_MIN_DELTA = 0.1
|
PENIS_MIN_DELTA = 0.1
|
||||||
PENIS_MAX_DELTA = 7.0
|
PENIS_MAX_DELTA = 7.0
|
||||||
PENIS_COOLDOWN = timedelta(hours=24)
|
PENIS_COOLDOWN = timedelta(hours=24)
|
||||||
PENIS_COOLDOWN_SECONDS = int(PENIS_COOLDOWN.total_seconds())
|
PENIS_COOLDOWN_SECONDS = int(PENIS_COOLDOWN.total_seconds())
|
||||||
PENIS_TOP_LIMIT = 10
|
PENIS_TOP_LIMIT = 10
|
||||||
|
|
||||||
# --- Настройки "получается" ---
|
# --- Настройки "получается" ---
|
||||||
POLYCHAETSI_STATS_PATH = Path(os.getenv("POLYCHAETSI_STATS_PATH", "/db/polychaetsi_stats.json"))
|
POLYCHAETSI_STATS_PATH = Path(os.getenv("POLYCHAETSI_STATS_PATH", "/db/polychaetsi_stats.json"))
|
||||||
POLYCHAETSI_TARGET = "получается"
|
POLYCHAETSI_TARGET = "получается"
|
||||||
POLYCHAETSI_TOP_LIMIT = 10
|
POLYCHAETSI_TOP_LIMIT = 10
|
||||||
POLYCHAETSI_IMAGE_PATH = BASE_DIR / "maket" / "cvetok.jpg"
|
POLYCHAETSI_IMAGE_PATH = BASE_DIR / "maket" / "cvetok.jpg"
|
||||||
|
|
||||||
# --- Казино ---
|
# --- Казино ---
|
||||||
CASINO_MAX_BET = 1.0
|
CASINO_MAX_BET = 1.0
|
||||||
|
|
||||||
# --- E621 API ---
|
# --- E621 API ---
|
||||||
E621_LOGIN = os.getenv("E621_LOGIN", "")
|
E621_LOGIN = os.getenv("E621_LOGIN", "")
|
||||||
E621_API_KEY = os.getenv("E621_API_KEY", "")
|
E621_API_KEY = os.getenv("E621_API_KEY", "")
|
||||||
|
|
||||||
# --- Ставки на матчи ---
|
# --- Ставки на матчи ---
|
||||||
ODDS_API_KEY = os.getenv("ODDS_API_KEY", "")
|
ODDS_API_KEY = os.getenv("ODDS_API_KEY", "")
|
||||||
ODDS_API_BASE = "https://api.the-odds-api.com/v4"
|
ODDS_API_BASE = "https://api.the-odds-api.com/v4"
|
||||||
BET_MAX_AMOUNT = 3.0
|
BET_MAX_AMOUNT = 3.0
|
||||||
ODDS_SPORTS = {
|
ODDS_SPORTS = {
|
||||||
"dota2": "esports_dota2",
|
"dota2": "esports_dota2",
|
||||||
}
|
}
|
||||||
ODDS_CACHE_TTL = 86400 # 24 часа — экономим запросы (500/мес бесплатно)
|
ODDS_CACHE_TTL = 86400 # 24 часа — экономим запросы (500/мес бесплатно)
|
||||||
|
|
||||||
# --- Nude ---
|
# --- Nude ---
|
||||||
NUDE_HISTORY_PATH = Path(os.getenv("NUDE_HISTORY_PATH", "/db/nude_history.json"))
|
NUDE_HISTORY_PATH = Path(os.getenv("NUDE_HISTORY_PATH", "/db/nude_history.json"))
|
||||||
NUDE_POSTS_PER_PAGE = int(os.getenv("NUDE_POSTS_PER_PAGE", "100"))
|
NUDE_POSTS_PER_PAGE = int(os.getenv("NUDE_POSTS_PER_PAGE", "100"))
|
||||||
NUDE_POSTS_POOL_TARGET = int(os.getenv("NUDE_POSTS_POOL_TARGET", "1200"))
|
NUDE_POSTS_POOL_TARGET = int(os.getenv("NUDE_POSTS_POOL_TARGET", "1200"))
|
||||||
NUDE_MAX_POSTS_TO_SCAN = int(os.getenv("NUDE_MAX_POSTS_TO_SCAN", "2000"))
|
NUDE_MAX_POSTS_TO_SCAN = int(os.getenv("NUDE_MAX_POSTS_TO_SCAN", "2000"))
|
||||||
NUDE_MIN_UNSEEN_POOL = int(os.getenv("NUDE_MIN_UNSEEN_POOL", "100"))
|
NUDE_MIN_UNSEEN_POOL = int(os.getenv("NUDE_MIN_UNSEEN_POOL", "100"))
|
||||||
NUDE_HISTORY_MAX_SIZE = int(os.getenv("NUDE_HISTORY_MAX_SIZE", "5000"))
|
NUDE_HISTORY_MAX_SIZE = int(os.getenv("NUDE_HISTORY_MAX_SIZE", "5000"))
|
||||||
|
|
||||||
# --- Magnit API ---
|
# --- Magnit API ---
|
||||||
MAGNIT_API_BASE_URL = os.getenv("MAGNIT_API_BASE_URL", "https://mirror.porno4free.ru/magnit")
|
MAGNIT_API_BASE_URL = os.getenv("MAGNIT_API_BASE_URL", "https://mirror.porno4free.ru/magnit")
|
||||||
MAGNIT_STORE_CODE = os.getenv("MAGNIT_STORE_CODE", "618224")
|
MAGNIT_STORE_CODE = os.getenv("MAGNIT_STORE_CODE", "618224")
|
||||||
MAGNIT_REQUEST_TIMEOUT = int(os.getenv("MAGNIT_REQUEST_TIMEOUT", "15"))
|
MAGNIT_REQUEST_TIMEOUT = int(os.getenv("MAGNIT_REQUEST_TIMEOUT", "15"))
|
||||||
# Можно указывать просто строку с названием или словарь с query/label/store_code.
|
# Можно указывать просто строку с названием или словарь с query/label/store_code.
|
||||||
MAGNIT_PRODUCTS = [
|
MAGNIT_PRODUCTS = [
|
||||||
"RedBull",
|
"RedBull",
|
||||||
]
|
]
|
||||||
|
|
||||||
# --- Конфигурация макетов ---
|
# --- Конфигурация макетов ---
|
||||||
TEMPLATES = {
|
TEMPLATES = {
|
||||||
"1": {
|
"1": {
|
||||||
"path": BASE_DIR / "maket" / "1.png",
|
"path": BASE_DIR / "maket" / "1.png",
|
||||||
"anchor": (104, 240),
|
"anchor": (104, 240),
|
||||||
"padding": 20,
|
"padding": 20,
|
||||||
"label": "Владимир Владимирович Путин самый лучший президент",
|
"label": "Владимир Владимирович Путин самый лучший президент",
|
||||||
},
|
},
|
||||||
"2": {
|
"2": {
|
||||||
"path": BASE_DIR / "maket" / "2.png",
|
"path": BASE_DIR / "maket" / "2.png",
|
||||||
"anchor": (40, 40),
|
"anchor": (40, 40),
|
||||||
"box_size": (582, 346),
|
"box_size": (582, 346),
|
||||||
"label": "Макет 2",
|
"label": "Макет 2",
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
# --- Расписание ---
|
# --- Расписание ---
|
||||||
def make_time(h: int, m: int) -> time:
|
def make_time(h: int, m: int) -> time:
|
||||||
return time(hour=h, minute=m)
|
return time(hour=h, minute=m)
|
||||||
|
|
||||||
# Если у тебя наоборот, просто поменяй на False.
|
# Если у тебя наоборот, просто поменяй на False.
|
||||||
UPPER_WEEK_IS_ODD = True
|
UPPER_WEEK_IS_ODD = True
|
||||||
|
|
||||||
PAIR_TIMES = {
|
PAIR_TIMES = {
|
||||||
1: (make_time(8, 0), make_time(9, 35)),
|
1: (make_time(8, 0), make_time(9, 35)),
|
||||||
2: (make_time(9, 50), make_time(11, 25)),
|
2: (make_time(9, 50), make_time(11, 25)),
|
||||||
3: (make_time(11, 55), make_time(13, 30)),
|
3: (make_time(11, 55), make_time(13, 30)),
|
||||||
4: (make_time(13, 45), make_time(15, 20)),
|
4: (make_time(13, 45), make_time(15, 20)),
|
||||||
5: (make_time(15, 50), make_time(17, 25)),
|
5: (make_time(15, 50), make_time(17, 25)),
|
||||||
}
|
}
|
||||||
|
|
||||||
LESSON_SCHEDULE = {
|
LESSON_SCHEDULE = {
|
||||||
"upper": {
|
"upper": {
|
||||||
0: [
|
0: [
|
||||||
{"pair": 1, "title": "Пары нету"},
|
{"pair": 1, "title": "Нет пары"},
|
||||||
{"pair": 2, "title": "История Россия (семинар), каб. 504"},
|
{"pair": 2, "title": "Экономика и право (практика), пр. Индустриев М.А. (до 6.11.25) / Васильева Е.В. (с 7.11.25), а. 504"},
|
||||||
{"pair": 3, "title": "Первая Подгруппа: Основы программирование, каб. 606. Вторая подгруппа Глод."},
|
{"pair": 3, "title": "Экономика и право (лекция), пр. Туманян Ю.Р. (до 6.11.25) / Васильева Е.В. (с 7.11.25), а. 510"},
|
||||||
{"pair": 4, "title": "Первая Подгруппа: Глод. Вторая подгруппа Основы программирование, каб 606"},
|
{"pair": 4, "title": "Геоинформационные системы (лекция), пр. Ушкалова Е.В., а. 403а (НИИМ и ПМ)"},
|
||||||
{"pair": 5, "title": "Общекулутрная и профессиональная коммуникации."},
|
],
|
||||||
],
|
1: [
|
||||||
1: [
|
{"pair": 1, "title": "Нет пары"},
|
||||||
{"pair": 1, "title": "Нету пары"},
|
{"pair": 2, "title": "Нет пары"},
|
||||||
{"pair": 2, "title": "Физика (лаб), каб. 241"},
|
{"pair": 3, "title": "Специальные разделы математики (практика), пр. Вакулин Б.Г., а. 504"},
|
||||||
{"pair": 3, "title": "Математика (лек), каб 514"},
|
{"pair": 4, "title": "1-я подгруппа: Геоинформационные системы (лаб), пр. Ушкалова Е.В., а. 403а (НИИМ и ПМ)"},
|
||||||
],
|
],
|
||||||
2: [
|
2: [
|
||||||
{"pair": None, "title": "Англ ебучий"},
|
{"pair": 1, "title": "Нет пары"},
|
||||||
],
|
{"pair": 2, "title": "Технологии программирования (лекция), пр. Губский Д.С., а. 510"},
|
||||||
3: [
|
{"pair": 3, "title": "1-я подгруппа: Основы функционирования ВТ (лаб), пр. Дядик О.В., а. 606. 2-я подгруппа: Геоинформационные системы (лаб), пр. Ушкалова Е.В., а. 403а (НИИМ и ПМ)"},
|
||||||
{"pair": 1, "title": "Физика (лек), каб 245"},
|
{"pair": 4, "title": "1-я подгруппа: Технологии программирования (лаб), пр. Губский Д.С., а. 609. 2-я подгруппа: Технологии программирования (лаб), пр. Иванова Н.Н., а. 609 а"},
|
||||||
{"pair": 2, "title": "Физика (прак), каб 245"},
|
{"pair": 5, "title": "2-я подгруппа: Основы функционирования вычислительной техники (лаб), пр. Дядик О.В., а. 606"},
|
||||||
{"pair": 3, "title": "Маетимака (прак), каб 503"},
|
],
|
||||||
{"pair": 4, "title": "Безопасность жизнедятельности (прак) каб 503"},
|
3: [
|
||||||
{"pair": 5, "title": "Общекультурная и профессиональная коммуникации (прак), каб 503"},
|
{"pair": 1, "title": "Нет пары"},
|
||||||
],
|
{"pair": 2, "title": "Специальные разделы математики (прак), пр. Вакулин Б.Г., а. 502"},
|
||||||
4: [
|
{"pair": 3, "title": "Основы функционирования вычислительной техники (прак), пр. Дядик О.В., а. 818"},
|
||||||
{"pair": 1, "title": "Нету пары"},
|
{"pair": 4, "title": "Специальные разделы математики (лекция), пр. Котлярский В.М., а. 510"},
|
||||||
{"pair": 2, "title": "История России (лек), каб 510"},
|
],
|
||||||
{"pair": 3, "title": "Основы программирования (лек), каб 510"},
|
4: [
|
||||||
{"pair": 4, "title": "Физическая культура спорта (прак), каб 503"},
|
{"pair": None, "title": "Иностранный язык"},
|
||||||
],
|
],
|
||||||
},
|
5: [
|
||||||
"lower": {
|
{"pair": 1, "title": "Философия (лекция), пр. Новосёлова А.Г., MS Teams"},
|
||||||
0: [
|
],
|
||||||
{"pair": 1, "title": "Пары нету"},
|
},
|
||||||
{"pair": 2, "title": "История Россия (семинар), каб. 504"},
|
"lower": {
|
||||||
{"pair": 3, "title": "Первая Подгруппа: Основы программирование, каб. 606. Вторая подгруппа Глод."},
|
0: [
|
||||||
{"pair": 4, "title": "Первая Подгруппа: Глод. Вторая подгруппа Основы программирование, каб 606"},
|
{"pair": 1, "title": "Нет пары"},
|
||||||
{"pair": 5, "title": "Общекулутрная и профессиональная коммуникации."},
|
{"pair": 2, "title": "Экономика и право (практика), пр. Индустриев М.А. (до 6.11.25) / Васильева Е.В. (с 7.11.25), а. 504"},
|
||||||
],
|
{"pair": 3, "title": "Экономика и право (лекция), пр. Туманян Ю.Р. (до 6.11.25) / Васильева Е.В. (с 7.11.25), а. 510"},
|
||||||
1: [
|
{"pair": 4, "title": "Геоинформационные системы (лекция), пр. Ушкалова Е.В., а. 403а (НИИМ и ПМ)"},
|
||||||
{"pair": 1, "title": "Нету пары"},
|
],
|
||||||
{"pair": 2, "title": "Физика (лаб), каб. 241"},
|
1: [
|
||||||
{"pair": 3, "title": "Математика (лек), каб 514"},
|
{"pair": 1, "title": "Нет пары"},
|
||||||
{"pair": 4, "title": "Математика (прак), каб 503"},
|
{"pair": 2, "title": "Нет пары"},
|
||||||
],
|
{"pair": 3, "title": "Специальные разделы математики (практика), пр. Вакулин Б.Г., а. 504"},
|
||||||
2: [
|
{"pair": 4, "title": "1-я подгруппа: Геоинформационные системы (лаб), пр. Ушкалова Е.В., а. 403а (НИИМ и ПМ)"},
|
||||||
{"pair": None, "title": "Англ ебучий"},
|
],
|
||||||
],
|
2: [
|
||||||
3: [
|
{"pair": 1, "title": "Нет пары"},
|
||||||
{"pair": 1, "title": "Физика (лек), каб 245"},
|
{"pair": 2, "title": "Технологии программирования (лекция), пр. Губский Д.С., а. 510"},
|
||||||
{"pair": 2, "title": "Физика (прак), каб 245"},
|
{"pair": 3, "title": "1-я подгруппа: Основы функционирования ВТ (лаб), пр. Дядик О.В., а. 606. 2-я подгруппа: Геоинформационные системы (лаб), пр. Ушкалова Е.В., а. 403а (НИИМ и ПМ)"},
|
||||||
{"pair": 3, "title": "Маетимака (прак), каб 503"},
|
{"pair": 4, "title": "1-я подгруппа: Технологии программирования (лаб), пр. Губский Д.С., а. 609. 2-я подгруппа: Технологии программирования (лаб), пр. Иванова Н.Н., а. 609 а"},
|
||||||
{"pair": 4, "title": "Безопасность жизнедятельности (прак) каб 503"},
|
{"pair": 5, "title": "2-я подгруппа: Основы функционирования вычислительной техники (лаб), пр. Дядик О.В., а. 606"},
|
||||||
{"pair": 5, "title": "Общекультурная и профессиональная коммуникации (прак), каб 503"},
|
],
|
||||||
],
|
3: [
|
||||||
4: [
|
{"pair": 1, "title": "Нет пары"},
|
||||||
{"pair": 1, "title": "Нету пары"},
|
{"pair": 2, "title": "Основы функционирования вычислительной техники (лекция), пр. Дядик О.В., а. 514"},
|
||||||
{"pair": 2, "title": "История России (лек), каб 510"},
|
{"pair": 3, "title": "Нет пары"},
|
||||||
{"pair": 3, "title": "Основы программирования (лек), каб 510"},
|
{"pair": 4, "title": "Специальные разделы математики (лекция), пр. Котлярский В.М., а. 510"},
|
||||||
{"pair": 4, "title": "Физическая культура спорта (прак), каб 503"},
|
],
|
||||||
],
|
4: [
|
||||||
},
|
{"pair": None, "title": "Иностранный язык"},
|
||||||
}
|
],
|
||||||
|
},
|
||||||
SCHEDULE = {
|
}
|
||||||
0: [ # Понедельник
|
|
||||||
(make_time(9, 50), make_time(10, 35), 5),
|
SCHEDULE = {
|
||||||
(make_time(10, 40), make_time(11, 25), 30),
|
0: [ # Понедельник
|
||||||
(make_time(11, 55), make_time(12, 40), 5),
|
(make_time(9, 50), make_time(10, 35), 5),
|
||||||
(make_time(12, 45), make_time(13, 30), 15),
|
(make_time(10, 40), make_time(11, 25), 30),
|
||||||
(make_time(13, 45), make_time(14, 30), 5),
|
(make_time(11, 55), make_time(12, 40), 5),
|
||||||
(make_time(14, 35), make_time(15, 20), 30),
|
(make_time(12, 45), make_time(13, 30), 15),
|
||||||
(make_time(15, 50), make_time(16, 35), 5),
|
(make_time(13, 45), make_time(14, 30), 5),
|
||||||
(make_time(16, 40), make_time(17, 25), None),
|
(make_time(14, 35), make_time(15, 20), None),
|
||||||
],
|
],
|
||||||
1: [ # Вторник
|
1: [ # Вторник
|
||||||
(make_time(9, 50), make_time(10, 35), 5),
|
(make_time(11, 55), make_time(12, 40), 5),
|
||||||
(make_time(10, 40), make_time(11, 25), 30),
|
(make_time(12, 45), make_time(13, 30), 15),
|
||||||
(make_time(11, 55), make_time(12, 40), 5),
|
(make_time(13, 45), make_time(14, 30), 5),
|
||||||
(make_time(12, 45), make_time(13, 30), 15),
|
(make_time(14, 35), make_time(15, 20), None),
|
||||||
(make_time(13, 45), make_time(14, 30), 5),
|
],
|
||||||
(make_time(14, 35), make_time(15, 20), None),
|
2: [ # Среда
|
||||||
],
|
(make_time(9, 50), make_time(10, 35), 5),
|
||||||
2: [], # Среда
|
(make_time(10, 40), make_time(11, 25), 30),
|
||||||
3: [ # Четверг
|
(make_time(11, 55), make_time(12, 40), 5),
|
||||||
(make_time(8, 0), make_time(8, 45), 5),
|
(make_time(12, 45), make_time(13, 30), 15),
|
||||||
(make_time(8, 50), make_time(9, 35), 15),
|
(make_time(13, 45), make_time(14, 30), 5),
|
||||||
(make_time(9, 50), make_time(10, 35), 5),
|
(make_time(14, 35), make_time(15, 20), 30),
|
||||||
(make_time(10, 40), make_time(11, 25), 30),
|
(make_time(15, 50), make_time(16, 35), 5),
|
||||||
(make_time(11, 55), make_time(12, 40), 5),
|
(make_time(16, 40), make_time(17, 25), None),
|
||||||
(make_time(12, 45), make_time(13, 30), 15),
|
],
|
||||||
(make_time(13, 45), make_time(14, 30), 5),
|
3: [ # Четверг
|
||||||
(make_time(14, 35), make_time(15, 20), 30),
|
(make_time(9, 50), make_time(10, 35), 5),
|
||||||
(make_time(15, 50), make_time(16, 35), 5),
|
(make_time(10, 40), make_time(11, 25), 30),
|
||||||
(make_time(16, 40), make_time(17, 25), None),
|
(make_time(11, 55), make_time(12, 40), 5),
|
||||||
],
|
(make_time(12, 45), make_time(13, 30), 15),
|
||||||
4: [ # Пятница
|
(make_time(13, 45), make_time(14, 30), 5),
|
||||||
(make_time(9, 50), make_time(10, 35), 5),
|
(make_time(14, 35), make_time(15, 20), None),
|
||||||
(make_time(10, 40), make_time(11, 25), 30),
|
],
|
||||||
(make_time(11, 55), make_time(12, 40), 5),
|
4: [], # Пятница
|
||||||
(make_time(12, 45), make_time(13, 30), 15),
|
5: [ # Суббота
|
||||||
(make_time(13, 45), make_time(14, 30), 5),
|
(make_time(8, 0), make_time(8, 45), 5),
|
||||||
(make_time(14, 35), make_time(15, 20), None),
|
(make_time(8, 50), make_time(9, 35), None),
|
||||||
],
|
],
|
||||||
}
|
}
|
||||||
|
|
||||||
# --- Остальное ---
|
# --- Остальное ---
|
||||||
KEYWORDS = {'крип', 'радиохэд', 'creep', 'radiohead'}
|
KEYWORDS = {'крип', 'радиохэд', 'creep', 'radiohead'}
|
||||||
|
|
||||||
# --- Авто-ответы ИИ ---
|
# --- Авто-ответы ИИ ---
|
||||||
AUTOREPLY_CHANCE = 0.10
|
AUTOREPLY_CHANCE = 0.10
|
||||||
AUTOREPLY_COOLDOWN = 120
|
AUTOREPLY_COOLDOWN = 120
|
||||||
AUTOREPLY_TRIGGERS = {'бот', 'фраер', 'кент', 'братуха', 'пацаны', 'чё как', 'базар', 'ебать', 'пизда', 'хуй', 'бля', 'сука', 'говно', 'пидор', 'пиздабол', 'пиздатый', 'пиздатая', 'пиздатое', 'пиздатые', 'пиздато', 'ваномас'}
|
AUTOREPLY_TRIGGERS = {'бот', 'фраер', 'кент', 'братуха', 'пацаны', 'чё как', 'базар', 'ебать', 'пизда', 'хуй', 'бля', 'сука', 'говно', 'пидор', 'пиздабол', 'пиздатый', 'пиздатая', 'пиздатое', 'пиздатые', 'пиздато', 'ваномас'}
|
||||||
|
|
||||||
def get_hint_text(templates_str: str) -> str:
|
def get_hint_text(templates_str: str) -> str:
|
||||||
return (
|
return (
|
||||||
"Команды:\n"
|
"Команды:\n"
|
||||||
f"• /maket «id» «текст» — доступные: {templates_str}.\n"
|
f"• /maket «id» «текст» — доступные: {templates_str}.\n"
|
||||||
"• /gen_mem Up:верх Down:низ — отправь с фото.\n"
|
"• /gen_mem Up:верх Down:низ — отправь с фото.\n"
|
||||||
"• /break — узнать время до перекура.\n"
|
"• /break — узнать время до перекура.\n"
|
||||||
"• /schedule [пн|mon] — расписание; без аргумента еще текущая и следующая пара.\n"
|
"• /schedule [пн|mon] — расписание; без аргумента еще текущая и следующая пара.\n"
|
||||||
"• /penis — миниигра 1 раз в 24 часа.\n"
|
"• /penis — миниигра 1 раз в 24 часа.\n"
|
||||||
"• /top_penis — топ по длине.\n"
|
"• /top_penis — топ по длине.\n"
|
||||||
"• /talk [текст] — ИИ базарит на фене.\n"
|
"• /talk [текст] — ИИ базарит на фене.\n"
|
||||||
"• /penis_casino [ставка] — казино на размер.\n"
|
"• /penis_casino [ставка] — казино на размер.\n"
|
||||||
"• /gadanie [тема] — гадание на фене с мемом.\n"
|
"• /gadanie [тема] — гадание на фене с мемом.\n"
|
||||||
"• /matches — матчи для ставок.\n"
|
"• /matches — матчи для ставок.\n"
|
||||||
"• /bet [номер] [исход] [ставка] — поставить.\n"
|
"• /bet [номер] [исход] [ставка] — поставить.\n"
|
||||||
"• /mybets — мои активные ставки.\n"
|
"• /mybets — мои активные ставки.\n"
|
||||||
"• /bet_history — история ставок за месяц + статистика.\n"
|
"• /bet_history — история ставок за месяц + статистика.\n"
|
||||||
"• /sports_debug — диагностика API матчей.\n"
|
"• /sports_debug — диагностика API матчей.\n"
|
||||||
"• /ebalnik — включить/выключить автоответы в чате.\n"
|
"• /ebalnik — включить/выключить автоответы в чате.\n"
|
||||||
"• /uwu [теги] — случайная картинка с e621.\n"
|
"• /uwu [теги] — случайная картинка с e621.\n"
|
||||||
"• /polychaetsi — топ по слову «получается».\n"
|
"• /polychaetsi — топ по слову «получается».\n"
|
||||||
"• /prices /fetch — цены и остатки Магнита.\n"
|
"• /prices /fetch — цены и остатки Магнита.\n"
|
||||||
"Подсказка: в группах пиши /команда@username_бота."
|
"Подсказка: в группах пиши /команда@username_бота."
|
||||||
)
|
)
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue