FR EN DE ES IT PT
Naviguer dans les forums 
Score : 546

Dofus Easy-data (API Dofus)

Par ppppppopjhpjhxfykvgdvgdfuy - ABONNÉ - 27 Juillet 2017 - 12:34:36
Hello tout le monde ! happy

Si je créer ce sujet aujourd'hui c'est pour venir vous présenter le projet sur lequel je travaille actuellement. En effet, suite au sujet d'un joueur souhaitant savoir s'il existait une API dofus pour récupérer les équipements de l'encyclopédie simplement, je me suis mit en tête de réaliser cette 'API'. Pourquoi entre guillemets ? Simplement parce que je l'ai développé pour que ça puisse être open source et donc ça se présente plus comme une librarie qu'une API à proprement parler.
Trêve de mondanités, place à l'explication. cool

Dans un premier temps, j'ai mit au point des scripts pour parser l'encyclopédie officielle du site et pouvoir stocker toutes les données récupérées dans des fichiers (format JSON).


Puis j'ai commencé l'écriture d'une classe pour permettre aux utilisateurs d'avoir de base tout un panel de fonctionnalités pour traiter ces données.
Suite à quoi j'ai créé une page "example" pour montrer à quoi peut ressembler une page utilisant ma librairie. Ce n'est qu'a titre d'exemple, chacun est libre de ce qu'il souhaite faire. (Il y a aussi toute une liste d'aide au début du fichier)

Concernant maintenant l'utilisation de cette librairie, deux choix se proposent à l'utilisateur. En effet, les données sont hébergées de mon côté sur un serveur distant pour permettre à tous les utilisateurs d'avoir les mises à jour sans avoir à rien modifier de leur côté, et donc d'être toujours à jour sans rien avoir à faire. Ou bien l'utilisateur peut choisir de récupérer les données de son côté pour éviter d'avoir à faire des appels distant à chaque fois, mais auquel cas il devra ajouter/récupérer manuellement les nouveaux ajouts (soit manuellement soit en re-téléchargeant le fichier de données).

Certains doivent se demander "Le gars il vient nous parler de son bidule là, mais en vrai à quoi ça sert ?" c'est légitime en effet biggrin Ce que je propose, c'est en fait une "base de données" qui peut servir à pleins de projets autour de Dofus. En effet, vous souhaitez créer un simulateur d'équipements ? Vous pouvez le faire sans vous saigner à mettre au point votre script pour récupérer les équipements ou pire encore les ajouter à la main.
Tous les projets qui gravitent sur la base de l'encyclopédie de Dofus peuvent être facilités grace à ce que je vous propose.
Pour le moment, cela concerne tous les types d'équipements, ainsi que les panoplies (il me reste les familiers/montures pour terminer ce qui touche à l'équipement). Mais je souhaite faire évoluer mon projet pour regrouper toute l'encyclopédie (les ressources, les monstres, les idoles, etc...)
En bref : Simplifier vos projets pour permettre à tous ceux qui le souhaite de créer leur projet sans se soucier des données de base.

Je vous remercie de m'avoir lu, en espérant que tout ceci vous plaise. Je mettrai une première version en ligne sur GitHub prochainement.
Si vous avez des idées d'améliorations, des questions ou toute autre chose, n'hésitez pas !

