EarwigBot is een Python robot die Wikipedia bewerkingen en de wisselwerking met mensen boven de IRC & nbsp;. Dit bestand geeft een beknopt overzicht van hoe te installeren en het bot; Meer gedetailleerde informatie is gelegen in de docs / directory (online beschikbaar op PyPI).
Geschiedenis
Ontwikkeling begon, op basis van de Pywikipedia kader, in het begin van 2009. Goedkeuring voor haar vuist taak, een schending van het auteursrecht detector, werd er in mei uitgevoerd, en de bot loopt al consequent sindsdien (met uitzondering van januari / februari 2011). Het behandelt momenteel verschillende lopende taken, variërend van statistieken generatie op categorie opruimen, en on-demand taken zoals WikiProject template tagging. Omdat het begon te rennen, heeft de bot meer dan 50.000 bewerkingen gemaakt.
Een project om het te herschrijven vanuit het niets begon in begin april 2011, dus af te stappen van het Pywikipedia kader en waardoor minder algemene code, een betere integratie tussen bot onderdelen en eenvoudiger onderhoud.
installatie
Dit pakket bevat de kern earwigbot, geabstraheerd genoeg dat het bruikbaar en aanpasbaar door iedereen loopt een bot op een MediaWiki site moet zijn. Aangezien het op componenten gebaseerde, kan de IRC componenten worden uitgeschakeld indien gewenst. IRC commando's en specifiek voor mijn exemplaar van EarwigBot dat ik niet de gemiddelde gebruiker het gevoel zal moeten bot taken zijn beschikbaar vanaf de repository earwigbot-plugins.
Het is aan te raden om unit tests de bot's draaien alvorens te installeren. Python setup.py-test uit van het project root directory. Merk op dat sommige tests vereisen een internetverbinding, en anderen kan een tijdje duren om te draaien. Dekking is momenteel nogal onvolledig.
Instellingen
De bot slaat zijn gegevens in een "working directory", met inbegrip van haar config file en databases. Dit is ook de locatie waar u aangepaste IRC commando's en bot taken, die later zal worden toegelicht zal plaatsen. Het maakt niet uit waar deze directory is, zolang het bot kan schrijven.
Start het bot met earwigbot pad / naar / werken / dir, of gewoon earwigbot als de werkmap is de huidige directory. Het zal merken dat er geen config.yml bestand bestaat en nemen u mee door het setup-proces.
Er is momenteel geen manier om de config.yml bestand vanuit het bot nadat het is gemaakt, te wijzigen, maar YAML is een zeer eenvoudige structuur, dus je moet in staat zijn om de nodige veranderingen aanbrengen zelf. Bekijk ook de uitleg van YAML op Wikipedia voor hulp.
Na de installatie wordt het bot te starten. Dit betekent dat het zal aansluiten op de IRC server is geconfigureerd voor, schema bot taken uit te voeren op specifieke tijden, en dan wachten op instructies (zoals opdrachten op IRC). Voor een lijst van commando's, zeg! "Hulp" (commando's zijn boodschappen voorafgegaan door een uitroepteken).
U kunt het bot te allen tijde met Control + C, dezelfde stoppen als je een normale Python programma te stoppen, en het zal proberen om veilig af te sluiten. U kunt ook gebruik maken van de "! Quit" commando op IRC.
Customizing
Working directory het bot bevat een commando subdirectory en een subdirectory taken. Aangepaste IRC commando's kunnen worden geplaatst in de eerste categorie, terwijl aangepaste wiki bot taken gaan in het laatste. Het ontwikkelen van aangepaste modules wordt hieronder uitgelegd, en meer in detail door de documentatie van het bot op PyPI (of in de docs / dir).
Merk op dat aangepaste opdrachten ingebouwde opdrachten en taken zal overschrijven met dezelfde naam.
Bot en BotConfig
earwigbot.bot.Bot is hoofdklasse EarwigBot's. Je hoeft niet om dit zelf te instantiëren, maar het is goed bekend met zijn attributen en methoden te zijn, want het is de belangrijkste manier om te communiceren met andere delen van het bot. Een Bot object is toegankelijk als een attribuut van de opdrachten en taken (dat wil zeggen, self.bot).
earwigbot.config.BotConfig configuratie slaat informatie voor de bot. Haar docstring legt uit wat elk attribuut wordt gebruikt voor, maar in wezen elke "knooppunt" (een van config.components, wiki, irc, opdrachten, taken en metadata) toegewezen aan een sectie van config.yml dossier van de bot's. Als bijvoorbeeld config.yml omvat iets:
irc:
& Nbsp; frontend:
& Nbsp; nick: MyAwesomeBot
& Nbsp; kanalen:
& Nbsp; - "## earwigbot"
& Nbsp; - "#channel"
& Nbsp; - "# andere kanalen"
... Dan config.irc ["frontend"] ["nick"] zal "MyAwesomeBot" en config.irc ["frontend"] ["kanalen"] zal worden ["## earwigbot", "#channel" te zijn, "# andere kanalen"].
Custom IRC commando's
Aangepaste opdrachten zijn subklassen van earwigbot.commands.Command dat proces Commando's () (en eventueel cheque () of setup ()) methodes overschrijven.
Het bot heeft een brede selectie van ingebouwde commando's en plugins op te treden als voorbeeldcode en / of om ideeën te geven. Beginnen met testen, en dan check out chanops en afc_status voor wat meer ingewikkelde scripts.
Custom bot taken
Aangepaste taken zijn subklassen van earwigbot.tasks.Task dat run Task's () (en optioneel setup ()) methodes overschrijven.
Zie de ingebouwde wikiproject_tagger taak voor een relatief eenvoudige taak of het afc_statistics plugin voor een meer ingewikkeld.
De Wiki Toolset
EarwigBot's antwoord op de Pywikipedia kader is de Wiki Toolset (earwigbot.wiki), die je vooral zal openen via bot.wiki.
bot.wiki biedt drie methoden voor het beheer van locaties - get_site (), add_site (), en remove_site (). Sites zijn objecten die gewoon vertegenwoordigen een MediaWiki website. Een enkel exemplaar van EarwigBot (dwz één enkele map) zal naar verwachting betrekking hebben op een enkele site of groep sites met dezelfde login info (zoals alle WMF wiki's met CentralAuth).
Laad uw standaard website (degene die je geplukt tijdens de installatie) met plaats = bot.wiki.get_site ().
Niet alle aspecten van de toolset worden behandeld in de docs. Ontdek de code en docstrings om te leren hoe het te gebruiken in een meer hands-on fashion. Ter referentie, bot.wiki is een instantie van earwigbot.wiki.SitesDB gebonden aan de sites.db bestand in werkmap de bot's
Eisen .
- Python
Reacties niet gevonden