Repo Health

Рейтинг здоровья открытых репозиториев

Оценка от 0 до 100 по данным SourceCraft.

4 категории из 6, пересчёт раз в сутки. Как считается

  1. 26

    HTML415 дней назад0лайков
  2. 26

    Jupyter Notebook909 дней назад0лайков
  3. 26

    Задания для практических упражнений

    302 дня назад0лайков
  4. 12981–13478somerset917/igr
    26

    C#310 дней назад0лайков
  5. 26

    Шаблон хакатона ИИ ЧЕМП для кейса «Маскирование персональных данных» от Альфа‑Банка

    245 дней назад0лайков
  6. 26

    Шаблон хакатона ИИ ЧЕМП для кейса «Video RAG для онлайн-кинотеатра» от Окко

    245 дней назад0лайков
  7. 26

    Шаблон хакатона ИИ ЧЕМП для кейса «Матчинг номеров отелей» от Т‑Банка

    245 дней назад0лайков
  8. 26

    Шаблон хакатона ИИ ЧЕМП для кейса «3D-оптимизатор укладки паллет» от X5

    245 дней назад0лайков
  9. 26

    Шаблон хакатона ИИ ЧЕМП для кейса «Пользовательский ИИ-навык» от SourceCraft (Яндекс)

    245 дней назад0лайков
  10. 12981–13478sr-close/app
    26

    23 дня назад0лайков
  11. 12981–13478st-kraynov/docker
    26

    HTML415 дней назад0лайков
  12. 26

    srtj

    Python472 дня назад0лайков
  13. 26

    247 дней назад0лайков
  14. 12981–13478storie/su
    26

    24 дня назад0лайков
  15. 26

    HTML23 дня назад0лайков
  16. 26

    Веб-приложение для отказа от курения с системой физической ответственности: за каждую сигарету пользователь выполняет отжимания, количество которых растет каждую неделю. Включает личный кабинет, статистику, настройки и подписку.

    TypeScript62 дня назад0лайков
  17. 26

    HTML415 дней назад0лайков
  18. 12981–13478sziuzev/sbz
    26

    JavaScript584 дня назад0лайков
  19. 26

    import asyncio from datetime import datetime, date from aiogram import Bot, Dispatcher, F from aiogram.types import ( Message, CallbackQuery, InlineKeyboardMarkup, InlineKeyboardButton ) # ================== НАСТРОЙКИ ================== BOT_TOKEN = "PASTE_YOUR_BOT_TOKEN" WORK_CHAT_ID = -1001111111111 # рабочий чат SUPERVISOR_ID = 222222222 # супервайзер CONTROL_TIMES = { "morning": "09:00", "day": "12:30", "evening": "17:00" } TERRITORIES = [ "Дмитров", "Долгопрудный", "Зеленоград", "Клин", "Митино", "Солнечногорск" ] # ================== ХРАНИЛИЩЕ (IN-MEMORY) ================== users = {} # user_id: {fio, territory} reports = {} # user_id: {date: {morning, day, evening}} discipline = {} # user_id: {late, missed} def today(): return date.today().isoformat() # ================== КНОПКИ ================== def territory_kb(): return InlineKeyboardMarkup( inline_keyboard=[ [InlineKeyboardButton(text=t, callback_data=f"territory:{t}")] for t in TERRITORIES ] ) def report_kb(): return InlineKeyboardMarkup( inline_keyboard=[ [InlineKeyboardButton(text="🌅 Утро", callback_data="report:morning")], [InlineKeyboardButton(text="🕧 День", callback_data="report:day")], [InlineKeyboardButton(text="🌙 Вечер", callback_data="report:evening")] ] ) # ================== BOT ================== bot = Bot(token=BOT_TOKEN) dp = Dispatcher() # ================== HANDLERS ================== @dp.message(F.text == "/start") async def start(msg: Message): await msg.answer( "👋 Добро пожаловать!\nВыберите территорию:", reply_markup=territory_kb() ) @dp.callback_query(F.data.startswith("territory:")) async def set_territory(cb: CallbackQuery): territory = cb.data.split(":")[1] users[cb.from_user.id] = { "fio": cb.from_user.full_name, "territory": territory } await cb.message.answer( f"📍 Территория закреплена: {territory}\n\n" f"Выберите тип отчета:", reply_markup=report_kb() ) await cb.answer() @dp.callback_query(F.data.startswith("report:")) async def submit_report(cb: CallbackQuery): report_type = cb.data.split(":")[1] uid = cb.from_user.id reports.setdefault(uid, {}).setdefault(today(), {}) reports[uid][today()][report_type] = True await cb.message.answer( f"✅ Отчет «{report_type.upper()}» принят" ) await bot.send_message( WORK_CHAT_ID, f"📊 Отчет сдан\n" f"👤 {users[uid]['fio']}\n" f"📍 {users[uid]['territory']}\n" f"🕘 Тип: {report_type}" ) await cb.answer() # ================== SCHEDULER ================== async def check_reports(): now = datetime.now().strftime("%H:%M") for report_type, control_time in CONTROL_TIMES.items(): if now == control_time: for uid, user in users.items(): user_reports = reports.get(uid, {}).get(today(), {}) if not user_reports.get(report_type): # личка ТП await bot.send_message( uid, f"❗ ВНИМАНИЕ\n\n" f"{user['fio']}, отчет НЕ СДАН\n" f"Тип: {report_type.upper()}\n" f"📍 Территория: {user['territory']}" ) # рабочий чат await bot.send_message( WORK_CHAT_ID, f"⏰ Контроль отчетов\n" f"❌ {user['fio']} — {user['territory']}\n" f"Отчет: {report_type.upper()}" ) # дисциплина discipline.setdefault(uid, {"late": 0, "missed": 0}) discipline[uid]["missed"] += 1 # эскалация await bot.send_message( SUPERVISOR_ID, f"🚨 ЭСКАЛАЦИЯ\n\n" f"ТП не сдал отчет:\n" f"{user['fio']} — {user['territory']}\n" f"Тип: {report_type.upper()}" ) async def scheduler(): while True: await check_reports() await asyncio.sleep(60) # ================== START ================== async def main(): asyncio.create_task(scheduler()) await dp.start_polling(bot) if __name__ == "__main__": asyncio.run(main())

    Python309 дней назад0лайков
  20. 26

    HTML23 дня назад0лайков
  21. 26

    Создание лендинга с использованием современных технологий искусственного интеллекта

    HTML39 дней назад0лайков
  22. 26

    Supercharge your workflow automation with this curated collection of n8n templates! Instantly connect your favorite apps-like Gmail, Telegram, Google Drive, Slack, and more-with ready-to-use, AI-powered automations. Save time, boost productivity, and unlock the true potential of n8n in just a few clicks.

    514 дней назад0лайков
  23. 12981–13478tdanil776/day-10
    26

    323 дня назад0лайков
  24. 26

    330 дней назад0лайков
  25. 26

    323 дня назад0лайков
Показать ещё 0

13 376–13 400 из 21 929

Выбрано 3 из 3