unibrementypo3auto/fix_english_publication_headers.py

102 lines
2.6 KiB
Python
Raw Permalink Normal View History

2023-05-17 18:45:48 +02:00
import json
from login.login import login
from login.close_login_popup import close_login_popup
from get_tree.get_layout_url import get_layout_url
from getpass import getpass
from selenium import webdriver
from selenium.webdriver.firefox.service import Service as FirefoxService
from webdriver_manager.firefox import GeckoDriverManager
from content.get_content_list import get_content_list
from content.is_english_content import is_english_content
from content.change_url import change_url
from content.press_close_button import press_close_button
from content.get_input_fields import get_input_fields
from content.set_input_field import set_input_field
from content.press_save_button import press_save_button
import time
2023-05-18 15:12:39 +02:00
page_id: int = 59285
2023-05-17 18:45:48 +02:00
base_url: str = "https://www.uni-bremen.de"
zfn_password: str = getpass()
with open("username.json", "r") as file:
json_dict = json.load(file)
zfn_user: str = json_dict["zfn_user"]
with open("types_db.json", "r") as file:
type_dict = json.load(file)
driver = webdriver.Firefox(service=FirefoxService(GeckoDriverManager().install()))
# Login
if login(driver, base_url, zfn_user, zfn_password) is False:
print("Login failed")
exit(1)
# Get rid of the popup
close_login_popup(driver)
# Get the protected URL to the pages
page_url_base = get_layout_url(driver, base_url)
# Jump to page
print(f"Go to page {int(page_id)}")
page_url: str = page_url_base + f"&id={int(page_id)}"
driver.get(page_url)
2023-05-18 15:12:39 +02:00
time.sleep(1)
2023-05-17 18:45:48 +02:00
# Get content from page
content_id, content_type, urls = get_content_list(driver)
interesting_content_ids: list = []
for i in range(0, len(content_type)):
if content_type[i] == "textmedia":
interesting_content_ids.append(content_id[i])
2023-05-18 15:12:39 +02:00
time.sleep(1)
2023-05-17 18:45:48 +02:00
english_ids: list = []
for id in interesting_content_ids:
if is_english_content(driver, id) is True:
english_ids.append(id)
to_modify: str = str("header")
for id in english_ids:
print(id)
idx = content_id.index(id)
assert idx is not None
change_url(driver, base_url + urls[idx])
extract_list, results = get_input_fields(driver)
idx = extract_list.index(to_modify)
value = results[idx]
new_value: str | None = None
for t_id in type_dict.keys():
assert len(type_dict[t_id]) == 3
if value == type_dict[t_id][1]:
new_value = type_dict[t_id][2]
if new_value is not None:
set_input_field(driver, to_modify, new_value)
# Press save button
time.sleep(1)
press_save_button(driver)
# Press close button
time.sleep(1)
press_close_button(driver)
print("Wait for 2 sec")
time.sleep(2)
print("Close shop")
driver.close()
driver.quit()