Wikipedia:nlwikibots

Uit Wikipedia, de vrije encyclopedie
Ga naar: navigatie, zoeken

nlwikibots is een project op Tools Labs. Het account is bedoeld voor bots, scripts of webtools waar Wikipediagebruikers veel waarde aan hechten. Denk daarbij aan onderhoudstaken of het publiceren van databasegegevens.

Het doel is dat zulke bots niet meer per se door één persoon onderhouden moeten worden. Dat betekent niet dat alles door meerdere gebruikers onderhouden moet worden, maar vooral dat de continuïteit beter gewaarborgd wordt.

Toegang[bewerken]

Op dit moment hebben Multichill, Siebrand, Valhallasw, Silver Spoon en Akoopal toegang tot het account. Het staat echter open voor andere gebruikers die bots, scripts of webtools erin onder willen brengen. Plaats daarvoor een bericht op de overlegpagina of mail naar nlwikibots-lAt sign.svglists.wikimedia.org.

Op wikitech:Nova_Resource:Local-nlwikibots/SAL is het 'Server Admin Log' van nlwikibots te vinden. Voeg daar een regel toe als je iets aan het aanpassen hebt; dat kan ook via IRC op #wikimedia-labs met !log nlwikibots <tekst>

Regels[bewerken]

  • Zorg er alsjeblieft voor dat andermans tools niet omvallen door jouw werkzaamheden.
  • Hanteer alsjeblieft een een logische mapstructuur:
    ~/lib: libraries.
    ~/bin: binaries of scripts. Deze map staat als eerste in $PATH.
    ~/bots/<taak>: bestanden etc. om een specifieke bottaak te draaien.
    ~/log/<naam>: logbestanden, bijvoorbeeld voor <taak>.
  • Beschrijf elke bot etc. in een readme, bijvoorbeeld ~/bots/<taak>/readme.
  • Kondig het aan wanneer je libraries wilt updaten. Ze kunnen namelijk door anderen gebruikt worden.
  • Mails aan nlwikibots-lAt sign.svglists.wikimedia.org worden aan alle maintainers gestuurd. De lijst van maintainers is ook te zien op de voorpagina van het Tools-project.

Huidig gebruik[bewerken]

Op dit moment draaien de volgende bots onder het beheer van nlwikibots:

Nlwikibots (heeft een botbitje)

De bijbehorende broncode is te vinden op Github: [1].

Voormalige gebruikersnamen: Erwin85TBot, E85Bot, Valhallasw-toolserver-botje

Aanwijzingen[bewerken]

Cron jobs[bewerken]

Je kunt cron jobs in ~/cronfile plaatsen. Vervolgens moet je in crontab de nieuwe configuratie laden:

$ crontab ~/cronfile.

Bots moeten tegenwoordig via SGE gestart worden. Dit doe je door een wrapper script te schrijven dat je bot runt, met daarin een aantal extra SGE-commando's. Het volgende template kan je daarvoor gebruiken.

~/bin/<taak>
#!/bin/bash
#$ -l h_rt=0:30:00  # max runtime
#$ -l h_vmem=350M # max memory use, including shared libs
#$ -N tvpupdater-valhallasw # naam van taak, eindigt in naam eigenaar
#$ -M valhallasw@arctus.nl
#$ -m a # alleen mails bij een abort (vanwege bv. runtime-overschrijding of out-of-memory)
#$ -b y # draai over netwerkschijf ipv het bestand te kopiëren
#$ -o /dev/null # output naar /dev/null
#$ -e $HOME/log/tvpupdater-valhallasw.err

cd ~/bots/<taak>
python <taak>.py

Vergeet niet het script executable te maken (chmod 755 wrapper). Als commando in de cronfile gebruik je vervolgens qsub $HOME/pad/naar/wrapper > $HOME/log/crontab/botnaam.

Mocht je logging preciezer willen instellen, dan kun je een bashscript gebruiken. In dat script verwijs je stdout naar een bestand en stuur je stderr via een pipe naar mail. Bijvoorbeeld:

python <taak>.py 2>&1 >> ~/log/<taak>/$(date +\%Y\%m\%d).log | mail -e -s "Cron error: <taak>" <e-mailadres>

NB. Let op de volgorde van 2>&1 en de >>! Eerst de 2>&1, dan de >> - anders krijg je je stderr in je logfile in plaats van in je inbox.

Pywikipedia[bewerken]

In ~/rewrite en ~/trunk staat een installatie van pywikipedia. Je kunt deze installatie gebruiken voor je eigen bot, door in ~/bots/<taak> naar deze map te verwijzen. Zie mw:Pywikipediabot/Development#One_pywikipedia_distribution_with_symbolic_links voor uitleg daarover.

Logging[bewerken]

Logs van veranderingen worden bijgehouden op wikitech:Nova Resource:Tools.nlwikibots/SAL.

Beheerders kunnen op #wikimedia-labs via '!log tools.nlwikibots <bericht>' een bericht plaatsen.