ARMORY PARSE
Passo 1 creo la tabella dove memorizzo le informazioni
– phpMyAdmin SQL Dump
SET SQL_MODE=”NO_AUTO_VALUE_ON_ZERO”;
–
– Struttura della tabella `armory_xml_data`
–CREATE TABLE IF NOT EXISTS `armory_xml_data` ( `server` varchar(50) NOT NULL, `guild` varchar(50) NOT NULL, `name` varchar(50) NOT NULL, `url` varchar(50) NOT NULL, `reputation` text NOT NULL, `achievement` text NOT NULL, `character` text NOT NULL, `timestamp` timestamp NOT NULL default CURRENT_TIMESTAMP, PRIMARY KEY (`server`,`guild`,`name`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1; ;
Appunto : la chiave è ovviamente la tripletta server + nome gilda + personaggio perchè non può essere un dato doppio e d’altra parte è anche + facile cercare se la chiave è questa questo punto dovendo reucperare i dati usiamo le funzioni per parserizzare l’armory ottenedo la pagina con l’elenco dei gildani .
http://apneaapnea.netsons.org/workshop/armory/step1.php
questo è il risultato di una deliziosa funzione php che si chiama print_r che stampa array di array. Perchè per poter elaborare l’xml in maniera + semplice un array di array è il modo + semplice che mi è venuto in mente ed è quello che usano le librerie di parsing che ho usato. Perchè diciamocelo io non conosco php sono un programmatore c# ma in quanto programmatore riesco a cavarmela un po’ con tutto (ma odio il lisp per la cronaca). Quindi se vi va di cimentarvi in un lavoro + a basso livello potete usare le sue. Personalmente ho modificato un po’ quelle che ho scaricato per diversi motivi, direi che per cominciare io stavo lavorando su una release parecchio vecchia quindi alcuni bug me li sono trovati e risolti da solo. Cmq lavoro encomiabile. Senza di lui non sarei mai riuscito visto che il parsing di un xml per quanto facile non è proprio l’entry level php e d’altra parte non mi sarei mai messo a scrivere in php se non avessi avuto un obiettivo (l’armory) e un punto di inizio (appunto queste librerie).
Bon torniamo a noi. Adesso che abbiamo il nostro bell’elenco di utenti infiliamolo nella tabella su db
[class] => Priest
[classid] => 5
[gender] => Female
[genderid] => 1
[level] => 80
[name] => Kilf
[race] => Undead
[raceid] => 5
[rank] => 1
[url] => r=Runetotem&n=Kilf
Ma il + importante di tutti è url che permette di trasformare i dati .
http://apneaapnea.netsons.org/workshop/armory/step2.php
Ok adesso per ogni singolo utente recuperiamo il suo sistema di achievement. e memorizziamolo nel db
http://apneaapnea.netsons.org/workshop/armory/step3.php
fatto anche questo ma a quanto pare non funziona bene per tutti gli account e quindi al momento beccatevelo così
http://apneaapnea.netsons.org/workshop/armory/step4.php?name=savonarola
che però chiariamoci aggiorna sul db l’account relativo al singolo pg.
essendo definitivamente una idiozia però recuperare ogni volta dall’amory di può usare lo step 5 per leggere i dati memorizzati e lo step 4 per leggerli
http://apneaapnea.netsons.org/workshop/armory/step5.php?name=savonarola
ho fatto una sottoselezione dei pg sopra il livello 70… non ha senso sbattermi per i gildini di livello 14 per gli alt banca (a meno di voler sapere quanti soldi ha ciascuno di voi ma che mi importa ?) e di tutti quei pg che non loggano da mesi ? (prima della 3.03) questo è quanto.
e giuro che ora gli do un aspetto decente esteticamente.
poi http://apneaapnea.netsons.org/workshop/armory/step6.php
Se non vedete il vostro pg andate su http://apneaapnea.netsons.org/workshop/armory/step4.php?name=savonarola mettete il vostro nome al posto di savonarola e aggiornatelo.
Con alcuni non funziona non so, non capisco forse è l’amory intasata. come me ci sono milioni di persone che lo stanno facendo. Adesso oltre ai gildani aggiungo anche tutti quelli che me lo chiederanno. quanto a rilasciare una versione per tutti dovrei prima ripulirla che così è proprio brutta. non ho voglia :D + in la magari adesso vedo se riesco a mettere anche altre gilde e altri server (la tabella lo precede gli script pure ma non leggo i parametri … sono pigro mentre testo