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
from telebot.types import Message
from helpers.mongo import mongo
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()
def do_action(message: Message):
from helpers.answer import answer

View File

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

View File

@ -1,10 +1,11 @@
import datetime
import logging
from time import sleep
from telebot.apihelper import ApiTelegramException
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.mongo import mongo
from helpers.ruz import ruz
@ -55,10 +56,10 @@ def process():
def notify():
while True:
print("notify start")
logging.info("notify start")
begin = datetime.datetime.now()
process()
end = datetime.datetime.now()
print('notify finished')
print("time elapsed", (end - begin).total_seconds())
logging.info('notify finished')
logging.info("time elapsed", (end - begin).total_seconds())
sleep(60)

View File

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

View File

@ -1,11 +1,8 @@
import datetime
import pytz
from telebot.types import Message
from daemons.bot import bot
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, \
no_daily_notify, student_or_teacher_keyboard, campus_keyboard
from helpers.models import UserSchema, User

View File

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

View File

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

View File

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

View File

@ -1,4 +1,5 @@
import os
import sys
import zoneinfo
MONGO_USER = os.getenv("MONGO_USER", "mongo")
@ -8,3 +9,19 @@ DEBUG = os.getenv("DEBUG", "true") == "true"
RUZ_API = "https://ruz.hse.ru/api/"
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'
}
}