Recuperare info da arcade database

Tutti le informazioni sugli altri software finiscono qui!
Gothrek
Gamer
Gamer
Messaggi: 25
Iscritto il: 31/08/2017, 8:41
Reputation: 0

Recuperare info da arcade database

Messaggio da Gothrek » 05/09/2017, 23:23

Salve,
come accennato in altro post, l'idea di base è la seguente (prob già esistono o altri lo fanno diversamente):
recuperare tramite programmi terzi le info presenti nel db di arcade database.

Lo scopo è poter popolare info per i vari front end che più ci piacciono. Il db già permette delle query e poteva essere interessante farle in maniera automatica laddove dobbiamo popolare tante info per uno "zerg" di rom.

Le info in italiano (aimè) son sempre scarse e popolare a mano un gamelist è un lavoro che non augurerei neanche al mio peggior nemico.

il programma, come tanti altri scraper, non farebbe altro che fare una query web verso il sito e recuperare le info che possiamo già visualizzare sulal pagina cosi che possa includerle nel file xml (o altro) del nostro front end (io nello specifico vorrei farlo per tante rom in locale per poi trasportarle su recalbox, quello incluso fa pena).

Grazie per la disponibilità

do per scontato il fatto che il programma non è a fine di lucro ma per mero interesse personale e hobbististico.


Avatar utente
motoschifo
Arcader
Arcader
Messaggi: 437
Iscritto il: 08/12/2015, 9:55
Reputation: 165
Località: Parma
Nazione: Italy
Contatta:

Re: Recuperare info da arcade database

Messaggio da motoschifo » 06/09/2017, 0:29

Ovviamente lo scopo sia del sito ADB sia di tutti i lavori che ci sono dietro, ovvero ADB-Tools, MameDatEditor, Videosnaps ed altri, è quello che hai descritto e cioè NESSUN FINE DI LUCRO/COMMERCIALE.
Io fornisco il materiale gratuitamente a tutti, come gratuitamente lo hanno fornito a me.
Da qualche parte poi dovrà apparire il fatto che si utilizza il sito e, se si usano alcune informazioni (es. history) andranno aggiunti i copyright degli autori originali.
In ultima istanza un avviso a me così potrò aggiungere due note sul sito.

Fatte le dovute premesse, la pagina usata anche da altri è service_scraper.php che si occupa di recuperare le info necessarie e fornirle in formato array json.

URL PRINCIPALE:
http://adb.arcadeitalia.net/service_scr ... query_mame

PARAMETRI:

Codice: Seleziona tutto

game_name
	Romset da cercare (es. "mslug"). Per valori multipli usare il punto e virgola.
	Es. "mslug;mslug2;atetris"

use_parent
	Opzionale, indica se leggere i dati dal parent se il gioco è un clone e non ha info.
	0=no (default), 1=si
	Il controllo è fatto per singola risorsa, quindi può capitare uno snap del gioco 
	ed un marquee del parent.
			
resize
	Opzionale, indica il ridimensionamento di tutte le immagini ad una determinata risoluzione:
		0 - immagine originale (default)
		100 oppure 100h - scala a 100px in altezza
		200 oppure 200h - scala a 200px in altezza
		300 oppure 300h - scala a 300px in altezza
		100w - scala a 100px in larghezza
		200w - scala a 200px in larghezza
		300w - scala a 300px in larghezza
	Ogni altro valore è ignorato ed ha come effetto un resize a 200px in altezza. 
	L'aspect ratio viene mantenuto e si utilizza un filtro Lanczos per l'operazione, 
	che viene effettuata al volo (richiede tempo cpu aggiuntivo).

Il risultato è un array codificato in json:

Codice: Seleziona tutto

