Astronavi regolari

Nella migrazione delle schede delle Astronavi da HyperTrek una delle sfide è stata esportare la maggior parte delle informazioni da poter categorizzare in forma breve nel relativo infobox.

Molti dei dati possono essere estratti dalle sezioni come potete vedere dallo screenshot qui sotto

sezioniastro.PNG

altre invece devono essere estratte in qualche modo dai dati esistenti.

Oggi mi sono dedicato a uno di queste estrazioni perchè volevo poter categorizzare la nave per il suo tiponumero di registro: nell’esempio della USS Odyssey qui sopra, volevo essere in grado di determinare che il suo registro di flotta fosse lo NCC (il registro standard delle navi di serie della Flotta Stellare) e che il relativo numero di registro fosse 71832.

Per estrarre queste informazioni ho usato le regular expression – già trattate in altra sede – per risparmiare codice e tempo nella scrittura.

Il pattern sottostante la RegEx è il seguente:

1
/(ncc|nx)\D?(\d*) /gi

la cui spiegazione è semplice:

  • (ncc|nx)
    trova il gruppo di testo che inizia per NCC o NX
  • \D?
    trova un singolo carattere non numerico, di conseguenza identifica un eventuale spazio o trattino che separi la sigla dal numero
  • (\d*)
    trova una stringa di cifre di lunghezza arbitraria
  • /gi
    il modificatore Global restituisce tutti i matches senza fermarsi al primo
    il modificatore Insensitive ignora maiuscole e minuscole

Con poche righe di codice questa regex permette di estrarre le sigle NX o NCC e il relativo numero per l’inserimento nell’InfoBox:

sezioniastrowiki.PNG

Un esempio funzionante è disponibile su RegEx101 all’indirizzo https://regex101.com/r/2omAw3

Immagini, ci siamo

Dopo mesi a spaccarmi la testa e infinite discussioni con il creatore della libreria che JARVIS usa per manipolare la Wiki, ho trovato il problema che impediva il caricamento delle immagini.

Inutile dire che era di una stupidità estrema e che si risolveva meno di 5 secondi, capendo dove bisognava guardare.

Ad ogni modo, negli scorsi giorni ho importato tutte le immagini da HT e ci ho giocato un po’.
Come prima cosa le ho importate brutalmente lasciando fare tutto alla wiki. Il risultato era funzionale, ma molte informazioni andavano perse. Sono quindi passato a scrivere dinamicamente anche la pagina che MediaWiki mostra quando si accede all’immagine.

Vedete per esempio sul sito di test il file File:Specie!vulcan-deserto.jpg
Qualche annotazione:

  • ignorate il fatto che ci siano molte versioni identiche della stessa immagine.
    Deriva dal fatto che ho fatto prove su prove senza curarmi di cancellare perché in questa fase non ha senso.
    Sul sito definitivo ovviamente questo non accadrà.
  • Il nome dell’immagine in WikiTrek è generata concatenando in nome della sottocartella di HT con il nome dell’immagine, sostituendo la barra dritta con un punto esclamativo.
    Nella sezione “Dettagli” ci sono indicati il nome nuovo e quello vecchio.
  • La parte di Licenza è ancora tutta da scrivere.
    Demanderei la cosa a un template, ma vorrei sentire i vostri suggerimenti.
  • La sezione HyperTrek riporta la data di scaricamento e lo URI originale.
    Poi in due sottocapitoli ho copiato la Descrizione e lo ImageTag.
  • Le immagini non sono visibili in tutte le relative pagine perché devo rielaborarle, potete vedere qualche esempio, sempre sul sito di test, nelle pagine T’Pol e The Naked Now.

Aggiornamenti 2017-07-23

Negli ultimi due fine settimana, tanto lavoro, ma pochi risultati visibili:

  • Ho iniziato ad affrontare le immagini: ho fatto una buona parte del lavoro dal lato database, ma le immagini in sé sono complicate da trattare. Avevo intenzione di scaricare tutte le immagini da HT e ricaricarle in WT, ma qualcosa non funziona nell’apposita routine nella libreria DotNetWikiBot. Ancora devo capire se sbaglio io o se mi sono imbattuto in un bug. In sostanza, nulla di fatto dal lato utente.
  • Ho spostato i Riferimenti a siti della HyperAlliance nel capitolo “Collegamenti Esterni”
  • Iniziato una bozza di un template simile al NAV della Wikipedia da aggiungere alle pagine delle due cronologie. Si tratta di una bozza molto bozza: sul sito di test vedete Template:NavCronologia

Pubblica utilità

Penso vi farà piacere sapere che questo progetto, anche in fase iniziale, ha
già fruttato un risultato utile.
Avrete forse notato che nella pagina principale usiamo l’estensione
https://www.mediawiki.org/wiki/Extension:RecentPages per mostrare l’elenco
delle pagine aggiunte di recente.

Qualche giorno fa ho notato che l’estensione aveva smesso di funzionare con
un Fatal Error.
Dopo una breve ricerca, mi sono reso conto che l’estensione
tentava di usare una chiamata alla funzioni di MW deprecata da qualche
versione e rimossa appunto nell’ultimo aggiornamento.
Una volta identificato l’errore, ho potuto eliminarlo semplicemente
rimuovendo una riga di codice (evidentemente legacy e rimasta per qualche
ragione) e l’ho testato con successo nella copia di prova online di WikiTrek.

Fatta questa verifica, ho indagato su come segnalare il problema e la
soluzione: fortunatamente l’estensione è pubblicata tramite GitHub e quindi
il passo è stato breve per un fork, una modifica e un commithttps://github.com/Inclumedia/RecentPages/pull/4

In meno di un ora il proprietario del progetto ha accetto la mia modifica,
ha fatto un merge e io ho potuto eliminare il fork.
Quindi, grazie al lavoro su WikiTrek, già abbiamo dato un contributo alla
comunità

In conclusione due note:

  • ogni volta che c’è di mezzo Star Trek e un gruppo di Geek, succede
    qualcosa di utile
  • cito (senza permesso) da Luigi «Che figata GitHub!»