Wikipedia:Botcafé/Archief/2007-03

Hoi allemaal, Ik krijg sinds kort deze error bij edits met mijn bot. Heeft iemand een idee wat de oorzaak kan zijn? Thijs! 10 mrt 2007 18:37 (CET)[reageren]

NOTE: Updating live wiki... Dump de (wikipedia) saved Traceback (most recent call last):

 File "interwiki.py", line 1514, in ?
   bot.run()
 File "interwiki.py", line 1288, in run
   self.queryStep()
 File "interwiki.py", line 1267, in queryStep
   subj.finish(self)
 File "interwiki.py", line 911, in finish
   if self.replaceLinks(page, new, bot):
 File "interwiki.py", line 1024, in replaceLinks
   status, reason, data = page.put(newtext, comment = wikipedia.translate(page.site().lang, msg)[0] + mods)
 File "/home/thijs/pywikipedia/wikipedia.py", line 958, in put
   self.site().forceLogin()
 File "/home/thijs/pywikipedia/wikipedia.py", line 2733, in forceLogin
   self.loggedin(sysop = sysop)

AttributeError: 'Site' object has no attribute 'loggedin'

Nog eens cvs up doen, dat was een foutje, maar is vanmiddag al terug gefixt, dacht ik. --Tuvic 10 mrt 2007 18:41 (CET)[reageren]

featured.py bewerken