Amicalement,
Blooth
Réactions 28
Score : 996
Ca c'est une super idée ! Bravo! smile
Score : 492
Bonjour, ça fait énormément d'années que j'attends une API officielle, l'idée est appréciée mais jamais réalisée. Bonne initiative, toutefois j'ai quelques questions concernant ton API : les images des items sont-elles enregistrées sur ton serveur ou bien tu n'enregistres que les liens de celles-ci ? Au vu du screenshot proposé, j'ai ma petite idée mais je préfère avoir confirmation. L'API repose sur l'architecture REST? Lorsque de nouveaux items sortent, comment se passe la mise à jour ? Quid des familiers et des montures ? La recherche d'item est-elle beaucoup mieux agencée que sur l'encyclopédie (utilisation d'opérateurs logiques ET par exemple) ?
Gugu'
Score : 41
Un grand merci! Sache que toute cette énergie dépensée n'est pas vaine !
Du bon travail, je me pose tout de même les mêmes questions que Kaysoro wink
Félicitations!
Score : 546
Hello ! Tout d'abord un grand merci pour vos retours wub

Comme dit dans mon premier post, ce n'est pas une API, parce que je trouve ça trop restrictif. Je voulais laisser la possibilité aux utilisateurs de pouvoir modifier/ajouter ce qu'ils souhaitent de leur côté (en aucun cas mes données distante ne sont modifiées). Au niveau des images des objets, comme on peut le voir sur le deuxième screen, j'ai créer une méthode dans ma classe qui permet de télécharger directement toutes les images des équipements (+ organisation automatique), et une autre methode pour télécharger toutes les images d'un seule catégorie d'équipements.
Lorsque de nouveaux items sortent, je met à jour mes fichiers JSON pour que toutes les peronnes les utilisants à distance soient directement impactés. (Je pensais aussi à ajouter un boolean à chaque item pour préciser s'il est nouveau ou non ce qui permettrait à chacun de pouvoir afficher différemments les nouveaux items)
Pour les familiers et les montures je suis en train de me pencher sur le sujet (c'est ce sur quoi je travaille acuellement)
Concernant la recherche des objets, ce n'est pas le principal but de mon projet. En effet ce que je propose dans un premier temps c'est simplement une base de données des équipements manipulable directement. Et seulement dans un second temps une classe à laquelle j'ajoute différentes fonctionnalités pour simplifier la vie des utilisateurs.
Du coup si vous avez des besoins particuliers qui peuvent être utile à d'autres, je me ferai une joie de les rajouter à la liste 'de base' des méthodes. happy

Si je ne suis pas clair, n'hésitez pas à me le dire, la fatigue prend parfois le dessus ohmy

Amicalement.
Score : 1104
 
ppppppopjhpjhxfykvgdvgdfuy|27/07/2017 - 15:15:20
Hello ! Tout d'abord un grand merci pour vos retours wub

(Je pensais aussi à ajouter un boolean à chaque item pour préciser s'il est nouveau ou non ce qui permettrait à chacun de pouvoir afficher différemments les nouveaux items)





A defaut de mettre un boolean , j'aurai préféré un timestamp de last update biggrin

Ceci dit c'est une excellente initiative l'encyclopédie officielle n'etant jamais à jour. *clap clap*

PS: Quid des recettes par items?
Score : 2849
GG à toi, mais j'avoue être plus intéréssé par tes scripts de parsing de l'encyclopédie que par ton API.
Tu push sur github la partie API uniquement ou la partie récupération des données officielles?
Personnellement j'aurais bien pris ces données pour les indexer dans un ElasticSearch.
Score : 546
 
TWAINGA|27/07/2017 - 15:15:31
GG à toi, mais j'avoue être plus intéréssé par tes scripts de parsing de l'encyclopédie que par ton API.
Tu push sur github la partie API uniquement ou la partie récupération des données officielles?
Personnellement j'aurais bien pris ces données pour les indexer dans un ElasticSearch.


Il est possible que je partage ponctuellement mes script de parsing, mais un push github je ne pense pas !
Score : 2743
Bonne initiative, il y a eu une API, c'était les modules mais c'est fini :'( (je m'en servais pour proposer les données sous forme de fichiers sql pour tous sur mon site).

Si tu veux toutes les informations du jeu, le mieux est de parser les fichiers du jeu car l'encyclopédie en ligne ne montre que ce qui est public wink

Mic
Score : 546
 
JdApocalypce|27/07/2017 - 20:15:10
 
ppppppopjhpjhxfykvgdvgdfuy|27/07/2017 - 15:15:20
Hello ! Tout d'abord un grand merci pour vos retours wub

(Je pensais aussi à ajouter un boolean à chaque item pour préciser s'il est nouveau ou non ce qui permettrait à chacun de pouvoir afficher différemments les nouveaux items)






A defaut de mettre un boolean , j'aurai préféré un timestamp de last update biggrin

Ceci dit c'est une excellente initiative l'encyclopédie officielle n'etant jamais à jour. *clap clap*

PS: Quid des recettes par items?


Toutes les recettes seront stockées dans un autre fichier ! Accessible via une methode qui demandera l'ID de l'item.

TWAINGA|28/07/2017 - 08:47:05
Ça n'a pas de sens ce que tu dis, vu qu'il parse l'encyclopédie officielle pour peupler sa BDD (qui n'en est pas une j'ai l'impression puisque c'est stocké sous la forme de fichiers json), si l'encyclopédie n'est pas à jour il ne le sera pas plus.

La grosse plus value c'est surtout d'offrir une API de recherche poussée, chose qui fait défaut à l'encyclopédie officielle actuellement.

J'ai bien mis entre guillemets base de données, puisque c'est plutôt une banque de données, c'était simplement pour être mieux compris happy Je travaille actuellement sur cette histoire d'encyclopédie non à jour et je cherche des solutions.
Score : 7185
Franchement cool, étant fan d'API en tout genre ^^
Score : 492
D'accord. Il y a donc une technologie imposée (ici, PHP) puisque tu fournis un client, non ? Ne serais-ce pas moins restrictif de proposer une architecture type REST, laissant libre court à n'importe quelle technologie derrière ?
Score : 546
Hello ! Dans mon idée de départ je voulais vraiment fournir une librairie complète qui puisse permettre en 5min de déployer toutes les datas dont ont puisse avoir besoin. Mais c'est vrai que je pourrai en parallèle déployer une API REST (qui est déjà commencée par ailleurs vu que j'étais partit là dessus) pour ceux qui le souhaite.
Score : 122
C'est une très bonne idée et j'allais justement me lancer là dedans. Par tout hasard, tu as un git de tes scripts pour récupérer l'Encyclopédie ? Ou tu les partagerai par hasard ? smile
Score : 546
Hello !
Pour mes scripts qui parse l'encyclopédie, je préfère les partager seulement à la demande. Dans les jours qui arrivent je vais mettre à jour l'avancement de mon projet, les premiers share et les liens pour tout ça.
Score : 247
J'ai voulu te contacter par Ankabox mais il faut que l'on soit amis pour que je puisse t'envoyer un MP :/

Je t'ai envoyé une demande du coup.
Score : 546
Hello !
Je viens de t'accepter happy
Score : 546
Hello ! happy

Je viens vous donner des nouvelles. Étant pas mal prit par mon travail ces dernières semaines, je n'ai pas eu le temps de finaliser ce que je souhaitais. En revanche, tout est plus clair maintenant quant à ce que je souhaite faire dans mes développements.
En effet, il y aura 2 outils à votre disposition : une API REST pour permettre à n'importe qui de pouvoir utiliser les datas mises à disposition, ainsi qu'une librairie pour ceux qui dev en PHP avec une classe toute prête à l'utilisation (modifiable bien entendu). Comme ça, tout le monde peut en profiter, pas seulement les dev PHP.  Pour les liens maintenant : C'est par ici
C'est sur cet espace que vous aurez les liens (GitHub & la doc) concernant les deux développements en cours ainsi que les prochains (si jamais j'ai d'autres idées tongue).
Pour le moment il n'y a pas de doc et rien dans les depository GitHub, car comme dit plus haut, je n'ai pas eu le temps de finaliser les deux projets.

Si jamais vous avez la moindre question ou besoin d'autres infos, je reste dispo pour en discuter avec vous. Vous pouvez répondre ici, me contacter par Ankabox et je pense qu'un mail n'est pas nécessaire pour l'instant.

Je reviendrai bientôt avec de bonnes nouvelles. Bon jeu à tous smile
Score : 7185
Franchement bravo, merci et bon courage pour la suite ^^
Score : 247
Plus de nouvelle ?
Score : 59
Pas d'update sur git depuis deux mois, projet abandonné ?
Score : 546
Hello ! happy
Alors non pas du tout abandonné, il y aura du nouveau d'ici peu (je l'espère !) Je me suis juste lancé dans un autre projet en même temps et avec mes horaires de boulot actuel je n'avance pas énormément. Et le peu de temps que j'ai me sert à l'autre projet, mais je vais essayer de bientôt push une première version.

En tout cas merci à vous de toujours suivre le projet, et à bientôt ! laugh
Score : -10
J'avais fait une expérience il y a quelques mois sur le même sujet. Je suis data hunter dans la vie, il me paraissait normal de voir ce qu'il était possible de faire avec l'Encyclopédie de Dofus ^^" (c'est mon job de récupérer des données et de les traiter, analyser, etc).

Du coup voici un résultat de ce que le test a donné : http://dofus.guide/encyclopedie.

Le temps passant je n'y ais pas retouché. J'avais fait une expérience bizarre en simulant une DB en statique via Github Pages et Jekyll. C'était marrant mais ça ne vas pas plus loin x)

Si c'est un sujet qui intéresse je pourrais reprendre mes travaux et proposer une vrai API. 

Au plaisir wink

[Modéré par Sionilam : Retrait des informations personnelles.]
Score : 34
Salut,
J'ai eu dans l'idée de développer une API pour mon expérience personnelle utilisable sur site web et appli mobile par la suite. 
Mais pour récupérer la bdd d'items je vois 2 solutions : la simple et la solution fastidieuse.
Afin de m'éviter la méthode extrement longue, est-ce qu'il serait possible de vous demander comment vous avez récupéré vos listes svp ? Voire même s'il serait possible de vous en demander une copie, Même si je tenterai quand meme de la récupérer de mon propre chef. Le but étant de ne pas rester bloquer à cette étape.

Cordialement
Shidoshi
Score : 492
Un bon parsing des familles devrait faire amplement l'affaire happy
Score : 211
Hello,

J'ai essayé de te contacter par ankabox mais à priori c'est impossible sans que je figure dans ta liste d'ami.
Ton sujet m'intéresse énormément tu aurais potentiellement la version même en test à diffuser même si je dois faire des ajustements pour mon cas ?

Merci

Siderx
Réagir à ce sujet