result (array)
	int index
		Numero progressivo, inizia da 1
	string game_name
		Nome del gioco. es. mslug, atetris
	string title
		Titolo del gioco. Es. Metal Slug, Tetris (set 1)
	string cloneof
		Parent, se presente
	string manufacturer
		Produttore
	int players
		Numero massimo di player
	string year
		Anno del gioco
	string status
		Stato emulazione: UNKNOWN, GOOD, IMPERFECT, PRELIMINARY, TEST
	string url_image_ingame
		Url di download dello spanshot in formato png, vuoto se non presente.
		Verifica sul parent se use_parent=1.
	string url_image_title
		Url di download del titolo in formato png, vuoto se non presente.
		Verifica sul parent se use_parent=1.
	string url_image_marquee
		Url di download del marquee in formato png, vuoto se non presente.
		Verifica sul parent se use_parent=1.
	string url_image_cabinet
		Url di download del cabinet in formato png, vuoto se non presente.
		Verifica sul parent se use_parent=1.
	string url_image_flyer
		Url di download del volantino in formato png, vuoto se non presente.
		Verifica sul parent se use_parent=1.
	string genre
		Genere del gioco dai file caegoria. es. Picchiaduro, Guida, exx.
	string history
	string history_copyright_short
	string history_copyright_long
		Mame history da www.arcade-history.com oppure progettoemma.net.
		Sono presenti due voci di copyright (una lunga ed una corta) ed è 
		necessario mostrarla da qualche parte (sotto al testo va benissimo)
	string youtube_video_id
		ID del video su Youtube  (verifica sul parent se use_parent=1).
		Si possono aggiungere link diretti o embedded in questo modo:
		https://www.youtube.com/watch?v=XXXXXX
		https://www.youtube.com/embed/XXXXXX?autoplay=1
	string url_video_shortplay
		Url per scaricare il video, vuoto se non presente.
		Verifica sul parent se use_parent=1.
		Il video è in formato mp4 (h.264 + aac) a risoluzione nativa del gioco.
	string url_video_shortplay_hd
		Url per scaricare il video in 1080p, vuoto se non presente.
		Verifica sul parent se use_parent=1.
		Il video è in formato mp4 (h.264 + aac) a risoluzione scalata fino a 1080p verticale. 
		Il ridimensionamento avviene durante la conversione della partita dal file raw per
		ottenere la massima qualità possibile.

NOTE
- usare se possibile un solo thread e recuperare le informazioni con una sola chiamata, limitando l'url a max 800 caratteri per non ottenere errori
- i download multipli dallo stesso ip potrebbero essere negati in futuro
- se il servizio non è disponibile si otterrà un errore HTTP 503
- se si usa questo sistema, indicare da qualche parte un testo simile a questo: "Scraping using Arcade Database by motoschifo"
- se serve indicare una mail, utilizzare quella ufficiale: arcadedatabase@gmail.com
- se serve indicare un riferimento al canale youtube, usare questo https://www.youtube.com/c/ArcadeDatabase

Manca tutta la parte software (ex-Mess), perchè nessuno prima d'ora l'ha chiesta o voluta implementare. Io nel caso ci metto poco a fare la funzione, ma i nomi delle rom cambiano rispetto agli altri emulatori.

Esempi:
Dati Tetris
Dati Tetris e Metal Slug
Dati Metal Slug 2 clone con controllo parent
Dati Tetris e Metal Slug 2 con resize immaginni a 300px verticali
Motoschifo
CAB ›MameOriz ›MameVert ›PCB ›NeoGeo ›TopDrive ›Tekken3 Wishlist ›PacMan ›Tempest ›Arkanoid
Flipper ›HighSpeed Wishlist ›DoctorWho ›MedievalMadness ›HighSpeed2 WebArcadeDatabase


Gothrek
Gamer
Gamer
Messaggi: 25
Iscritto il: 31/08/2017, 8:41
Reputation: 0

Re: Recuperare info da arcade database

Messaggio da Gothrek » 06/09/2017, 7:17

Risposta completa ed esauriente.
Circa la prima parte, riconmoscimenti fini di lucro ecc, 0 problemi la finalità come premesso non è ne appropriarsi del lavoro degli altri ne guadagnarci, ma la condivisione di info e tool che possano tornare utili ad altri, nati da una esigenza personale del tutto hobbistica.

Il resto mi sembra estramamente chiaro, comincio a metterci le mani sopra, nel caso di prob torno a disturbarti e ti aggiorno sul resto.

Grazie ancora per la disponibilità.


Avatar utente
motoschifo
Arcader
Arcader
Messaggi: 437
Iscritto il: 08/12/2015, 9:55
Reputation: 165
Località: Parma
Nazione: Italy
Contatta:

Re: Recuperare info da arcade database

Messaggio da motoschifo » 06/09/2017, 7:55

Aggiungo una cosa: la lingua utilizzata viene presa dal browser, oppure va indicata come parametro (lang=it e lang=en).
Il genere quindi sarà tradotto in italiano con lang=it o con browser impostato correttamente.
Per l'history non ho gestito questa cosa, ma visto che ci sono lo faccio oggi.
Status invece rimane in inglese così si possono fare considerazioni sui risultati.

Potrei aggiungere queste note al sito così da averle raccolte in un solo punto e tenerle aggiornate.
Motoschifo
CAB ›MameOriz ›MameVert ›PCB ›NeoGeo ›TopDrive ›Tekken3 Wishlist ›PacMan ›Tempest ›Arkanoid
Flipper ›HighSpeed Wishlist ›DoctorWho ›MedievalMadness ›HighSpeed2 WebArcadeDatabase


Gothrek
Gamer
Gamer
Messaggi: 25
Iscritto il: 31/08/2017, 8:41
Reputation: 0

Re: Recuperare info da arcade database

Messaggio da Gothrek » 06/09/2017, 8:47

motoschifo ha scritto:
06/09/2017, 7:55
Aggiungo una cosa: la lingua utilizzata viene presa dal browser, oppure va indicata come parametro (lang=it e lang=en).
Il genere quindi sarà tradotto in italiano con lang=it o con browser impostato correttamente.
Per l'history non ho gestito questa cosa, ma visto che ci sono lo faccio oggi.
Status invece rimane in inglese così si possono fare considerazioni sui risultati.

Potrei aggiungere queste note al sito così da averle raccolte in un solo punto e tenerle aggiornate.
ottimo, per l'history e la raccolta di tutte le info in un solo punto cosi che sia facile reperirle anche per altri.

denghiu!!


Gothrek
Gamer
Gamer
Messaggi: 25
Iscritto il: 31/08/2017, 8:41
Reputation: 0

Re: Recuperare info da arcade database

Messaggio da Gothrek » 06/09/2017, 10:48

Domanda1,
c'è un crc-sha1 per lo zip? (per i singoli file del zip c'è tutto), pensavo potesse essere utile per velocizzare il processo di scansione.

Domanda2,
circa la lingua, io hocomposto la query cosi:
"http://adb.arcadeitalia.net/service_scr ... io&lang=it" ma da lo stesso risultato in inglese del lang=en
cosa sbaglio?

Grazie


Avatar utente
motoschifo
Arcader
Arcader
Messaggi: 437
Iscritto il: 08/12/2015, 9:55
Reputation: 165
Località: Parma
Nazione: Italy
Contatta:

Re: Recuperare info da arcade database

Messaggio da motoschifo » 06/09/2017, 15:47

Non ci sono file zip, a cosa ti riferisci?
Nel mio tool utilizzo i crc dei singoli file, ma in genere uno scraper viene eseguito per inserire risorse nuove e non per aggiornare.
Se prendi per es. l'history, l'unico modo per capire se è modificato è scaricarlo e confrontarlo con il vecchio.
Inoltre dovresti avere un posto in cui memorizzare questi crc per ogni singola risorsa, ovvero più valori per ciascun gioco.
Motoschifo
CAB ›MameOriz ›MameVert ›PCB ›NeoGeo ›TopDrive ›Tekken3 Wishlist ›PacMan ›Tempest ›Arkanoid
Flipper ›HighSpeed Wishlist ›DoctorWho ›MedievalMadness ›HighSpeed2 WebArcadeDatabase


Avatar utente
motoschifo
Arcader
Arcader
Messaggi: 437
Iscritto il: 08/12/2015, 9:55
Reputation: 165
Località: Parma
Nazione: Italy
Contatta:

Re: Recuperare info da arcade database

Messaggio da motoschifo » 06/09/2017, 15:52

