Wikipedia:Projekt DotNetWikiBot Framework/Lsjbot/CebuanoElements
Utseende
//Code written by Lsj to create articles about chemical elements for Cebuano wp using System; using System.IO; using System.Text; using System.Text.RegularExpressions; using System.Collections; using System.Collections.Generic; using System.Xml; using System.Threading; using DotNetWikiBot; class MyBot : Bot { public static void Main() { Console.Write("Password: "); string password = Console.ReadLine(); string botkonto = "Lsjbot"; Site site = new Site("http://ceb.wikipedia.org", botkonto, password); Site ensite = new Site("http://en.wikipedia.org", botkonto, password); Dictionary<string,string> elname = new Dictionary<string,string>(); Dictionary<string, string> altname = new Dictionary<string, string>(); using (StreamReader sr = new StreamReader("C:\\DotNetWikiBot\\elements.csv")) { while (!sr.EndOfStream) { String line = sr.ReadLine(); //Console.WriteLine(line); string[] words = line.Split(';'); for (int jj = 1; jj < words.Length; jj++) { words[jj] = words[jj].Trim(); if (words[jj].Length < 3) words[jj] = ""; } if ( words.Length > 2 ) elname.Add(words[1],words[2]); if ((words.Length > 3)&& (words[3].Length > 2)) altname.Add(words[1], words[3]); } } DateTime oldtime = DateTime.Now; foreach(String elen in elname.Keys) { DateTime nexttime = oldtime.AddSeconds(10); Page pen = new Page(ensite, elen); Page penbox = new Page(ensite, "Template:Infobox " + elen); Page p = new Page(site, elname[elen]); Page pbox = new Page(site, "Plantilya:Infobox " + elen); p.Load(); if (p.Exists()) continue; pen.Load(); if (!pen.Exists()) continue; if (!pen.text.Contains("nfobox " + elen)) continue; penbox.Load(); if (!penbox.Exists()) continue; pbox.Load(); if (!pbox.Exists()) { pbox.text = penbox.text; } int z = -1; foreach (string s in penbox.GetTemplateParameter("Elementbox", "number")) z = Convert.ToInt32(s); string symbol = "Xx"; foreach (string s in penbox.GetTemplateParameter("Elementbox", "symbol")) symbol = s; string series = ""; foreach (string s in penbox.GetTemplateParameter("Elementbox", "series")) series = s; string phase = ""; foreach (string s in penbox.GetTemplateParameter("Elementbox", "phase")) phase = s; string cebseries = ""; switch (series) { case "metal": cebseries = "puthaw"; break; case "other metal": cebseries = "puthaw"; break; case "nonmetal": cebseries = "wala puthaw"; break; case "transition metal": cebseries = "puthaw nga transisyon"; break; case "actinide": cebseries = "aktinido"; break; case "noble gas": cebseries = "gas nga halangdon"; break; case "alkaline earth metal": cebseries = "puthaw"; break; case "alkali metal": cebseries = "puthaw"; break; case "lanthanide": cebseries = "puthaw nga lantanido"; break; default: cebseries = series; break; } pbox.SetTemplateParameter("Elementbox", "series", cebseries, false); string cebphase = ""; switch (phase) { case "gas": cebphase = "gas"; break; case "solid": cebphase = "magahi"; break; case "liquid": cebphase = "likido"; break; } pbox.SetTemplateParameter("Elementbox", "phase", cebphase, false); p.text = "{{paghimo ni bot|Lsjbot|elemento|date=2012-12}}\n"; p.text += "{{Infobox " + elen + "}}\n\n"; p.text += "Ang '''" + elname[elen] + "''' "; if (altname.ContainsKey(elen)) { p.text += "o '''" + altname[elen] + "''' "; Page predalt = new Page(site, elen); predalt.Load(); if (!predalt.Exists()) { predalt.text = "#REDIRECT [[" + p.title + "]]"; predalt.Save(); } } if (elen != elname[elen]) { p.text += "([[Iningles]] ''" + elen + "'') "; Page preden = new Page(site, elen); preden.Load(); if (!preden.Exists()) { preden.text = "#REDIRECT [[" + p.title + "]]"; preden.Save(); } } p.text += "mao ang [[elementong kimiko]] sa [[talaang peryodiko]] nga may simbolo nga '''"+symbol+"''' ug kaiphan nga atomik "+z.ToString()+". "; p.text += "Ang " + elname[elen] + " mao ang [["+cebseries+"]].\n\n"; p.text += "== Ang mga gi basihan niini ==\n\n<references/>\n\n"; p.text += "[[Kategoriya:Mga elementong kimiko]]\n"; p.text += "[[Kategoriya:"+cebseries+"]]\n\n"; string[] iwen = new String[1] {"en:"+pen.title}; p.AddInterWikiLinks(pen.GetInterWikiLinks()); p.AddInterWikiLinks(iwen); pbox.Save(); p.Save(); Page predsym = new Page(site, symbol.ToUpper()); predsym.Load(); if (!predsym.Exists()) { predsym.text = "Ang '''"+symbol.ToUpper()+"''' puyde mopasabot sa:\n\n* Ang elementong kimiko '''[[" + p.title + "]]'''\n\n{{giklaro}}"; predsym.Save(); } Page predsym2 = new Page(site, symbol); predsym2.Load(); if (!predsym2.Exists()) { predsym2.text = "#REDIRECT [[" + predsym.title + "]]"; predsym2.Save(); } while (DateTime.Now.CompareTo(nexttime) < 0) continue; oldtime = DateTime.Now; //Console.WriteLine("<return>"); //Console.ReadLine(); } } }