Re: [fr-users] Jeu AlbionOnline

2024-07-13 Par sujet Thibault ANDRÉ

Aujourd'hui,

Je relève beaucoup plus de prix de façon automatique que ce que je 
faisais à la main dans AlbionOnline.


Je me confronte donc maintenant aux limites du serveur 
d'albion-online-data.com


> API Endpoint Rate Limits
> . 180 per 1 minute
> . 300 per 5 minutes

Il me faut donc étaler dans le temps les requêtes au serveur. Comment 
faire cela le plus élégamment dans Calc ?


Le fichier Calc effectue à son ouverture toutes les requêtes GET() au 
serveur.


je peux donc :
- créer plusieurs fichiers Calc de taille limitée qui seront ouverts à 
la main de façon différée.
- ajouter une condition Si() qui examinera l'état d'une cellule, 
modifiée à la main, qui permettra de lancer une requête GET() à la demande.


Ou existe-t-il une possibilité de gérer avec Calc un chrono qui 
déclenchera successivement les différentes requêtes GET() de façon 
différée ?




--
Envoyez un mail à users+unsubscr...@fr.libreoffice.org pour vous désinscrire
Les archives de la liste sont disponibles à 
https://listarchives.libreoffice.org/fr/users/
Privacy Policy: https://www.documentfoundation.org/privacy


Re: [fr-users] Jeu AlbionOnline

2024-07-13 Par sujet Thibault ANDRÉ


Bonjour,

Je suis parvenu à automatiser exactement comme je le voulais le relevé 
de prix dans le jeu AlbionOnline.


- A été installer sur calc l'extension *LibreOfficeGetRestPlugin*
- la liste des noms des items de AlbionOnline se trouve là : 
https://github.com/ao-data/ao-bin-dumps/tree/master/formatted


Voici un exemple d'utilisation dans une cellule Calc :

- Demande les prix sur le serveur *Europe* d'AlibionOnline, sur le 
marché de la ville de Martlock des *Sacs de l'adepte* dans tous les 
enchantements, en qualité ordinaire.