Mi ero perso la domanda 2.
Per l'history non ho ancora fatto, avevo detto oggi ma intendevo stasera :)
Ad ogni modo se non esiste la voce in italiano verrà sempre presa quella in inglese, come accade anche sul sito, e ci sarà una nota in alto aggiunta per l'occasione.

Invece ho tradotto status che può tornare utile, ma non so se è corretto farlo visto che magari GOOD può essere usato come codice dal programma che non deve controllare anche BUONO. Cosa dici, lascio BUONO o meglio GOOD?
Motoschifo
CAB ›MameOriz ›MameVert ›PCB ›NeoGeo ›TopDrive ›Tekken3 Wishlist ›PacMan ›Tempest ›Arkanoid
Flipper ›HighSpeed Wishlist ›DoctorWho ›MedievalMadness ›HighSpeed2 WebArcadeDatabase


Gothrek
Gamer
Gamer
Messaggi: 25
Iscritto il: 31/08/2017, 8:41
Reputation: 0

Re: Recuperare info da arcade database

Messaggio da Gothrek » 06/09/2017, 16:58

motoschifo ha scritto:
06/09/2017, 15:52
Mi ero perso la domanda 2.
Per l'history non ho ancora fatto, avevo detto oggi ma intendevo stasera :)
Ad ogni modo se non esiste la voce in italiano verrà sempre presa quella in inglese, come accade anche sul sito, e ci sarà una nota in alto aggiunta per l'occasione.

Invece ho tradotto status che può tornare utile, ma non so se è corretto farlo visto che magari GOOD può essere usato come codice dal programma che non deve controllare anche BUONO. Cosa dici, lascio BUONO o meglio GOOD?
Penso che good sia migliore. poi lo converto in un colore ma come check mi sembra decisamente migliore.

per lo zip intendevo il crc del file zip, che tu elenchi nella pagina (ci metti la dimensione ora). Non mi è chiaro invece perchè mi dici di memorizzare più crc per ogni gioco, puoi aiutarmi a capire per favore.

Grazie ancora per la tua disponibilità

Luca


Avatar utente
motoschifo
Arcader
Arcader
Messaggi: 437
Iscritto il: 08/12/2015, 9:55
Reputation: 165
Località: Parma
Nazione: Italy
Contatta:

Re: Recuperare info da arcade database

Messaggio da motoschifo » 06/09/2017, 17:18

Ah ok, quindi ti riferisci al fatto di capire se il file che stai leggendo è quello giusto?
Perchè la dimensione dello zip è indicativa visto che è la somma delle rom riportate dal Mame.
Non esiste un crc (non ho il file e il Mame non lo indica).
Inoltre quel crc sarebbe diverso per ogni release e dal sito hai accesso solo all'ultima disponibile.

Pensavo al fatto di poter conoscere in anticipo eventuali differenze rispetto all'ultima scansione, ovvero individuare i cambiamenti.

Ok per lo stato GOOD non tradotto, aggiorno stasera per l'history.
Motoschifo
CAB ›MameOriz ›MameVert ›PCB ›NeoGeo ›TopDrive ›Tekken3 Wishlist ›PacMan ›Tempest ›Arkanoid
Flipper ›HighSpeed Wishlist ›DoctorWho ›MedievalMadness ›HighSpeed2 WebArcadeDatabase


Gothrek
Gamer
Gamer
Messaggi: 25
Iscritto il: 31/08/2017, 8:41
Reputation: 0

Re: Recuperare info da arcade database

Messaggio da Gothrek » 06/09/2017, 17:27

ok, in effetti non mi tornava la dimensione della rom zippata riportata sul sito con la mia, seppur la dimensione di tutti i file e i crc fossero corretti.

ho fatto un piccolo test e ha generato un file con 66 referenze in 12 sec comprensivo di tutti i dati, volevo provare a dargli in pasto la cartella dell fba0.2.97.37 solo parent (1249 elementi) per avere un riscontro temporale (mi aspetterei una attività di poco meno di 4 minuti) se per te è ok.

Se questo non fosse un buon momento lo farei verso le 6,30 di domani mattina.


Avatar utente
motoschifo
Arcader
Arcader
Messaggi: 437
Iscritto il: 08/12/2015, 9:55
Reputation: 165
Località: Parma
Nazione: Italy
Contatta:

