Wikipedia:Projekt DotNetWikiBot Framework/Lsjbot/CreateFromTagalog
Utseende
//Originally from [[Wikipedia:Projekt DotNetWikiBot Framework/Innocent bot/Ny parameter i Mall Ishockeyspelare]] //Extensively modified by Lsj 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.Web; using System.Net; using DotNetWikiBot; class MyBot : Bot { private string CleanLink(string origlink) { string sbrack = "[]'† ?"; char[] brackets = sbrack.ToCharArray(); string s = origlink.Trim(brackets); if (s.Contains("|")) s = s.Remove(s.IndexOf("|")); return s; } public static void Main() { Console.Write("Password: "); string password = Console.ReadLine(); Site svsite = new Site("http://sv.wikipedia.org", "Lsjbot", password); Site tlsite = new Site("http://tl.wikipedia.org", "Lsjbot", password); Site cmsite = new Site("http://commons.wikimedia.org", "Lsjbot", password); PageList pl = new PageList(tlsite); //Select how to get pages. Uncomment as needed. //Find articles from a category pl.FillFromCategoryTree("Mga bayan at lungsod sa Pilipinas"); //Find articles from all the links to a template, mostly useful on very small wikis // pl.FillFromLinksToPage("Mall:Taxobox"); //Set specific article: //Page pp = new Page(tlsite, "Agdangan, Quezon");pl.Add(pp); //Skip all namespaces except regular articles: pl.RemoveNamespaces(new int[] {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,100,101}); Dictionary<string, string> provinsdict = new Dictionary<string, string>(); Dictionary<string, string> paramdict = new Dictionary<string, string>(); Dictionary<string, string> regiondict = new Dictionary<string, string>(); Dictionary<string, string> islanddict = new Dictionary<string, string>(); string sr1 = "Abra (provins)"; string er1 = "Kordiljärernas administrativa region"; regiondict.Add(sr1, er1); string sr2 = "Agusan del Norte"; string er2 = "Caraga"; regiondict.Add(sr2, er2); string sr3 = "Agusan del Sur"; string er3 = "Caraga"; regiondict.Add(sr3, er3); string sr4 = "Aklan"; string er4 = "Västra Visayas"; regiondict.Add(sr4, er4); string sr5 = "Albay"; string er5 = "Bikolregionen"; regiondict.Add(sr5, er5); string sr6 = "Antique (provins)"; string er6 = "Västra Visayas"; regiondict.Add(sr6, er6); string sr7 = "Apayao"; string er7 = "Kordiljärernas administrativa region"; regiondict.Add(sr7, er7); string sr8 = "Aurora (provins)"; string er8 = "Centrala Luzon"; regiondict.Add(sr8, er8); string sr9 = "Basilan (provins)"; string er9 = "Muslimska Mindanao"; regiondict.Add(sr9, er9); string sr10 = "Bataan"; string er10 = "Centrala Luzon"; regiondict.Add(sr10, er10); string sr11 = "Batanes"; string er11 = "Cagayandalen"; regiondict.Add(sr11, er11); string sr12 = "Batangas"; string er12 = "CALABARZON"; regiondict.Add(sr12, er12); string sr13 = "Benguet"; string er13 = "Kordiljärernas administrativa region"; regiondict.Add(sr13, er13); string sr14 = "Bergsprovinsen"; string er14 = "Kordiljärernas administrativa region"; regiondict.Add(sr14, er14); string sr15 = "Biliran (provins)"; string er15 = "Östra Visayas"; regiondict.Add(sr15, er15); string sr16 = "Bohol"; string er16 = "Centrala Visayas"; regiondict.Add(sr16, er16); string sr17 = "Bukidnon"; string er17 = "Norra Mindanao"; regiondict.Add(sr17, er17); string sr18 = "Bulacan"; string er18 = "Centrala Luzon"; regiondict.Add(sr18, er18); string sr19 = "Cagayan"; string er19 = "Cagayandalen"; regiondict.Add(sr19, er19); string sr20 = "Camarines Norte"; string er20 = "Bikolregionen"; regiondict.Add(sr20, er20); string sr21 = "Camarines Sur"; string er21 = "Bikolregionen"; regiondict.Add(sr21, er21); string sr22 = "Camiguin"; string er22 = "Norra Mindanao"; regiondict.Add(sr22, er22); string sr23 = "Capiz"; string er23 = "Västra Visayas"; regiondict.Add(sr23, er23); string sr24 = "Catanduanes"; string er24 = "Bikolregionen"; regiondict.Add(sr24, er24); string sr25 = "Cavite"; string er25 = "CALABARZON"; regiondict.Add(sr25, er25); string sr26 = "Cebu"; string er26 = "Centrala Visayas"; regiondict.Add(sr26, er26); string sr27 = "Composteladalen"; string er27 = "Davaoregionen"; regiondict.Add(sr27, er27); string sr28 = "Cotabato"; string er28 = "SOCCSKSARGEN"; regiondict.Add(sr28, er28); string sr29 = "Davao del Norte"; string er29 = "Davaoregionen"; regiondict.Add(sr29, er29); string sr30 = "Davao del Sur"; string er30 = "Davaoregionen"; regiondict.Add(sr30, er30); string sr31 = "Davao Oriental"; string er31 = "Davaoregionen"; regiondict.Add(sr31, er31); string sr32 = "Dinagatöarna (provins)"; string er32 = "Caraga"; regiondict.Add(sr32, er32); string sr33 = "Guimaras"; string er33 = "Västra Visayas"; regiondict.Add(sr33, er33); string sr34 = "Ifugao"; string er34 = "Kordiljärernas administrativa region"; regiondict.Add(sr34, er34); string sr35 = "Iloilo (provins)"; string er35 = "Västra Visayas"; regiondict.Add(sr35, er35); string sr36 = "Isabela (provins)"; string er36 = "Cagayandalen"; regiondict.Add(sr36, er36); string sr37 = "Kalinga"; string er37 = "Kordiljärernas administrativa region"; regiondict.Add(sr37, er37); string sr38 = "La Union (provins)"; string er38 = "Ilocosregionen"; regiondict.Add(sr38, er38); string sr39 = "Laguna (provins)"; string er39 = "CALABARZON"; regiondict.Add(sr39, er39); string sr40 = "Lanao del Norte"; string er40 = "Norra Mindanao"; regiondict.Add(sr40, er40); string sr41 = "Lanao del Sur"; string er41 = "Muslimska Mindanao"; regiondict.Add(sr41, er41); string sr42 = "Leyte (provins)"; string er42 = "Östra Visayas"; regiondict.Add(sr42, er42); string sr43 = "Maguindanao"; string er43 = "Muslimska Mindanao"; regiondict.Add(sr43, er43); string sr44 = "Marinduque"; string er44 = "MIMAROPA"; regiondict.Add(sr44, er44); string sr45 = "Masbate (provins)"; string er45 = "Bikolregionen"; regiondict.Add(sr45, er45); string sr46 = "Misamis Occidental"; string er46 = "Norra Mindanao"; regiondict.Add(sr46, er46); string sr47 = "Misamis Oriental"; string er47 = "Norra Mindanao"; regiondict.Add(sr47, er47); string sr48 = "Negros Occidental"; string er48 = "Västra Visayas"; regiondict.Add(sr48, er48); string sr49 = "Negros Oriental"; string er49 = "Centrala Visayas"; regiondict.Add(sr49, er49); string sr50 = "Norra Ilocos"; string er50 = "Ilocosregionen"; regiondict.Add(sr50, er50); string sr51 = "Norra Samar"; string er51 = "Östra Visayas"; regiondict.Add(sr51, er51); string sr52 = "Nueva Ecija"; string er52 = "Centrala Luzon"; regiondict.Add(sr52, er52); string sr53 = "Nueva Vizcaya"; string er53 = "Cagayandalen"; regiondict.Add(sr53, er53); string sr54 = "Occidental Mindoro"; string er54 = "MIMAROPA"; regiondict.Add(sr54, er54); string sr55 = "Oriental Mindoro"; string er55 = "MIMAROPA"; regiondict.Add(sr55, er55); string sr56 = "Palawan"; string er56 = "MIMAROPA"; regiondict.Add(sr56, er56); string sr57 = "Pampanga"; string er57 = "Centrala Luzon"; regiondict.Add(sr57, er57); string sr58 = "Pangasinan (provins)"; string er58 = "Ilocosregionen"; regiondict.Add(sr58, er58); string sr59 = "Quezon"; string er59 = "CALABARZON"; regiondict.Add(sr59, er59); string sr60 = "Quirino"; string er60 = "Cagayandalen"; regiondict.Add(sr60, er60); string sr61 = "Rizal"; string er61 = "CALABARZON"; regiondict.Add(sr61, er61); string sr62 = "Romblon"; string er62 = "MIMAROPA"; regiondict.Add(sr62, er62); string sr63 = "Samar (provins)"; string er63 = "Östra Visayas"; regiondict.Add(sr63, er63); string sr64 = "Sarangani (provins)"; string er64 = "SOCCSKSARGEN"; regiondict.Add(sr64, er64); string sr65 = "Siquijor (provins)"; string er65 = "Centrala Visayas"; regiondict.Add(sr65, er65); string sr66 = "Sorsogon (provins)"; string er66 = "Bikolregionen"; regiondict.Add(sr66, er66); string sr67 = "Sultan Kudarat"; string er67 = "SOCCSKSARGEN"; regiondict.Add(sr67, er67); string sr68 = "Sulu (provins)"; string er68 = "Muslimska Mindanao"; regiondict.Add(sr68, er68); string sr69 = "Surigao del Norte"; string er69 = "Caraga"; regiondict.Add(sr69, er69); string sr70 = "Surigao del Sur"; string er70 = "Caraga"; regiondict.Add(sr70, er70); string sr71 = "Södra Cotabato"; string er71 = "SOCCSKSARGEN"; regiondict.Add(sr71, er71); string sr72 = "Södra Ilocos"; string er72 = "Ilocosregionen"; regiondict.Add(sr72, er72); string sr73 = "Södra Leyte"; string er73 = "Östra Visayas"; regiondict.Add(sr73, er73); string sr74 = "Tarlac"; string er74 = "Centrala Luzon"; regiondict.Add(sr74, er74); string sr75 = "Tawi-Tawi"; string er75 = "Muslimska Mindanao"; regiondict.Add(sr75, er75); string sr76 = "Zambales"; string er76 = "Centrala Luzon"; regiondict.Add(sr76, er76); string sr77 = "Zamboanga del Norte"; string er77 = "Zamboangahalvön"; regiondict.Add(sr77, er77); string sr78 = "Zamboanga del Sur"; string er78 = "Zamboangahalvön"; regiondict.Add(sr78, er78); string sr79 = "Zamboanga Sibugay"; string er79 = "Zamboangahalvön"; regiondict.Add(sr79, er79); string sr80 = "Östra Samar"; string er80 = "Östra Visayas"; regiondict.Add(sr80, er80); string sp1 = "Abra (provins)"; string ep1 = "Abra"; provinsdict.Add(ep1, sp1); string sp2 = "Agusan del Norte"; string ep2 = "Agusan del Norte"; provinsdict.Add(ep2, sp2); string sp3 = "Agusan del Sur"; string ep3 = "Agusan del Sur"; provinsdict.Add(ep3, sp3); string sp4 = "Aklan"; string ep4 = "Aklan (lalawigan)"; provinsdict.Add(ep4, sp4); string sp5 = "Albay"; string ep5 = "Albay"; provinsdict.Add(ep5, sp5); string sp6 = "Antique (provins)"; string ep6 = "Antique"; provinsdict.Add(ep6, sp6); string sp7 = "Apayao"; string ep7 = "Apayao"; provinsdict.Add(ep7, sp7); string sp8 = "Aurora (provins)"; string ep8 = "Aurora"; provinsdict.Add(ep8, sp8); string sp9 = "Basilan (provins)"; string ep9 = "Basilan"; provinsdict.Add(ep9, sp9); string sp10 = "Bataan"; string ep10 = "Bataan"; provinsdict.Add(ep10, sp10); string sp11 = "Batanes"; string ep11 = "Batanes"; provinsdict.Add(ep11, sp11); string sp12 = "Batangas"; string ep12 = "Batangas"; provinsdict.Add(ep12, sp12); string sp13 = "Benguet"; string ep13 = "Benguet"; provinsdict.Add(ep13, sp13); string sp14 = "Bergsprovinsen"; string ep14 = "Lalawigang Bulubundukin"; provinsdict.Add(ep14, sp14); string sp15 = "Biliran (provins)"; string ep15 = "Biliran"; provinsdict.Add(ep15, sp15); string sp16 = "Bohol"; string ep16 = "Bohol"; provinsdict.Add(ep16, sp16); string sp17 = "Bukidnon"; string ep17 = "Bukidnon"; provinsdict.Add(ep17, sp17); string sp18 = "Bulacan"; string ep18 = "Bulacan"; provinsdict.Add(ep18, sp18); string sp19 = "Cagayan"; string ep19 = "Cagayan (lalawigan)"; provinsdict.Add(ep19, sp19); string sp20 = "Camarines Norte"; string ep20 = "Camarines Norte"; provinsdict.Add(ep20, sp20); string sp21 = "Camarines Sur"; string ep21 = "Camarines Sur"; provinsdict.Add(ep21, sp21); string sp22 = "Camiguin"; string ep22 = "Camiguin"; provinsdict.Add(ep22, sp22); string sp23 = "Capiz"; string ep23 = "Capiz"; provinsdict.Add(ep23, sp23); string sp24 = "Catanduanes"; string ep24 = "Catanduanes"; provinsdict.Add(ep24, sp24); string sp25 = "Cavite"; string ep25 = "Kabite"; provinsdict.Add(ep25, sp25); string sp26 = "Cebu"; string ep26 = "Cebu (lalawigan)"; provinsdict.Add(ep26, sp26); string sp27 = "Composteladalen"; string ep27 = "Lambak ng Compostela"; provinsdict.Add(ep27, sp27); string sp28 = "Cotabato"; string ep28 = "Cotabato (lalawigan)"; provinsdict.Add(ep28, sp28); string sp29 = "Davao del Norte"; string ep29 = "Davao del Norte"; provinsdict.Add(ep29, sp29); string sp30 = "Davao del Sur"; string ep30 = "Davao del Sur"; provinsdict.Add(ep30, sp30); string sp31 = "Davao Oriental"; string ep31 = "Davao Oriental"; provinsdict.Add(ep31, sp31); string sp32 = "Dinagatöarna (provins)"; string ep32 = "Kapuluang Dinagat"; provinsdict.Add(ep32, sp32); string sp33 = "Guimaras"; string ep33 = "Guimaras"; provinsdict.Add(ep33, sp33); string sp34 = "Ifugao"; string ep34 = "Ifugao"; provinsdict.Add(ep34, sp34); string sp35 = "Iloilo (provins)"; string ep35 = "Iloilo (lalawigan)"; provinsdict.Add(ep35, sp35); string sp36 = "Isabela (provins)"; string ep36 = "Isabela (lalawigan)"; provinsdict.Add(ep36, sp36); string sp37 = "Kalinga"; string ep37 = "Kalinga"; provinsdict.Add(ep37, sp37); string sp38 = "La Union (provins)"; string ep38 = "La Union"; provinsdict.Add(ep38, sp38); string sp39 = "Laguna (provins)"; string ep39 = "Laguna"; provinsdict.Add(ep39, sp39); string sp40 = "Lanao del Norte"; string ep40 = "Lanao del Norte"; provinsdict.Add(ep40, sp40); string sp41 = "Lanao del Sur"; string ep41 = "Lanao del Sur"; provinsdict.Add(ep41, sp41); string sp42 = "Leyte (provins)"; string ep42 = "Leyte"; provinsdict.Add(ep42, sp42); string sp43 = "Maguindanao"; string ep43 = "Maguindanao"; provinsdict.Add(ep43, sp43); string sp44 = "Marinduque"; string ep44 = "Marinduque"; provinsdict.Add(ep44, sp44); string sp45 = "Masbate (provins)"; string ep45 = "Masbate"; provinsdict.Add(ep45, sp45); string sp46 = "Misamis Occidental"; string ep46 = "Misamis Occidental"; provinsdict.Add(ep46, sp46); string sp47 = "Misamis Oriental"; string ep47 = "Misamis Oriental"; provinsdict.Add(ep47, sp47); string sp48 = "Negros Occidental"; string ep48 = "Negros Occidental"; provinsdict.Add(ep48, sp48); string sp49 = "Negros Oriental"; string ep49 = "Negros Oriental"; provinsdict.Add(ep49, sp49); string sp50 = "Norra Ilocos"; string ep50 = "Ilocos Norte"; provinsdict.Add(ep50, sp50); string sp51 = "Norra Samar"; string ep51 = "Hilagang Samar"; provinsdict.Add(ep51, sp51); string sp52 = "Nueva Ecija"; string ep52 = "Nueva Ecija"; provinsdict.Add(ep52, sp52); string sp53 = "Nueva Vizcaya"; string ep53 = "Nueva Vizcaya"; provinsdict.Add(ep53, sp53); string sp54 = "Occidental Mindoro"; string ep54 = "Occidental Mindoro"; provinsdict.Add(ep54, sp54); string sp55 = "Oriental Mindoro"; string ep55 = "Oriental Mindoro"; provinsdict.Add(ep55, sp55); string sp56 = "Palawan"; string ep56 = "Palawan"; provinsdict.Add(ep56, sp56); string sp57 = "Pampanga"; string ep57 = "Pampanga"; provinsdict.Add(ep57, sp57); string sp58 = "Pangasinan (provins)"; string ep58 = "Pangasinan"; provinsdict.Add(ep58, sp58); string sp59 = "Quezon"; string ep59 = "Quezon"; provinsdict.Add(ep59, sp59); string sp60 = "Quirino"; string ep60 = "Quirino"; provinsdict.Add(ep60, sp60); string sp61 = "Rizal"; string ep61 = "Rizal (lalawigan)"; provinsdict.Add(ep61, sp61); string sp62 = "Romblon"; string ep62 = "Romblon"; provinsdict.Add(ep62, sp62); string sp63 = "Samar (provins)"; string ep63 = "Samar (lalawigan)"; provinsdict.Add(ep63, sp63); string sp64 = "Sarangani (provins)"; string ep64 = "Sarangani"; provinsdict.Add(ep64, sp64); string sp65 = "Siquijor (provins)"; string ep65 = "Siquijor"; provinsdict.Add(ep65, sp65); string sp66 = "Sorsogon (provins)"; string ep66 = "Sorsogon"; provinsdict.Add(ep66, sp66); string sp67 = "Sultan Kudarat"; string ep67 = "Sultan Kudarat"; provinsdict.Add(ep67, sp67); string sp68 = "Sulu (provins)"; string ep68 = "Sulu"; provinsdict.Add(ep68, sp68); string sp69 = "Surigao del Norte"; string ep69 = "Surigao del Norte"; provinsdict.Add(ep69, sp69); string sp70 = "Surigao del Sur"; string ep70 = "Surigao del Sur"; provinsdict.Add(ep70, sp70); string sp71 = "Södra Cotabato"; string ep71 = "Timog Cotabato"; provinsdict.Add(ep71, sp71); string sp72 = "Södra Ilocos"; string ep72 = "Ilocos Sur"; provinsdict.Add(ep72, sp72); string sp73 = "Södra Leyte"; string ep73 = "Katimugang Leyte"; provinsdict.Add(ep73, sp73); string sp74 = "Tarlac"; string ep74 = "Tarlac"; provinsdict.Add(ep74, sp74); string sp75 = "Tawi-Tawi"; string ep75 = "Tawi-Tawi"; provinsdict.Add(ep75, sp75); string sp76 = "Zambales"; string ep76 = "Zambales"; provinsdict.Add(ep76, sp76); string sp77 = "Zamboanga del Norte"; string ep77 = "Zamboanga del Norte"; provinsdict.Add(ep77, sp77); string sp78 = "Zamboanga del Sur"; string ep78 = "Zamboanga del Sur"; provinsdict.Add(ep78, sp78); string sp79 = "Zamboanga Sibugay"; string ep79 = "Zamboanga Sibugay"; provinsdict.Add(ep79, sp79); string sp80 = "Östra Samar"; string ep80 = "Silangang Samar"; provinsdict.Add(ep80, sp80); string si1 = "area_water_km2"; string sg1 = "yta_vatten"; paramdict.Add(si1, sg1); string si2 = "area_land_km2"; string sg2 = "yta_land"; paramdict.Add(si2, sg2); string si3 = "areakm2"; string sg3 = "yta"; paramdict.Add(si3, sg3); string si4 = "website"; string sg4 = "url"; paramdict.Add(si4, sg4); string si5 = "timezone_DST"; string sg5 = "tidszon_DST"; paramdict.Add(si5, sg5); string si6 = "timezone"; string sg6 = "tidszon"; paramdict.Add(si6, sg6); string si7 = "province"; string sg7 = "indelning"; paramdict.Add(si7, sg7); string si8 = "mayor"; string sg8 = "styre"; paramdict.Add(si8, sg8); string si9 = "sealfile"; string sg9 = "sigill"; paramdict.Add(si9, sg9); string si11 = "longs"; string sg11 = "long_s"; paramdict.Add(si11, sg11); string si12 = "longm"; string sg12 = "long_m"; paramdict.Add(si12, sg12); string si13 = "longd"; string sg13 = "long_g"; paramdict.Add(si13, sg13); string si14 = "longEW"; string sg14 = "long_EW"; paramdict.Add(si14, sg14); string si15 = "lats"; string sg15 = "lat_s"; paramdict.Add(si15, sg15); string si16 = "latNS"; string sg16 = "lat_NS"; paramdict.Add(si16, sg16); string si17 = "latm"; string sg17 = "lat_m"; paramdict.Add(si17, sg17); string si18 = "latd"; string sg18 = "lat_g"; paramdict.Add(si18, sg18); string si19 = "locatormapfile"; string sg19 = "bild"; paramdict.Add(si19, sg19); string si20 = "infoboxtitle"; string sg20 = "annat_namn"; paramdict.Add(si20, sg20); string si21 = "population_as_of"; string sg21 = "folkmängd_år"; paramdict.Add(si21, sg21); string si22 = "population_footnotes"; string sg22 = "folkmängd_not"; paramdict.Add(si22, sg22); string si23 = "population_total"; string sg23 = "folkmängd"; paramdict.Add(si23, sg23); string si24 = "image_flag"; string sg24 = "fana"; paramdict.Add(si24, sg24); string si26 = "image_caption"; string sg26 = "bildtext"; paramdict.Add(si26, sg26); string is1 = "Abra (provins)"; string ii1 = "Luzon"; islanddict.Add(is1, ii1); string is2 = "Agusan del Norte"; string ii2 = "Mindanao"; islanddict.Add(is2, ii2); string is3 = "Agusan del Sur"; string ii3 = "Mindanao"; islanddict.Add(is3, ii3); string is4 = "Aklan"; string ii4 = "Panay"; islanddict.Add(is4, ii4); string is5 = "Albay"; string ii5 = "Luzon"; islanddict.Add(is5, ii5); string is6 = "Antique (provins)"; string ii6 = "Panay"; islanddict.Add(is6, ii6); string is7 = "Apayao"; string ii7 = "Luzon"; islanddict.Add(is7, ii7); string is8 = "Aurora (provins)"; string ii8 = "Luzon"; islanddict.Add(is8, ii8); string is9 = "Basilan (provins)"; string ii9 = "Basilan"; islanddict.Add(is9, ii9); string is10 = "Bataan"; string ii10 = "Luzon"; islanddict.Add(is10, ii10); string is11 = "Batanes"; string ii11 = "Luzon"; islanddict.Add(is11, ii11); string is12 = "Batangas"; string ii12 = "Luzon"; islanddict.Add(is12, ii12); string is13 = "Benguet"; string ii13 = "Luzon"; islanddict.Add(is13, ii13); string is14 = "Bergsprovinsen"; string ii14 = "Luzon"; islanddict.Add(is14, ii14); string is15 = "Biliran (provins)"; string ii15 = "Biliran"; islanddict.Add(is15, ii15); string is16 = "Bohol"; string ii16 = ""; islanddict.Add(is16, ii16); string is17 = "Bukidnon"; string ii17 = "Mindanao"; islanddict.Add(is17, ii17); string is18 = "Bulacan"; string ii18 = "Luzon"; islanddict.Add(is18, ii18); string is19 = "Cagayan"; string ii19 = "Luzon"; islanddict.Add(is19, ii19); string is20 = "Camarines Norte"; string ii20 = "Luzon"; islanddict.Add(is20, ii20); string is21 = "Camarines Sur"; string ii21 = "Luzon"; islanddict.Add(is21, ii21); string is22 = "Camiguin"; string ii22 = "Mindanao"; islanddict.Add(is22, ii22); string is23 = "Capiz"; string ii23 = "Panay"; islanddict.Add(is23, ii23); string is24 = "Catanduanes"; string ii24 = "Luzon"; islanddict.Add(is24, ii24); string is25 = "Cavite"; string ii25 = "Luzon"; islanddict.Add(is25, ii25); string is26 = "Cebu"; string ii26 = ""; islanddict.Add(is26, ii26); string is27 = "Composteladalen"; string ii27 = "Mindanao"; islanddict.Add(is27, ii27); string is28 = "Cotabato"; string ii28 = "Mindanao"; islanddict.Add(is28, ii28); string is29 = "Davao del Norte"; string ii29 = "Mindanao"; islanddict.Add(is29, ii29); string is30 = "Davao del Sur"; string ii30 = "Mindanao"; islanddict.Add(is30, ii30); string is31 = "Davao Oriental"; string ii31 = "Mindanao"; islanddict.Add(is31, ii31); string is32 = "Dinagatöarna (provins)"; string ii32 = ""; islanddict.Add(is32, ii32); string is33 = "Guimaras"; string ii33 = ""; islanddict.Add(is33, ii33); string is34 = "Ifugao"; string ii34 = "Luzon"; islanddict.Add(is34, ii34); string is35 = "Iloilo (provins)"; string ii35 = "Panay"; islanddict.Add(is35, ii35); string is36 = "Isabela (provins)"; string ii36 = "Luzon"; islanddict.Add(is36, ii36); string is37 = "Kalinga"; string ii37 = "Luzon"; islanddict.Add(is37, ii37); string is38 = "La Union (provins)"; string ii38 = "Luzon"; islanddict.Add(is38, ii38); string is39 = "Laguna (provins)"; string ii39 = "Luzon"; islanddict.Add(is39, ii39); string is40 = "Lanao del Norte"; string ii40 = "Mindanao"; islanddict.Add(is40, ii40); string is41 = "Lanao del Sur"; string ii41 = "Mindanao"; islanddict.Add(is41, ii41); string is42 = "Leyte (provins)"; string ii42 = "Leyte"; islanddict.Add(is42, ii42); string is43 = "Maguindanao"; string ii43 = "Mindanao"; islanddict.Add(is43, ii43); string is44 = "Marinduque"; string ii44 = ""; islanddict.Add(is44, ii44); string is45 = "Masbate (provins)"; string ii45 = ""; islanddict.Add(is45, ii45); string is46 = "Misamis Occidental"; string ii46 = "Mindanao"; islanddict.Add(is46, ii46); string is47 = "Misamis Oriental"; string ii47 = "Mindanao"; islanddict.Add(is47, ii47); string is48 = "Negros Occidental"; string ii48 = "Negros"; islanddict.Add(is48, ii48); string is49 = "Negros Oriental"; string ii49 = "Negros"; islanddict.Add(is49, ii49); string is50 = "Norra Ilocos"; string ii50 = "Luzon"; islanddict.Add(is50, ii50); string is51 = "Norra Samar"; string ii51 = "Samar"; islanddict.Add(is51, ii51); string is52 = "Nueva Ecija"; string ii52 = "Luzon"; islanddict.Add(is52, ii52); string is53 = "Nueva Vizcaya"; string ii53 = "Luzon"; islanddict.Add(is53, ii53); string is54 = "Occidental Mindoro"; string ii54 = "Mindoro"; islanddict.Add(is54, ii54); string is55 = "Oriental Mindoro"; string ii55 = "Mindoro"; islanddict.Add(is55, ii55); string is56 = "Palawan"; string ii56 = ""; islanddict.Add(is56, ii56); string is57 = "Pampanga"; string ii57 = "Luzon"; islanddict.Add(is57, ii57); string is58 = "Pangasinan (provins)"; string ii58 = "Luzon"; islanddict.Add(is58, ii58); string is59 = "Quezon"; string ii59 = "Luzon"; islanddict.Add(is59, ii59); string is60 = "Quirino"; string ii60 = "Luzon"; islanddict.Add(is60, ii60); string is61 = "Rizal"; string ii61 = "Luzon"; islanddict.Add(is61, ii61); string is62 = "Romblon"; string ii62 = ""; islanddict.Add(is62, ii62); string is63 = "Samar (provins)"; string ii63 = ""; islanddict.Add(is63, ii63); string is64 = "Sarangani (provins)"; string ii64 = "Mindanao"; islanddict.Add(is64, ii64); string is65 = "Siquijor (provins)"; string ii65 = ""; islanddict.Add(is65, ii65); string is66 = "Sorsogon (provins)"; string ii66 = "Luzon"; islanddict.Add(is66, ii66); string is67 = "Sultan Kudarat"; string ii67 = "Mindanao"; islanddict.Add(is67, ii67); string is68 = "Sulu (provins)"; string ii68 = "Suluöarna"; islanddict.Add(is68, ii68); string is69 = "Surigao del Norte"; string ii69 = "Mindanao"; islanddict.Add(is69, ii69); string is70 = "Surigao del Sur"; string ii70 = "Mindanao"; islanddict.Add(is70, ii70); string is71 = "Södra Cotabato"; string ii71 = "Mindanao"; islanddict.Add(is71, ii71); string is72 = "Södra Ilocos"; string ii72 = "Luzon"; islanddict.Add(is72, ii72); string is73 = "Södra Leyte"; string ii73 = "Leyte"; islanddict.Add(is73, ii73); string is74 = "Tarlac"; string ii74 = "Luzon"; islanddict.Add(is74, ii74); string is75 = "Tawi-Tawi"; string ii75 = "Suluöarna"; islanddict.Add(is75, ii75); string is76 = "Zambales"; string ii76 = "Luzon"; islanddict.Add(is76, ii76); string is77 = "Zamboanga del Norte"; string ii77 = "Mindanao"; islanddict.Add(is77, ii77); string is78 = "Zamboanga del Sur"; string ii78 = "Mindanao"; islanddict.Add(is78, ii78); string is79 = "Zamboanga Sibugay"; string ii79 = "Mindanao"; islanddict.Add(is79, ii79); string is80 = "Östra Samar"; string ii80 = "Samar"; islanddict.Add(is80, ii80); string sbrack = "[]'† ?"; char[] brackets = sbrack.ToCharArray(); int nfound = 0; foreach(Page p in pl) { p.Load(); //Remove comments and leading blanks, otherwise the template finding doesn't work properly: string str = p.text; int startPos, endPos, len = 0; while ((startPos = str.LastIndexOf("<!")) != -1) { endPos = str.IndexOf("->", startPos); len = (endPos != -1) ? endPos - startPos + 2 : 2; //Console.WriteLine("Removing " + str.Substring(startPos, len)); str = str.Remove(startPos, len); //str = str.Insert(startPos, new String('_', len)); } while (str.Contains("{{ ")) { str = str.Replace("{{ ", "{{"); } p.text = str; Dictionary<string, string> newparamdict = new Dictionary<string, string>(); Dictionary<string, string> oldparameters; string templateTitle = "Infobox Philippine municipality 2"; Regex templateTitleRegex = new Regex("^\\s*(" + Bot.Capitalize(Regex.Escape(templateTitle)) + "|" + Bot.Uncapitalize(Regex.Escape(templateTitle)) + ")\\s*\\|"); string coorTitle = "coor title dm"; Regex coorTitleRegex = new Regex("^\\s*(" + Bot.Capitalize(Regex.Escape(coorTitle)) + "|" + Bot.Uncapitalize(Regex.Escape(coorTitle)) + ")\\s*\\|"); bool foundtemplate = false; string island = ""; string nbgy = ""; foreach (string template in p.GetTemplatesWithParams()) { if (template.Length > 40) Console.WriteLine(template.Substring(0, 40)); else Console.WriteLine(template); if (templateTitleRegex.IsMatch(template)) { //Ok, found the right template. Now get params: oldparameters = tlsite.ParseTemplate(template); Console.WriteLine("op:"); foundtemplate = true; nfound++; foreach (string op in oldparameters.Keys) { if (paramdict.ContainsKey(op)) { //Console.WriteLine(op); switch (paramdict[op]) { case "region_type": newparamdict.Add(paramdict[op], "[[Filippinernas regioner|Region]]"); break; case "district_type": newparamdict.Add(paramdict[op], "[[Filippinernas provinser|Provins]]"); break; case "indelning": string cp = oldparameters[op].Trim(brackets); if (cp.Contains("]")) cp = cp.Remove(cp.IndexOf("]")); if (cp.Contains("|")) cp = cp.Remove(cp.IndexOf("|")); if (cp.Contains("(")) cp = cp.Remove(cp.IndexOf("(")); //string cp = CleanLink(oldparameters[op]); string spp = cp; if (provinsdict.ContainsKey(cp)) spp = provinsdict[cp]; else if (provinsdict.ContainsKey(cp+" (lalawigan)")) spp = provinsdict[cp + " (lalawigan)"]; newparamdict.Add(paramdict[op], "[["+spp+"]]"); if (regiondict.ContainsKey(spp)) { newparamdict.Add("delstat", "[[" + regiondict[spp] + "]]"); island = islanddict[spp]; } break; case "form": if (oldparameters[op].Contains("city")) newparamdict.Add(paramdict[op], "[[Stad]]"); else if (oldparameters[op].Contains("City")) newparamdict.Add(paramdict[op], "[[Stad]]"); else newparamdict.Add(paramdict[op], oldparameters[op]); break; case "url": if (oldparameters[op].Contains("{{URL")) { string ccp = oldparameters[op].Replace("{{URL|", "[http:////").Replace("}}", "]"); newparamdict.Add(paramdict[op], ccp); } else newparamdict.Add(paramdict[op], oldparameters[op]); break; case "sigill": case "bild": Page pcm = new Page(cmsite,"File:"+oldparameters[op]); //pcm.Load(); //Console.WriteLine("LastUser: "+pcm.LastUser); //if ( pcm.Exists()) // newparamdict.Add(paramdict[op], oldparameters[op]); //else // Console.WriteLine("Image not found " + oldparameters[op]); string res = cmsite.site + cmsite.indexPath + "index.php?title=" + HttpUtility.UrlEncode("File:"+oldparameters[op]); string src = ""; try { src = cmsite.GetPageHTM(res); } catch (WebException e) { string message = e.Message; if (message.Contains(": (404) ")) { // Not Found Console.Error.WriteLine(Bot.Msg("Page \"{0}\" doesn't exist."), oldparameters[op]); Console.WriteLine("Image not found " + oldparameters[op]); break; } else { Console.Error.WriteLine(message); break; } } newparamdict.Add(paramdict[op], oldparameters[op]); break; case "folkmängd_år": if (oldparameters[op].Contains("{{asof")) newparamdict.Add(paramdict[op], oldparameters[op].Replace("{{asof|", "").Replace("}}", "")); break; default: newparamdict.Add(paramdict[op], oldparameters[op]); break; } } } //Console.WriteLine("np:"); //foreach (string np in newparamdict.Keys) // Console.WriteLine(np + " = " + newparamdict[np]); newparamdict.Add("land","Filippinerna"); newparamdict.Add("tidszon","[[UTC+8]]"); newparamdict.Add("styre_titel", "[[Borgmästare]]"); newparamdict.Add("form", "[[Kommun]]"); if (oldparameters.ContainsKey("barangays")) nbgy = oldparameters["barangays"]; } else if (coorTitleRegex.IsMatch(template)) { oldparameters = tlsite.ParseTemplate(template); //Console.WriteLine("op:"); nfound++; foreach (string op in oldparameters.Keys) { //Console.WriteLine(op + ": " + oldparameters[op]); switch (op) { case "0": if (newparamdict.ContainsKey("lat_g")) newparamdict["lat_g"] = oldparameters[op]; else newparamdict.Add("lat_g", oldparameters[op]); break; case "1": if (newparamdict.ContainsKey("lat_m")) newparamdict["lat_m"] = oldparameters[op]; else newparamdict.Add("lat_m", oldparameters[op]); break; case "2": if (newparamdict.ContainsKey("lat_NS")) newparamdict["lat_NS"] = oldparameters[op]; else newparamdict.Add("lat_NS", oldparameters[op]); break; case "3": if (newparamdict.ContainsKey("long_g")) newparamdict["long_g"] = oldparameters[op]; else newparamdict.Add("long_g", oldparameters[op]); break; case "4": if (newparamdict.ContainsKey("long_m")) newparamdict["long_m"] = oldparameters[op]; else newparamdict.Add("long_m", oldparameters[op]); break; case "5": if (newparamdict.ContainsKey("long_EW")) newparamdict["long_EW"] = oldparameters[op]; else newparamdict.Add("long_EW", oldparameters[op]); break; default: break; } } } } if (!foundtemplate) { Console.WriteLine("Template not found"); continue; } //find swedish match: string geobox = "{{Stadsfakta|}}\n"; string[] iw = p.GetInterWikiLinks(); bool svexists = false; foreach (string iws in iw) { if (iws.Contains("sv:")) { string svtit = iws.Replace("sv:",""); Page psv = new Page(svsite,svtit); psv.Load(); if (!psv.Exists()) break; svexists = true; string origtext = psv.text; if (!psv.text.Contains("eobox") && !psv.text.Contains("tadsfakta")) { //Console.WriteLine("Filling params"); psv.text = geobox + psv.text; foreach (string np in newparamdict.Keys) { //Console.WriteLine(np); psv.SetTemplateParameter("Stadsfakta", np, newparamdict[np], true); } } else Console.WriteLine("Has box already"); //DONE! Now save if needed. Bot.editComment = "Fixar faktamall"; isMinorEdit = false; if (psv.text != origtext) psv.Save(); Thread.Sleep(4000);//milliseconds } } if (!svexists) //No Swedish article found; create one! { string provname = ""; if (newparamdict.ContainsKey("indelning")) provname = newparamdict["indelning"].Trim(brackets); if (provname.Contains(" (")) provname = provname.Remove(provname.IndexOf(" (")); string svtit = p.title; if ( svtit.Contains(", ")) svtit = svtit.Remove(svtit.IndexOf(", ")); newparamdict.Add("namn", svtit); Page psv = new Page(svsite, svtit); psv.Load(); if (psv.Exists()) { //Försöker skapa särskiljningsled: '''Kommun (provins)''' string svtit2 = svtit + " (" + provname + ")"; psv.title = svtit2; psv.text = null; psv.Load(); if (psv.Exists()) continue; //Om det inte ens funkar med särskiljning; skippa! } //Make stadsfakta-box: psv.text = geobox; foreach (string np in newparamdict.Keys) { //Console.WriteLine(np); psv.SetTemplateParameter("Stadsfakta", np, newparamdict[np], true); } //Make article text: psv.text = psv.text + "'''"+svtit+"''' (''"+newparamdict["annat_namn"]+"'') är en [[kommun]] i [[Filippinerna]]. "; string provlink = newparamdict["indelning"]; if (provlink.Contains("(")) provlink = provlink.Replace("]]","|"+provname+"]]"); if (island != "") psv.text = psv.text + "Kommunen ligger på ön [[" + island + "]], och tillhör provinsen " + provlink + ". "; else psv.text = psv.text + "Kommunen tillhör provinsen " + provlink + " och ligger på ön med samma namn. "; if ( newparamdict.ContainsKey("folkmängd_år")) psv.text = psv.text + "Befolkningen uppgick år " + newparamdict["folkmängd_år"] + " till " + newparamdict["folkmängd"] + " personer. "; else if (newparamdict.ContainsKey("folkmängd")) psv.text = psv.text + "Befolkningen uppgår till " + newparamdict["folkmängd"] + " personer."; psv.text = psv.text + "\n\n"; //Barangays: bool bgytable = false; Regex bgyRegEx = new Regex("arangay *=="); if ( bgyRegEx.IsMatch(p.text)) //if ((p.text.Contains("==Mga Barangay=="))||(p.text.Contains("==Barangay=="))||(p.text.Contains("== Mga Barangay =="))) { Console.WriteLine("Found bgy-match"); int nmb = p.text.IndexOf("arangay"); int nts = -1; int nte = -1; int extra = 0; if (p.text.Contains("{|") && p.text.Contains("|}")) { nts = p.text.IndexOf("{|"); nte = p.text.IndexOf("|}"); extra = 2; } else if (p.text.Contains("<table") && p.text.Contains("/table>")) { nts = p.text.IndexOf("<table"); nte = p.text.IndexOf("/table>"); extra = 7; } if ((nts > nmb) && (nte > nts)) { //Copy barangay-table psv.text = psv.text + "== Barangayer ==\n"; if ( nbgy != "" ) psv.text = psv.text + svtit + " delas in i " + nbgy + " [[barangay]]er. \n\n"; psv.text = psv.text + p.text.Substring(nts, nte - nts + extra)+"\n\n"; bgytable = true; } } if (!bgytable && (nbgy!="")) psv.text = psv.text + svtit + " delas in i " + nbgy + " [[barangay]]er. \n\n"; //Categories: psv.text = psv.text + "[[Kategori:Orter i " + provname + "]]\n"; //Interwiki: foreach (string iws in iw) { if (!iws.Contains("sv:")) psv.text = psv.text + "[[" + iws + "]]\n"; } psv.text = psv.text + "[[tl:" + p.title + "]]\n"; //botmall: psv.text = "{{robotskapad|Lsjbot|filippinska kommun|datum=2012-08}}\n" + psv.text; //DONE! Now save the new article. Bot.editComment = "Skapar kommunartikel med bot"; isMinorEdit = false; //Console.WriteLine("-----------"); //Console.WriteLine(psv.text); psv.Save(); Thread.Sleep(4000);//milliseconds } } } }