import java.util.LinkedHashMap;
import jwikipediabot.JWikipediaBotException;
import jwikipediabot.Log;
import jwikipediabot.Sablona;
import jwikipediabot.util;
public class AbdullBot
{
private static Log log;
public static void main(String args[])
{
try
{
// vytvorenie log suboru
log = new Log("C:\\Temp\\AbdullBot.log", Log.DEFAULT_DATETIME_FORMAT);
log.writeln("=== START ===");
// vytvorenie bota
jwikipediabot bot = jwikipediabot.connect("AbdullBot", "heslo");
log.writeln("Bot pripojeny na wiki.");
// ktoré články upravovať
String[] articles = {
"Michail Alexandrovič Bakunin",
"Johann Bernhard Basedow",
"Pierre Bayle",
"Simone de Beauvoir",
"Max Bense",
"Jeremy Bentham",
"Henri Bergson",
"George Berkeley",
"Eduard Bernstein"
};
vymenaSablon(bot, articles);
log.writeln("=== END ===");
}
catch (Exception e)
{
e.printStackTrace();
}
log.close();
}
private static void vymenaSablon(jwikipediabot bot, String[] articles)
{
String old_name = "Biografia";
String new_name = "Infobox Osobnosť";
// vzťah parametrov v starej a novej šablóne
LinkedHashMap paramNames = new LinkedHashMap();
paramNames.put("názov", "Meno");
paramNames.put("meno_obrázku", "Portrét");
paramNames.put("popis_obrázku", "Popis");
paramNames.put("dátum_narodenia", "Dátum narodenia");
paramNames.put("miesto_narodenia", "Miesto narodenia");
paramNames.put("dátum_úmrtia", "Dátum úmrtia");
paramNames.put("miesto_úmrtia", "Miesto úmrtia");
log.writeln("Vymena sablon '" + old_name + "' -> '" + new_name + " (" + paramNames.size() + " clankov na upravu).");
for (int ii = 0; ii < articles.length; ii++)
{
try
{
// text článku
String article_text = bot.readArticle(articles[ii]);
// Nájdeme v článku šablónu
Sablona sablFrom = Sablona.createFromArticle(article_text, old_name);
if (!sablFrom.isFounded())
{
log.writeln(" " + articles[ii] + " - Nema sablonu");
continue;
}
// Vytiahneme parametre z existujúcej šablóny a pretransformujeme ich na
// parametre novej šablóny
LinkedHashMap paramsTo = Sablona.simpleRenameParams(paramNames, sablFrom.getParams());
// Vytvoríme novú šablónu z parametrov
Sablona sablTo = Sablona.createFromParams(new_name, paramsTo);
// Nový text článku (výmena šablóny)
article_text = article_text.substring(0, sablFrom.getPosStart())
+ sablTo.toString()
+ article_text.substring(sablFrom.getPosEnd());
// Uloženie článku
bot.writeArticle(articles[ii], article_text, "Výmena šablóny ('" + old_name + "' -> '" +new_name + "')", true);
log.writeln(" " + articles[ii] + " - OK");
}
catch (JWikipediaBotException e)
{
log.writeln(" " + articles[ii] + " - " + e.getMessage());
}
}
log.writeln("Koniec vymeny sablon");
}
}