/
Noriyki
/
VibeCodeBot
Обзор
Документация
Войти
/
Noriyki
/
VibeCodeBot
Код
Запросы
2
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
src/services/problem_picker.py
39 строк
1 KB
Noriyki
refactor:соединение мейнов, запуск страниц через эндпоинты, выделение фласк в отдельный поток
11 фев 2026, 20:06
11 фев 2026, 20:06
361ea2e
Код
Авторство
О чём код?
import random import requests from src.services.CodeforceApi import get_problems_by_rating from src.DB.repositories import user_repo def pick_random_by_rating(rating: int): problems = get_problems_by_rating(rating) return random.choice(problems) if problems else None def format_problem(problem: dict) -> str: contest = problem.get("contestId", "") index = problem.get("index", "") name = problem.get("name", "Без названия") rating = problem.get("rating", "N/A") link = f"https://codeforces.com/problemset/problem/{contest}/{index}" return ( f"🎯 *Задача {contest}{index}: {name}*\n\n" f"🔗 {link}\n\n" f"Рейтинг: {rating}" ) def get_problem_by_rating(rating: int, user_id: int, username: str) -> str: try: problem = pick_random_by_rating(rating) if not problem: return f"Нет задач с рейтингом {rating}" user_repo.add_or_update_user(user_id, username, last_rating=rating) return format_problem(problem) except requests.exceptions.RequestException: return "Ошибка подключения к Codeforces" except Exception as e: return f"Произошла ошибка: {str(e)}"