ESOUI AddOn update API
How to use the ESOUI API via Curl:
Generate your API token here.
GET AddOns you have access to: Code:
curl -H "x-api-token: <Your Token>" https://api.esoui.com/addons/list.json Code:
curl -H "x-api-token: <Your Token>" https://api.esoui.com/addons/details/<id>.json Code:
curl -H "x-api-token: <Your Token>" -F "id=8163" -F "version=123456789" -F "compatible=2.6" -F "updatefile=@/Users/dolby/Downloads/test2.zip" https://api.esoui.com/addons/update Just do a GET on https://api.esoui.com/addons/update and you’ll receive an error with a list of valid data points. If you'd like to just test your script that interfaces with our API you can use the /updatetest endpoint instead: https://api.esoui.com/addons/updatetest. Nothing will actually save when you POST here so you can test that your script is working. HTTP: Error Responce:
Normal Response:
|
Is it possible to create a new addon via the api or do I have to upload it via the website the first time? Just wondering if I could automate that step for new addons. :D
|
First time (New projects) you need to upload it via the website.
|
Mac OSX
Well I checked if we in OSX land have Curl. BSD Unix roots and all... a quick "man curl" in the Terminal app confirms we are good to go, maybe.
Got as far as testing using the "update test" suggestion as per the OP. All good. Example: 1) Generate your token as per the link above. 2) Fire up your Terminal app. 3) curl -H "x-api-token:tttttttttttttttttttttttttt" https://api.esoui.com/addons/list.json That will give a table of all your ESO AddOns. The ID is the important bit. Most likely a three digit number. That string of "t"s is your token. It'll be heaps longer than that! 4) curl -H "x-api-token:tttttttttttttttttttttttttt" https://api.esoui.com/addons/details/nnn.json where "nnn" is the ID of your AddOn. This step is not necessary. It just lists what is there if you can't be bothered getting that same data in a formatted Safari/Chrome page. 5) curl -H "x-api-token:tttttttttttttttttttttttttt" -F "id=nnn" -F "version=1.13" -F "compatible=2.6" -F "updatefile=@/Users/Chris/desktop/MyLovelyFile.zip" https://api.esoui.com/addons/updatetest To test things out. Easy as that. Next actual update I'll be using Curl although I must say that unlike other places which seem to be cursed <cough> with some kind of page loading or bandwidth problem, over here at ESOUI things are always nice and zippy so I don't mind using the web interface at all. But this system would be neat for bulk updates in one go. |
is the curl upload the way how a addon is registered in "minion 3" and thus can be updated by it ?
|
afaik Minion 3 isn't using this and it is also only downloading stuff from the esoui database, and not uplaoding to it.
|
Quote:
|
Quote:
Quote:
thank you both for the quick reply ! |
I know this thread is pretty old but just wanted to share that, with the info I got here, I created esoui-publish which is a small npmjs module that translates this curl command to a node request. It has a programmatic API and it can be used via command line. Publishing to esoui could be as simple as:
Code:
esoui-publish --id=2271 --updatefile=my-addon.zip |
Is it possible to update the changelog field when uploading a file through the API or do I always have to update the changelog lines by hand? :)
Edit: Sorry have not seen the available field list :) |
If you load the update endpoint it will echo out the availble fields you can post to
https://api.esoui.com/addons/update |
so whats wrong?
help me pls! i really don't understand, what am i doing wrong (sorry for my english =) )
so, i play on linux with steam (Proton 5.x.x.x) Code:
ivan@legion AddOns]$ env |
This API exists to upload/update YOUR created addons. Do you want to upload an addon you have build?
It's not downloading addons or updates. Please use "Minion" for this purpose. |
Quote:
|
It does run on linux. Search the forum for "minion linux" and you'll find these threads:
https://www.esoui.com/forums/showthr...t=minion+linux https://www.esoui.com/forums/showthr...t=minion+linux |
Hello!
I think I found a bug in the API. Via Jenkins I update my AddOns with the script posted below. When I check the project page of the AddOn, no supported ESO version is shown. If I edit the AddOn there is also no check mark at the supported versions set. The variable COMPATIBLE_ID currently has the value "6.2.5". If I don't give curl a compatible value, it doesn't set the default either. Code:
#!/bin/bash |
@Keldor, not sure what is going on with your command but I have a cross platform NPM utility that can publish addons from the command line that worked correctly for me last time I used it.
https://www.esoui.com/downloads/info...i-publish.html https://www.npmjs.com/package/esoui-publish |
Thanks for yout feedback :)
I've found the bug in my script. The jq command returned the JSON string value with quotes, which means that I sent the value "6.2.5" instead of 6.2.5 :D The solution in my bash script was to change this line Code:
COMPATIBLE_ID=$(echo "${COMPATIBLE_LIST}" | jq '.[0].id') Code:
COMPATIBLE_ID=$(echo "${COMPATIBLE_LIST}" | jq --raw-output '.[0].id') |
I got a bit too bored and created a GitHub action for this.
https://github.com/Xeio/esoui-deploy-action It reads the Version and APIVersion from the add-on file in the repo and pushes them, and does the translation from the in-game APIVersion to the ESO UI version. It also pulls the notes in the GitHub release and sends them as the changelog (if present). I still have to manually create the release and add the update note, though I suppose I could just automate creating the release separately when I commit... then again my commit messages make bad release notes so maybe not. This is the workflow I'm using in my add-on repo, though it's pretty much identical to the example I put in the action readme above: https://github.com/Xeio/ControllerTw...flows/main.yml |
gitlab CI config to publish:
Code:
stages: |
For users of Node, this NPM utility will also update your changelog and readme. esoui-publish
|
Quote:
|
Quote:
|
@Dolby, any chance ESOUI could support Markdown formatted CHANGELOGs? E.g. here.
|
All times are GMT -6. The time now is 09:54 AM. |
vBulletin © 2024, Jelsoft Enterprises Ltd
© 2014 - 2022 MMOUI