3.0 Выпуск в PrimoRU

This commit is contained in:
Verum
2025-04-13 06:50:23 +07:00
parent b8f7ce5b2a
commit 17d10fbf78
51 changed files with 1191 additions and 1611 deletions

View File

@@ -1,22 +1,34 @@
# BotCode/utils/admin_lists.py
# Составления листа администраторов
from aiogram.types import Message
from BotLibrary import bot
from ProjectsFiles import BotVar
# Настройки экспорта в модули
__all__ = ("admin_lists",)
async def admin_lists(chat_id: int = None, message: Message = None) -> str:
"""
Функция составления словаря администраторов.
# Функция составления словаря администраторов
async def admin_lists(chat_id: int) -> str:
:param message: Объект сообщения от пользователя.
:param chat_id: ID-чата в котором будет проводиться работа.
:return: Строка с юзерами администрации.
"""
chat_id = chat_id if isinstance(chat_id, int) else message.chat.id
admins = await bot.get_chat_administrators(chat_id)
# Формируем список упоминаний администраторов
admin_mentions = []
for admin in admins:
if admin.user.is_bot:
continue
admin_mentions.append(
if BotVar.parse_mode == "HTML":
admin_mentions.append(
f"@{admin.user.username}" if admin.user.username else f"<a href=\"tg://user?id={admin.user.id}\">{admin.user.full_name}</a>")
elif BotVar.parse_mode == "MarkdownV2":
admin_mentions.append(
f"@{admin.user.username}" if admin.user.username else f"[{admin.user.full_name}](tg://user?id={admin.user.id})")
admins_text = ", ".join(admin_mentions) if admin_mentions else "Нет администраторов"
return admins_text

View File

@@ -8,18 +8,28 @@ from BotLibrary import bot
# Настройки экспорта в модули
__all__ = ("hidden_admins_message",)
# Функция составления словаря администраторов
async def hidden_admins_message(message: types.Message = None,
chat_id: int = None,
text: str = "",
msg: bool = True, *args) -> str | None:
"""
Формирует скрытые ссылки на администраторов чата в Markdown-разметке.
:param message: Объект сообщения от пользователя (если chat_id не указан, ID чата берется из него).
:param chat_id: ID чата, в котором нужно получить список администраторов (если не указан, берется из message).
:param text: Дополнительный текст, который будет добавлен к результату.
:param msg: Определяет, возвращать ли результат (True) или отправлять его в чат (False).
:param args: Дополнительные аргументы (не используются, оставлены для совместимости с шаблоном).
:return: Строка со скрытыми ссылками на администраторов и добавленным текстом (если msg=True), иначе None.
"""
chat_id = chat_id if isinstance(chat_id, int) else message.chat.id
admins = await bot.get_chat_administrators(chat_id)
hidden_links = "".join(
markdown.hide_link(f"tg://user?id={admin.user.id}")
for admin in admins if not admin.user.is_bot
)
result = f"{hidden_links}{text}"
if msg:
return result

View File

@@ -1,10 +1,17 @@
import aiohttp
from aiogram.types import Message
from ProjectsFiles import weather_api_key
# Настройки экспорта в модули
__all__ = ("get_weather",)
async def get_weather(message, *args) -> str:
async def get_weather(message: Message, *args) -> str:
"""
Обрабатывает запрос о погоде для указанного города и возвращает информацию о текущей погоде.
:param message: Объект сообщения от пользователя.
:return: Возвращает ответ о погоде в указанном городе.
"""
# Извлекаем город из сообщения
command_parts = message.text.split(maxsplit=1)
print(command_parts[1])
@@ -33,10 +40,10 @@ async def get_weather(message, *args) -> str:
wind = data["wind"]["speed"]
weather_today: str = (f"Погода <b>{city}</b>\n"
f"☁️Погода: <b>{weather}</b>\n"
f"🌡Температура: <b>{temp}°C</b>\n"
f"💧Влажность: <b>{humidity}%</b>\n"
f"💨Скорость ветра: <b>{wind} м/с</b>")
f"☁️Погода: <b>{weather}</b>\n"
f"🌡Температура: <b>{temp}°C</b>\n"
f"💧Влажность: <b>{humidity}%</b>\n"
f"💨Скорость ветра: <b>{wind} м/с</b>")
await message.answer(weather_today)
return weather_today
except Exception as e: