Quello che probabilmente si desidera è un bot per creare gli articoli per voi utilizzando MediaWiki API. Probabilmente il framework dei bot più noto è pywikipedia per Python, ma ci sono anche API libraries and bot frameworks per molte altre lingue.
Infatti, pywikipedia viene fornito con uno script chiamato pagefromfile.py che fa qualcosa di molto simile a quello che si desidera. Di default, crea più pagine da un singolo file, ma se conosci qualche Python, non dovrebbe essere troppo difficile cambiarlo.
In realtà, se i file sono sullo stesso server wiki gira su (o si può loro ci upload), allora non è nemmeno necessario un bot a tutti: c'è una MediaWiki maintenance script chiamato importTextFile.php che può fallo per te stesso. È possibile eseguire in per tutti i file in una determinata directory con un semplice script di shell, ad esempio:
for file in directory/*.txt; do
php /path/to/your/mediawiki/maintenance/importTextFile.php "$file";
done
(Ovviamente, sostituire directory
con la directory contenente i file di testo e /path/to/your/mediawiki
con il percorso effettivo della vostra installazione MediaWiki.)
Per impostazione predefinita, importTextFile.php baserà il nome della pagina creata sul nome file, eliminando eventuali prefissi ed estensioni di directory. Inoltre, secondo le regole standard di denominazione delle pagine di MediaWiki, i caratteri di sottolineatura saranno sostituiti da spazi e la prima lettera sarà maiuscola (a meno che tu non abbia turned that off in LocalSettings.php); quindi, ad esempio, il file directory/foo_bar.txt
verrebbe importato come la pagina "Foo bar". Se si desidera un controllo più preciso sulla denominazione della pagina, importTextFile.php supporta anche un parametro esplicito --title
. Oppure puoi sempre copiare lo script e modificarlo tu stesso per cambiare le regole di denominazione della pagina.
Ps. C'è anche un altro script di manutenzione MediaWiki chiamato edit.php che fa praticamente la stessa cosa di importTextFile.php, tranne che legge il testo della pagina dallo standard input e non ha le comode regole di denominazione delle pagine predefinite di importTextFile.php. Tuttavia, può essere abbastanza utile per le modifiche automatizzate che utilizzano le pipeline Unix.
Addendum: Lo script importTextFile.php aspetta i nomi dei file e contenuti di essere nella codifica UTF-8. Se i tuoi file sono in qualche altra codifica, dovrai prima risolverli o modificare lo script per eseguire la conversione, ad es. utilizzando mb_convert_encoding().
In particolare, le seguenti modifiche allo script dovrebbe farlo:
per convertire il file nomi a UTF-8, modificare la funzione titleFromFilename(), nella parte inferiore della il script, e sostituire la sua ultima linea:
return $parts[0];
con:
return mb_convert_encoding($parts[0], "UTF-8", "your-encoding");
dove your-encoding
deve essere il character encoding utilizzato per i nomi file (o auto
per tentare il rilevamento automatico).
Per convertire anche il contenuto dei file, fare un cambiamento simile più in alto, all'interno del codice principale dello script, sostituendo la linea:
$text = file_get_contents($filename);
con:
$text = file_get_contents($filename);
$text = mb_convert_encoding($text, "UTF-8", "your-encoding");
@llmari Karonen Grazie mille! Voglio solo capire qual è il metodo più veloce. Quale garantisce la pubblicazione più veloce. E là fuori ho visto molte estensioni come MultiUpload, UploadLocal, UploadWizard. Possono essere più veloci dei metodi che hai menzionato? – user1849133
@llmari Karonen E se c'è davvero il metodo più veloce, quanto è veloce? Se ho 10000 file txt ciascuno con dimensione 10 KB, quanto sarà veloce? Ho verificato che il mio ftp carica in media 1,2 file txt da 10KB per 1 secondo sul mio server. Ma quanto sarà veloce pubblicare effettivamente i file caricati su mediawiki? – user1849133
Questa è una _ velocità di upload davvero bassa. Stai usando un vecchio modem degli anni '90? Per quanto riguarda l'importazione dei file in MediaWiki, certamente dovrebbe essere più veloce caricare i file sul server (magari in un archivio .zip/.tar.gz per renderlo più veloce) e usare importTextFile.php (o edit.php, che dovrebbe essere ugualmente veloce) che usare un bot. Suppongo che la modifica dello script per importare tutti i file in un richiamo sarebbe ancora più veloce, ma probabilmente non abbastanza per compensare il tempo necessario per apportare le modifiche e testarle. –