משתמש:Lavallen/First code
מראה
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 System.Net; using System.Web; using DotNetWikiBot; class MyBot : Bot { public static void Main() { Site site = new Site("http://he.wikipedia.org", "Username", "password");//log in to hewiki Site site2 = new Site("link to your local wiki", "Username", "password");//log in to your local wiki Page myPage = new Page(site, "User:Innocent bot/Cities"); myPage.Load(); string alla = myPage.text; string[] städer; städer = alla.Trim().Replace("\n", "#").Split('#'); Console.WriteLine(städer.Length); Page myPage2 = new Page(site, "User:Innocent bot/States"); myPage2.Load(); //On svwp, a template with multi-country-purpose is used. Here you have to change depending on the template-infrastructure on hewiki string mall = "{{Infobox city\n"+ "|name = <name>\n"+ "|other_name = \n"+ "|category = <category>\n"+ "|motto = \n"+ "|pict = \n"+ "|pict_text = \n"+ "|flag = \n"+ "|insignia = \n"+ "|land = USA\n"+ "|state = <state>\n"+ "|county = <county>\n"+ "|mayor = \n"+ "|population = <population>\n"+ "|population_note = <population_note>\n"+ "|population_year = <population_year>\n"+ "|founded_year = \n"+ "|hight = \n"+ "|area = <area>\n"+ "|area_note = <area_note>\n"+ "|area_year = <area_year>\n"+ "|area_land = <area_land>\n"+ "|area_water = <area_water>\n"+ "|lat_g = <lat_g>|lat_m = <lat_m>|lat_s = <lat_s>|lat_NS = <lat_NS>\n"+//On svwp, the coordinates can be installed in the infobox, instead of adding them to "|long_g = <long_g>|long_m = <long_m>|long_s = <long_s>|long_EW = <long_EW>\n"+//a Coord-template. "|url = \n"+ "|footnote = \n"+ "|map = \n"+//These maps are made by the help of the Geobox-template on svwp. I do not know if you "|map_text = \n"+//have something similair on he-wiki, "|positionmap = \n"+ "|map 2 = \n"+ "|map2_text = \n"+ "|timezone = <timezone>\n"+ "|UTC diff = <UTC diff>\n"+ "|timezone_DST = <timezone_DST>\n"+ "|DST diff = <DST diff>\n"+ "|FIPS code = <fips>\n"+ "}}\n\n\n== References ==\n<references/>"; for(int i = 1; i<städer.Length-2; i++) { string a = städer[i]; string fips = a.Substring(18,7); a = a.Substring(32); a = a.Replace("</option>", ""); string name = a.Substring(0,a.IndexOf("(")).Trim(); Console.WriteLine(fips); Console.WriteLine(name); string category = a.Substring(a.IndexOf("(")+1); category = category.Substring(0,category.IndexOf(")")); //category is city/town/CDP/village. I write this in English in the template, and let the template "translate" it //to swedish. It is a little hard in swedish, since we do not have separate words for a 'town', a 'city' and a larger 'village' string state = myPage2.GetTemplateParameter("Nummer", fips.Substring(0,2))[0];//Get the name of state "nn" from "User:Innocent bot/States" Console.WriteLine(name+" "+category+" "+state); if(state == "Alabama")//This is not essential, but since I have made one or two states at the time, I have used it, { Page myPage3 = new Page(site2, "Project:Project USA/Cities/"+name+", "+state);//You have to use "site2" instead of "site" here. myPage3.Load(); if(!myPage3.Exists())//This line check if the page already have been made, to not do redo something { myPage3.text = mall; myPage3.text = myPage3.text.Replace("<state>", "[["+state+"]]"); myPage3.text = myPage3.text.Replace("<name>", name); myPage3.text = myPage3.text.Replace("<category>", category); myPage3.text = myPage3.text.Replace("<fips>", fips); Console.WriteLine(myPage3.text); myPage3.Save(myPage3.text, "Set up a projectpage for "+name+", "+delstat, false); Bot.Wait(10);//Wait 10 seconds between edits... } } } } }