-
Notifications
You must be signed in to change notification settings - Fork 1
/
parser.py
82 lines (63 loc) · 2.27 KB
/
parser.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
import sys, argparse
global parser
# Instantiate the parser
parser = argparse.ArgumentParser(
description="TimeTableParser-UA is a python tool for scraping any timetable page on the University of Aveiro's academic portal (PACO) and exporting it to different formats.\n\nPlease refer to the GitHub repository for further help and instructions.")
# Presents the week's menu
parser.add_argument('-d', dest='dest',
help='specify destination filename')
#Specifies buildings to automatically upgrade
parser.add_argument('-u', type=str, nargs='*', dest='urls',
default=[],
help='specify all timetable urls separated by spaces' )
parser.add_argument('-f', dest='format',
help="specify desired output format (eg: sttx)")
def getUrls():
print("Add all timetable urls seperated by ENTER. When done, press ENTER: ")
urls = []
while True:
url = input("")
if len(url) == 0:
break
urls.append(url)
return urls
def main():
# Get arguments
args = parser.parse_args()
version = 1.0
print("TimeTableParser-UA version " + str(version) + " - Rodrigo Rosmaninho, MIECT, 2019\nRepository: https://github.com/RodrigoRosmaninho/TimeTableParser-ua\n")
if args.dest == None:
dest = input("Specify destination file: ")
print("")
else:
dest = args.dest
if len(args.urls) == 0:
urls = getUrls()
else:
urls = args.urls
if args.format == None:
format = 1 # sttx
elif args.format == "sttx":
format = 1 # sttx
else:
print("Invalid format specified")
sys.exit(1)
import scraper
print("Starting to collect timetable information from PACO...")
classes = []
for url in urls:
try:
classes.extend(scraper.getClasses(url))
except Exception:
print("\nError getting information from PACO url \"" + url + "\"\nPlease contact me at r.rosmaninho@ua.pt or open an issue on GitHub")
sys.exit(2)
print("Exporting...")
if format == 1:
import sttx
sttx.export(dest, classes)
else:
print("Unexpected Error")
sys.exit(3)
print("Export Successful!")
if __name__ == "__main__":
main()