This commit is contained in:
Administrator 2022-10-27 13:06:40 +03:00
parent ab8ed0b933
commit c7bb2829f7
9 changed files with 46 additions and 19 deletions

View File

@ -3,10 +3,17 @@ import os
import telebot import telebot
from telebot.types import Message from telebot.types import Message
from helpers.mongo import mongo
bot = telebot.TeleBot(os.getenv("TELEGRAM_TOKEN")) bot = telebot.TeleBot(os.getenv("TELEGRAM_TOKEN"))
@bot.message_handler(commands=['start'])
def on_start(message: Message):
mongo.users_collection.delete_many({"chat_id": message.chat.id})
do_action(message)
@bot.message_handler() @bot.message_handler()
def do_action(message: Message): def do_action(message: Message):
from helpers.answer import answer from helpers.answer import answer

View File

@ -1,11 +1,11 @@
import datetime import datetime
import logging
from time import sleep from time import sleep
from helpers import now, User from helpers import now, User
from helpers.models import UserSchema from helpers.models import UserSchema
from helpers.mongo import mongo from helpers.mongo import mongo
from helpers.ruz import ruz from helpers.ruz import ruz
from settings import MOSCOW_TIMEZONE
def fetch_schedule_for_user(user: User): def fetch_schedule_for_user(user: User):
@ -72,11 +72,11 @@ def delete_old():
def fetch(): def fetch():
while True: while True:
print("fetch start") logging.info("fetch start")
begin = datetime.datetime.now() begin = datetime.datetime.now()
process() process()
end = datetime.datetime.now() end = datetime.datetime.now()
print('fetch finished') logging.info('fetch finished')
print("time elapsed", (end - begin).total_seconds()) logging.info("time elapsed", (end - begin).total_seconds())
delete_old() delete_old()
sleep(60 * 5) sleep(60 * 5)

View File

@ -1,10 +1,11 @@
import datetime import datetime
import logging
from time import sleep from time import sleep
from telebot.apihelper import ApiTelegramException from telebot.apihelper import ApiTelegramException
from daemons.bot import bot from daemons.bot import bot
from helpers import now, get_next_daily_notify_time from helpers import now
from helpers.models import UserSchema from helpers.models import UserSchema
from helpers.mongo import mongo from helpers.mongo import mongo
from helpers.ruz import ruz from helpers.ruz import ruz
@ -55,10 +56,10 @@ def process():
def notify(): def notify():
while True: while True:
print("notify start") logging.info("notify start")
begin = datetime.datetime.now() begin = datetime.datetime.now()
process() process()
end = datetime.datetime.now() end = datetime.datetime.now()
print('notify finished') logging.info('notify finished')
print("time elapsed", (end - begin).total_seconds()) logging.info("time elapsed", (end - begin).total_seconds())
sleep(60) sleep(60)

View File

@ -1,23 +1,27 @@
import logging.config
import sys import sys
import settings
from daemons.api import api from daemons.api import api
from daemons.bot import bot from daemons.bot import bot
from daemons.fetch import fetch from daemons.fetch import fetch
from daemons.notify import notify from daemons.notify import notify
logging.config.dictConfig(settings.logging_config)
arg = sys.argv[-1] arg = sys.argv[-1]
if arg == "bot": if arg == "bot":
print("bot is starting") logging.info("bot is starting")
bot.polling() bot.polling()
elif arg == "fetch": elif arg == "fetch":
print("fetch is starting") logging.info("fetch is starting")
fetch() fetch()
elif arg == "notify": elif arg == "notify":
print("notify is starting") logging.info("notify is starting")
notify() notify()
elif arg == "api": elif arg == "api":
print("api is starting") logging.info("api is starting")
api() api()
else: else:
raise ValueError(f"Unknown param {arg}") raise ValueError(f"Unknown param {arg}")

View File

@ -1,11 +1,8 @@
import datetime
import pytz
from telebot.types import Message from telebot.types import Message
from daemons.bot import bot from daemons.bot import bot
from daemons.fetch import fetch_schedule_for_user from daemons.fetch import fetch_schedule_for_user
from helpers import now, get_next_daily_notify_time from helpers import get_next_daily_notify_time
from helpers.keyboards import main_keyboard, notify_keyboard, yes_no_keyboard, again_keyboard, groups_keyboard, \ from helpers.keyboards import main_keyboard, notify_keyboard, yes_no_keyboard, again_keyboard, groups_keyboard, \
no_daily_notify, student_or_teacher_keyboard, campus_keyboard no_daily_notify, student_or_teacher_keyboard, campus_keyboard
from helpers.models import UserSchema, User from helpers.models import UserSchema, User

View File

@ -3,7 +3,7 @@ from dataclasses import dataclass
from typing import Optional from typing import Optional
import marshmallow_dataclass import marshmallow_dataclass
from marshmallow import EXCLUDE, pre_load from marshmallow import EXCLUDE
@dataclass @dataclass

View File

@ -1,5 +1,4 @@
import datetime import datetime
import zoneinfo
from functools import cached_property from functools import cached_property
import pymongo import pymongo

View File

@ -1,4 +1,5 @@
import datetime import datetime
import logging
from requests import get from requests import get
@ -52,7 +53,8 @@ class RUZ:
try: try:
data = data.json() data = data.json()
except: except:
print(data.content) logging.info("Json ignored, data content is")
logging.info(data.content)
return None return None
formatted_data = [ formatted_data = [
{ {

View File

@ -1,4 +1,5 @@
import os import os
import sys
import zoneinfo import zoneinfo
MONGO_USER = os.getenv("MONGO_USER", "mongo") MONGO_USER = os.getenv("MONGO_USER", "mongo")
@ -8,3 +9,19 @@ DEBUG = os.getenv("DEBUG", "true") == "true"
RUZ_API = "https://ruz.hse.ru/api/" RUZ_API = "https://ruz.hse.ru/api/"
MOSCOW_TIMEZONE = zoneinfo.ZoneInfo("Europe/Moscow") MOSCOW_TIMEZONE = zoneinfo.ZoneInfo("Europe/Moscow")
logging_config = {
'version': 1,
'disable_existing_loggers': False,
'handlers': {
'console': {
'level': 'INFO',
'class': 'logging.StreamHandler',
'stream': sys.stdout
}
},
'root': {
'handlers': ['console'],
'level': 'INFO'
}
}