diff --git a/README.mdown b/README.mdown index bc9b2d3..f405c6d 100644 --- a/README.mdown +++ b/README.mdown @@ -1,9 +1,19 @@ # Elder Scrolls Online Commadline Addon Manager -Elder Scrolls Online addon manager and a Tamriel Trade Centre price table updater +Elder Scrolls Online addon manager and a Tamriel Trade Centre price table updater. [MIT License](LICENSE) +It is recommended that you back up your ESO live profile before using `banana` in case you want to revert back. + +On Windows, press `Windows Key + e` to open a file explorer and enter the following path in the address bar: + +``` +%HOME%\Documents\Elder Scrolls Online\ +``` + +Make a copy of the `live` folder and rename it to something meaningful like `old` or `backup`. + # Dependencies ``` diff --git a/banana/config.py b/banana/config.py index c284892..d2d0a56 100644 --- a/banana/config.py +++ b/banana/config.py @@ -3,7 +3,13 @@ from pathlib import Path def new(path: Path): - config = {"addons": ["https://www.esoui.com/downloads/info7-LibAddonMenu.html"]} + config = { + "addons": [ + "https://www.esoui.com/downloads/info7-LibAddonMenu.html", + "https://www.esoui.com/downloads/info1245-TamrielTradeCentre.html", + "https://www.esoui.com/downloads/info1146-LibCustomMenu.html", + ] + } with path.open("w") as file_open: config = yaml.dump(config, file_open, default_flow_style=False) diff --git a/banana/scripts.py b/banana/scripts.py index 414dee4..e8135fa 100644 --- a/banana/scripts.py +++ b/banana/scripts.py @@ -1,7 +1,8 @@ -from argparse import ArgumentParser -import logging import requests +import re +import logging from pathlib import Path +from argparse import ArgumentParser from . import config @@ -44,7 +45,29 @@ def periodical_script(): try: config.valid(config_current) - except AssertionError: + except (AssertionError, AttributeError): config.new(config_path) config_current = config.load(config_path) logging.info(f'addons list created at "{config_path}"') + + esoui_prefix = re.compile("https://www.esoui.com/downloads/info[0-9]+\-") + addon_names = list() + + for url in config_current.get("addons"): + addon = esoui_prefix.split(url)[1] + addon = addon.split(".html")[0] + addon_names.append(addon) + + logging.info(addon_names) + + version_html = re.compile('Version:\s+[^<]+') + version_split = re.compile('Version:\s+') + addon_versions = list() + + for url in config_current.get("addons"): + response = requests.get(url) + version_line = version_html.search(response.text) + version = version_split.split(version_line.group(0))[1] + addon_versions.append(version) + + logging.info(addon_versions)