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

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

1.63401011 BEE
13 comments


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

0.00123707 BEE

Vedo che ti sta venendo la phytonite :)
Sei un grande continua così ;)
!PIMP
!hiqvote
!discovery 40
@tipu curate 2

0.00005062 BEE

Upvoted 👌 (Mana: 380/500) Liquid rewards.

0E-8 BEE

Ahahah grazie Liberty! Sì, sta diventando un po' un'ossessione 🤣 ma meglio così, almeno piano piano imparo cose nuove e (si spera) divento più bravo :)

La prossima sfida sarà imparare a creare un'interfaccia grafica (possibilmente un sito) per i miei scripts... vediamo se mi riesce!

!PIZZA !LOL !LUV

0E-8 BEE

@libertycrypto27, @arc7icwolf(1/4) sent you LUV. | tools | discord | community | HiveWiki | <>< daily

Made with LUV by crrdlx

0E-8 BEE

What do you call a knight who is afraid to fight?
Sir Render

Credit: reddit
@libertycrypto27, I sent you an $LOLZ on behalf of arc7icwolf

(1/10)
Delegate Hive Tokens to Farm $LOLZ and earn 110% Rewards. Learn more.

0E-8 BEE

Eccezionale! Ancora un immenso GRAZIE!!!! 😍

0.00005158 BEE

Figurati, è stato divertente ed utile per me :)

0E-8 BEE

Ciao Arc, ti faccio una domanda ma puoi anche non rispondermi :D tu hai un account discord? Te lo chiedo perchè sono andato avanti con i test sul tool ma ho capito che non può essere sufficiente l'intelligenza artificiale pura per procedere e avere buoni risultati perchè non è in grado di fare calcoli complessi. Magari parlandone possiamo cavarne fuori qualcosa di buono ma con messaggi su hive diventa un po' complicato. 😁

Buona giornata!

0E-8 BEE

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

0.00005105 BEE

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 🤣

0E-8 BEE

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

0.00005065 BEE

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

0E-8 BEE

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

0E-8 BEE

Thanks for sharing! - @clove71

0E-8 BEE

Curious about HivePakistan? Join us on Discord!

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


Follow our Curation Trail and don't miss voting!


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


Curated by gwajnberg

0E-8 BEE
(edited)

PIZZA!

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

0E-8 BEE

This post was shared and voted inside the discord by the curators team of discovery-it
Join our Community and follow our Curation Trail
Discovery-it is also a Witness, vote for us here
Delegate to us for passive income. Check our 80% fee-back Program
0E-8 BEE

@libertycrypto27, the HiQ Smart Bot has recognized your request (1/3) and will start the voting trail.

In addition, @arc7icwolf gets !LOOL from @hiq.redaktion.

For further questions, check out https://hiq-hive.com or join our Discord. And don't forget to vote HiQs fucking Witness! 😻

0E-8 BEE

Was ist grün und riecht nach roter Farbe?
Grüne Farbe.

Credit: smooms
@arc7icwolf, ich habe dir im Namen von @hiq.smartbot einen $LOLZ Token gesendet
Verwende den Befehl !WITZ oder !LOOL, um einen Witz und ein $LOLZ zu teilen.


PLAY & EARN $DOOM


.(2/8)

0E-8 BEE

Congratulations @arc7icwolf! You have completed the following achievement on the Hive blockchain And have been rewarded with New badge(s)

You distributed more than 41000 upvotes.
Your next target is to reach 42000 upvotes.

You can view your badges on your board and compare yourself to others in the Ranking
If you no longer want to receive notifications, reply to this comment with the word STOP

Check out our last posts:

0E-8 BEE

Hey bro how are you, I really liked your post and the exploration of the "Splinterlands" API, I am not an expert in this, but I would like to get information from it.

So I want to ask, what should I put in the lines that asks me for example in /battle/battle_teams_info?

Here is the image:

Captura de pantalla 2024-11-07 174430.png

I want to get this information, but I don't know what to put in those options, could you please help me.

0E-8 BEE

Hi, I'm far from being an expert, but I think the only two mandatory fields are "username" (which is quite self-explanatory) and "autorization": I'm not completely sure about this last one, but I think you need to enter your access token in there. To find out what your access token is, I've found this guide: it doesn't look like an easy task, so I'm not sure if it is worth the hassle!

0E-8 BEE

Thank you very much for your answer brother, I saw it also complicated haha, I will focus on those that are easily downloaded.

0E-8 BEE