forked from TrickyWhiteCat/Hust_Timetable_toICS
-
Notifications
You must be signed in to change notification settings - Fork 0
/
main.py
45 lines (38 loc) · 1.69 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
import os
import sys
import subprocess
import pkg_resources
def setup(required):
installed = {pkg.key for pkg in pkg_resources.working_set}
missing = required - installed
if missing:
# implement pip as a subprocess:
subprocess.check_call([sys.executable, '-m', 'pip', 'install', *missing])
required = {'selenium', 'ics', 'webdriver_manager'}
setup(required)
from selenium import webdriver
from selenium.webdriver.edge.service import Service
from webdriver_manager.microsoft import EdgeChromiumDriverManager
import datetime
from get_timetable import *
def main():
os.system('cls')
first_day = input('Nhập ngày đầu tiên của tuần 1 của năm học theo định dạng YYYY-MM-DD (Nhấn Enter nếu là năm 2022): ')
if first_day == '':
first_day = datetime.datetime(year=2023, month=3, day = 20, tzinfo = datetime.datetime.now().astimezone().tzinfo)
else:
date = datetime.date.fromisoformat(first_day)
first_day = datetime.datetime(year = date.year, month = date.month, day = date.day, tzinfo = datetime.datetime.now().astimezone().tzinfo)
file_path = input('Nhập đường dẫn cho file .ics hoặc nhấn enter để dùng đường dẫn mặc định (/time_table.ics): ')
if file_path == '':
file_path = 'time_table.ics'
username = input('Nhập email sis: ')
os.system('cls')
password = input('Nhập password: ')
os.system('cls')
driver = webdriver.Edge(service=Service(executable_path=EdgeChromiumDriverManager().install()))
driver.maximize_window()
time_table = get_timetable(driver, username, password)
to_ics(first_day, time_table, file_path)
if __name__ == '__main__':
main()