[ENG/ITA] Getting All Cards Details Through Splinterlands API

in #hive-1466203 hours ago

La versione italiana si trova sotto quella inglese

The italian version is under the english one

Getting All Cards Details Through Splinterlands API

The most fun way I’ve found to learn programming with Python is by working on scripts and tools that can have a real-world application.

Things get even more interesting when what I’m working on has not only a "theoretical" real-world application but a "practical" one as well.

The most recent example was provided by @stradaxlaliberta, who recently started working on a project that, through the use of a specifically trained AI, could produce some very interesting results in Splinterlands.

I won’t say more because the project isn’t mine, and I barely know anything about it, so I don’t want to say anything wrong 😅

For his work, @stradaxlaliberta needed a list of all Splinterlands card data, ideally collected in an Excel file.

The data he needed included not only the card names, expansions, colors, and mana cost, but also all stats broken down by each card level.

Doing this manually seems almost impossible, even with tools to gather part of the information.

It seemed like the classic case where automating the task would be a billion times faster and easier...

... and for me, this felt like the perfect opportunity to get back to work and use my limited Python knowledge to try to help @stradaxlaliberta!


The Splinterlands API

The first step was to locate the documentation for the Splinterlands API, which I had known about for a while thanks to @slobberchops' posts.

I found what I was looking for here and, after looking through the various methods, identified the one I needed:



With cards/get_details, I was able to access a JSON file with information on all Splinterlands cards in seconds.

Now I "only" needed to extract the data I was interested in and save it in an Excel file.


The right library makes all the difference

To do this, I first created a function using a for loop to go through each level of each card, gathering the information I needed, and then looked for a library to help me save it to an Excel file.

The library that seemed to fit the bill was openpyxl: its ease of use allowed even someone like me, who knows little about both Python and Excel, to easily create a ready-to-use xlsx file containing a detailed list of all Splinterlands cards.



The result looks decent and required only a few hours of work. Excluding the part where I misunderstood and thought @stradaxlaliberta needed random tables created with tabulate instead of an Excel file, it was certainly far less time-consuming than it would have been to create the same file manually.

I uploaded the code to GitHub, where I’m slowly getting more comfortable. You can find it here.

In the same repository (very unoriginally named "splinterlands_cards"), you can also find the xlsx file with all Splinterlands cards' data, ready to use and updated up to Heloise the Hollow.


images owned by @splinterlands and/or their respective owners; cover edited with GIMP

to support the #OliodiBalena community, @balaenoptera is 3% beneficiary of this post

If you've read this far, thank you! If you want to leave an upvote, a reblog, a follow, a comment... well, any sign of life is really much appreciated!

If you are not registered on Splinterlands ... well, you are still in time to do the right thing

And if you want to rent your cards automatically with a super-efficient and user-friendly bot, try the Rental Golem by Splex.GG!

drawing made by @ahmadmanga

Versione italiana

Italian version

Ottenere Tutti i Dettagli delle Carte Attraverso le API di Splinterlands

Il modo più divertente che ho trovato per imparare a programmare con Python è quello di lavorare su scripts e tools che possano avere un'applicazione reale.

Le cose si fanno ancora più interessanti quando ciò a cui sto lavorando non solo ha un'applicazione reale "teorica", ma anche "pratica".

L'esempio più recente me lo ha fornito @stradaxlaliberta, che recentemente si è messo all'opera per dare vita ad un progetto che, attraverso l'uso di una AI appositamente addestrata, potrà produrre alcuni risultati molto interessanti su Splinterlands.

non dico di più perchè il progetto non è mio e non ne so quasi nulla, per cui non vorrei dire qualche scemenza 😅

Per procedere nel suo lavoro @stradaxlaliberta aveva infatti bisogno di una lista contenente i dati di tutte le carte presenti su Splinterlands, possibilmente raccolti in un file excel.

I dati di cui aveva bisogno erano non solo i nomi delle carte, l'espansione di appartenenza, il colore ed il costo di mana, ma anche tutte le statistiche divise per ciascun livello della carta.

Un lavoro che fare manualmente sembra al limite dell'impossibile, anche con l'aiuto di strumenti che possano raccogliere parte delle informazioni.

Sembra la classica ipotesi di lavoro che sarebbe un miliardo di volte più semplice e veloce se potesse essere automatizzato...

