Gebruiker:Michiel1972/Voorbeeld script
Stap 1: Zoek vrije informatie in een database formaat
bewerkenZoek vrij beschikbare statistieken. Download en bewerk in (b.v.) Excel. Hier kan je bijvoorbeeld provincies, regio's en Nederlandse wikilinks toevoegen.
Stap 2: Bewerk en vul de informatie aan
bewerkenBewerk en vul de informatie aan. bereken nieuwe indicatoren (b.v. dichtheid). Schrijf het aangepaste bestand weg als tekst bestand (bij voorkeur utf om speciale tekens correct te houden) en gebruik deze als input voor het vervolg.
Fragment inputfile:
Naam Titel Provincie code land Water Totaal Man Man percePersons Dichthei67+ 67+perceUnemployEmigratiImmigratnetto Dutchies Halden Halden Østfold 101 596,72 44,27 640,99 13.675 49,6 27.582 43 4.254 15,4 4,4 957 1.070 113 54 Moss Moss Østfold 104 57,78 5,34 63,12 13.669 48,7 28.040 444 3.956 14,1 3,8 1.558 1.843 285 28 Sarpsborg Sarpsborg Østfold 105 370,26 36,78 407,04 24.476 49,2 49.753 122 7.071 14,2 4,3 1.887 2.239 352 19 Fredrikstad Fredrikstad Østfold 106 281,97 8,34 290,31 34.367 48,8 70.418 243 10.326 14,7 4,4 2.499 2.984 485 28 Hvaler Hvaler Østfold 111 87,74 0,04 87,78 1.895 50,2 3.773 43 508 13,5 2,7 179 269 90 1
Stap 3: Programmeer een tekstverwerker voor de data
bewerkenSchrijf zelf een programma om het 'kale' tekstbestand om te zetten in een bestand met artikelen in Wiki-formaat.
Ter illustratie een programmauitdraai die is gebruikt voor het toevoegen van gemeenten in Noorwegen. Input was een database met basisinformatie (omgezet in txt formaat om in te lezen door Delphi). Zie het fragment hierboven.
Output van het runnen is een wiki-bestand klaar om up te loaden met de bot pagefromfile.py. Ook is de output te gebruiken om stukken teksten (zoals sjablonen) snel te kopieren naar bestaande artikelen (handmatig copy/paste maar zonder de tijd te verspelen om de info op te zoeken).
Delphi als tekstverwerker...
//Inlezen procedure TForm1.Button1Click(Sender: TObject); var f:textfile; i,j,lines,aantal:integer; titel:array[1..500] of string[36]; naam:array[1..500] of string[29]; prov:array[1..500] of string[18]; code:array[1..500] of string[4]; land:array[1..500] of string[16]; water:array[1..500] of string[10]; opp:array[1..500] of string[10]; man:array[1..500] of string[8]; manperc:array[1..500] of string[9]; totaal:array[1..500] of string[10]; dichtheid:array[1..500] of string[8]; plus67:array[1..500] of string[8]; plus67perc:array[1..500] of string[8]; werkloos:array[1..500] of string[8]; em:array[1..500] of string[8]; im:array[1..500] of string[8]; netto:array[1..500] of string[8]; dutch:array[1..500] of string[8]; begin assignfile(f,'Noorwegen.txt'); reset(f); lines:=1; readln(f); readln(f); repeat read(f,titel[lines]) ; read(f,naam[lines]) ; read(f,prov[lines]) ; read(f,code[lines]) ; if Length( trim(code[lines]))=3 then code[lines]:='0'+trim(code[lines]); read(f,land[lines]) ; read(f,water[lines]) ; read(f,opp[lines]) ; read(f,man[lines]) ; read(f,manperc[lines]) ; read(f,totaal[lines]) ; read(f,dichtheid[lines]) ; read(f,plus67[lines]) ; read(f,plus67perc[lines]) ; read(f,werkloos[lines]) ; read(f,em[lines]) ; read(f,im[lines]) ; read(f,netto[lines]) ; readln(f,dutch[lines]) ; inc(lines); until eof(f); closefile(f); edit1.text:=inttostr(lines); assignfile(f,'output.txt'); rewrite(f); for i:=1 to lines do begin writeln(f,'SSS'); writeln(f,'{{infobox kommune|' ); writeln(f, '|naam= ' + trim(naam[i]) ); writeln(f, '|coatofarms= [[image:'+trim(naam[i])+'_komm.png]]' ) ; writeln(f, '|map= ' ); writeln(f, '|provincie= [[' + trim(prov[i])+']]' ); writeln(f, '|idnummer= ' + trim(code[i]) ); writeln(f, '|oppervlaktotaal='+ trim(opp[i]) ); writeln(f, '|oppervlakland= '+ trim(land[i]) ); writeln(f, '|oppervlaktewater= '+ trim(water[i]) ); writeln(f, '|populatiedatum= 2005' ) ; writeln(f, '|bevolking=' +trim(totaal[i]) ); writeln(f, '|dichtheid= '+trim(dichtheid[i]) ); writeln(f, '|munwebpage= www.'+trim(naam[i])+'.kommune.no' ); writeln(f,'}} '); writeln(f, ''''+''''+'''', trim(titel[i]), ''''+''''+''''+ ' is een [[Noorse gemeenten per provincie|gemeente]] in de Noorse provincie [[' + trim(prov[i]) +']]. ' ) ; write(f, 'De gemeente telde ',trim(totaal[i]),' inwoners in januari 2005, waarvan ',trim(manperc[i]),'% mannelijk. Het aandeel ouderen (67 jaar of ouder) is ',trim(plus67perc[i]),'%. '); writeln(f,'In juni 2005 was ',trim(werkloos[i]),'% van de bevolking [[werkloosheid|werkloos]].'); writeln(f); write(f,'Er vertrokken in 2004 ',trim(em[i]),' personen en er vestigden ',trim(im[i]),' personen in ',trim(naam[i]),'. '); if trim(dutch[i])='' then dutch[i]:='0'; aantal:=StrToInt(trim(dutch[i])); if aantal>1 then writeln(f,'De gemeenteregistratie telde ',trim(dutch[i]),' personen met (van oorsprong) de Nederlandse nationaliteit.'); writeln(f); writeln(f,'{{'+trim(prov[i])+'}}'); writeln(f,'<br clear=all>'); writeln(f,'{{bron|bronvermelding=*[http://statbank.ssb.no/statistikkbanken/?PLanguage=1 Noors bureau voor statistiek]}}'); writeln(f,'[[Categorie:'+ trim(prov[i])+']]'); writeln(f,'[[Categorie:Gemeente in Noorwegen]]'); writeln(f,'[[en:'+ trim(naam[i])+']]'); writeln(f,'[[nn:'+ trim(naam[i])+']]'); writeln(f,'[[no:'+ trim(naam[i])+']]'); write(f,'EEE'); writeln(f); writeln(f); end; closefile(f); end; end.
Stap 4: Bewaar de resultaten
bewerkenGebruik de output file (bewaar als utf) om met de bot pagefromfile.py naar wikipedia te uploaden. Elk artikel start met SSS en eindigt met EEE. Dit moet je in pagefromfile.py opgeven.
Stap 5: Testen
bewerkenTest de artikelen uit de output file. Eerst handmatig (copy /paste), daarna met een eerste pagefromfile.py run. Vraag de gemeenschap of er tekstuele wijzigingen nodig zijn (bij voorkeur al eerder in het proces advies vragen).
Stap 6: Importbot
bewerkenAls je voldoende zeker bent dat de inhoud foutloos is, en voldoende steun van de gemeenschap hebt (bij grote aantallen nieuwe artikelen), dan kan je de importbot gaan draaien. (pagefromfile.py).
Stap 7: Nazorg
bewerkenNa het testen en het geautomatiseerd toevoegen van de artikelen is het werk nog niet over. Vaak is het nodig om doorverwijspagina's aan te maken omdat er al een artikel met dezelfde titel bestond (en de bot dus geen artikel heeft aangemaakt). En daarom is het nodig om achteraf ontbrekende artikelen met de hand toe te voegen onder een andere artikelnaam. Ook het aanmaken van categorieen en sjablonen moet niet worden vergeten.