ESOUI

ESOUI (https://www.esoui.com/forums/index.php)
-   Tutorials & Other Helpful Info (https://www.esoui.com/forums/forumdisplay.php?f=172)
-   -   ESOUI AddOn update API (https://www.esoui.com/forums/showthread.php?t=6556)

Dolby 10/08/16 03:36 PM

ESOUI AddOn update API
 
How to use the ESOUI API via Curl:

Generate your API token here.
  • Keep this token private as it has access to submit updates to your AddOn via our API.
  • Delete the token at any time to revoke its access to your AddOns
  • Team members can generate their own api token, no need to share yours.

GET AddOns you have access to:
Code:

curl -H "x-api-token: <Your Token>" https://api.esoui.com/addons/list.json
GET AddOn details:
Code:

curl -H "x-api-token: <Your Token>" https://api.esoui.com/addons/details/<id>.json
POST Updates: (If you GET the endpoint it will list what can be changed via this endpoint)
Code:

curl -H "x-api-token: <Your Token>" -F "id=8163" -F "version=123456789" -F "compatible=2.6" -F "[email protected]/Users/dolby/Downloads/test2.zip" https://api.esoui.com/addons/update
List of valid data you can POST:
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:
  • 403 - You must be authenticated to use this API. (Missing or invalid token or cookie)
  • 404 - No AddOns found. (You don't have any AddOns)
  • 404 - ID(s) are missing for AddOn details.
  • 405 - Missing required data fields for AddOn Update (See actual error message for a list of fields)
  • 403 - AddOn Disabled (An admin has disabled your AddOn)
  • 401 - Permission Denied (You are not the author or team member of this AddOn)
  • 415 - File type not supported (You have tried to upload a file other than a zip/rar)
  • 500 - File update failed (Contact an admin, something bad happened)

Normal Response:
  • 200 - (Returned when you successfully GET data from the API)
  • 202 - Update Accepted. (Returned when you POST an update to your AddOn)

sirinsidiator 10/25/16 03:56 PM

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

Dolby 10/25/16 04:34 PM

First time (New projects) you need to upload it via the website.

Taraezor 12/28/16 04:47 AM

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 "[email protected]/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.

Micke2nd 09/22/19 03:53 AM

is the curl upload the way how a addon is registered in "minion 3" and thus can be updated by it ?

Baertram 09/22/19 06:15 AM

afaik Minion 3 isn't using this and it is also only downloading stuff from the esoui database, and not uplaoding to it.

Dolby 09/22/19 08:21 AM

Quote:

Originally Posted by Micke2nd (Post 39212)
is the curl upload the way how a addon is registered in "minion 3" and thus can be updated by it ?

Sorry, Minion does not pull from the ESO Tools & Utilities category and doesn't work with exe's. It only works with Actual lua AddOns.

Micke2nd 09/22/19 01:46 PM

Quote:

Originally Posted by Baertram (Post 39215)
... and not uplaoding to it.

i meant to update the "customer" installation with minion. The upload i would have handled however its neccessary (e.g. with curl) , cause i like the minion tool :)

Quote:

Originally Posted by Dolby (Post 39216)
... and doesn't work with exe's

oh my addon doesnt need the *.exe, i deliver it primarly as script. i like the transparent approach. But anyway, got it.

thank you both for the quick reply !

AlbinoPython 11/19/19 09:12 PM

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

Keldor 06/05/20 05:10 AM

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 :)

Dolby 06/05/20 08:32 AM

If you load the update endpoint it will echo out the availble fields you can post to

https://api.esoui.com/addons/update


All times are GMT -6. The time now is 10:32 PM.

vBulletin © 2020, Jelsoft Enterprises Ltd
© 2014 - 2020 MMOUI