Mon Jun 12 06:03:14 CEST 2023
This commit is contained in:
Regular → Executable
+38
-37
@@ -1,5 +1,6 @@
|
||||
from lib import networking as nw
|
||||
from solenlib import networking as nw
|
||||
from bs4 import BeautifulSoup
|
||||
import os
|
||||
|
||||
not_login = 0
|
||||
|
||||
@@ -10,28 +11,28 @@ def fetch_locally() -> list:
|
||||
not_login = 0
|
||||
#print("Could not sign in (you may have entered invalid login credentials)")
|
||||
#print("Fetching the schedule for this week locally\n")
|
||||
schedule_week = schedule_week_from_file()
|
||||
return schedule_week
|
||||
schedule = schedule_from_file()
|
||||
return schedule
|
||||
|
||||
|
||||
def sort_schedule_week(schedule_week: list[dict]) -> list[dict]:
|
||||
sorted_schedule_week: list[dict] = [{}, {}, {}, {}, {}]
|
||||
def sort_schedule(schedule: list[dict]) -> list[dict]:
|
||||
sorted_schedule: list[dict] = [{}, {}, {}, {}, {}]
|
||||
|
||||
for i in range(len(schedule_week)):
|
||||
if schedule_week[i]["DAY"] == "Po":
|
||||
sorted_schedule_week[0] = schedule_week[i]
|
||||
if schedule_week[i]["DAY"] == "Út":
|
||||
sorted_schedule_week[1] = schedule_week[i]
|
||||
if schedule_week[i]["DAY"] == "St":
|
||||
sorted_schedule_week[2] = schedule_week[i]
|
||||
if schedule_week[i]["DAY"] == "Čt":
|
||||
sorted_schedule_week[3] = schedule_week[i]
|
||||
if schedule_week[i]["DAY"] == "Pá":
|
||||
sorted_schedule_week[4] = schedule_week[i]
|
||||
for i in range(len(schedule)):
|
||||
if schedule[i]["DAY"] == "Po":
|
||||
sorted_schedule[0] = schedule[i]
|
||||
if schedule[i]["DAY"] == "Út":
|
||||
sorted_schedule[1] = schedule[i]
|
||||
if schedule[i]["DAY"] == "St":
|
||||
sorted_schedule[2] = schedule[i]
|
||||
if schedule[i]["DAY"] == "Čt":
|
||||
sorted_schedule[3] = schedule[i]
|
||||
if schedule[i]["DAY"] == "Pá":
|
||||
sorted_schedule[4] = schedule[i]
|
||||
|
||||
return sorted_schedule_week
|
||||
return sorted_schedule
|
||||
|
||||
def get_schedule_week(url: str):
|
||||
def get_schedule(url: str):
|
||||
try:
|
||||
html = nw.get_html_from(url)
|
||||
|
||||
@@ -43,7 +44,7 @@ def get_schedule_week(url: str):
|
||||
rows_even = table.find_all("tr", class_="RowEven")
|
||||
rows = rows_odd + rows_even
|
||||
|
||||
schedule_week = []
|
||||
schedule = []
|
||||
|
||||
for i in range(len(rows)):
|
||||
if rows[i].find("td", class_="KuvSuplovanaHodina") is not None and rows[i].find("td", class_="KuvSuplujiciHodina") is None and rows[i].find("td", class_="KuvSkolniAkceHodina") is None and rows[i].find("td", class_="DctInnerTableType10DataTD") is None:
|
||||
@@ -126,18 +127,18 @@ def get_schedule_week(url: str):
|
||||
break
|
||||
|
||||
if F_continue == False:
|
||||
schedule_week_row = {
|
||||
schedule_row = {
|
||||
"DAY": day,
|
||||
"DATE": date,
|
||||
"SUBJECTS": subjects,
|
||||
"WHERES": wheres
|
||||
}
|
||||
|
||||
schedule_week.append(schedule_week_row)
|
||||
schedule.append(schedule_row)
|
||||
|
||||
sorted_schedule_week = sort_schedule_week(schedule_week)
|
||||
sorted_schedule = sort_schedule(schedule)
|
||||
|
||||
return sorted_schedule_week
|
||||
return sorted_schedule
|
||||
except AttributeError:
|
||||
global not_login
|
||||
|
||||
@@ -145,12 +146,12 @@ def get_schedule_week(url: str):
|
||||
schedule = fetch_locally()
|
||||
return schedule
|
||||
|
||||
def schedule_week_from_file_to_list():
|
||||
def schedule_from_file_to_list():
|
||||
schedule = []
|
||||
schedule_ = []
|
||||
|
||||
try:
|
||||
with open("src/lib/data/schedule_week.csv") as f:
|
||||
with open(f"{os.environ['HOME']}/.local/lib/solendata/schedule_week.csv") as f:
|
||||
import csv
|
||||
reader = csv.reader(f)
|
||||
for row in reader:
|
||||
@@ -183,7 +184,7 @@ def schedule_week_from_file_to_list():
|
||||
return schedule
|
||||
|
||||
def get_whitespace(key: str, idx=0) -> int:
|
||||
schedule = schedule_week_from_file_to_list()
|
||||
schedule = schedule_from_file_to_list()
|
||||
max_len = 0
|
||||
|
||||
if key == "DATE":
|
||||
@@ -199,14 +200,14 @@ def get_whitespace(key: str, idx=0) -> int:
|
||||
|
||||
return max_len
|
||||
|
||||
def show_schedule_week():
|
||||
def show_schedule():
|
||||
# if there is internet access, load stuff from the web
|
||||
# if not, load the schedule.csv file
|
||||
if nw.is_connected() == True:
|
||||
schedule = get_schedule_week("/SOL/App/Kalendar/KZK001_KalendarTyden.aspx")
|
||||
schedule_week_to_file(schedule)
|
||||
schedule = get_schedule("/SOL/App/Kalendar/KZK001_KalendarTyden.aspx")
|
||||
schedule_to_file(schedule)
|
||||
else:
|
||||
schedule = schedule_week_from_file()
|
||||
schedule = schedule_from_file()
|
||||
|
||||
print("")
|
||||
|
||||
@@ -218,8 +219,8 @@ def show_schedule_week():
|
||||
print("N/A\n")
|
||||
import os
|
||||
|
||||
if os.path.exists("src/lib/data/schedule_week.csv"):
|
||||
os.remove("src/lib/data/schedule_week.csv")
|
||||
if os.path.exists(f"{os.environ['HOME']}/.local/lib/solendata/schedule_week.csv"):
|
||||
os.remove(f"{os.environ['HOME']}/.local/lib/solendata/schedule_week.csv")
|
||||
return
|
||||
|
||||
for i in range(len(schedule)):
|
||||
@@ -246,16 +247,16 @@ def show_schedule_week():
|
||||
|
||||
print("")
|
||||
|
||||
def schedule_week_to_file(schedule=None):
|
||||
def schedule_to_file(schedule=None):
|
||||
import csv
|
||||
if schedule is None:
|
||||
try:
|
||||
schedule = get_schedule_week("/SOL/App/Kalendar/KZK001_KalendarTyden.aspx")
|
||||
schedule = get_schedule("/SOL/App/Kalendar/KZK001_KalendarTyden.aspx")
|
||||
except Exception:
|
||||
print("An error occured, you probably can't access the internet right now")
|
||||
return
|
||||
|
||||
with open("src/lib/data/schedule_week.csv", mode="w", newline="") as f:
|
||||
with open(f"{os.environ['HOME']}/.local/lib/solendata/schedule_week.csv", mode="w", newline="") as f:
|
||||
data = []
|
||||
|
||||
for i in range(len(schedule)):
|
||||
@@ -287,12 +288,12 @@ def schedule_week_to_file(schedule=None):
|
||||
for row in data:
|
||||
writer.writerow(row)
|
||||
|
||||
def schedule_week_from_file() -> list:
|
||||
def schedule_from_file() -> list:
|
||||
import csv
|
||||
schedule = []
|
||||
|
||||
try:
|
||||
with open("src/lib/data/schedule_week.csv", mode="r") as f:
|
||||
with open(f"{os.environ['HOME']}/.local/lib/solendata/schedule_week.csv", mode="r") as f:
|
||||
reader = csv.reader(f)
|
||||
rows = []
|
||||
for row in reader:
|
||||
|
||||
Reference in New Issue
Block a user