ESOUI

ESOUI (https://www.esoui.com/forums/index.php)
-   Dev Tools (https://www.esoui.com/forums/forumdisplay.php?f=173)
-   -   ESO-Database Game Data API for AddOn Authors (https://www.esoui.com/forums/showthread.php?t=9236)

Keldor 06/25/20 10:25 AM

ESO-Database Game Data API for AddOn Authors
 
Hello everyone,

tomorrow I will release the new version of my ESO-Database Client and it includes a first version of the Game Data Export AddOn. This AddOn currently stores the positions of Chests, Thieves Troves and Psijik portals.

I imagined that this data could be useful for many AddOn authors, so I made the data available via API. The advantage of this is that several hundred players per day will use the AddOn starting tomorrow with the release of the new client to contribute data. There are already some data available from the Client and AddOn beta testers :D

You can find the API documentation and endpoints here:
https://game-data.eso-database.com

For the future I have plans to integrate books and harvest nodes as well. This could be interesting for Harvest Map and Lore Books ;)

What do you think about this idea to make the data available for all AddOn authors?
If you have some wishes or ideas for other data, feel free to ask me ::banana:

Micke2nd 06/26/20 02:43 AM

Quote:

Originally Posted by Keldor (Post 41613)
This AddOn currently stores the positions of Chests, Thieves Troves and Psijik portals.
I imagined that this data could be useful for many AddOn authors

Hi Keldor,
the only use case I know is to visualize their locations, what HarvestMap does.
If I would need the locations outside the game, I would reuse HarvestMaps files.

What another use case do you have in mind ?

Baertram 06/26/20 03:01 AM

Quote:

Originally Posted by Micke2nd (Post 41622)
Hi Keldor,
the only use case I know is to visualize their locations, what HarvestMap does.
If I would need the locations outside the game, I would reuse HarvestMaps files.

What another use case do you have in mind ?

I guess this is the main usecase.
"Collect ifnormation by multiple users without having to install/use different addons, but just use 1 data collector storing the data online where addond evs can grab them for their addons".

This is what I understood.
Thanks for the effort Keldor.
It's a good idea and I hope it will work.

One problem would be to tell the users to use your addon constantly. It will create SavedVariable files that grow a lot as you collect data which is already in multiple other addons you have named yourself -> means BIGsv files -> Long loading screens.
Means 2x big SV files (e.g. harvest map and your colelctor addon= 2x longer loading screens).
They will recognize this and disable your collection addon then.

The other problem I see would be addons not using the same method or data base you are collecting and need to "transfer" your data again to "their internal" data. Which might them stick at their own build in data collectors, included into the addons which the users use to "visualize" the map pins etc.
So in the end it might be a nice idea but not work for some, or just being ignored as their own methods are working and they do not need or want to invest time where not needed.

But having the data shared online to be able to read them from there, even for websites, is a nice feature!

Zone data and anmes always redundantly in the tables!
But I wouldn't ALWAYS include the zoneData like names into all the collected information!
It blows up the files and data tables unnecessarily.
Just create a zonedata table with the names maybe and just reference in your other data on the zoneIds then.
Will make fetching data for the thieves, psijic, etc. "slim" as you can always use the build in ESO API functions to get the zoneName ingame.
Or use your other zoneData table as lookup.
All you need is the zoneId e.g.

And I know many addons already who only would need the zoneId + zoneNames in multiple languages. So collecting this data with your collector "as standalone API/table" would be even nice and could be used. e.g. for LibZones, which many other addons re-use then.


Chests
Do you somehow assure that the collected chests data by multiple users, in the same zone, does not report like "20 chests near by each other", where it actually is only 1 chest spawning at slitghtly different locations?
Or do the addons just grab your total data and need to assure this?
Again a matter of data size here then. You will have 20+ entries but only 1 is needed.

P.S.
Thanks Keldor for working on this!

Keldor 06/26/20 04:55 AM

Quote:

Originally Posted by Micke2nd (Post 41622)
Hi Keldor,
the only use case I know is to visualize their locations, what HarvestMap does.
If I would need the locations outside the game, I would reuse HarvestMaps files.

What another use case do you have in mind ?

The advantage of the whole thing is that the data automatically ends up in the database without having to ask the individual users to contribute the data. It is not obligatory to use my data but for one or the other developer it could be a good place to go.


Quote:

Originally Posted by Baertram (Post 41623)
One problem would be to tell the users to use your addon constantly. It will create SavedVariable files that grow a lot as you collect data which is already in multiple other addons you have named yourself -> means BIGsv files -> Long loading screens.
Means 2x big SV files (e.g. harvest map and your colelctor addon= 2x longer loading screens).
They will recognize this and disable your collection addon then.

Since the data is uploaded after every /reload or logout, I have limited the amount of data to be stored in the AddOn, so the SV files shouldn't get really big :)


Quote:

Originally Posted by Baertram (Post 41623)
Zone data and anmes always redundantly in the tables!
But I wouldn't ALWAYS include the zoneData like names into all the collected information!
It blows up the files and data tables unnecessarily.
Just create a zonedata table with the names maybe and just reference in your other data on the zoneIds then.
Will make fetching data for the thieves, psijic, etc. "slim" as you can always use the build in ESO API functions to get the zoneName ingame.
Or use your other zoneData table as lookup.
All you need is the zoneId e.g.

And I know many addons already who only would need the zoneId + zoneNames in multiple languages. So collecting this data with your collector "as standalone API/table" would be even nice and could be used. e.g. for LibZones, which many other addons re-use then.

I think the thing with the zones is a good point. I will revise that again and only add the zone id. For this there is another API call for the zones, which I also have in the database.


Quote:

Originally Posted by Baertram (Post 41623)
Chests
Do you somehow assure that the collected chests data by multiple users, in the same zone, does not report like "20 chests near by each other", where it actually is only 1 chest spawning at slitghtly different locations?
Or do the addons just grab your total data and need to assure this?
Again a matter of data size here then. You will have 20+ entries but only 1 is needed.

I will publish the AddOn here on ESOUI soon, then you can have a look at the methods how to export the data. I'm also happy to take some advice here to improve or extend the whole thing ;)

Thanks in any case for the questions and suggestions. As I said, the basic idea behind this project is to support developers with their great AddOns which are already available on ESOUI.

Keldor

Kyoma 06/26/20 05:17 AM

For LoreBooks it'll depend on how the data gets collected as it isn't always as simple as collecting a harvest node. Taking the uesplog addon for example would lead to many erronous and duplicate data.

Keldor 06/26/20 05:40 AM

Quote:

Originally Posted by Kyoma (Post 41625)
For LoreBooks it'll depend on how the data gets collected as it isn't always as simple as collecting a harvest node. Taking the uesplog addon for example would lead to many erronous and duplicate data.

If you like I can have a look at your lore books exporter functions to include this part to the addon. The AddOn is also available on Github. If you like you can provide the lore books export functionality ;)

https://github.com/KeldorDE/ESO-Data...a-Export-AddOn

sirinsidiator 06/26/20 05:54 AM

Nice idea! Don't have any immediate use-cases for it, but will keep it in mind for the future. :D

I have one suggestion though. You should provide the mapId (GetCurrentMapId) together with the coordinates. That way an addon can determine where the coordinates are originally from.

Keldor 06/26/20 05:58 AM

Quote:

Originally Posted by sirinsidiator (Post 41627)
Nice idea! Don't have any immediate use-cases for it, but will keep it in mind for the future. :D

I have one suggestion though. You should provide the mapId (GetCurrentMapId) together with the coordinates. That way an addon can determine where the coordinates are originally from.

Thanks for the suggestion. I will add this with the next release :)

