Archived
Update requirements.txt, readme.md and .gitignore
now groups schedule in yaml format
This commit is contained in:
@@ -8,3 +8,6 @@ json_remake
|
|||||||
script.py
|
script.py
|
||||||
nohup.out
|
nohup.out
|
||||||
config.yaml
|
config.yaml
|
||||||
|
old_files/
|
||||||
|
yaml_groups/*
|
||||||
|
!yaml_groups/202.yaml
|
||||||
@@ -1,2 +1,81 @@
|
|||||||
# Telegram-bot-schedule
|
# Telegram Bot Schedule
|
||||||
Прямо сейчас бот работает здесь: https://t.me/vmk_schedule_bot
|
This project is a Telegram bot designed to manage and display schedules. The bot can help users keep track of their daily activities, appointments, and events.
|
||||||
|
|
||||||
|
## Features
|
||||||
|
|
||||||
|
- View preloaded schedules
|
||||||
|
- Group schedules for better organization
|
||||||
|
- Receive reminders for upcoming events
|
||||||
|
- User-friendly commands and interface
|
||||||
|
|
||||||
|
## Installation
|
||||||
|
|
||||||
|
1. Clone the repository:
|
||||||
|
```sh
|
||||||
|
git clone https://github.com/yourusername/Telegram-bot-schedule.git
|
||||||
|
```
|
||||||
|
2. Navigate to the project directory:
|
||||||
|
```sh
|
||||||
|
cd Telegram-bot-schedule
|
||||||
|
```
|
||||||
|
3. Install the required dependencies:
|
||||||
|
```sh
|
||||||
|
pip install -r requirements.txt
|
||||||
|
```
|
||||||
|
|
||||||
|
## Usage
|
||||||
|
|
||||||
|
1. Create a new bot on Telegram and get the API token.
|
||||||
|
2. Set the API token in the environment variables or in a configuration file.
|
||||||
|
3. You need to create schedules files for groups.
|
||||||
|
4. Run the bot:
|
||||||
|
```sh
|
||||||
|
python bot.py
|
||||||
|
```
|
||||||
|
|
||||||
|
## Commands
|
||||||
|
|
||||||
|
- `/start` - используй, чтобы сменить номер группы.
|
||||||
|
- `/schedule` - используй, чтобы получить расписание на сегодня.
|
||||||
|
- `/random` - сделай очередь из людей
|
||||||
|
- `/info` - используй, чтобы узнать твои настройки бота
|
||||||
|
- `/pause` - используй, чтобы прекратить получать сообщения от бота
|
||||||
|
- `/thread` - используй в нужном чате канала, чтобы бот отправлял сообщения именно туда
|
||||||
|
- `/timeout` - настрой время, когда бот будет присылать тебе сообщение
|
||||||
|
- `/request` - используй, чтобы отправить разработчику какой-то запрос
|
||||||
|
- `/source` - Страница бота на Github
|
||||||
|
- `/restart` - перезапуск бота (admin only).
|
||||||
|
- `/update` - обновление schedule задач (admin only)
|
||||||
|
- `/stats` - получание статистики (admin only)
|
||||||
|
- `/json` - получить файл пользователей и расписания (admin only)
|
||||||
|
- `/info` <i>id_пользователя</i> - узнать настройки пользователя (admin only)
|
||||||
|
- `/spam` - сделать рассылку (admin only)
|
||||||
|
- `/pause_all` - приостановить бота для всех (каникулы/выходные) (admin only)
|
||||||
|
- `/stop` <i>id_пользователя</i> - приостановить отправку сообщений для пользователя (admin only)
|
||||||
|
|
||||||
|
## Contributing
|
||||||
|
|
||||||
|
Contributions are welcome! Please fork the repository and create a pull request with your changes.
|
||||||
|
|
||||||
|
## Contact
|
||||||
|
|
||||||
|
For any questions or suggestions, please open an issue or contact the project maintainer at [gudovdo@my.msu.ru].
|
||||||
|
|
||||||
|
## Target Audience
|
||||||
|
|
||||||
|
This bot is particularly useful for students to track their lessons and manage their academic schedules effectively.
|
||||||
|
|
||||||
|
## Limitations
|
||||||
|
|
||||||
|
- Cannot create or edit schedule entities directly
|
||||||
|
- Only works with preloaded schedules and groups
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,40 @@
|
|||||||
|
import os
|
||||||
|
import json
|
||||||
|
import yaml
|
||||||
|
|
||||||
|
|
||||||
|
def convert_json_to_yaml(json_dir, yaml_dir):
|
||||||
|
# Iterate over all files in the directory
|
||||||
|
for filename in os.listdir(json_dir):
|
||||||
|
if filename.endswith(".json"):
|
||||||
|
json_path = os.path.join(json_dir, filename)
|
||||||
|
|
||||||
|
# Read JSON file
|
||||||
|
with open(json_path, "r", encoding="utf-8") as json_file:
|
||||||
|
data = json.load(json_file)
|
||||||
|
|
||||||
|
# Convert to YAML
|
||||||
|
yaml_data = yaml.dump(
|
||||||
|
data,
|
||||||
|
default_flow_style=None,
|
||||||
|
encoding="utf-8",
|
||||||
|
allow_unicode=True,
|
||||||
|
width=float("inf"),
|
||||||
|
sort_keys=False,
|
||||||
|
)
|
||||||
|
|
||||||
|
# Write YAML file
|
||||||
|
yaml_path = os.path.join(yaml_dir, filename.replace(".json", ".yaml"))
|
||||||
|
with open(yaml_path, "wb") as yaml_file:
|
||||||
|
yaml_file.write(yaml_data)
|
||||||
|
|
||||||
|
print("Conversion completed.")
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
json_dir = "json_remake"
|
||||||
|
yaml_dir = "yaml_groups"
|
||||||
|
|
||||||
|
convert_json_to_yaml(json_dir, yaml_dir)
|
||||||
|
|
||||||
|
pass
|
||||||
+11
-9
@@ -1,12 +1,12 @@
|
|||||||
#!/usr/bin/python3.3
|
#!/usr/bin/python3.3
|
||||||
import json, schedule
|
import json, yaml, schedule
|
||||||
import schedules as bot
|
import schedules as bot
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
|
|
||||||
path_users = "json/users.json" # Нужный путь до json файлов
|
path_users = "json/users.json" # Нужный путь до json файлов
|
||||||
# path_schedule = "json/schedule_3sem.json"
|
path_schedule = "yaml_groups/{}.yaml"
|
||||||
path_schedule = "json/groups/{}.json"
|
|
||||||
path_students = "json/students.json"
|
path_students = "json/students.json"
|
||||||
|
path_groups = "json/groups.json"
|
||||||
|
|
||||||
allow_update = True
|
allow_update = True
|
||||||
|
|
||||||
@@ -129,7 +129,8 @@ def create_schedule_tasks(manual=False):
|
|||||||
continue
|
continue
|
||||||
|
|
||||||
with open(path_schedule.format(group), "r", encoding="utf-8") as json_file:
|
with open(path_schedule.format(group), "r", encoding="utf-8") as json_file:
|
||||||
schdl = json.load(json_file)["schedule"]
|
# schdl = json.load(json_file)["schedule"]
|
||||||
|
schdl = yaml.safe_load(json_file)["schedule"]
|
||||||
|
|
||||||
for day in schdl:
|
for day in schdl:
|
||||||
for lesson in schdl[day]:
|
for lesson in schdl[day]:
|
||||||
@@ -183,11 +184,11 @@ def create_schedule_tasks(manual=False):
|
|||||||
|
|
||||||
|
|
||||||
def groups_in_json() -> list[str]:
|
def groups_in_json() -> list[str]:
|
||||||
schdl = {}
|
groups = {}
|
||||||
with open(path_schedule.format("groups"), "r", encoding="utf-8") as json_file:
|
with open(path_groups, "r", encoding="utf-8") as json_file:
|
||||||
schdl = json.load(json_file)
|
groups = json.load(json_file)
|
||||||
|
|
||||||
return schdl
|
return groups
|
||||||
|
|
||||||
|
|
||||||
def students_in_group(group) -> list[str]:
|
def students_in_group(group) -> list[str]:
|
||||||
@@ -276,7 +277,8 @@ def get_schedule(id: str, day: str) -> str:
|
|||||||
try:
|
try:
|
||||||
with open(path_schedule.format(group), "r", encoding="utf-8") as schedule_file:
|
with open(path_schedule.format(group), "r", encoding="utf-8") as schedule_file:
|
||||||
try:
|
try:
|
||||||
schdl_today = json.load(schedule_file)["schedule"][day]
|
# schdl_today = json.load(schedule_file)["schedule"][day]
|
||||||
|
schdl_today = yaml.safe_load(schedule_file)["schedule"][day]
|
||||||
except:
|
except:
|
||||||
return "Расписания твоей группы на {} нет".format(
|
return "Расписания твоей группы на {} нет".format(
|
||||||
russian_days[days.index(day)]
|
russian_days[days.index(day)]
|
||||||
|
|||||||
@@ -1,60 +0,0 @@
|
|||||||
{
|
|
||||||
"studies.begin": {
|
|
||||||
"y": 2024,
|
|
||||||
"m": 9,
|
|
||||||
"d": 1
|
|
||||||
},
|
|
||||||
"studies.end": null,
|
|
||||||
"schedule": {
|
|
||||||
"mon": [
|
|
||||||
{
|
|
||||||
"partity": 1,
|
|
||||||
"begin": "10:30",
|
|
||||||
"end": "12:05",
|
|
||||||
"name": "Практикум на ЭВМ",
|
|
||||||
"teacher.room": [
|
|
||||||
{
|
|
||||||
"t": "Тюляева В.В.",
|
|
||||||
"r": "МЗ-3"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"building": "2-й гуманитарный корпус",
|
|
||||||
"note": "Какое-то примечание",
|
|
||||||
"type": "seminar"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"partity": null,
|
|
||||||
"begin": "10:30",
|
|
||||||
"end": "12:05",
|
|
||||||
"name": "Практикум на ЭВМ",
|
|
||||||
"teacher.room": [
|
|
||||||
{
|
|
||||||
"t": "Тюляева В.В.",
|
|
||||||
"r": "МЗ-3"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"t": "Тюляева В.В.",
|
|
||||||
"r": "МЗ-3"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"t": "Тюляева В.В.",
|
|
||||||
"r": "МЗ-3"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"building": "2-й гуманитарный корпус",
|
|
||||||
"note": "Какое-то примечание",
|
|
||||||
"type": "seminar"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"partity": null,
|
|
||||||
"begin": "10:30",
|
|
||||||
"end": "12:05",
|
|
||||||
"name": "Практикум на ЭВМ",
|
|
||||||
"teacher.room": [],
|
|
||||||
"building": "2-й гуманитарный корпус",
|
|
||||||
"note": "Какое-то примечание",
|
|
||||||
"type": "seminar"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,282 +0,0 @@
|
|||||||
{
|
|
||||||
"102": {
|
|
||||||
"mon": {
|
|
||||||
"8:45-10:20": {
|
|
||||||
"name": "Алгоритмы и алгоритмические языки",
|
|
||||||
"infos": "Белеванцев Андрей Андреевич|П-6"
|
|
||||||
},
|
|
||||||
"10:30-12:05": {
|
|
||||||
"name": "Английский язык",
|
|
||||||
"infos": "Шубина Юлия Витальевна|73|Бим Мария Моисеевна|735"
|
|
||||||
},
|
|
||||||
"12:50-14:25": {
|
|
||||||
"name": "Математический анализ",
|
|
||||||
"infos": "Лапонин Владислав Сергеевич|606"
|
|
||||||
},
|
|
||||||
"15:00-16:30": {
|
|
||||||
"name": "Физическая культура",
|
|
||||||
"infos": ""
|
|
||||||
},
|
|
||||||
"16:45-18:15": {
|
|
||||||
"name": "Консультация. Алгебра и геометрия",
|
|
||||||
"infos": "Руднев Сергей Геннадьевич|???"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"tue": {
|
|
||||||
"10:30-12:05": {
|
|
||||||
"name": "Алгебра и геометрия",
|
|
||||||
"infos": "Тыртышников Евгений Евгеньевич|П-6"
|
|
||||||
},
|
|
||||||
"12:50-14:25": {
|
|
||||||
"name": "Математический анализ",
|
|
||||||
"infos": "Садовничая Инна Викторовна|П-6"
|
|
||||||
},
|
|
||||||
"14:35-16:10": {
|
|
||||||
"name": "Алгебра и геометрия",
|
|
||||||
"infos": "Руднев Сергей Геннадьевич|682"
|
|
||||||
},
|
|
||||||
"16:20-17:55": {
|
|
||||||
"name": "Практикум на ЭВМ",
|
|
||||||
"infos": "Цыбров Евгений Германович|371|Кулагин Алексей Владимирович|МЗ-0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"wed": {
|
|
||||||
"8:45-10:20": {
|
|
||||||
"name": "Алгоритмы и алгоритмические языки",
|
|
||||||
"infos": "Белеванцев Андрей Андреевич|П-6"
|
|
||||||
},
|
|
||||||
"10:30-12:05": {
|
|
||||||
"name": "Математический анализ",
|
|
||||||
"infos": "Лапонин Владислав Сергеевич|606"
|
|
||||||
},
|
|
||||||
"12:50-14:25": {
|
|
||||||
"name": "Английский язык",
|
|
||||||
"infos": "Шубина Юлия Витальевна|735|Бим Мария Моисеевна|71"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"thu": {
|
|
||||||
"8:45-10:20": {
|
|
||||||
"name": "Алгебра и геометрия",
|
|
||||||
"infos": "Тыртышников Евгений Евгеньевич|П-6"
|
|
||||||
},
|
|
||||||
"10:30-12:05": {
|
|
||||||
"name": "Математический анализ",
|
|
||||||
"infos": "Садовничая Инна Викторовна|П-6"
|
|
||||||
},
|
|
||||||
"12:50-14:25": {
|
|
||||||
"name": "История России",
|
|
||||||
"infos": "Чубыкин Игорь Валерьевич|523"
|
|
||||||
},
|
|
||||||
"14:35-16:10": {
|
|
||||||
"name": "Алгебра и геометрия",
|
|
||||||
"infos": "Руднев Сергей Геннадьевич|606"
|
|
||||||
},
|
|
||||||
"16:20-17:55": {
|
|
||||||
"name": "История России",
|
|
||||||
"infos": "Чубыкин Игорь Валерьевич|П-6"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"fri": {
|
|
||||||
"9:00-10:30": {
|
|
||||||
"name": "Физическая культура",
|
|
||||||
"infos": ""
|
|
||||||
},
|
|
||||||
"10:40-12:15": {
|
|
||||||
"name": "Безопасность жизнедеятельности",
|
|
||||||
"infos": "Сладкова Наталья Валерьевна|609"
|
|
||||||
},
|
|
||||||
"12:50-14:25": {
|
|
||||||
"name": "Практикум на ЭВМ",
|
|
||||||
"infos": "Цыбров Евгений Германович|371|Кулагин Алексей Владимирович|МЗ-0"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"103": {
|
|
||||||
"mon": {
|
|
||||||
"8:45-10:20": {
|
|
||||||
"name": "Алгоритмы и алгоритмические языки",
|
|
||||||
"infos": "Белеванцев Андрей Андреевич|П-6"
|
|
||||||
},
|
|
||||||
"10:30-12:05": {
|
|
||||||
"name": "Математический анализ",
|
|
||||||
"infos": "Зайцева Наталья Владимировна|71"
|
|
||||||
},
|
|
||||||
"12:50-14:25": {
|
|
||||||
"name": "Практикум на ЭВМ",
|
|
||||||
"infos": "Кузьменкова Евгения Анатольевна|731|Малышев Никита Евгеньевич|778"
|
|
||||||
},
|
|
||||||
"15:00-16:30": {
|
|
||||||
"name": "Физическая культура",
|
|
||||||
"infos": ""
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"tue": {
|
|
||||||
"8:45-10:20": {
|
|
||||||
"name": "Консультация. Алгебра и геометрия",
|
|
||||||
"infos": "Будак Александр Борисович|612"
|
|
||||||
},
|
|
||||||
"10:30-12:05": {
|
|
||||||
"name": "Алгебра и геометрия",
|
|
||||||
"infos": "Тыртышников Евгений Евгеньевич|П-6"
|
|
||||||
},
|
|
||||||
"12:50-14:25": {
|
|
||||||
"name": "Математический анализ",
|
|
||||||
"infos": "Садовничая Инна Викторовна|П-6"
|
|
||||||
},
|
|
||||||
"14:35-16:10": {
|
|
||||||
"name": "Английский язык",
|
|
||||||
"infos": "Плиева Сима Ивановна|783|Дзампова Татьяна Борисовна|736"
|
|
||||||
},
|
|
||||||
"16:20-17:55": {
|
|
||||||
"name": "Английский язык",
|
|
||||||
"infos": "Дзампова Татьяна Борисовна|736"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"wed": {
|
|
||||||
"8:45-10:20": {
|
|
||||||
"name": "Алгоритмы и алгоритмические языки",
|
|
||||||
"infos": "Белеванцев Андрей Андреевич|П-6"
|
|
||||||
},
|
|
||||||
"10:30-12:05": {
|
|
||||||
"name": "Математический анализ",
|
|
||||||
"infos": "Зайцева Наталья Владимировна|72"
|
|
||||||
},
|
|
||||||
"12:50-14:25": {
|
|
||||||
"name": "Алгебра и геометрия",
|
|
||||||
"infos": "Будак Александр Борисович|605"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"thu": {
|
|
||||||
"8:45-10:20": {
|
|
||||||
"name": "Алгебра и геометрия",
|
|
||||||
"infos": "Тыртышников Евгений Евгеньевич|П-6"
|
|
||||||
},
|
|
||||||
"10:30-12:05": {
|
|
||||||
"name": "Математический анализ",
|
|
||||||
"infos": "Садовничая Инна Викторовна|П-6"
|
|
||||||
},
|
|
||||||
"12:50-14:25": {
|
|
||||||
"name": "Алгебра и геометрия",
|
|
||||||
"infos": "Будак Александр Борисович|605"
|
|
||||||
},
|
|
||||||
"14:35-16:10": {
|
|
||||||
"name": "Английский язык",
|
|
||||||
"infos": "Плиева Сима Ивановна|783"
|
|
||||||
},
|
|
||||||
"16:20-17:55": {
|
|
||||||
"name": "История России",
|
|
||||||
"infos": "Чубыкин Игорь Валерьевич|П-6"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"fri": {
|
|
||||||
"9:00-10:30": {
|
|
||||||
"name": "Физическая культура",
|
|
||||||
"infos": ""
|
|
||||||
},
|
|
||||||
"10:40-12:15": {
|
|
||||||
"name": "Безопасность жизнедеятельности",
|
|
||||||
"infos": "Гимишли Николай Федосеевич|614"
|
|
||||||
},
|
|
||||||
"12:50-14:25": {
|
|
||||||
"name": "Практикум на ЭВМ",
|
|
||||||
"infos": "Кузьменкова Евгения Анатольевна|248|Малышев Никита Евгеньевич|780"
|
|
||||||
},
|
|
||||||
"14:35-16:10": {
|
|
||||||
"name": "История России",
|
|
||||||
"infos": "Чубыкин Игорь Валерьевич|523"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"105": {
|
|
||||||
"mon": {
|
|
||||||
"8:45-10:20": {
|
|
||||||
"name": "Алгоритмы и алгоритмические языки",
|
|
||||||
"infos": "Белеванцев Андрей Андреевич|П-6"
|
|
||||||
},
|
|
||||||
"10:30-12:05": {
|
|
||||||
"name": "Математический анализ",
|
|
||||||
"infos": "Никитин Алексей Антонович|72"
|
|
||||||
},
|
|
||||||
"12:15-13:40": {
|
|
||||||
"name": "Алгебра и геометрия",
|
|
||||||
"infos": "Лебедева Ольга Сергеевна|508|Замарашкин Николай Леонидович|508"
|
|
||||||
},
|
|
||||||
"15:00-16:30": {
|
|
||||||
"name": "Физическая культура",
|
|
||||||
"infos": ""
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"tue": {
|
|
||||||
"10:30-12:05": {
|
|
||||||
"name": "Алгебра и геометрия",
|
|
||||||
"infos": "Тыртышников Евгений Евгеньевич|П-6"
|
|
||||||
},
|
|
||||||
"12:50-14:25": {
|
|
||||||
"name": "Математический анализ",
|
|
||||||
"infos": "Садовничая Инна Викторовна|П-6"
|
|
||||||
},
|
|
||||||
"14:35-16:10": {
|
|
||||||
"name": "Английский язык",
|
|
||||||
"infos": "Лаптинова Анастасия Ильинична|73|Кашелкина Ольга Александровна|790"
|
|
||||||
},
|
|
||||||
"16:20-17:55": {
|
|
||||||
"name": "Практикум на ЭВМ",
|
|
||||||
"infos": "Русол Андрей Владимирович|МЗ-4|Гуляев Анатолий Викторович|574"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"wed": {
|
|
||||||
"8:45-10:20": {
|
|
||||||
"name": "Алгоритмы и алгоритмические языки",
|
|
||||||
"infos": "Белеванцев Андрей Андреевич|П-6"
|
|
||||||
},
|
|
||||||
"10:30-12:05": {
|
|
||||||
"name": "Математический анализ",
|
|
||||||
"infos": "Никитин Алексей Антонович|778"
|
|
||||||
},
|
|
||||||
"12:50-14:25": {
|
|
||||||
"name": "Алгебра и геометрия",
|
|
||||||
"infos": "Лебедева Ольга Сергеевна|506|Замарашкин Николай Леонидович|506"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"thu": {
|
|
||||||
"8:45-10:20": {
|
|
||||||
"name": "Алгебра и геометрия",
|
|
||||||
"infos": "Тыртышников Евгений Евгеньевич|П-6"
|
|
||||||
},
|
|
||||||
"10:30-12:05": {
|
|
||||||
"name": "Математический анализ",
|
|
||||||
"infos": "Садовничая Инна Викторовна|П-6"
|
|
||||||
},
|
|
||||||
"12:50-14:25": {
|
|
||||||
"name": "История России",
|
|
||||||
"infos": "Чубыкин Игорь Валерьевич|523"
|
|
||||||
},
|
|
||||||
"14:35-16:10": {
|
|
||||||
"name": "Английский язык",
|
|
||||||
"infos": "Лаптинова Анастасия Ильинична|71|Кашелкина Ольга Александровна|736"
|
|
||||||
},
|
|
||||||
"16:20-17:55": {
|
|
||||||
"name": "История России",
|
|
||||||
"infos": "Чубыкин Игорь Валерьевич|П-6"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"fri": {
|
|
||||||
"9:00-10:30": {
|
|
||||||
"name": "Физическая культура",
|
|
||||||
"infos": ""
|
|
||||||
},
|
|
||||||
"10:40-12:15": {
|
|
||||||
"name": "Консультация. Математический анализ",
|
|
||||||
"infos": "Никитин Алексей Антонович|72"
|
|
||||||
},
|
|
||||||
"12:50-14:25": {
|
|
||||||
"name": "Практикум на ЭВМ",
|
|
||||||
"infos": "Русол Андрей Владимирович|МЗ-4|Гуляев Анатолий Викторович|574"
|
|
||||||
},
|
|
||||||
"14:35-16:10": {
|
|
||||||
"name": "Безопасность жизнедеятельности",
|
|
||||||
"infos": "Гимишли Николай Федосеевич|614"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
python-telegram-bot==13.7
|
||||||
|
requests==2.26.0
|
||||||
|
python-dotenv==0.19.0
|
||||||
|
schedule==1.1.0
|
||||||
+12
-4
@@ -398,7 +398,15 @@ def send_schedule(message):
|
|||||||
day = datetime.today().strftime("%A").lower()[:3] # mon tue ...
|
day = datetime.today().strftime("%A").lower()[:3] # mon tue ...
|
||||||
text = for_json.get_schedule(message.chat.id, day)
|
text = for_json.get_schedule(message.chat.id, day)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
send_admin_message("Schedule error from: {} \n\n {}".format(message.chat.id, e))
|
# send_admin_message(
|
||||||
|
# "Schedule error from: {} \n\n {}".format(message.chat.id, str(e))
|
||||||
|
# )
|
||||||
|
bot.send_message(
|
||||||
|
message.chat.id,
|
||||||
|
"Пожалуйста, проверь, что ты зарегестрировался с помощью команды /start",
|
||||||
|
ParseMode.HTML,
|
||||||
|
message_thread_id=message.message_thread_id,
|
||||||
|
)
|
||||||
|
|
||||||
markup = types.InlineKeyboardMarkup()
|
markup = types.InlineKeyboardMarkup()
|
||||||
markup.add(
|
markup.add(
|
||||||
@@ -586,7 +594,7 @@ def change_thread(message):
|
|||||||
def set_timeout(message):
|
def set_timeout(message):
|
||||||
send_message(
|
send_message(
|
||||||
message.chat.id,
|
message.chat.id,
|
||||||
"Пришли мне число от 1 до 60. \
|
"Пришли мне число от 1 до 59. \
|
||||||
\nЭто будет количество минут, за которое я буду присылать тебе напоминание о паре (По умолчанию: 10)",
|
\nЭто будет количество минут, за которое я буду присылать тебе напоминание о паре (По умолчанию: 10)",
|
||||||
)
|
)
|
||||||
bot.register_next_step_handler(message, save_timeout)
|
bot.register_next_step_handler(message, save_timeout)
|
||||||
@@ -597,7 +605,7 @@ def set_timeout(message):
|
|||||||
def save_timeout(message):
|
def save_timeout(message):
|
||||||
if (
|
if (
|
||||||
str(message.text).isdigit()
|
str(message.text).isdigit()
|
||||||
and int(message.text) <= 60
|
and int(message.text) <= 59
|
||||||
and int(message.text) >= 1
|
and int(message.text) >= 1
|
||||||
):
|
):
|
||||||
for_json.change_user_param(message.chat.id, "timeout", str(message.text))
|
for_json.change_user_param(message.chat.id, "timeout", str(message.text))
|
||||||
@@ -610,7 +618,7 @@ def save_timeout(message):
|
|||||||
else:
|
else:
|
||||||
send_message(
|
send_message(
|
||||||
message.chat.id,
|
message.chat.id,
|
||||||
"Пожалуйста, пришли <u>число</u> от 1 до 60. \
|
"Пожалуйста, пришли <u>число</u> от 1 до 59. \
|
||||||
\nПо умолчанию: 10",
|
\nПо умолчанию: 10",
|
||||||
)
|
)
|
||||||
send_message(message.chat.id, "Изменения не были внесены")
|
send_message(message.chat.id, "Изменения не были внесены")
|
||||||
|
|||||||
@@ -0,0 +1,201 @@
|
|||||||
|
studies.begin: {y: 2024, m: 9, d: 1}
|
||||||
|
studies.end: null
|
||||||
|
schedule:
|
||||||
|
mon:
|
||||||
|
- begin: '8:45'
|
||||||
|
end: '10:20'
|
||||||
|
name: Английский язык
|
||||||
|
teacher.room:
|
||||||
|
- {t: Бим М.М., r: '735'}
|
||||||
|
- {t: ' Шубина Ю.В.', r: '73'}
|
||||||
|
type: seminar
|
||||||
|
parity: null
|
||||||
|
- begin: '10:30'
|
||||||
|
end: '12:05'
|
||||||
|
name: Практикум на ЭВМ
|
||||||
|
teacher.room:
|
||||||
|
- {t: Тюляева В.В., r: МЗ-4}
|
||||||
|
- {t: '', r: null}
|
||||||
|
type: seminar
|
||||||
|
parity: null
|
||||||
|
- begin: '12:15'
|
||||||
|
end: '13:50'
|
||||||
|
name: Классическая механика
|
||||||
|
teacher.room:
|
||||||
|
- {t: Брандт Н.Н., r: '659'}
|
||||||
|
type: seminar
|
||||||
|
parity: null
|
||||||
|
- begin: '15:00'
|
||||||
|
end: '16:30'
|
||||||
|
name: Физическая культура
|
||||||
|
teacher.room: []
|
||||||
|
type: null
|
||||||
|
parity: null
|
||||||
|
tue:
|
||||||
|
- begin: '8:45'
|
||||||
|
end: '10:20'
|
||||||
|
name: Теория вероятностей и математическая статистика
|
||||||
|
teacher.room:
|
||||||
|
- {t: профессор Королёв Виктор Юрьевич, r: П-13}
|
||||||
|
type: lecture
|
||||||
|
parity: null
|
||||||
|
- begin: '10:30'
|
||||||
|
end: '12:05'
|
||||||
|
name: Математический анализ
|
||||||
|
teacher.room:
|
||||||
|
- {t: доцент Крицков Леонид Владимирович, r: П-11}
|
||||||
|
type: lecture
|
||||||
|
parity: null
|
||||||
|
- begin: '12:15'
|
||||||
|
end: '13:50'
|
||||||
|
name: Математический анализ
|
||||||
|
teacher.room:
|
||||||
|
- {t: Сычугов Д.Ю., r: '606'}
|
||||||
|
type: seminar
|
||||||
|
parity: null
|
||||||
|
- begin: '14:35'
|
||||||
|
end: '16:10'
|
||||||
|
name: Обыкновенные дифференциальные ур-я
|
||||||
|
teacher.room:
|
||||||
|
- {t: Дмитриева И.В., r: '607'}
|
||||||
|
type: seminar
|
||||||
|
parity: null
|
||||||
|
- begin: '16:20'
|
||||||
|
end: '17:55'
|
||||||
|
name: null
|
||||||
|
teacher.room: []
|
||||||
|
type: seminar
|
||||||
|
parity: null
|
||||||
|
wed:
|
||||||
|
- begin: '8:45'
|
||||||
|
end: '10:20'
|
||||||
|
name: Практикум на ЭВМ
|
||||||
|
teacher.room:
|
||||||
|
- {t: Тюляева В.В., r: '507'}
|
||||||
|
type: seminar
|
||||||
|
parity: null
|
||||||
|
- begin: '10:30'
|
||||||
|
end: '12:05'
|
||||||
|
name: Математический анализ
|
||||||
|
teacher.room:
|
||||||
|
- {t: доцент Крицков Леонид Владимирович, r: П-6}
|
||||||
|
type: lecture
|
||||||
|
parity: null
|
||||||
|
- begin: '12:15'
|
||||||
|
end: '13:50'
|
||||||
|
name: Обыкновенные дифференциальные уравнения
|
||||||
|
teacher.room:
|
||||||
|
- {t: профессор Денисов Александр Михайлович, r: П-6}
|
||||||
|
type: lecture
|
||||||
|
parity: null
|
||||||
|
- begin: '15:10'
|
||||||
|
end: '18:50'
|
||||||
|
name: Межфакультетские курсы
|
||||||
|
teacher.room: []
|
||||||
|
type: seminar
|
||||||
|
parity: null
|
||||||
|
thu:
|
||||||
|
- begin: '8:45'
|
||||||
|
end: '10:20'
|
||||||
|
name: Операционные системы
|
||||||
|
teacher.room:
|
||||||
|
- {t: профессор Машечкин Игорь Валерьевич, r: П-13}
|
||||||
|
type: lecture
|
||||||
|
parity: null
|
||||||
|
- begin: '10:30'
|
||||||
|
end: '12:05'
|
||||||
|
name: Операционные системы
|
||||||
|
teacher.room:
|
||||||
|
- {t: профессор Машечкин Игорь Валерьевич, r: П-13}
|
||||||
|
type: lecture
|
||||||
|
parity: null
|
||||||
|
- begin: '12:15'
|
||||||
|
end: '13:50'
|
||||||
|
name: Английский язык
|
||||||
|
teacher.room:
|
||||||
|
- {t: Бим М.М., r: '71'}
|
||||||
|
- {t: '', r: null}
|
||||||
|
type: seminar
|
||||||
|
parity: null
|
||||||
|
- begin: '14:35'
|
||||||
|
end: '16:10'
|
||||||
|
name: Введение в численные методы
|
||||||
|
teacher.room:
|
||||||
|
- {t: доцент Нефёдов Владимир Вадимович, r: П-5}
|
||||||
|
type: lecture
|
||||||
|
parity: null
|
||||||
|
- begin: '16:20'
|
||||||
|
end: '17:55'
|
||||||
|
name: null
|
||||||
|
teacher.room: []
|
||||||
|
type: seminar
|
||||||
|
parity: null
|
||||||
|
fri:
|
||||||
|
- begin: '8:45'
|
||||||
|
end: '10:20'
|
||||||
|
name: Английский язык
|
||||||
|
teacher.room:
|
||||||
|
- {t: Шубина Ю.В., r: '506'}
|
||||||
|
type: seminar
|
||||||
|
parity: null
|
||||||
|
- begin: '10:50'
|
||||||
|
end: '12:20'
|
||||||
|
name: Физическая культура
|
||||||
|
teacher.room: []
|
||||||
|
type: null
|
||||||
|
parity: null
|
||||||
|
- begin: '12:50'
|
||||||
|
end: '14:25'
|
||||||
|
name: Теория вероятностей и математич. статистика
|
||||||
|
teacher.room:
|
||||||
|
- {t: Шевцова И.Г., r: '504'}
|
||||||
|
type: seminar
|
||||||
|
parity: null
|
||||||
|
- begin: '14:35'
|
||||||
|
end: '16:10'
|
||||||
|
name: Математический анализ
|
||||||
|
teacher.room:
|
||||||
|
- {t: Сычугов Д.Ю., r: '615'}
|
||||||
|
type: seminar
|
||||||
|
parity: null
|
||||||
|
- begin: '16:20'
|
||||||
|
end: '17:55'
|
||||||
|
name: null
|
||||||
|
teacher.room: []
|
||||||
|
type: seminar
|
||||||
|
parity: null
|
||||||
|
sat:
|
||||||
|
- begin: '8:45'
|
||||||
|
end: '10:20'
|
||||||
|
name: Философия
|
||||||
|
teacher.room:
|
||||||
|
- {t: профессор Девятова Светлана Владимировна, r: П-14}
|
||||||
|
type: lecture
|
||||||
|
parity: null
|
||||||
|
- begin: '10:30'
|
||||||
|
end: '12:05'
|
||||||
|
name: Философия Девятова С.В.
|
||||||
|
teacher.room:
|
||||||
|
- {t: null, r: '508'}
|
||||||
|
type: seminar
|
||||||
|
parity: null
|
||||||
|
- begin: '12:15'
|
||||||
|
end: '13:50'
|
||||||
|
name: null
|
||||||
|
teacher.room: []
|
||||||
|
type: seminar
|
||||||
|
parity: null
|
||||||
|
- begin: '14:35'
|
||||||
|
end: '16:10'
|
||||||
|
name: Операционные системы
|
||||||
|
teacher.room:
|
||||||
|
- {t: профессор Машечкин Игорь Валерьевич, r: П-13}
|
||||||
|
type: lecture
|
||||||
|
parity: null
|
||||||
|
- begin: '16:20'
|
||||||
|
end: '17:55'
|
||||||
|
name: Операционные системы
|
||||||
|
teacher.room:
|
||||||
|
- {t: профессор Машечкин Игорь Валерьевич, r: П-13}
|
||||||
|
type: lecture
|
||||||
|
parity: null
|
||||||
Reference in New Issue
Block a user