Spaces:
Paused
Paused
| # This file is part of the AutoAnime distribution. | |
| # Copyright (c) 2025 Kaif_00z | |
| # | |
| # This program is free software: you can redistribute it and/or modify | |
| # it under the terms of the GNU General Public License as published by | |
| # the Free Software Foundation, version 3. | |
| # | |
| # This program is distributed in the hope that it will be useful, but | |
| # WITHOUT ANY WARRANTY; without even the implied warranty of | |
| # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
| # General Public License for more details. | |
| # | |
| # License can be found in < | |
| # https://github.com/kaif-00z/AutoAnimeBot/blob/main/LICENSE > . | |
| # if you are using this following code then don't forgot to give proper | |
| # credit to t.me/kAiF_00z (github.com/kaif-00z) | |
| import json | |
| import os | |
| import sys | |
| from apscheduler.schedulers.asyncio import AsyncIOScheduler | |
| from functions.config import Var | |
| from functions.info import AnimeInfo | |
| from functions.tools import Tools | |
| from libs.logger import LOGS, TelegramClient | |
| class ScheduleTasks: | |
| def __init__(self, bot: TelegramClient): | |
| self.tools = Tools() | |
| self.bot = bot | |
| if Var.SEND_SCHEDULE or Var.RESTART_EVERDAY: | |
| self.sch = AsyncIOScheduler(timezone="Asia/Kolkata") | |
| if Var.SEND_SCHEDULE: | |
| self.sch.add_job( | |
| self.anime_timing, "cron", hour=0, minute=30 | |
| ) # 12:30 AM IST | |
| if Var.RESTART_EVERDAY: | |
| self.sch.add_job(self.restart, "cron", hour=2, minute=1) # 2:01 AM IST | |
| self.sch.start() | |
| async def anime_timing(self): | |
| try: | |
| _res = await self.tools.async_searcher( | |
| "https://subsplease.org/api/?f=schedule&h=true&tz=Asia/Kolkata" | |
| ) | |
| xx = json.loads(_res) | |
| xxx = xx["schedule"] | |
| text = "**๐ Anime AirTime Today** `[IST]`\n\n" | |
| for i in xxx: | |
| info = AnimeInfo(i["title"]) | |
| text += f'`[{i["time"]}]` - [{(await info.get_english())}](https://subsplease.org/shows/{i["page"]})\n' | |
| mssg = await self.bot.send_message(Var.MAIN_CHANNEL, text) | |
| await mssg.pin(notify=True) | |
| except Exception as error: | |
| LOGS.error(str(error)) | |
| def restart(self): | |
| os.execl(sys.executable, sys.executable, "bot.py") | |