Re: Recuperare info da arcade database

Messaggio da motoschifo » 06/09/2017, 17:56

Diciamo che non è mai un buon momento... quindi fai pure! ;)
Per lavori mono-thread non ci sono problemi comunque.

EDIT: Ho aggiornato ora la versione sul sito. Fammi sapere se trovi errori.
Motoschifo
CAB ›MameOriz ›MameVert ›PCB ›NeoGeo ›TopDrive ›Tekken3 Wishlist ›PacMan ›Tempest ›Arkanoid
Flipper ›HighSpeed Wishlist ›DoctorWho ›MedievalMadness ›HighSpeed2 WebArcadeDatabase


Avatar utente
motoschifo
Arcader
Arcader
Messaggi: 437
Iscritto il: 08/12/2015, 9:55
Reputation: 165
Località: Parma
Nazione: Italy
Contatta:

Re: Recuperare info da arcade database

Messaggio da motoschifo » 06/09/2017, 21:56

Intanto che facevo le modifiche sull'history italiano, mi sono accorto che non restituivo un json completo (come mime-type intendo, non come contenuto), quindi ho rimediato ed incluso anche la codifica utf-8 per le lettere accentate. In effetti prima non lo avevo mai incontrato perchè in inglese non c'erano problemi.
Ricorda che l'history ita è molto vecchio, ma qui ci sarà modo di approfondire più avanti quando/se partirà un altro progettino che ho in cantiere [whistling.gif]
Motoschifo
CAB ›MameOriz ›MameVert ›PCB ›NeoGeo ›TopDrive ›Tekken3 Wishlist ›PacMan ›Tempest ›Arkanoid
Flipper ›HighSpeed Wishlist ›DoctorWho ›MedievalMadness ›HighSpeed2 WebArcadeDatabase


Gothrek
Gamer
Gamer
Messaggi: 25
Iscritto il: 31/08/2017, 8:41
Reputation: 0

Re: Recuperare info da arcade database

Messaggio da Gothrek » 07/09/2017, 7:22

Fatto test sulle 1250 rom, ci ha messo poco più di 4 min a "smazzare" tutto.

Controllo le tue modifiche e ti do feedback, grazie.

EDIT:confermo funzionamento del parametro lang, per le lettere accentate trovo correttamente il carattere accento dopo la lettera.

Oggi do una sistemata all'accozzaglia di oggetti che ho buttato in una form ieri per creare il programma e fare i primi test, e poi vedo di condividerla cosi che si possano seguire (a chi interesserà) le evoluzioni.

Circa il tuo futuro progetto...curiosità :D


Avatar utente
motoschifo
Arcader
Arcader
Messaggi: 437
Iscritto il: 08/12/2015, 9:55
Reputation: 165
Località: Parma
Nazione: Italy
Contatta:

Re: Recuperare info da arcade database

Messaggio da motoschifo » 07/09/2017, 9:09

Ok, poi mandami link o sito se ce l'hai e magari una brevissma descrizione (giusto una riga da mettere sul sito a fianco del link).
Motoschifo
CAB ›MameOriz ›MameVert ›PCB ›NeoGeo ›TopDrive ›Tekken3 Wishlist ›PacMan ›Tempest ›Arkanoid
Flipper ›HighSpeed Wishlist ›DoctorWho ›MedievalMadness ›HighSpeed2 WebArcadeDatabase


Gothrek
Gamer
Gamer
Messaggi: 25
Iscritto il: 31/08/2017, 8:41
Reputation: 0

Re: Recuperare info da arcade database

Messaggio da Gothrek » 08/09/2017, 13:10

Eccoci qua,
ieri disastro al lavoro avuto tempo 0, oggi e questo fine settimana ci rimetto le mani.

la prima cosa è il link, lo ho messo su github.
https://github.com/gothrek/GotScraper

il programma è in fase embrionale, lungi da essere diffuso cmq, mano mano aggiorno li.

domanda, il record ha un id unico nel tuo db? un domani potrebbe essere comodo andare a confrontare info con suo record senza errori e lo memorizzerei nel file xml creato dallo scraper, che dici? è possibile?

