banana/README.mdown

198 lines
6.3 KiB
Markdown

# Elder Scrolls Online Commadline Addon Manager
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 `eso-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\
```
or on Windows 11
```
Documents\Elder Scrolls Online\
```
Make a copy of the `live` folder and rename it to something meaningful like `old` or `backup`.
# Usage
Follow the installation instructions for your `platform`:
- [Windows](#windows-installation)
- [Linux](#linux-installation)
On first run, the `addons.list` file will be created in your ESO live directory.
It will look similar to the following:
```
https://www.esoui.com/downloads/info7-LibAddonMenu.html
https://www.esoui.com/downloads/info1245-TamrielTradeCentre.html
https://www.esoui.com/downloads/info1146-LibCustomMenu.html
```
Add the ESOUI url for each additional addon you wish to keep updated.
Make sure to include the `www.` indicator that ESOUI requires for some stupid reason.
# Windows Installation
Install the latest Python 3 using the installer provided by [python.org](https://www.python.org/downloads/windows/).
When the python installer asks, [add python to PATH](https://docs.python.org/3/using/windows.html#installation-steps).
Open [Windows Terminal](https://www.microsoft.com/en-US/p/windows-terminal/9n0dx20hk701) or any windows command prompt and navigate to this project.
Use the Python package manager PIP to install `eso-banana`.
```powershell
cd .\banana\
pip install .
```
Once the project is installed to python's packages you may invoke the addon script with the following command:
```powershell
eso-banana-script.exe
```
To schedule a periodic background run of `eso-banana`, open Powershell as a user and enter the following commands.
```powershell
$Command = (Get-Command "eso-banana-script.exe").Source
$Action = New-ScheduledTaskAction -Execute $Command -Argument "--log"
$Trigger = New-ScheduledTaskTrigger -Daily -At 11am
$Settings = New-ScheduledTaskSettingsSet -RunOnlyIfNetworkAvailable -StartWhenAvailable -RunOnlyIfIdle
Register-ScheduledTask -TaskName "eso-banana" -Action $Action -Trigger $Trigger -Settings $Settings -Description "Elder Scrolls Online addon manager and a Tamriel Trade Centre price table updater."
```
To check to make sure the task is registered correctly, enter `Get-ScheduledTask` and check that the first entry looks similar:
```
TaskPath TaskName State
-------- -------- -----
\ eso-banana Ready
```
# Windows Unschedule
Only run the following command if you wish to remove scheduled run of `eso-banana`.
To remove the schedule, use the `Unregister-ScheduledTask` command:
```
Unregister-ScheduledTask eso-banana
```
Press enter to confirm removal.
# Steam Deck Installation
The following instructions are for arch linux system installed with the Steam Deck.
0. From the [Steam Deck instructions](https://help.steampowered.com/en/faqs/view/671A-4453-E8D2-323C):
> From the STEAM menu, select Power, then Switch to Desktop
1. Once you've become familiar with desktop mode, open a terminal and enter the following commands to install python.
```
sudo btrfs property set -ts / ro false
sudo pacman-key --init
sudo pacman-key --populate archlinux
sudo pacman -S python-pip
```
2. Run the following commands to download this project and install the scheduled service.
```
wget https://joyo.dev/eso/banana/archive/master.tar.gz -O banana.tgz
tar xvf banana.tgz
cd ./banana/
pip install .
cp banana.timer banana.service /etc/systemd/system/
sudo systemctl enable banana.timer
sudo systemctl enable banana.service
```
3. Now that `eso-banana-script` has been installed, run it once to create the `addons.list` file.
If the mentioned command is missing your may need to restart the TTY.
4. The created file can be edited with vim to include additional adddon URLs at the following path.
`vim "~/.steam/steam/steamapps/compatdata/306130/pfx/drive_c/users/steamuser/Documents/Elder Scrolls Online/live/addons.list"`
It will look similar to the following:
```
https://www.esoui.com/downloads/info7-LibAddonMenu.html
https://www.esoui.com/downloads/info1245-TamrielTradeCentre.html
https://www.esoui.com/downloads/info1146-LibCustomMenu.html
```
Add the ESOUI url for each additional addon you wish to keep updated.
Make sure to include the `www.` indicator that ESOUI requires for some stupid reason.
5. Run `eso-banana-script` once more to download and install the additional addons.
6. To return to [Gaming Mode](https://help.steampowered.com/en/faqs/view/671A-4453-E8D2-323C):
> ...there's a shortcut link to 'Return to Gaming Mode'.
> Select that to get back to standard Steam Deck UI.
> You can also go through the system menus to Log Off to get back.
# Steam Deck Unschedule
Only run the following command if you wish to remove scheduled run of `eso-banana`.
```
systemctl list-timers --all
sudo systemctl disable banana.timer
```
# Linux Installation
The following instructions are for any linux system using systemd.
Using your distros package management system, install python3-pip.
```
sudo apt install python3-pip
```
Because systemd is cancer you will need to edit the `banana.service` file to include your user's home path.
In the unlikely event that the script is not installed to `~/.local/bin/eso-banana-script`, open a new terminal and use the results from `which eso-banana-script`.
```
[Unit]
Description=Run banana daily and on boot.
Wants=banana.timer
[Service]
Type=oneshot
ExecStart=/home/user_name_here/.local/bin/eso-banana-script
User=deck
[Install]
WantedBy=multi-user.target
```
Finally, install `eso-banana` using pip and install the systemd timer and service to run `eso-banana` everyday.
```
cd ./banana/
pip install .
cp banana.timer banana.service /etc/systemd/system/
sudo systemctl enable banana.timer
sudo systemctl enable banana.service
```
# Linux Unschedule
Only run the following command if you wish to remove scheduled run of `eso-banana`.
```
systemctl list-timers --all
sudo systemctl disable banana.timer
```