using System;
using System.IO;
using System.Text;
using System.Text.RegularExpressions;
using System.Collections;
using System.Xml;
using System.Threading;
using DotNetWikiBot;
class MyBot : Bot
{
public void MyFunction1()
{
// Write your own function here
}
/// The entry point function. Start coding here.
public static void Main()
{
Site site = new Site("http://sv.wikipedia.org", "Innocent bot", "********");
//Page myPage2;
Page myPage3;
PageList pl = new PageList(site);
PageList pl2 = new PageList(site);
//Hämtar lista över kategorier med mall
pl.FillFromLinksToPage("Mall:Kategoriomdirigering");
pl.FillFromLinksToPage("Mall:Omdirigering kategori");
//Bara intresserad av ns-14 (Kategori:)
pl.RemoveNamespaces(new int[] {0,1,2,3,4,5,6,7,8,9,10,11,12,13,15,100,101});
string tmpStr = "";
string tmpStr2 = "";
int start = 0;
int end = 0;
int i = 0;
int antal = 0;
int type = -1;
foreach (Page myPage in pl)
{
myPage.Load();
//Console.WriteLine("Text1: " + myPage.title);
type = -1;
tmpStr = myPage.text;
start = tmpStr.IndexOf("{{Kategoriomdirigering|");
if(start != -1)
type = 0;
if(start == -1)
{
start = tmpStr.IndexOf("{{kategoriomdirigering|");
if(start != -1)
type = 1;
}
if(start == -1)
{
start = tmpStr.IndexOf("{{Omdirigering kategori|");
if(start != -1)
type = 2;
}
if(start == -1)
{
start = tmpStr.IndexOf("{{omdirigering kategori|");
if(start != -1)
type = 3;
}
if(type == -1)
{
Console.WriteLine("Mallen inte rätt angiven i: " + myPage.title);
//Console.WriteLine(tmpStr);
}
else
{
tmpStr = tmpStr.Remove(0, start);
end = tmpStr.IndexOf("|") + 1;
tmpStr = tmpStr.Remove(0, end);
if(tmpStr.IndexOf("|") == -1)
antal = tmpStr.IndexOf("}");
else
{
if(tmpStr.IndexOf("|")<tmpStr.IndexOf("}"))
antal = tmpStr.IndexOf("|");
else
antal = tmpStr.IndexOf("}");
}
for(i = 0; i < tmpStr.Length; i++)
{
if(tmpStr[0] == ' ')
{
tmpStr = tmpStr.Remove(0 , 1);
antal--;
}
}
tmpStr = tmpStr.Remove(antal , tmpStr.Length - antal);
//Console.WriteLine("Text2: " + tmpStr);
if(tmpStr.IndexOf("Kategori:") != -1)
tmpStr=tmpStr.Remove(0, 9);
if(tmpStr.IndexOf("kategori:") != -1)
tmpStr=tmpStr.Remove(0, 9);
if(tmpStr.IndexOf("Category:") != -1)
tmpStr=tmpStr.Remove(0, 9);
if(tmpStr.IndexOf("category:") != -1)
tmpStr=tmpStr.Remove(0, 9);
tmpStr2 = myPage.title;
tmpStr2 = tmpStr2.Remove(0,9);
tmpStr2 = char.ToUpper(tmpStr2[0]) + tmpStr2.Substring(1);
tmpStr = char.ToUpper(tmpStr[0]) + tmpStr.Substring(1);
Page px = new Page(site, "Kategori:"+tmpStr);
px.LoadEx();
if (px.Exists())
{
//Console.WriteLine("Text3: " + tmpStr);
//Console.WriteLine("Text: " + tmpStr2);
pl2.FillAllFromCategory( tmpStr2 );
pl.RemoveNamespaces(new int[] {10});
foreach (Page myPage2 in pl2)
{
myPage2.Load();
myPage2.text = myPage2.text.Replace("[[Category:", "[[Kategori:");
myPage2.text = myPage2.text.Replace("[[category:", "[[Kategori:");
myPage2.text = myPage2.text.Replace("[[kategori:", "[[Kategori:");
myPage2.text = myPage2.text.Replace("[[Kategori: ", "[[Kategori:");
myPage2.text = myPage2.text.Replace("[[Kategori:a", "[[Kategori:A");
myPage2.text = myPage2.text.Replace("[[Kategori:b", "[[Kategori:B");
myPage2.text = myPage2.text.Replace("[[Kategori:c", "[[Kategori:C");
myPage2.text = myPage2.text.Replace("[[Kategori:" + tmpStr2 + "]]", "[[Kategori:" + tmpStr +"]]");
myPage2.text = myPage2.text.Replace("[[Kategori:" + tmpStr2 + "|", "[[Kategori:" + tmpStr +"|");
myPage2.Save(myPage2.text, "Kategoribyte " + tmpStr2 + " -> " + tmpStr, true);
Console.WriteLine(myPage2.title+" "+ tmpStr2 + " -> " + tmpStr);
Thread.Sleep(7000);
}
}
}
}
}
}