-
Notifications
You must be signed in to change notification settings - Fork 1
/
main.py
91 lines (74 loc) · 4.53 KB
/
main.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
from reader import Reader
from downloader import Downloader
from writer import New_to_old_table
import sys
import os.path
import json
def run(start_semester=None, input_file=None, output_file=None, groups=None):
base_name = os.path.join(os.path.dirname(sys.argv[0]), "table.db")
template = os.path.join(os.path.dirname(sys.argv[0]), "template.xlsx")
if start_semester is None:
source_file = input("Введите путь к файлу расписания в новой форме и нажмите Enter ... ")
out_file = input("Введите имя создаваемого файла таблицы по граппам(без расширения)... ")
out_file = os.path.join(os.path.dirname(sys.argv[0]), out_file + ".xlsx")
print(out_file)
__reader = Reader(source_file, base_name)
group_name_list = __reader.read(write_to_json_file=True, write_to_csv_file=True, write_to_db=True, write_to_new_db=True)
start_date = input("Введите дату начала семестра. Например: 09.02.2018 ... ")
print("В текущем файле имеюися следующие группы:")
for name in group_name_list:
print(name)
group_list = input("Введите названия групп, которые Вы хотите видеть в таблице по группам (через запятую). "
"Например: БНБО-01-16, БНБО-02-16 ... ")
group_list = group_list.replace(" ", "").split(",")
writer = New_to_old_table(template, base_name, out_file, start_date, group_list)
writer.run()
else:
source_file = os.path.join(os.path.dirname(sys.argv[0]), input_file)
out_file = os.path.join(os.path.dirname(sys.argv[0]), output_file)
__reader = Reader(source_file, base_name)
group_name_list = __reader.read(write_to_json_file=True, write_to_csv_file=True, write_to_db=True,
write_to_new_db=True)
for name in group_name_list:
print(name)
writer = New_to_old_table(template, base_name, out_file, start_semester, groups)
writer.run()
if __name__ == "__main__":
while True:
mode = int(input("Выберите режим работы: \n"
"1) Конвертация на основе настроек файла config.json\n"
"2) Конвертация на основе пользовательского ввода (ручной ввод данных о конвертируемых "
"файлах и т.д.)\n"
"3) Загрузить расписание с сайта МИРЭА и сформировать файл БД SQLite3\n"
"0) Завершить выполнение скрипта!\n"))
try:
if mode == 1:
with open(os.path.join(os.path.dirname(sys.argv[0]), "config.json"), encoding="utf-8") as fh:
conf = json.loads(fh.read())
start_semester = conf["start_semester"]
del conf['start_semester']
for course in conf:
input_file = conf[course]["input_files"]
output_file = conf[course]["output_files"]
groups = conf[course]["groups"]
run(start_semester, input_file, output_file, groups)
print("Конвертация успешно выполнена!\n")
elif mode == 2:
run()
print("Конвертация успешно выполнена!\n")
continue
elif mode == 3:
Downloader = Downloader(path_to_error_log='logs/downloadErrorLog.csv', base_file_dir='xls/')
Downloader.download()
reader = Reader(path_to_db="table.db")
reader.run('xls', write_to_db=True, write_to_new_db=True, write_to_json_file=False, write_to_csv_file=False)
print("\nКонвертация успешно выполнена!\n\n")
continue
elif mode == 0:
exit(0)
except FileNotFoundError as err:
print("Ошибка! Не найден файл шаблона 'template.xlsx' или файлы исходного расписания")
continue
except Exception as err:
print(err, "\n")
continue