=GET(CONCATENER("https://europe.albion-online-data.com/api/v2/stats/prices/T4_BAG,T4_BAG@1,T4_BAG@2,T4_BAG@3,T4_BAG@4?locations=Martlock=1;)) 



le résultat est :
[{"item_id":"T4_BAG","city":"Martlock","quality":1,"sell_price_min":3344,"sell_price_min_date":"2024-07-13T10:25:00","sell_price_max":3344,"sell_price_max_date":"2024-07-13T10:25:00","buy_price_min":1500,"buy_price_min_date":"2024-07-13T10:20:00","buy_price_max":2216,"buy_price_max_date":"2024-07-13T10:20:00"},{"item_id":"T4_BAG@1","city":"Martlock","quality":1,"sell_price_min":7447,"sell_price_min_date":"2024-07-13T05:25:00","sell_price_max":7459,"sell_price_max_date":"2024-07-13T05:25:00","buy_price_min":4,"buy_price_min_date":"2024-07-13T07:05:00","buy_price_max":4478,"buy_price_max_date":"2024-07-13T07:05:00"},{"item_id":"T4_BAG@2","city":"Martlock","quality":1,"sell_price_min":0,"sell_price_min_date":"0001-01-01T00:00:00","sell_price_max":0,"sell_price_max_date":"0001-01-01T00:00:00","buy_price_min":0,"buy_price_min_date":"0001-01-01T00:00:00","buy_price_max":0,"buy_price_max_date":"0001-01-01T00:00:00"},{"item_id":"T4_BAG@3","city":"Martlock","quality":1,"sell_price_min":11,"sell_price_min_date":"2024-07-13T09:05:00","sell_price_max":149998,"sell_price_max_date":"2024-07-13T09:05:00","buy_price_min":4,"buy_price_min_date":"2024-07-13T09:05:00","buy_price_max":62269,"buy_price_max_date":"2024-07-13T09:05:00"},{"item_id":"T4_BAG@4","city":"Martlock","quality":1,"sell_price_min":0,"sell_price_min_date":"0001-01-01T00:00:00","sell_price_max":0,"sell_price_max_date":"0001-01-01T00:00:00","buy_price_min":0,"buy_price_min_date":"0001-01-01T00:00:00","buy_price_max":0,"buy_price_max_date":"0001-01-01T00:00:00"}]

- extraire les donnés d'intérêt de ce résultat, apparaissant dans la 
cellule A1

par exemple extraction du prix de vente maximum du sac T4.2 :
=CNUM(PARSEJSON(A1;CONCATENER("get(2).sell_price_max")))

- en construisant habilement un tableau, on peut recomposer les noms 
d'items *NoTier_ITEM_Enchantement* avec la commande CONCATENER(), pour 
les donner comme paramètre à la commande GET().


--
Envoyez un mail à users+unsubscr...@fr.libreoffice.org pour vous désinscrire
Les archives de la liste sont disponibles à 
https://listarchives.libreoffice.org/fr/users/
Privacy Policy: https://www.documentfoundation.org/privacy


Re: [fr-users] Jeu AlbionOnline

2024-06-27 Par sujet Thibault ANDRÉ

Je viens d'installer LibreOfficeGetRestPlugin.

Sur mon navigateur, j'obtiens un résultat intéressant avec une adresse 
comme :

https://europe.albion-online-data.com/api/v2/stats/prices/T4_BAG,T4_BAG@1,T4_BAG@2,T4_BAG@3,T4_BAG@4?locations=Martlock=0

C'est un tableau qui peut être en html, json ou xml selon un paramètre 
ajouté à la ligne. Des données qui m'intéressent, d'autres non : les 
prix de tous les sacs de l'adepte dans les 5 enchantements et dans les 5 
qualités disponibles : 25 lignes, contenant chacune deux prix de vente 
(min et max), deux prix d'achat (min et max), et 4 horaire de relevé


je récupère ce tableau entier concaténé dans une cellule de Calc comme ceci:
=GET(CONCATENER("https://europe.albion-online-data.com/api/v2/stats/prices/T4_BAG,T4_BAG@1,T4_BAG@2,T4_BAG@3,T4_BAG@4?locations=Martlock=0;))

Pour récupéré en une ligne le prix du "Sac de l'adepte enchanté peu 
commun de qualité acceptable" sur le marcher de la ville de Martlock au 
format .json, ce sera :

=GET(CONCATENER(https://europe.albion-online-data.com/api/v2/stats/prices/t4_...@1.json?locations=Martlock=2))

Il faudra extraire de la ligne le prix de vente min. et le prix d'achat 
max. et en faire la moyenne pour avoir le prix que je recherche.


Cela va aller pour télécharger les 50 prix que je relève actuellement à 
la main presque chaque jour. Mais je pense qu'il faudrait procéder 
autrement pour relever davantage de prix :


> API Endpoint Rate Limits
>  . 180 per 1 minute
>  . 300 per 5 minutes

Il est possible de passer en paramètre des contenus de cellule avec les 
commandes ENCODEURL() et CONCATENER().


Plutôt que d'avoir un résultat de requête dans une cellule, est-il 
possible d'avoir le résultat de la requête sous forme d'un tableu dont 
chaque champ du résultat est dans une cellule différente ?
Pour exemple pour la requête précédente sur les sacs T4 de l'adepte, un 
tableau de 25 lignes et 11 colonnes.


Il y en a beaucoup, beaucoup de prix à relever sur AlbionOnline. Chaque 
item existe en 5 à 7 niveaux, dans 1 à 5 enchantements, dans 1 à 5 
qualités et il doit y avoir pas loin de 500 items de base différents.


--
Envoyez un mail à users+unsubscr...@fr.libreoffice.org pour vous désinscrire
Les archives de la liste sont disponibles à 
https://listarchives.libreoffice.org/fr/users/
Privacy Policy: https://www.documentfoundation.org/privacy


Re: [fr-users] Jeu AlbionOnline

2024-06-27 Par sujet Thibault ANDRÉ



Le 27/06/2024 à 12:44, Bernard Siaud alias Troumad a écrit :

Le 27/06/2024 à 12:31, Thibault ANDRÉ a écrit :

Bonjour,

Depuis quelques jours j'essaie avec Libre Office de rapatrier des prix 
d'un serveur de base de données en ligne mis à jour en permanence. Je 
ne sais pas du tout comment m'y prendre !


Il s'agit du serveur Europe du projet albion-online-data, un serveur 
indépendant du jeu **AlbionOnline**. 
[AlbionOnline](https://fr.wikipedia.org/wiki/Albion_Online) est un jeu 
[MMORPG](https://fr.wikipedia.org/wiki/Jeu_en_ligne_massivement_multijoueur) qui a la particularité de reposer sur une simulation économique assez poussée. Il y a plusieurs types d'activité permettant de "gagner sa vie" dans ce jeu : tuer des monstres, nettoyer des donjons, collecter des ressources et les raffiner, etc. Certaines d'entre elles sont sans risque, mais rapportent très peu (comme collecter des ressources pour les revendre), d'autres sont très rentables, mais très risquées ( jouer en black zone pour tuer de gros monstres et tuer d'autres joueurs pour leur voler leurs équipements ). Enfin le commerce permet de gagner pas mal d'argent : fabriquer des objets pour les revendre, acheter dans une ville pour revendre dans une autre, acheter des objets améliorés leur qualité puis les revendre, spéculer sur la monnaie, etc. Ces activités commerciales pour être rentables nécessitent une bonne connaissance des prix des différents objets sur les différents marcher. Ces informations sont coûteuses en temps à collecter pour un joueur seul. C'est pour cela que des joueurs ont créé le projet albion-online-data , indépendamment de l'éditeur Sandbox Interactive. Ils ont mis au point un petit programme à lancer parallèlement au jeu et qui se charge de collecter automatiquement les prix qui fluctuent de minute en minute et de les transmettre automatiquement en live à leur serveur.
Plusieurs sites internet plus ou moins bien faits permettent de 
retrouver facilement ces informations. Mais il s'avère toujours 
nécessaire à un moment de faire quelques calculs pour déterminer la 
rentabilité.


[Albion Online Data project](https://www.albion-online-data.com/) 
fourni une API permettant de rapatrier des prix depuis son serveur. 
Mais je n'ai clairement pas le niveau pour l'utiliser avec 
LibreOffice. Et cela ne fonctionnera pas par 
[magie](https://youtu.be/q7KuPWV47Bo) !


La personne qui pourra me fournir un exemple fonctionnel gagnera toute 
mon estime.


Tu récupères tes données sous quelle forme ? Ne serait-il pas plus 
simple de faire une interface PHP/MySQL/HTML ?




Je ne sais pas ! PHP/MySQL/HTML ne font pas parti de mon champ de 
compétence non plus.
Il est probable que ce genre de page HTML ce trouvent sur l'un ou 
l'autre des sites tiers qui diffusent les datas de Albion Online Data 
project .


si non, il y a ça, mais je ne sais pas trop quoi en faire :
https://www.albion-online-data.com/#spreadsheets
> Spreadsheets
>
> Many people find it useful to load these APIs in spreadsheets such as
> Microsoft Excel or Google Sheets. There is no single best way to do
> this, but some of the common ways are as follows:
>
>Excel Power Query
>Google Sheets IMPORTXML
>Example: 
=IMPORTXML("https://west.albion-online-data.com/api/v2/stats/prices/T4_BAG.xml?locations=Caerleon=2","//ArrayOfMarketResponse/MarketResponse;)

>Google Sheets ImportJSON (third-party script)
>Note: Some people have noticed issues with ImportJSON and
> repeating rows
>Example: 
=ImportJSON("https://west.albion-online-data.com/api/v2/stats/prices/T4_BAG.json?locations=Caerleon=2;, 
"", "noHeaders")

>


--
Envoyez un mail à users+unsubscr...@fr.libreoffice.org pour vous désinscrire
Les archives de la liste sont disponibles à 
https://listarchives.libreoffice.org/fr/users/
Privacy Policy: https://www.documentfoundation.org/privacy


[fr-users] Jeu AlbionOnline

2024-06-27 Par sujet Thibault ANDRÉ

Bonjour,

Depuis quelques jours j'essaie avec Libre Office de rapatrier des prix 
d'un serveur de base de données en ligne mis à jour en permanence. Je ne 
sais pas du tout comment m'y prendre !


Il s'agit du serveur Europe du projet albion-online-data, un serveur 
indépendant du jeu **AlbionOnline**. 
[AlbionOnline](https://fr.wikipedia.org/wiki/Albion_Online) est un jeu 
[MMORPG](https://fr.wikipedia.org/wiki/Jeu_en_ligne_massivement_multijoueur) 
qui a la particularité de reposer sur une simulation économique assez 
poussée. Il y a plusieurs types d'activité permettant de "gagner sa vie" 
dans ce jeu : tuer des monstres, nettoyer des donjons, collecter des 
ressources et les raffiner, etc. Certaines d'entre elles sont sans 
risque, mais rapportent très peu (comme collecter des ressources pour 
les revendre), d'autres sont très rentables, mais très risquées ( jouer 
en black zone pour tuer de gros monstres et tuer d'autres joueurs pour 
leur voler leurs équipements ). Enfin le commerce permet de gagner pas 
mal d'argent : fabriquer des objets pour les revendre, acheter dans une 
ville pour revendre dans une autre, acheter des objets améliorés leur 
qualité puis les revendre, spéculer sur la monnaie, etc. Ces activités 
commerciales pour être rentables nécessitent une bonne connaissance des 
prix des différents objets sur les différents marcher. Ces informations 
sont coûteuses en temps à collecter pour un joueur seul. C'est pour cela 
que des joueurs ont créé le projet albion-online-data , indépendamment 
de l'éditeur Sandbox Interactive. Ils ont mis au point un petit 
programme à lancer parallèlement au jeu et qui se charge de collecter 
automatiquement les prix qui fluctuent de minute en minute et de les 
transmettre automatiquement en live à leur serveur.
Plusieurs sites internet plus ou moins bien faits permettent de 
retrouver facilement ces informations. Mais il s'avère toujours 
nécessaire à un moment de faire quelques calculs pour déterminer la 
rentabilité.


[Albion Online Data project](https://www.albion-online-data.com/) fourni 
une API permettant de rapatrier des prix depuis son serveur. Mais je 
n'ai clairement pas le niveau pour l'utiliser avec LibreOffice. Et cela 
ne fonctionnera pas par [magie](https://youtu.be/q7KuPWV47Bo) !


La personne qui pourra me fournir un exemple fonctionnel gagnera toute 
mon estime.


--
Envoyez un mail à users+unsubscr...@fr.libreoffice.org pour vous désinscrire
Les archives de la liste sont disponibles à 
https://listarchives.libreoffice.org/fr/users/
Privacy Policy: https://www.documentfoundation.org/privacy