Grazie


Avatar utente
bisus
Arcade Maniac
Arcade Maniac
Messaggi: 2924
Iscritto il: 03/11/2015, 2:16
Reputation: 486
Località: Firenze
Contatta:

Re: Recuperare info da arcade database

Messaggio da bisus » 08/09/2017, 13:18

Gothrek ma quindi questo scraper prende le informazioni dal DB di motoschifo ? ne aggiungerai anche di altre ?
Segnalazioni problemi Forum
Non esitate a contattarmi in privato se doveste avere problemi sul forum http://www.arcademania.eu
grazie


Avatar utente
motoschifo
Arcader
Arcader
Messaggi: 437
Iscritto il: 08/12/2015, 9:55
Reputation: 165
Località: Parma
Nazione: Italy
Contatta:

Re: Recuperare info da arcade database

Messaggio da motoschifo » 08/09/2017, 13:31

Si il db ha una chiave numerica unica sia per la parte arcade sia per quella software.
Però questo id non è mai visibile al pubblico, proprio perchè è una chiave creata per l'occasione e che interessa solo il server (es. il mio server di casa ha chiavi molto diverse).
L'unico aggancio per il gioco è il romset (chiave unica anche quella) ed eventualmente l'id dell'emulatore (es. 840) o anche la sua versione testuale (0.189) o numerica (189).

Che tipo di confronti vorresti far fare al programma?
Motoschifo
CAB ›MameOriz ›MameVert ›PCB ›NeoGeo ›TopDrive ›Tekken3 Wishlist ›PacMan ›Tempest ›Arkanoid
Flipper ›HighSpeed Wishlist ›DoctorWho ›MedievalMadness ›HighSpeed2 WebArcadeDatabase


Avatar utente
motoschifo
Arcader
Arcader
Messaggi: 437
Iscritto il: 08/12/2015, 9:55
Reputation: 165
Località: Parma
Nazione: Italy
Contatta:

Re: Recuperare info da arcade database

Messaggio da motoschifo » 08/09/2017, 13:35

Dimenticavo: se vuoi vedere altre cose che si possono fare da client, prova a dare un'occhiata al tool che ho scritto per il sito.
Lo trovi nella pagina di download (ADB-Tools).
Sarà ampliato in tanti punti, non so quando ma nel giro di qualche anno dovrei arrivarci in fondo anche con la parte clean/merge set derivata da MameShrink ;)
Motoschifo
CAB ›MameOriz ›MameVert ›PCB ›NeoGeo ›TopDrive ›Tekken3 Wishlist ›PacMan ›Tempest ›Arkanoid
Flipper ›HighSpeed Wishlist ›DoctorWho ›MedievalMadness ›HighSpeed2 WebArcadeDatabase


Gothrek
Gamer
Gamer
Messaggi: 25
Iscritto il: 31/08/2017, 8:41
Reputation: 0

Re: Recuperare info da arcade database

Messaggio da Gothrek » 08/09/2017, 13:43

bisus ha scritto:
08/09/2017, 13:18
Gothrek ma quindi questo scraper prende le informazioni dal DB di motoschifo ? ne aggiungerai anche di altre ?
Ciao, si prende le info dal DB di motoschifo.
si ne aggiungerò altri nel seso che l'idea era inserisco un elenco di siti nell'ordine che voglio e da li recupero le info e laddove non le trovo vado ai successivi o eventualmente in altre lingue.

Trovo il db (di motoschifo) davvero fantastico e gli scraper che ho trovato in giro di solito puntano a questo o quello e amen, ma non ti permettono di scegliere le fonti o le alternative. Il sogno (prob anche di motoschifo) sarebbe riuscire ad avere tutte le info nel db, se diffonderlo un pò di più può aiutare a questo perchè no? (penso io)

Dall'altra parte gli utenti che hanno fretta e poco tempo cercano di completare i loro frontend.

Poi chiunque abbia idee di implementazione ben vengano, come già detto è uno strumento hobbistico.


Rispondi

Chi c’è in linea

Visitano il forum: Nessuno e 3 ospiti