Ik probeer dus featured.py te gebruiken, die zoekt de etalage artikelen op de andere wiki`s na en zorgt ervoor dat nu ook op de Nederlandstalige Wikipedia {{Link FA}} bij de goede artikelen word gezet. Maar dan krijg ik deze error:

  • Bot is not to be used at the NL Wikipedia, changing your user-config.py.

Wie weet hoe dit opgelost moet worden aangezien {{Link FA}} nu ook hier weer word gebruikt? Crazyphunk 10 mrt 2007 20:06 (CET)[reageren]

Ik ben voor een python-waardigheids-diploma voor botgebruikers. Hoeveel moeite is het om 3 seconden de file te openen en even te zoeken naar die string?
    if config.usernames['wikipedia'].has_key('nl'):
        print "Bot is not to be used at the NL Wikipedia, changing your user-config.py."
        sys.exit()
Bedenk zelf maar wat je daar mee moet. Hint: sys.exit() is afsluiten.... valhallasw 10 mrt 2007 23:49 (CET)[reageren]
dankjewel, het werkt nu wel. Crazyphunk 11 mrt 2007 11:04 (CET)[reageren]
@Valhallasw heb jij ergens een goede websites waar ik python kan leren, dan zal ik dit eens doen! - Warddr (overleg) 11 mrt 2007 13:56 (CET)[reageren]
Niet echt een specifieke. Neem bv http://www.coolpython.nl/tutorials/tut/tut.html ; als je alles tot punt 7 hebt gelezen dan heb je een goede inleiding in algemeen programmeren gehad en dan kan je dit soort problemen zelf makkelijk oplossen. valhallasw 11 mrt 2007 14:57 (CET)[reageren]
niet iemand iets verwijten terwijl dit soort dingen nergens worden aangegeven Crazyphunk 11 mrt 2007 15:30 (CET)[reageren]
Een bestandje openen en even lezen wat er staat kan iedereen. Als je was aangekomen met 'ik heb deze tekst in de .py-file gevonden, en <x> even geprobeerd, maar ik kom er niet uit' dan was ik een stuk behulpzamer geweest. valhallasw 11 mrt 2007 15:57 (CET)[reageren]

Bot bljijft hangen op beveiligde pagina's bewerken

Sinds gister (geloof ik) blijft mijn bot hangen op beveiligde pagina's. Als volgt:

Sleeping for 7.5 seconds, 2007-03-12 22:18:37
Changing page [[de:Transnistrien]]
Page is locked, retrying using sysop account.
Getting page to get a token.
Getting page Wikipedia:Sandbox
Sleeping for 7.6 seconds, 2007-03-12 22:18:40
Changing page [[de:Transnistrien]]
Page is locked, retrying using sysop account.
Getting page to get a token.
Getting page Wikipedia:Sandbox
Sleeping for 7.5 seconds, 2007-03-12 22:18:42
Changing page [[de:Transnistrien]]
Page is locked, retrying using sysop account.
Getting page to get a token.
Getting page Wikipedia:Sandbox
Sleeping for 7.6 seconds, 2007-03-12 22:18:45
Changing page [[de:Transnistrien]]

En dit blijft maar doorgaan, ook na een cvs update. Iemand enig idee hoe ik dit zou kunnen oplossen? De bot draait op autonomous mode, zonder verdere gekkigheden. Thijs! 12 mrt 2007 22:20 (CET)[reageren]

Je hebt waarschijnlijk een regel van de vorm "sysopnames['wikipedia']['de'] = ..." in je user-config.py, terwijl de aangegeven account geen sysoprechten heeft. - André Engels 13 mrt 2007 00:43 (CET)[reageren]
Nee, gewoon "usernames['wikipedia']['de']='Thijs!bot". Thijs! 13 mrt 2007 08:32 (CET)[reageren]
Zou je me de volledige user-config.py kunnen geven? Want de bot gaat er duidelijk van uit dat hij de beschikking heeft over een sysop-account op de:. - André Engels 13 mrt 2007 08:51 (CET)[reageren]
Ik heb m je gemaild, hij is iets te lang om hier te plaatsen. Thijs! 13 mrt 2007 16:53 (CET)[reageren]
Is inmiddels opgelost - was een bug bij een wijziging in wikipedia.py door Head. - André Engels 16 mrt 2007 02:02 (CET)[reageren]

UnicodeDecodeError bewerken

Mooi dat de bug hierboven weer is opgelost. Regelmatig krijg ik de volgende error:

Getting 1 pages from wikipedia:ko...
Sleeping for 17.7 seconds, 2007-03-16 08:31:48
Skipping link to an ignored language
Skipping link to an ignored language
NOTE: Chimpancé: gives duplicate interwiki on same site Skipping link to an ignored language
Dump gl (wikipedia) saved
Traceback (most recent call last):
  File "interwiki.py", line 1515, in ?
    bot.run()
  File "interwiki.py", line 1289, in run
    self.queryStep()
  File "interwiki.py", line 1263, in queryStep
     self.oneQuery()
  File "interwiki.py", line 1259, in oneQuery
    subject.workDone(self)
  File "interwiki.py", line 624, in workDone
    iw = page.interwiki()
  File "/home/thijs/pywikipedia/wikipedia.py", line 1152, in interwiki
    ll = getLanguageLinks(self.get(), insite = self.site(), pageLink = self.aslink())
  File "/home/thijs/pywikipedia/wikipedia.py", line 2221, in getLanguageLinks
    result[site] = Page(site, pagetitle, insite = insite)
  File "/home/thijs/pywikipedia/wikipedia.py", line 234, in __init__
    t = url2unicode(t, site = insite, site2 = site)
  File "/home/thijs/pywikipedia/wikipedia.py", line 2570, in url2unicode
    raise firstException
UnicodeDecodeError: 'utf8' codec can't decode bytes in position 3-5: invalid data

Deze is volledige reproduceerbaar als ik weer verder ga met dezelfde pagina's. Ik werk overigens onder windows, misschien heeft dat er mee te maken. Iemand enig idee hoe dit kan of voorkomen kan worden? Andre? Thijs! 16 mrt 2007 08:34 (CET)[reageren]

spamprotection key bewerken

Sommige pagina's kunnen niet gewijzigd worden omdat er na de laatste wijziging een nieuw spamlink-filter is toegepast. Er komt dan een opmerking in het log met iets als "error: spam protection key not found" (of zoiets). Zijn er tools om die pagina's snel op te sporen en systematisch aan te passen? - Quistnix 19 mrt 2007 14:50 (CET)[reageren]

Het spamfilter is er al heel lang; het komt er op neer dat bepaalde sites geblokkeerd zijn en dat pagina's met links naar die sites erin niet opgeslagen kunnen worden. Daar heb je helaas ook bij kleine wijzigingen last van.... ik zal even kijken of ik op de TS een lijst met pagina's en sites kan genereren. Zoek in ieder geval even op wat de exacte error is; zonder die error wordt debuggen erg lastig valhallasw 24 mrt 2007 12:49 (CET)[reageren]

Nieuw bij de botters bewerken

Hoi,ik heb ook maar eens een botje geinstalleerd, vooral naar aanleiding van troefkaart's vraag om de kantons van Frankrijk te hercategoriseren

Ik heb twee vragen: een is dat ik op mijn OP gelijk twee vragen kreeg om niet meer dan 2 bewerkingen per minuut te doen. Nochtans heb ik

[tijmen@marie ~/Programs/pywikipedia]$ less user-config.py
usernames['wikipedia']['nl']='Melusine'
mylang='nl'
put_throttle = 30

Dus die throttle staat volgens mij al aan, waarom werkt dit niet?

Verder is de vraag: is het mogelijk om in een pass een "complexe" wijziging uit te voeren? Voorbeeld, ik wil alle pagina's in bijv. de categorie Categorie:Somme die beginnen met "Kanton" verplaatsen naar de Categorie:Kantons van Somme, maar ook uit de categorie:Kantons in Frankrijk hebben (dus in feite: uit de categorieen Somme en Kantons in Frankrijk, en in Kantons van Somme). De lijst welke pagina's dat moet zijn wil ik evt nog wel zelf maken en 'm op de commandline voeren.

Kan dit? IIVQ 24 mrt 2007 12:21 (CET)[reageren]

Ik vind het raar dat die "put_throttle = 30" niet werkt in je user-config.py. Ik heb het zonet met mijn bot uitgetest en daar werkte het wel. Mvg, Christophe 24 mrt 2007 12:46 (CET)[reageren]
Mbt die 30 seconden: -putthrottle:30 op de opdrachtregel zou ook moeten werken. Mbt je tweede vraag: ik denk inderdaad dat je met een invoerbestand moet werken dat je eerst zelf maakt. Voor de meeste pytonbots kun je de optie -file:filename op de opdrachtregel meegeven waarin je aangeeft welke pagina's bewerkt moeten worden. Misschien is wat je wilt ook met reguliere expressies te doen, maar dat lijkt me erg ingewikkeld in dit geval. Tjipke de Vries 24 mrt 2007 12:49 (CET)[reageren]
Ik had voor ik mijn bobitje had dit probleem ook, kijk hier: Wikipedia:Botcafé/Archief/2007-01#Trager_lopen_bot voor meer informatie. - Warddr (overleg) 24 mrt 2007 12:52 (CET)[reageren]

Commentaartekst bewerken

Voor enkele botwijzigingen op het WikiWoordenboek zou ik commentaartekst die op een pagina aanwezig is, willen verwijderen. Dit lukt me echter niet met het commando:

replace.py -regex -page:aaien "<!--[^-]*-->" ""

Het lijkt erop alsof Pywikipedia HTML commentaartekst niet ziet (twee gedachtenstreepjes naeen worden eveneens niet herkend). Is hieraan op één of andere wijze een mauw aan aan te passen?

Annabel(overleg) 24 mrt 2007 20:24 (CET)[reageren]

Hey Annabel. Staat er niet toevallig een koppelteken in de commentaartekst? Want deze regex gaat het met koppelteken niet herkennen. Groeten, Christophe 25 mrt 2007 12:38 (CEST)[reageren]
Hei, ja dat is zo. Maar wat heeft dat hier vandoen? Escapen van het koppelteken geeft geen verschil. Annabel(overleg) 25 mrt 2007 12:56 (CEST)[reageren]
Ik ben niet op de hoogte van het gebruik van commentaattekst op WikiWoordenboek, maar als de kans kleiner is dat er een "groter-dan-teken" gebruikt wordt in de commentaartekst dan een koppelteken, kan je misschien "<!--[^>]*-->" proberen. Groeten, Christophe 25 mrt 2007 13:27 (CEST)[reageren]
Da's wel een goede tip om te onthouden (vb. om HTML tags te strippen), maar in dit geval herkent replace.py zelfs het kleiner-dan teken niet. Annabel(overleg) 25 mrt 2007 13:37 (CEST)[reageren]
Als je gaat kijken in replace.py, dan zie je dat er in de procedure waar de uiteindelijke replacement gebeurt,
def doReplacements(self, original_text):
het volgende staat:
new_text = wikipedia.replaceExcept(new_text, old, new, ['nowiki', 'comment', 'math', 'pre'], allowoverlap = self.allowoverlap)
Hierdoor doet de bot standaard geen edits in nowiki-tags, commentaar-tags, math-tags en pre-tags. Om dat gedrag te veranderen, zal je er dus even de 'comment', moeten uithalen. --Tuvic 25 mrt 2007 14:38 (CEST)[reageren]
Reuze bedankt. 😉 Met je uitleg wordt die python code een heel stuk begrijpelijker. Annabel(overleg) 25 mrt 2007 16:50 (CEST)[reageren]
Graag gedaan. Hopelijk lukt het. --Tuvic 25 mrt 2007 18:17 (CEST)[reageren]
Gaat prima. Annabel(overleg) 25 mrt 2007 20:12 (CEST)[reageren]

Geschiedenis Barcelona is copyright? bewerken

Deze vraag had ik op de overleg pagina van Barcelona geplaatst, maar daar kijkt blijkbaar niemand ;-)

De tekst onder de sectie Geschiedenis staat letterlijk op http://barcalona.startspot.nl/. Het kan zijn dat het daar inmiddels is overgenomen van Wikipedia, maar het kan ook andersom. Als dat het geval is dan moet deze tekst worden verwijderd. {3wisemen 26 mrt 2007 16:22 (CEST)} Is er hier iemand die wel weet wat er in zulke gevallen het beste kan worden gedaan? {3wisemen}

Dit is niet geheel de logische plek op het te posten, maar dat maakt niet uit. Barcalona.startspot.nl heeft de tekst van ons overgenomen; dat kan je zien aan het feit dat er ipv aanhalingstekens consequent vraagtekens staan (bv: (...) bewoonde waren de ?Layetanos?, een Iberisch volk, (...)). Op wikipedia hoeft dus geen actie ondernomen te worden. valhallasw 27 mrt 2007 17:18 (CEST)[reageren]
Sorry, was hier terecht gekomen na te hebben geklikt op een link op het auteursrechten cafe. Die ging rechtstreeks hiernaartoe ipv daar naar toe. Heb de link daar inmiddels gecorrigeerd en de posting daar geplaatst. Sorry voor de overlast en evengoed bedankt voor het antwoord. {3wisemen 27 mrt 2007 17:22 (CEST)}[reageren]