... e questa a me è parsa l'occasione perfetta per mettermi di nuovo al lavoro e sfruttare le mie limitate conoscenze di Python per cercare di dare una mano a @stradaxlaliberta!


Le API di Splinterlands

Il primo punto di partenza è stato rintracciare la documentazione relativa alle API di Splinterlands, della cui esistenza sapevo già da diverso tempo grazie ai post di @slobberchops.

Ho trovato ciò che cercavo qui e, dopo aver scorso i vari metodi presenti, ho identificato quello che faceva al caso mio:



Con cards/get_details ho così potuto accedere in pochi secondi ad un file JSON contenente informazioni su tutte le carte di Splinterlands.

Ora avevo "solo" bisogno di individuare quello che mi interessavano e salvarle in un file excel.


La libreria giusta fa tutta la differenza

Per farlo ho, dapprima, creato una funzione che si occupasse attraverso un for loop di passare in rassegna ogni singolo livello di ogni singola carta per salvare le informazioni che mi servivano e, poi, cercato una libreria che potesse aiutarmi a salvarle in un file excel.

La libreria che sembrava fare al caso mio si è rivelata essere openpyxl: la sua facilità di utilizzo ha consentito anche ad uno come me, che ne sa poco sia di Python che di Excel, di creare abbastanza facilmente un file xlsx pronto all'uso e contenente un elenco dettagliato di tutte le carte di Splinterlands.



Il risultato non è niente male e mi ha richiesto anche un numero di ore di lavoro che, se togliamo la parte in cui non avevo capito che a @stradaxlaliberta serviva un file excel, e non delle tabelle a caso fatte con tabulate, sono sicuramente di molto inferiori a quelle che sarebbero servite per creare lo stesso file manualmente.

Il codice che ho scritto l'ho poi caricato su GitHub, con il quale sto piano piano prendendo confidenza: lo trovate qui.

Nella stessa Repository (che molto poco originalmente ho chiamato "splinterlands_cards") trovate anche il file xlsx con tutte le carte di Splinterlands, pronto per essere utilizzato ed aggiornato fino a Heloise the Hollow.


immagini di proprietà di @splinterlands e dei rispettivi proprietari; cover da me editata con GIMP

a supporto della community #OliodiBalena, il 3% delle ricompense di questo post va a @balaenoptera

Se sei arrivato a leggere fin qui, grazie! Se hai voglia di lasciare un upvote, un reblog, un follow, un commento... be', un qualsiasi segnale di vita, in realtà, è molto apprezzato!

Se non sei registrato su Splinterlands... be', sei in tempo per rimediare.

E se vuoi rentare automaticamente le tue carte grazie ad un comodissimo e super-efficiente bot, prova il Rental Golem by Splex.GG!



disegno realizzato da @ahmadmanga

Posted Using InLeo Alpha

Sort:  

Thanks for sharing! - @clove71

There's loads of libraries, anything you want.., it's great when you get into it, start the imports and see things working.

When I started learning Python I was a bit scared by all those libraries and modules... but now I see how much they are helpful and powerful, allowing anyone to do almost anything with ease — assuming one understands how to make them work, though 🤣

I am not much into splinterlands but that is a great work!! good job again! hehehe

Thanks! It was a nice challenge to help this friend of mine getting all the data he needed, and I also learned one or two new things in the process :)

Now I'd like to build something different, but first I have to better understand how others SPL APIs work... which doesn't seem an easy task 😅

!PIZZA

Eccezionale! Ancora un immenso GRAZIE!!!! 😍

PIZZA!

$PIZZA slices delivered:
@arc7icwolf(4/10) tipped @gwajnberg

This post has been supported by @Splinterboost with a 15% upvote! Delagate HP to Splinterboost to Earn Daily HIVE rewards for supporting the @Splinterlands community!

Delegate HP | Join Discord

Curious about HivePakistan? Join us on Discord!

Delegate your HP to the Hivepakistan account and earn 90% of curation rewards in liquid hive!

50 HP
100 HP
200 HP
500 HP (Supporter Badge)
1000 HP

Follow our Curation Trail and don't miss voting!

Additional Perks: Delegate To @ pakx For Earning $PAKX Investment Token


Curated by gwajnberg


This post has been supported by @fallen.angels guild!
Delegate Tokens and HP to Fallen Angels to earn weekly rewards!
Delegate | Join to the guild