using DotNetWikiBot;
using System;
using System.Collections;
using System.Collections.Generic;
using System.IO;
using System.Net;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading;
using System.Web;
using System.Xml;
class MyBot : Bot
{
public static List<string> HämtaKategori(Site site, string katt)
{
List<string> r = new List<string>();
string url = "action=query&list=categorymembers&cmtitle=" + katt + "&cmprop=title|timestamp|sortkeyprefix&cmsort=timestamp&cmdir=older&cmlimit=5000&format=xml";
XmlDocument doc = new XmlDocument();
string tmpStr = site.PostDataAndGetResultHTM(site.site + "/w/api.php", url);
doc.LoadXml(tmpStr);
for (int i = 0; i < doc.GetElementsByTagName("cm").Count; i++)
{
string title = doc.GetElementsByTagName("cm")[i].Attributes.GetNamedItem("title").Value;
string sortkeyprefix = doc.GetElementsByTagName("cm")[i].Attributes.GetNamedItem("sortkeyprefix").Value;
if (sortkeyprefix == "")
r.Add(title);
}
return r;
}
public static void Hangsnaskod() //Definierar en rutin som heter "Hangsnakod"
{
{
string password = File.ReadAllText("koden.txt").Trim(); //Hämtar koden från en textfil lokalt på datorn
string botkonto = "HangsnaBot2";
Site site = new Site("http://sv.wikipedia.org", botkonto, password);
List<string> qvinns = new List<string>();
int räknare = 0;
qvinns = HämtaKategori(site, "Kategori:Kvinnor");
Page pwork = new Page(site, "Användare:HangsnaBot/UtanStandardsortering");
pwork.Load();
pwork.text = "\n\n==Senast körd 2013-03-22==\n";
foreach (string q in qvinns)
{
pwork.text += "\n* [[" + q + "]]";
räknare++;
}
qvinns = HämtaKategori(site, "Kategori:M%C3%A4n");
foreach (string q in qvinns)
{
pwork.text += "\n* [[" + q + "]]";
räknare++;
}
bool saved = false;
while (!saved)
{
try
{
if (räknare == 1) //Kontroll för att få rätt böjning av ordet "artikel/artiklar"
{
pwork.Save(pwork.text, räknare.ToString() + " artikel som saknar standardsortering", false);
saved = true;
Console.Write("Antal funna och sparade artiklar: " + räknare.ToString() + "\n \n");
}
else
{
pwork.Save(pwork.text, räknare.ToString() + " artiklar som saknar standardsortering", false);
saved = true;
Console.Write("Antal funna och sparade artiklar: " + räknare.ToString() + "\n \n");
}
}
catch (WebException e)
{
Console.WriteLine(e.Message);
}
}
}
}
public static void Main()
{
while (true) //Ger oändlig loop
{
Hangsnaskod(); //I "Hangsnaskod" finns hela det arbete som roboten har att utföra
Bot.Wait(900); //En paus i sekunder, innan det börjar igen...
}
}
}