Verplaatsing

[pywikipediabot] - The "pywikipediabot" framework, which has been hosted at sourceforge for the last almost 4 years, has recently been moved to wikimedia servers. This means that robot users will need to go to a different server to update their version of the robot software. http://lists.wikimedia.org/mailman/listinfo/pywikipedia-l -- New mailing list http://www.gossamer-threads.com/lists/wiki/wikitech/98876 -- A message announcing the move

Doorverwijsrobot

Hoi Elly. De hele robotcode is te vinden op http://sf.net/projects/pywikipediabot . De bestanden die daar klaarstaan om te worden ge-download zijn altijd achterhaald, dus het beste is om de zogenaamde "cvs" versie te gebruiken. Er staat op de sourceforge webpagina's het nodige om dat uit te leggen, maar daar wil ik ook eventueel wel per mail mee helpen. In elk geval heb je nodig de pakketten tortoisecvs en python, te vinden op: http://www.tortoisecvs.org/ en http://www.python.org/
Installatie is even een keer een klus, maar het gebruik van de robot is daarna relatief eenvoudig! Het is de moeite waard. Rob Hooft 8 mrt 2004 22:18 (CET)
Wel, die TortoiseCVS is niet strikt nodig - het is handig als je de wijzigingen in de robot wilt bijhouden (deze wordt nog steeds stukje bij beetje bijgeschaafd, momenteel ben ik bijvoorbeeld bezig de lijst met pagina's die hij mag 'overslaan' te verlengen), maar je kunt het ook 'met de hand' downloaden op http://cvs.sourceforge.net/viewcvs.py/pywikipediabot/pywikipedia/. Voor het disambigueren heb je solve_disambiguation.py, wikipedia.py en config.py strict nodig; het zou ook goed zijn login.py, test.py en CONTENTS mee te nemen.
Nadat je dat gedaan hebt, en Python geïnstalleerd is, maak je op wikipedia een gebruiker aan voor je bot, en je maakt een file "user-config.py" aan met als tekst
mylang='nl'
usernames['wikipedia']['nl']='RobotE'
usernames['wikipedia']['de']='RobotE'
usernames['wikipedia']['en']='RobotE'
usernames['wikipedia']['af']='RobotE'
usernames['wikipedia']['fr']='RobotE'
usernames['wikipedia']['fy']='RobotE'


Open nu een cmd.exe, ga naar de directory waar je de robot het gedownload en typ "login.py -all" om voor alle talen in te loggen.
Bij Windows98 kan je inplaats daarvan gewoon klikken op login.py
Hiermee is de installatie gereed. Je kunt nu de Robot gebruiken met:
"solve_disambiguation.py naam", waar naam de naam is van de doorverwijspagina die je wilt afhandelen.

Ik heb nu wel via zoeken op internet ontdekt hoe je iets verder komt, met het windows98 dat ik hier heb.

  • Klik op Start Menu en dan op Programma's, Python en dan IDLE (Python GUI).
  • Klik in het window dat je krijgt op "File, Open"
  • Open het bestand solve_disambiguation.py
  • Klik op RUN Module
  • Nu doet het programma iets, er komt een lijst die er deels zo uitziet:
 0 u'Andere talen'
 1 u'Biografielijst'
 2 u'GNU Vrije Documentatie Licentie'
 3 u'Landen van de wereld'
 4 u'Overzichten en lijsten'
 5 u'Speciaal:Allpages'
 6 u'Uitvoerende kunsten'
 7 u'Van A tot Z lijsten'
 etc.

Het programma zou zich eigenlijk vanzelf moeten wijzen, maar zo niet: Je krijgt een lijst met mogelijke links te zien. Hieronder zijn de mogelijke betekenissen van 'naam', maar mogelijk ook een aantal die volledig onzinnig zijn. Daarna krijg je de naam van een artikel, en een deel van de tekst te zien. Je kunt nu invoeren:

een getal: wijzig de link zodanig dat het naar de pagina met dat getal wijst.
r + een getal (aan elkaar): wijzig zowel de link als de tekst van de link op die wijze
s: wijzig deze link niet
n: wijzig deze hele pagina niet
u: maak deze tekst een niet-linkende tekst
m: toon een groter deel van de tekst van de pagina, zodat je meer gegevens hebt om te beslissen (kan herhaaldelijk gebruikt worden, de hoeveelheid tekst wordt elke keer bij benadering verdubbeld)
l: geef de lijst van mogelijke links nog een keer
a: geef een nieuwe mogelijke link op
q: beëindig het programma
In CONTENTS kun je zien welke andere bots er zijn en waarvoor ze dienen, de tekst van de bot zelf begint met een verklaring van de bot en welke opties je het programma kunt meegeven.
Tenslotte, als je niet zeker weet of je bot nog wel ingelogd is, kun je daarvoor test.py gebruiken. Andre Engels 10 mrt 2004 13:38 (CET)

verdere automatisering via pages

ICQ met Andre Engels, 14 december 2004

engels (18:46) : 
Artikelen in categorie "Doorverwijspagina"
Er zijn 1287 artikelen in deze categorie.
Elly (18:47) : 
ja, daar is ook bijna niet doorheen te komen. Zou er een lijstje gemaakt kunnen worden van doorverwijspagina's die nog gelinkt zijn, of kan ik dat zelf maken? 
engels (18:47) : 
En in werkelijkheid zijn het er nog een paar honderd meer...
engels (18:48) : 
Een dergelijk lijstje bestond ooit. [[Speciaal:Maintenance]]
engels (18:48) : 
Maar Wikipedianen die die pagina nog hebben meegemaakt zijn inmiddels in de minderheid...
engels (18:49) : 
SQL query werkt ook, maar er is mij inmiddels verteld dat ze niet van plan zijn die weer aan te zetten.
engels (18:49) : 
Ikzelf gebruik solve_disambiguation.py -file
Elly (18:50) : 
ik weet niet of dat bij mij werkt (misschien via het command window). Kan je die lijst die je kan krijgt neerzetten ergens, of is dat lastig?
engels (18:51) : 
Nee, wat ik doe is hem over de volledige lijst op [[Categorie:-Doorverwijspagina]] laten gaan...
engels (18:51) : 
Oeps... Hoe zet ik die smiley uit? =-O
Elly (18:51) : 
:-D
Elly (18:51) : 
LOL
engels (18:52) : 
En dan laat ik de bot het gezeur van het door pagina's heengaan zonder links.
Elly (18:53) : 
oke, dat kan ik ook wel proberen
engels (18:54) : 
Pagina opslaan, dan "extract_names.py filename.htm > pages.txt"
engels (18:54) : 
Vervolgens even pages.txt met de hand editen om de 'troep' eruit te halen.
engels (18:54) : 
En dan vervolgens het eerste stuk er ook maar afhalen, want ik ben net weer bij de A begonnen.
engels (18:55) : 
Dan "solve_disambiguation.py -file:pages.txt" en dan maar zien wat er gebeurt.
engels (18:55) : 
Het zou mooier zijn als we zo'n lijst konden aanmaken, maar ja, zoals gezegd, SQL-queries zitten er niet meer in :-(
Elly (18:56) : 
nee ik snap het. Je vindt het vast wel goed als ik deze aanwijzingen op mijn robot pagina zet?
Elly (18:56) : 
vanwege het GFDL wil ik dat toch ff netjes vragen
engels (18:56) : 
Ja hoor, geen enkel probleem.
engels (18:57) : 
Ach, die bot is ook alles open source, dus is het ook goed de documentatie vrij te hebben.
Elly (18:57) : 
ja als dit de documentatie mag heten!

Plaatjesrobot

De afbeeldingsbot werkt! Wel, min of meer... Het gaat nog protesteren als ik probeer de tekst ook te kopiëren, en het overzetten gaat nog regelmatig fout... Maar toch, in essentie werkt het. Belangstelling? Vast wel... - André Engels 5 apr 2004 00:06 (CEST)

Ik denk dat ik er nu een bug uit heb gehaald die de meeste verkeerde overzettingen veroorzaakte. - André Engels 5 apr 2004 00:28 (CEST)
Ik heb er zeker belangstelling voor, ik zag dat je het plaatje automatische doet, maar het artikel met de hand. Waar kan ik het vinden, bij de andere robots? Elly 5 apr 2004 00:31 (CEST)
Ja, net als de rest in http://cvs.sourceforge.net/viewcvs.py/pywikipediabot/pywikipedia/. De bot heet imagetransfer.py, daarnaast heb je ook lib_images.py nodig en een update van wikipedia.py. Momenteel overigens nog even wachten tot sourceforge actueel is - je moet lib_images.py 1.3 (of later) hebben; imagetransfer.py 1.6 zou ook handig zijn (momenteel bevat sourceforge 1.2 en 1.5). - André Engels 5 apr 2004 01:47 (CEST)

Even de werking van de bot:

  • Vul de pagina in waar je een afbeelding voor zoekt
  • Bot zoekt de interwiki-gelinkte pagina's af
  • Bot geeft de gevonden afbeeldingen, met de tekst van de afbeeldingsbeschrijvingspagina
  • Selecteer hiervan een door het gegeven getal aan te geven
  • Bot stelt nu een naam voor - vervang deze, eventueel door dezelfde naam (er zit daar nog een probleem als je de 'eigenlijke' naam neemt)
  • Bot vraagt naar de tekst voor de beschrijvingspagina
  • Klaar

Je zult inderdaad nog zelf de tekst naar de afbeelding moeten laten verwijzen; als ik zin heb zal ik iets dergelijks toevoegen. Maar momenteel zit ik meer te denken over hoe ik naam & beschrijving automatisch gekopieerd kan krijgen. Overigens, ik heb net een nieuwe versie van wikipedia.py ge-upload, onder oudere versies ziet de bot afbeeldingen die ge-resized of ge-thumbnailed zijn niet.

Dat lijkt makkelijk en helder. Zodra ik wat langer en achter elkaar thuis tijd hebt ga ik aan de gang (vandaag zeker niet). Elly 5 apr 2004 11:54 (CEST)

Bug reports

Er is een ruimte voor bug-reports op http://sourceforge.net/tracker/?group_id=93107&atid=603138. Eventueel is ook een bericht naar de mailing-lijst (zie http://lists.sourceforge.net/lists/listinfo/pywikipediabot-users) mogelijk. Zelf heb ik trouwens ook een tamelijk vervelende bug gevonden: Als de bot een plaatje >100k uploadt, wordt het plaatje wel ge-upload, maar de beschrijvingspagina niet. Er komt ook geen vermelding waar dan ook... - André Engels 10 apr 2004 11:53 (CEST)

Commons

Hoi Andre, zijn ze op commons al zo ver dat daar de Robot gedraaid kan worden? Ik zou liever plaatjes daarheen robotten ipv. naar NL wikipedia. Als het "ja" is zal ik eens kijken of ik dat aan de praat kan krijgen daar. Voor afbeeldingen van "algemeen belang" zal ik zowieso naar commons gaan uploaden voortaan. Groeten, Elly 29 nov 2004 21:08 (CET)

Ja hoor, het draaien van de robot is op Commons geen probleem. Ik had het al aan iemand anders geadviseerd. Ik denk dat ik imagetransfer binnenkort maar eens aanpas om (ook?) naar commons te kunnen uploaden. Voorlopig zal het nog even met 'upload.py -lang:commons' moeten. - André Engels 29 nov 2004 23:22 (CET)

interwiki

  1. De robot kan ook worden ingezet als er nog helemaal geen links zijn; in dat geval is er echter (veel) meer interactie nodig (de gebruiker zal zelf ideeën van vertalingen moeten geven, bovendien is het in een dergelijk geval extra gewenst om ook de teruglinks te creëren), en daarom gaat het langzamer en wordt het minder gedaan (voor bot-gebruikers: opties -untranslated, -untranslatedonly or -askhints.
engels (10:29) : 
Da's mooi. Ik ben met Robbot nu door de B heen wat betreft het toevoegen van interwiki op  pagina's die nog geen hebben.
Elly (10:29) : 
welke gebruik je daarvoor?
engels (10:30) : 
interwiki.py met de optie "-untranslatedonly" (en dan natuurlijk "-start" of "-continue")
engels (10:32) : 
Maar omdat er een stuk meer interactiviteit bij zit (ik moet de ideeen voor vertaling geven,  wellicht eerst opzoeken, achteraf controleren dat ze inderdaad kloppen, backlinks maken of laten maken...) gaat dat toch een stuk trager dan met pagina's die het al hebben.
Elly (10:32) : 
ga ik (een keer) proberen, moet je dan ook een lijst met artikelen maken eerst?
engels (10:33) : 
Gisteren en vandaag zo'n 100 gedaan. Met een 'gewone' run doe je dat in een uur.
engels (10:33) : 
Nee, die zoekt het zelf uit. 
Elly (10:33) : 
oke, maar begint hij automatisch bij de A?
engels (10:34) : 
Oh, als je de nieuwste versie uploadt, kun je ook nog een -array: opdracht meegeven om minder  pagina's tegelijk te doen, anders kost het zo'n tijd voor je kunt beginnen.
engels (10:34) : 
Nee, daarvoor geef je het "-start" mee.
engels (10:34) : 
interwiki.py -untranslatedonly -confirm -start:Ergens -array:50
Elly (10:35) : 
ga het even proberen 
engels (10:35) : 
En mocht je het afbreken en later door willen gaan:
interwiki.py -untranslatedonly -confirm -continue -array:50
engels (10:35) : 
Met 'Ergens' de pagina waar je wilt beginnen, en de 50 kun je natuurlijk ook hoger of lager  zetten.
engels (10:36) : 
Om interferentie met mijn werk te voorkomen, beter niet ergens in de B of C starten.
Elly (10:36) : 
ik ben nu bij Ergens gestart, why not, copypaste, maar ik heb het vandaag toch druk met andere  dingen
engels (10:38) : 
Oh, en als je bezig bent, word je om een 'hint' gevraagd. Deze gaan in de vorm:
en:Somewhere
Maar er zijn ook mogelijkheden om meerdere talen tegelijk te doen:
de,en:Ergens (doet het in Duits en Engels, meer talen natuurlijk ook mogelijk)
10:Ergens (doet het in de 10 grootste talen; in plaats van '10' kan ook '20', '30', '50' met  duidelijke betekenis, of 'all' voor alle talen (90 of zo?) met 100 of meer artikelen)
interwiki.py -untranslatedonly -confirm -start:Ergens -array:5
werkt beter, want sneller 5 gevonden 
engels (22:54) : 
Om het de volgende keer verder te laten gaan waar je gebleven was, voer je "-continue" in in plaats van "-start:Ergens". Dan doet hij eerst wat al in de lijst staat, en gaat vervolgens vanaf de laatste verder.


Kortom: interwiki.py -untranslatedonly -confirm -continue -array:5



  1. De robot kan ook worden gebruikt voor categorieën, echter het 'automatisch zoeken' van pagina's om te controleren gebruikt Speciaal:Allpages, en daar staan de categorieën niet op. Overigens verandert dat met versie 1.4, dus wellicht in de toekomst meer bot-gebruik voor interwiki-links in andere naamruimten. - André Engels 19 dec 2004 22:40 (CET)

Interwiki terugzetten van links

Draai eerst splitwarning.py. Deze kijkt naar treelang.log en splits dit per taal. Daarin staan de waarschuwing van niet teruggeplaatste links. Draai of.

  1. warnfile.py -lang:(kies taal) (gesplitste file)

gaat automatisch alle links aanpassen. Wel inloggen op die taal. Risico op fouten

  1. interwiki.py -warnfile:filenaam

Die gaat op die wiki bezig. En gebruikt warnfile als bron van hints. Let op: fouten eruit halen, of opletten. Dus bijv. met confirm optie draaien.

Interwiki new pages

interwiki

Hallo Andre,

Op 2 januari ben ik begonnen met het leggen van interwiki's die nog niet bestonden. Begonnen bij "ergens" ben ik nu bijna rond. Ik zou graag af en toe de nieuwe artikelen doorlopen, maar zoals je begrijpt vind ik het teveel gevraagd om dan weer alles te doorlopen, waar ik 3 maanden mee bezig ben geweest, bij vlagen. Zie jij een mogelijkheid om de titels van nieuwe artikelen vanaf een bepaalde datum te downloaden en daar met extract_wikilinks.py de te controleren artikelen uit te halen? Via de speciale pagina's/nieuwe artikelen kom ik niet verder dan de laatste ongeveer 1700 artikelen. Elly 2 apr 2005 11:26 (CEST)

Nee, dat wordt zeer moeilijk. Voorbij de lijst op speciale pagina's, zou je ze kunnen krijgen met een SQL-Query (maar die kunnen we niet doen) of via simpelweg alle pagina's langsgaan en opzoeken (maar dan zou de bot alle revisies moeten opvragen in plaats van slechts de laatste (enorm veel oversturen) danwel de geschiedenis opvragen (kan alleen met 1 pagina tegelijk)). In de praktijk is dus alleen het stuk in Speciaal:Newpages als 'later dan toen-en-toen' te bekijken. - André Engels 5 apr 2005 00:57 (CEST)
Dank je wel, dat ga ik wel proberen. Elly 5 apr 2005 09:21 (CEST)

Dat lukt dus niet, maar wel de laatste 1800 artikelen. De html file opslaan en dan:

extract_wikilinks.py -sorted file.html >pages.txt

Daarna de gebruikersnamen eruit halen en de interwiki.py -untranslatedonly -file:pages.txt draaien