| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- #!/usr/bin/env python3
- # Copyright Penta & lulu (c) 2018/2022 - Under BSD License - Based on feed2discord.py by Eric Eisenhart
- # Compatible for Python 3.7.X
- # Library import
- import asyncio
- import logging
- import sys
- import urllib.request
- import signal
- from configparser import ConfigParser
- from datetime import datetime
- from typing import List, Tuple
- import aiohttp
- import discord
- import feedparser
- from aiohttp.web_exceptions import HTTPError, HTTPNotModified
- from dateutil.parser import parse as parse_datetime
- from html2text import HTML2Text
- # Our modules
- import myanimebot.anilist as anilist
- import myanimebot.globals as globals
- import myanimebot.utils as utils
- import myanimebot.myanimelist as myanimelist
- import myanimebot.commands as commands
- from myanimebot.discord import send_embed_wrapper, build_embed, MyAnimeBot
- if not sys.version_info[:2] >= (3, 7):
- print("ERROR: Requires python 3.7 or newer.")
- exit(1)
- def exit_app(signum=None, frame=None):
- globals.logger.debug("Received signal {}".format(signum))
- globals.logger.info("Closing all tasks...")
-
- if globals.MAL_ENABLED:
- globals.task_feed.cancel()
- if globals.ANI_ENABLED:
- globals.task_feed_anilist.cancel()
- globals.task_thumbnail.cancel()
- globals.task_gameplayed.cancel()
- # Closing all ressources
- globals.conn.close()
-
- globals.logger.critical("Script halted.")
- # Starting main function
- if __name__ == "__main__":
-
- # Catch SIGINT signal (Ctrl-C)
- signal.signal(signal.SIGINT, exit_app)
-
- # Run the app
- try:
- globals.client = MyAnimeBot()
- globals.client.run(globals.token)
- except Exception as e:
- globals.logger.error("Encountered exception while running the bot: {}".format(e))
- exit_app()
|