642 lines
28 KiB
Python
642 lines
28 KiB
Python
|
import rpc
|
|||
|
from functions import *
|
|||
|
from datetime import datetime, date, timedelta
|
|||
|
from daemon import getLessons, getConfig
|
|||
|
|
|||
|
if getConfig("use_colors"):
|
|||
|
from colors import *
|
|||
|
appendLog('Colors imported')
|
|||
|
else:
|
|||
|
RESET = ''
|
|||
|
BLACK = RED = GREEN = YELLOW = BLUE = MAGENTA = CYAN = WHITE = ''
|
|||
|
BBLACK = BRED = BGREEN = BYELLOW = BBLUE = BMAGENTA = BCYAN = BWHITE = ''
|
|||
|
ULINE = REVERSE = ''
|
|||
|
appendLog('Loading without colors')
|
|||
|
|
|||
|
|
|||
|
def listLessons(from_where='remove'):
|
|||
|
|
|||
|
try:
|
|||
|
|
|||
|
appendLog('Showing list of everything planned')
|
|||
|
|
|||
|
if from_where == 'editor':
|
|||
|
print(f'{RESET}Полный список запланированных конференций:\n')
|
|||
|
|
|||
|
print(f'{BBLACK}================================================{RESET}')
|
|||
|
for les in enumerate(getLessons()):
|
|||
|
|
|||
|
if les[1]["repeat"]:
|
|||
|
repeat = 'Вкл.'
|
|||
|
else:
|
|||
|
repeat = 'Выкл.'
|
|||
|
|
|||
|
if les[1]["record"]:
|
|||
|
record = 'Вкл.'
|
|||
|
else:
|
|||
|
record = 'Выкл.'
|
|||
|
|
|||
|
try:
|
|||
|
repeat_day = getDay(les[1]["repeat_day"])
|
|||
|
except:
|
|||
|
repeat_day = 'Не повторяется'
|
|||
|
|
|||
|
length = len(str(les[0]))
|
|||
|
|
|||
|
spacer_all = 6 * ' '
|
|||
|
spacer_ind = (5 - length) * ' '
|
|||
|
|
|||
|
|
|||
|
print(f'{spacer_all}Имя: {YELLOW}{les[1]["name"]}{RESET}')
|
|||
|
print(f'{spacer_all}Дата: {YELLOW}{les[1]["date"]}{RESET}')
|
|||
|
print(f'{spacer_all}Время: {YELLOW}{les[1]["time"]}{RESET}')
|
|||
|
print(f' {GREEN}{les[0]}{RESET}{spacer_ind}Ссылка: {YELLOW}{les[1]["link"]}{RESET}')
|
|||
|
print(f'{spacer_all}Повтор: {YELLOW}{repeat}{RESET}')
|
|||
|
print(f'{spacer_all}День: {YELLOW}{repeat_day}{RESET}')
|
|||
|
print(f'{spacer_all}Запись: {YELLOW}{record}{RESET}')
|
|||
|
print(f'{BBLACK}================================================{RESET}')
|
|||
|
|
|||
|
if from_where == 'editor':
|
|||
|
none = input('\n\n > ')
|
|||
|
|
|||
|
except KeyboardInterrupt:
|
|||
|
clear()
|
|||
|
return
|
|||
|
|
|||
|
|
|||
|
def sortLessons(dictionary):
|
|||
|
dictionary.sort(key = lambda x: datetime.strptime(x['time'], '%H:%M'))
|
|||
|
dictionary.sort(key = lambda x: datetime.strptime(x['date'], '%d.%m.%Y'))
|
|||
|
appendLog('Lessons dictionary sorted')
|
|||
|
|
|||
|
|
|||
|
def getDay(number):
|
|||
|
if number == 1:
|
|||
|
return 'Понедельник'
|
|||
|
if number == 2:
|
|||
|
return 'Вторник'
|
|||
|
if number == 3:
|
|||
|
return 'Среда'
|
|||
|
if number == 4:
|
|||
|
return 'Четверг'
|
|||
|
if number == 5:
|
|||
|
return 'Пятница'
|
|||
|
if number == 6:
|
|||
|
return 'Суббота'
|
|||
|
if number == 7:
|
|||
|
return 'Воскресенье'
|
|||
|
|
|||
|
|
|||
|
def addLesson():
|
|||
|
appendLog('Adding new lesson')
|
|||
|
|
|||
|
try:
|
|||
|
local_lessons = {}
|
|||
|
lessons_got = getLessons()
|
|||
|
|
|||
|
lessname = input(f'{RESET}Введите (своё) имя конференции:\n{BBLACK}Нужно лишь для отображения в Discord и самом AutoZoom{RESET}\n\n > {CYAN}')
|
|||
|
local_lessons.update({"name": lessname})
|
|||
|
|
|||
|
while True:
|
|||
|
clear()
|
|||
|
today = date.today()
|
|||
|
today_1 = date.today() + timedelta(days=1)
|
|||
|
today_2 = date.today() + timedelta(days=2)
|
|||
|
today_3 = date.today() + timedelta(days=3)
|
|||
|
today_4 = date.today() + timedelta(days=4)
|
|||
|
today_5 = date.today() + timedelta(days=5)
|
|||
|
today_6 = date.today() + timedelta(days=6)
|
|||
|
|
|||
|
print(f'{RESET}Введите дату конференции или номер дня ({BRED}ДД.ММ.ГГГГ{RESET}):\n')
|
|||
|
print(f' {BRED}1.{RESET} {today.strftime("%d.%m.%Y")} ({BGREEN}{getDay(datetime.strptime(today.strftime("%d.%m.%Y"), "%d.%m.%Y").isoweekday())}{RESET})')
|
|||
|
print(f' {BRED}2.{RESET} {today_1.strftime("%d.%m.%Y")} ({BGREEN}{getDay(datetime.strptime(today_1.strftime("%d.%m.%Y"), "%d.%m.%Y").isoweekday())}{RESET})')
|
|||
|
print(f' {BRED}3.{RESET} {today_2.strftime("%d.%m.%Y")} ({BGREEN}{getDay(datetime.strptime(today_2.strftime("%d.%m.%Y"), "%d.%m.%Y").isoweekday())}{RESET})')
|
|||
|
print(f' {BRED}4.{RESET} {today_3.strftime("%d.%m.%Y")} ({BGREEN}{getDay(datetime.strptime(today_3.strftime("%d.%m.%Y"), "%d.%m.%Y").isoweekday())}{RESET})')
|
|||
|
print(f' {BRED}5.{RESET} {today_4.strftime("%d.%m.%Y")} ({BGREEN}{getDay(datetime.strptime(today_4.strftime("%d.%m.%Y"), "%d.%m.%Y").isoweekday())}{RESET})')
|
|||
|
print(f' {BRED}6.{RESET} {today_5.strftime("%d.%m.%Y")} ({BGREEN}{getDay(datetime.strptime(today_5.strftime("%d.%m.%Y"), "%d.%m.%Y").isoweekday())}{RESET})')
|
|||
|
print(f' {BRED}7.{RESET} {today_6.strftime("%d.%m.%Y")} ({BGREEN}{getDay(datetime.strptime(today_6.strftime("%d.%m.%Y"), "%d.%m.%Y").isoweekday())}{RESET})')
|
|||
|
|
|||
|
try:
|
|||
|
lessdate = input(f'\n > {BRED}')
|
|||
|
if lessdate == '':
|
|||
|
finallessdate = lessons_got[edi]["date"]
|
|||
|
elif lessdate == '1':
|
|||
|
finallessdate = today.strftime("%d.%m.%Y")
|
|||
|
elif lessdate == '2':
|
|||
|
finallessdate = today_1.strftime("%d.%m.%Y")
|
|||
|
elif lessdate == '3':
|
|||
|
finallessdate = today_2.strftime("%d.%m.%Y")
|
|||
|
elif lessdate == '4':
|
|||
|
finallessdate = today_3.strftime("%d.%m.%Y")
|
|||
|
elif lessdate == '5':
|
|||
|
finallessdate = today_4.strftime("%d.%m.%Y")
|
|||
|
elif lessdate == '6':
|
|||
|
finallessdate = today_5.strftime("%d.%m.%Y")
|
|||
|
elif lessdate == '7':
|
|||
|
finallessdate = today_6.strftime("%d.%m.%Y")
|
|||
|
else:
|
|||
|
try:
|
|||
|
test = (datetime.strptime(lessdate, "%d.%m.%Y"))
|
|||
|
finallessdate = lessdate
|
|||
|
except:
|
|||
|
continue
|
|||
|
|
|||
|
local_lessons.update({"date": finallessdate})
|
|||
|
|
|||
|
break
|
|||
|
except:
|
|||
|
continue
|
|||
|
|
|||
|
while True:
|
|||
|
clear()
|
|||
|
try:
|
|||
|
lesstime = input(f'{RESET}Введите время конференции ({BRED}ЧЧ:ММ{RESET}):\n\n > {BRED}')
|
|||
|
finallesstime = (datetime.strptime(lesstime, "%H:%M"))
|
|||
|
local_lessons.update({"time": lesstime})
|
|||
|
abort = "skip"
|
|||
|
conflict = False
|
|||
|
conflictles = ''
|
|||
|
confstr = 'конференцией'
|
|||
|
|
|||
|
try:
|
|||
|
|
|||
|
for lesson in lessons_got:
|
|||
|
|
|||
|
if lesson["date"] == finallessdate and lesson["time"] == lesstime:
|
|||
|
conflict = True
|
|||
|
|
|||
|
if conflictles == '':
|
|||
|
conflictles = f'{CYAN}{lesson["name"]}{RESET}'
|
|||
|
confstr = 'конференцией'
|
|||
|
|
|||
|
else:
|
|||
|
conflictles += f', {CYAN}{lesson["name"]}{RESET}'
|
|||
|
confstr = 'конференциями'
|
|||
|
|
|||
|
if conflict:
|
|||
|
while True:
|
|||
|
clear()
|
|||
|
choice = input(f'{RESET}Время и дата конференции совпадают с {confstr} {conflictles}.\nДобавить ещё одну конференцию на то же время? ({BGREEN}Да{RESET}/{BRED}Нет{RESET})\n\n > ')
|
|||
|
|
|||
|
if choice.lower() in yes_list:
|
|||
|
abort = "bypass"
|
|||
|
break
|
|||
|
|
|||
|
elif choice.lower() in no_list:
|
|||
|
abort = "restart"
|
|||
|
break
|
|||
|
|
|||
|
else:
|
|||
|
continue
|
|||
|
|
|||
|
if abort == "restart":
|
|||
|
continue
|
|||
|
else:
|
|||
|
break
|
|||
|
|
|||
|
except Exception as exp:
|
|||
|
none = input(exp)
|
|||
|
pass
|
|||
|
|
|||
|
break
|
|||
|
except:
|
|||
|
continue
|
|||
|
|
|||
|
clear()
|
|||
|
lesslink = input(f'{RESET}Введите ссылку на конференцию:\n{BBLACK}Формат: {BRED}https://us01web.zoom.us/j/ИДЕНТИФИКАТОР?pwd=ПАРОЛЬ{RESET}\n{BBLACK}Либо введите {YELLOW}1 {BBLACK}для добавления по номеру и паролю{RESET}\n\n > {BRED}').replace(" ", "")
|
|||
|
|
|||
|
if lesslink.replace(' ', '') == '1':
|
|||
|
clear()
|
|||
|
lessid = input(f'{RESET}Введите идентификатор конференции:\n{BBLACK}Формат: {BRED}012 3456 7890 {BBLACK} либо {BRED}01234567890{RESET}\n\n > {BRED}')
|
|||
|
clear()
|
|||
|
lesspasswd = input(f'{RESET}Введите код доступа (пароль) конференции:\n\n > {BRED}')
|
|||
|
lesslink = f'https://us01web.zoom.us/j/{lessid.replace(" ", "")}?pwd={lesspasswd.replace(" ", "")}'
|
|||
|
|
|||
|
local_lessons.update({"link": lesslink})
|
|||
|
|
|||
|
while True:
|
|||
|
clear()
|
|||
|
repeat = input(f'{RESET}Повторять эту конференцию ({getDay(getDayNum(finallessdate))})? {RESET}({BGREEN}Да{RESET}/{BRED}Нет{RESET})\n\n > ')
|
|||
|
|
|||
|
if repeat.lower() in yes_list:
|
|||
|
finalrepeat = True
|
|||
|
finalrepeatday = getDayNum(finallessdate)
|
|||
|
local_lessons.update({"repeat": finalrepeat})
|
|||
|
local_lessons.update({"repeat_day": finalrepeatday})
|
|||
|
break
|
|||
|
elif repeat.lower() in no_list:
|
|||
|
finalrepeat = False
|
|||
|
finalrepeatday = None
|
|||
|
local_lessons.update({"repeat": finalrepeat})
|
|||
|
local_lessons.update({"repeat_day": finalrepeatday})
|
|||
|
break
|
|||
|
else:
|
|||
|
continue
|
|||
|
|
|||
|
while True:
|
|||
|
if getOS() == "windows":
|
|||
|
clear()
|
|||
|
lessrecord = input(f'Записать эту конференцию? {RESET}({BGREEN}Да{RESET}/{BRED}Нет{RESET})\n\n > ')
|
|||
|
|
|||
|
if lessrecord.lower() in yes_list:
|
|||
|
finallessrecord = True
|
|||
|
local_lessons.update({"record": finallessrecord})
|
|||
|
break
|
|||
|
elif lessrecord.lower() in no_list:
|
|||
|
finallessrecord = False
|
|||
|
local_lessons.update({"record": finallessrecord})
|
|||
|
break
|
|||
|
else:
|
|||
|
continue
|
|||
|
else:
|
|||
|
finallessrecord = False
|
|||
|
local_lessons.update({"record": finallessrecord})
|
|||
|
break
|
|||
|
|
|||
|
|
|||
|
lessons_got.append(dict(local_lessons))
|
|||
|
sortLessons(lessons_got)
|
|||
|
saveJson(files_folder+'lessons.json', lessons_got)
|
|||
|
|
|||
|
clear()
|
|||
|
print(f'Добавлена конференция {CYAN}{local_lessons["name"]}{RESET} за {BRED}{local_lessons["date"]}{RESET} на время {BRED}{local_lessons["time"]}{RESET}.')
|
|||
|
appendLog(f'Added lesson {local_lessons["name"]} (Date: {local_lessons["date"]}, Time: {local_lessons["time"]}, Link: {local_lessons["link"]})')
|
|||
|
none = input('\n > ')
|
|||
|
|
|||
|
except KeyboardInterrupt:
|
|||
|
appendLog('Lesson adding aborted')
|
|||
|
clear()
|
|||
|
return
|
|||
|
|
|||
|
|
|||
|
def editLesson():
|
|||
|
appendLog(f'Editing existing lesson')
|
|||
|
|
|||
|
try:
|
|||
|
local_lessons = {}
|
|||
|
lessons_got = getLessons()
|
|||
|
|
|||
|
while True:
|
|||
|
print(f'{RESET}Выберите номер (индекс) для изменения:\n')
|
|||
|
listLessons()
|
|||
|
lessons_got = getLessons()
|
|||
|
|
|||
|
print(f'\nДля отмены операции введите {BRED}c{RESET} или {BRED}cancel{RESET}')
|
|||
|
|
|||
|
edi = input(f'\n > {BGREEN}')
|
|||
|
|
|||
|
if not isinstance(edi, int):
|
|||
|
if edi.lower() == 'c' or edi.lower() == 'cancel':
|
|||
|
clear()
|
|||
|
return
|
|||
|
try:
|
|||
|
edi = int(edi)
|
|||
|
except:
|
|||
|
clear()
|
|||
|
continue
|
|||
|
|
|||
|
try:
|
|||
|
probe = lessons_got[edi]["name"]
|
|||
|
break
|
|||
|
except:
|
|||
|
clear()
|
|||
|
print(f'{RESET}Выберите {ULINE}правильный{RESET} индекс (номер) для изменения.')
|
|||
|
time.sleep(3)
|
|||
|
clear()
|
|||
|
continue
|
|||
|
|
|||
|
break
|
|||
|
|
|||
|
clear()
|
|||
|
lessname = input(f'{RESET}Введите (своё) имя конференции:\n{BBLACK}Нужно лишь для отображения в Discord и самом AutoZoom{RESET}\n\nОригинальное имя: {CYAN}{lessons_got[edi]["name"]}{RESET}\n\n > {CYAN}')
|
|||
|
if lessname == '':
|
|||
|
lessname = lessons_got[edi]["name"]
|
|||
|
local_lessons.update({"name": lessname})
|
|||
|
|
|||
|
while True:
|
|||
|
clear()
|
|||
|
today = date.today()
|
|||
|
today_1 = date.today() + timedelta(days=1)
|
|||
|
today_2 = date.today() + timedelta(days=2)
|
|||
|
today_3 = date.today() + timedelta(days=3)
|
|||
|
today_4 = date.today() + timedelta(days=4)
|
|||
|
today_5 = date.today() + timedelta(days=5)
|
|||
|
today_6 = date.today() + timedelta(days=6)
|
|||
|
|
|||
|
print(f'{RESET}Введите дату конференции или номер дня ({BRED}ДД.ММ.ГГГГ{RESET}):\n')
|
|||
|
print(f' {BRED}1.{RESET} {today.strftime("%d.%m.%Y")} ({BGREEN}{getDay(datetime.strptime(today.strftime("%d.%m.%Y"), "%d.%m.%Y").isoweekday())}{RESET})')
|
|||
|
print(f' {BRED}2.{RESET} {today_1.strftime("%d.%m.%Y")} ({BGREEN}{getDay(datetime.strptime(today_1.strftime("%d.%m.%Y"), "%d.%m.%Y").isoweekday())}{RESET})')
|
|||
|
print(f' {BRED}3.{RESET} {today_2.strftime("%d.%m.%Y")} ({BGREEN}{getDay(datetime.strptime(today_2.strftime("%d.%m.%Y"), "%d.%m.%Y").isoweekday())}{RESET})')
|
|||
|
print(f' {BRED}4.{RESET} {today_3.strftime("%d.%m.%Y")} ({BGREEN}{getDay(datetime.strptime(today_3.strftime("%d.%m.%Y"), "%d.%m.%Y").isoweekday())}{RESET})')
|
|||
|
print(f' {BRED}5.{RESET} {today_4.strftime("%d.%m.%Y")} ({BGREEN}{getDay(datetime.strptime(today_4.strftime("%d.%m.%Y"), "%d.%m.%Y").isoweekday())}{RESET})')
|
|||
|
print(f' {BRED}6.{RESET} {today_5.strftime("%d.%m.%Y")} ({BGREEN}{getDay(datetime.strptime(today_5.strftime("%d.%m.%Y"), "%d.%m.%Y").isoweekday())}{RESET})')
|
|||
|
print(f' {BRED}7.{RESET} {today_6.strftime("%d.%m.%Y")} ({BGREEN}{getDay(datetime.strptime(today_6.strftime("%d.%m.%Y"), "%d.%m.%Y").isoweekday())}{RESET})')
|
|||
|
print(f'\nОригинальная дата: {BRED}{lessons_got[edi]["date"]}{RESET}')
|
|||
|
|
|||
|
try:
|
|||
|
lessdate = input(f'\n > {BRED}')
|
|||
|
if lessdate == '':
|
|||
|
finallessdate = lessons_got[edi]["date"]
|
|||
|
elif lessdate == '1':
|
|||
|
finallessdate = today.strftime("%d.%m.%Y")
|
|||
|
elif lessdate == '2':
|
|||
|
finallessdate = today_1.strftime("%d.%m.%Y")
|
|||
|
elif lessdate == '3':
|
|||
|
finallessdate = today_2.strftime("%d.%m.%Y")
|
|||
|
elif lessdate == '4':
|
|||
|
finallessdate = today_3.strftime("%d.%m.%Y")
|
|||
|
elif lessdate == '5':
|
|||
|
finallessdate = today_4.strftime("%d.%m.%Y")
|
|||
|
elif lessdate == '6':
|
|||
|
finallessdate = today_5.strftime("%d.%m.%Y")
|
|||
|
elif lessdate == '7':
|
|||
|
finallessdate = today_6.strftime("%d.%m.%Y")
|
|||
|
else:
|
|||
|
try:
|
|||
|
test = (datetime.strptime(lessdate, "%d.%m.%Y"))
|
|||
|
finallessdate = lessdate
|
|||
|
except:
|
|||
|
continue
|
|||
|
|
|||
|
local_lessons.update({"date": finallessdate})
|
|||
|
|
|||
|
break
|
|||
|
except:
|
|||
|
continue
|
|||
|
|
|||
|
while True:
|
|||
|
clear()
|
|||
|
try:
|
|||
|
lesstime = input(f'{RESET}Введите время конференции ({BRED}ЧЧ:ММ{RESET}):\n\nОригинальное время: {BRED}{lessons_got[edi]["time"]}{RESET}\n\n > {BRED}')
|
|||
|
finallesstime = (datetime.strptime(lesstime, "%H:%M"))
|
|||
|
local_lessons.update({"time": lesstime})
|
|||
|
abort = "skip"
|
|||
|
conflict = False
|
|||
|
conflictles = ''
|
|||
|
confstr = 'конференцией'
|
|||
|
|
|||
|
try:
|
|||
|
|
|||
|
for lesson in lessons_got:
|
|||
|
|
|||
|
if lesson["date"] == finallessdate and lesson["time"] == lesstime:
|
|||
|
conflict = True
|
|||
|
|
|||
|
if conflictles == '':
|
|||
|
conflictles = f'{CYAN}{lesson["name"]}{RESET}'
|
|||
|
confstr = 'конференцией'
|
|||
|
|
|||
|
else:
|
|||
|
conflictles += f', {CYAN}{lesson["name"]}{RESET}'
|
|||
|
confstr = 'конференциями'
|
|||
|
|
|||
|
if conflict:
|
|||
|
while True:
|
|||
|
clear()
|
|||
|
choice = input(f'{RESET}Время и дата конференции совпадают с {confstr} {conflictles}.\nДобавить ещё одну конференцию на то же время? ({BGREEN}Да{RESET}/{BRED}Нет{RESET})\n\n > ')
|
|||
|
|
|||
|
if choice.lower() in yes_list:
|
|||
|
abort = "bypass"
|
|||
|
break
|
|||
|
|
|||
|
elif choice.lower() in no_list:
|
|||
|
abort = "restart"
|
|||
|
break
|
|||
|
|
|||
|
else:
|
|||
|
continue
|
|||
|
|
|||
|
if abort == "restart":
|
|||
|
continue
|
|||
|
else:
|
|||
|
break
|
|||
|
|
|||
|
except Exception as exp:
|
|||
|
none = input(exp)
|
|||
|
pass
|
|||
|
|
|||
|
break
|
|||
|
except:
|
|||
|
continue
|
|||
|
|
|||
|
clear()
|
|||
|
lesslink = input(f'{RESET}Введите ссылку на конференцию:\n{BBLACK}Формат: {BRED}https://us01web.zoom.us/j/ИДЕНТИФИКАТОР?pwd=ПАРОЛЬ{RESET}\n{BBLACK}Либо введите {YELLOW}1 {BBLACK}для добавления по номеру и паролю{RESET}\n\n > {BRED}').replace(" ", "")
|
|||
|
|
|||
|
if lesslink.replace(' ', '') == '1':
|
|||
|
clear()
|
|||
|
lessid = input(f'{RESET}Введите идентификатор конференции:\n{BBLACK}Формат: {BRED}012 3456 7890 {BBLACK} либо {BRED}01234567890{RESET}\n\n > {BRED}')
|
|||
|
clear()
|
|||
|
lesspasswd = input(f'{RESET}Введите код доступа (пароль) конференции:\n\n > {BRED}')
|
|||
|
lesslink = f'https://us01web.zoom.us/j/{lessid.replace(" ", "")}?pwd={lesspasswd.replace(" ", "")}'
|
|||
|
|
|||
|
if lesslink == '':
|
|||
|
lesslink = lessons_got[edi]["link"]
|
|||
|
|
|||
|
local_lessons.update({"link": lesslink})
|
|||
|
|
|||
|
while True:
|
|||
|
clear()
|
|||
|
try:
|
|||
|
lessrepeatday = getDay(lessons_got[edi]["repeat_day"])
|
|||
|
except:
|
|||
|
lessrepeatday = 'Не повторяется'
|
|||
|
|
|||
|
print(f'{RESET}Повторять эту конференцию ({YELLOW}{getDay(getDayNum(finallessdate))}{RESET})? {RESET}({BGREEN}Да{RESET}/{BRED}Нет{RESET})')
|
|||
|
print(f'\nОригинальное значение: {BRED}{lessrepeatday}{RESET}')
|
|||
|
repeat = input('\n > ')
|
|||
|
|
|||
|
if repeat.lower() in yes_list:
|
|||
|
finalrepeat = True
|
|||
|
finalrepeatday = getDayNum(finallessdate)
|
|||
|
local_lessons.update({"repeat": finalrepeat})
|
|||
|
local_lessons.update({"repeat_day": finalrepeatday})
|
|||
|
break
|
|||
|
elif repeat.lower() in no_list:
|
|||
|
finalrepeat = False
|
|||
|
local_lessons.update({"repeat": finalrepeat})
|
|||
|
break
|
|||
|
elif repeat == '':
|
|||
|
finalrepeat = lessons_got[edi]["repeat"]
|
|||
|
local_lessons.update({"repeat": finalrepeat})
|
|||
|
try:
|
|||
|
finalrepeatday = lessons_got[edi]["repeat_day"]
|
|||
|
local_lessons.update({"repeat_day": finalrepeatday})
|
|||
|
except:
|
|||
|
pass
|
|||
|
break
|
|||
|
else:
|
|||
|
continue
|
|||
|
|
|||
|
while True:
|
|||
|
if getOS() == "windows":
|
|||
|
clear()
|
|||
|
print(f'Записать эту конференцию? {RESET}({BGREEN}Да{RESET}/{BRED}Нет{RESET})')
|
|||
|
print(f'\nОригинальное значение: {BRED}{lessons_got[edi]["record"]}{RESET}')
|
|||
|
lessrecord = input('\n > ')
|
|||
|
|
|||
|
if lessrecord.lower() in yes_list:
|
|||
|
finallessrecord = True
|
|||
|
local_lessons.update({"record": finallessrecord})
|
|||
|
break
|
|||
|
elif lessrecord.lower() in no_list:
|
|||
|
finallessrecord = False
|
|||
|
local_lessons.update({"record": finallessrecord})
|
|||
|
break
|
|||
|
elif lessrecord == '':
|
|||
|
finallessrecord = lessons_got[edi]["record"]
|
|||
|
local_lessons.update({"record": finallessrecord})
|
|||
|
break
|
|||
|
else:
|
|||
|
continue
|
|||
|
else:
|
|||
|
finallessrecord = False
|
|||
|
local_lessons.update({"record": finallessrecord})
|
|||
|
break
|
|||
|
|
|||
|
del lessons_got[edi]
|
|||
|
lessons_got.append(dict(local_lessons))
|
|||
|
sortLessons(lessons_got)
|
|||
|
saveJson(files_folder+'lessons.json', lessons_got)
|
|||
|
clear()
|
|||
|
print(f'Изменена конференция {CYAN}{lessname}{RESET} за {BRED}{finallessdate}{RESET} на время {BRED}{finallesstime}{RESET}.')
|
|||
|
appendLog(f'Edited lesson {lessname} (Date: {finallessdate}, Time: {finallesstime}, Link: {local_lessons["link"]})')
|
|||
|
none = input('\n > ')
|
|||
|
|
|||
|
except KeyboardInterrupt:
|
|||
|
appendLog('Editing existing lesson aborted')
|
|||
|
clear()
|
|||
|
return
|
|||
|
|
|||
|
|
|||
|
def removeLesson():
|
|||
|
appendLog(f'Removing existing lesson')
|
|||
|
|
|||
|
try:
|
|||
|
while True:
|
|||
|
print(f'{RESET}Выберите номер (индекс) для удаления:\n')
|
|||
|
listLessons()
|
|||
|
lessons_local = getLessons()
|
|||
|
print(f'\n{BBLACK}Для отмены операции введите {BRED}c{BBLACK} или {BRED}cancel{RESET}')
|
|||
|
|
|||
|
rem = input(f'\n > {BRED}')
|
|||
|
|
|||
|
if rem.lower() == 'c' or rem.lower() == 'cancel':
|
|||
|
clear()
|
|||
|
break
|
|||
|
else:
|
|||
|
try:
|
|||
|
rem = int(rem)
|
|||
|
except:
|
|||
|
clear()
|
|||
|
continue
|
|||
|
|
|||
|
try:
|
|||
|
del_name = lessons_local[rem]["name"]
|
|||
|
del_date = lessons_local[rem]["date"]
|
|||
|
del_time = lessons_local[rem]["time"]
|
|||
|
del lessons_local[rem]
|
|||
|
except:
|
|||
|
clear()
|
|||
|
print(f'{RESET}Выберите {ULINE}правильный{RESET} индекс (номер) для удаления.')
|
|||
|
time.sleep(3)
|
|||
|
clear()
|
|||
|
continue
|
|||
|
|
|||
|
sortLessons(lessons_local)
|
|||
|
saveJson(files_folder+'lessons.json', lessons_local)
|
|||
|
clear()
|
|||
|
print(f'{RESET}Удалена конференция {CYAN}{del_name}{RESET} за {BRED}{del_date}{RESET} на время {BRED}{del_time}{RESET}.')
|
|||
|
appendLog(f'Removed lesson {del_name} (Date: {del_date}, Time: {del_time})')
|
|||
|
none = input('\n > ')
|
|||
|
break
|
|||
|
except KeyboardInterrupt:
|
|||
|
appendLog('Lesson removal aborted')
|
|||
|
clear()
|
|||
|
return
|
|||
|
|
|||
|
|
|||
|
def removeAllLessons():
|
|||
|
appendLog('Removing all lessons')
|
|||
|
|
|||
|
try:
|
|||
|
while True:
|
|||
|
clear()
|
|||
|
removeall = input(f'{RESET}Вы уверены что хотите удалить все конференции? {RESET}({BGREEN}Да{RESET}/{BRED}Нет{RESET})\n{BRED}Внимание!{RESET} Это действие нельзя обратить!\nВаши настройки затронуты НЕ будут.\n\n > ')
|
|||
|
|
|||
|
if removeall.lower() in yes_list:
|
|||
|
with open(files_folder+'lessons.json', 'w', encoding="utf-8") as f:
|
|||
|
f.write("[]")
|
|||
|
f.close()
|
|||
|
|
|||
|
appendLog('All lessons removed')
|
|||
|
clear()
|
|||
|
none = input('Все конференции были удалены.\n\n > ')
|
|||
|
clear()
|
|||
|
break
|
|||
|
elif removeall.lower() in no_list:
|
|||
|
appendLog('All lessons removal aborted')
|
|||
|
clear()
|
|||
|
break
|
|||
|
else:
|
|||
|
continue
|
|||
|
|
|||
|
except KeyboardInterrupt:
|
|||
|
appendLog('All lessons removal aborted')
|
|||
|
|
|||
|
clear()
|
|||
|
return
|
|||
|
|
|||
|
|
|||
|
def editor():
|
|||
|
try:
|
|||
|
setTitle("AutoZoom (Редактор)", getOS())
|
|||
|
appendLog('Editor menu opened')
|
|||
|
|
|||
|
from main import mainMenu
|
|||
|
|
|||
|
while True:
|
|||
|
clear()
|
|||
|
|
|||
|
print(f'{BBLACK}»{RESET} Меню редактора\n')
|
|||
|
print(f' {BRED}1.{RESET} Добавить конференцию')
|
|||
|
print(f' {BRED}2.{RESET} Изменить конференцию')
|
|||
|
print(f' {BRED}3.{RESET} Удалить конференцию')
|
|||
|
print(f' {BRED}4.{RESET} Посмотреть конференции')
|
|||
|
print(f' {BRED}5.{RESET} Удалить все конференции')
|
|||
|
print(f' {BRED}6.{RESET} В главное меню')
|
|||
|
editor_choose = input(f'\n > {BRED}')
|
|||
|
|
|||
|
if editor_choose == '1':
|
|||
|
appendLog('Went to lesson adding')
|
|||
|
clear()
|
|||
|
addLesson()
|
|||
|
elif editor_choose == '2':
|
|||
|
appendLog('Went to lesson editing')
|
|||
|
clear()
|
|||
|
editLesson()
|
|||
|
elif editor_choose == '3':
|
|||
|
appendLog('Went to lesson removal')
|
|||
|
clear()
|
|||
|
removeLesson()
|
|||
|
elif editor_choose == '4':
|
|||
|
appendLog('Went to lesson lising')
|
|||
|
clear()
|
|||
|
listLessons(from_where = 'editor')
|
|||
|
elif editor_choose == '5':
|
|||
|
appendLog('Went to all lessons removal')
|
|||
|
clear()
|
|||
|
removeAllLessons()
|
|||
|
elif editor_choose == '6':
|
|||
|
appendLog('Exiting back to main menu')
|
|||
|
rpc.inMenu()
|
|||
|
clear()
|
|||
|
setTitle("AutoZoom (Главная)", getOS())
|
|||
|
mainMenu()
|
|||
|
else:
|
|||
|
continue
|
|||
|
|
|||
|
except KeyboardInterrupt:
|
|||
|
appendLog('Exiting back to main menu')
|
|||
|
rpc.inMenu()
|
|||
|
clear()
|
|||
|
return
|