Micke2nd 06/26/20 10:13 AM

ok, its possible to implement, so have fun :)

To support also the WHY question:
Quote:

Originally Posted by Baertram (Post 41623)
I guess this is the main usecase.
"Collect ifnormation by multiple users without having to install/use different addons, but just use 1 data collector storing the data online where addon devs can grab them for their addons".

That already exists.
HarvestMap "collects by multiple users without having to install different addons" Chests, Thieves Troves, Psijik portals and Harvest nodes.
Why not to ask Shinni if he would add a API ? If - and that's still open - if another addon would need that data.

Quote:

Originally Posted by Baertram (Post 41623)
But having the data shared online to be able to read them from there, even for websites, is a nice feature!

Yes, that's a advantage HM doesn't support. Ok and how many webpages need that data ? For what? I havent found one. But let's say suddenly one will be created. For 1 user that effort ?

Quote:

Originally Posted by Baertram (Post 41623)
One problem would be to tell the users to use your addon ...

Yes, because except the support fact, users have no advantages.

Quote:

Originally Posted by Keldor (Post 41624)
The advantage of the whole thing is that the data automatically ends up in the database without having to ask the individual users to contribute the data.

More automatically than to click the bat file from harvestmap ? Very unlikely.
If Lore Books doesnt have this upload/sync actually, I would have started with its data.


All times are GMT -6. The time now is 04:43 PM.

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