diff --git a/data/communes.yml b/data/communes.yml index 069a55f..9fb009d 100644 --- a/data/communes.yml +++ b/data/communes.yml @@ -19838,40 +19838,6 @@ communes: - 103.8613281 - 10.6420899 - 103.682678 - '180202': - name: - km: បឹងតាព្រហ្ម - latin: Boeng Ta Prum - administrative_unit: - km: ឃុំ - latin: Khum - en: Commune - ungegn: Khŭm - geodata: - lat: 10.5724625 - long: 103.7740888 - bounding_box: - - 10.5963128 - - 103.8399051 - - 10.5314939 - - 103.734131 - '180203': - name: - km: បិតត្រាង - latin: Bet Trang - administrative_unit: - km: ឃុំ - latin: Khum - en: Commune - ungegn: Khŭm - geodata: - lat: 10.601182 - long: 103.6239763 - bounding_box: - - 10.6740719 - - 103.646729 - - 10.5400999 - - 103.560913 '180204': name: km: ជើងគោ @@ -19889,40 +19855,6 @@ communes: - 103.891907 - 10.7200929 - 103.6737062 - '180205': - name: - km: អូរជ្រៅ - latin: Ou Chrov - administrative_unit: - km: ឃុំ - latin: Khum - en: Commune - ungegn: Khŭm - geodata: - lat: 10.536239 - long: 103.7878125 - bounding_box: - - 10.5678709 - - 103.8151249 - - 10.51947 - - 103.758484 - '180206': - name: - km: អូរឧកញ៉ាហេង - latin: Ou Oknha Heng - administrative_unit: - km: ឃុំ - latin: Khum - en: Commune - ungegn: Khŭm - geodata: - lat: 10.5848478 - long: 103.7439632 - bounding_box: - - 10.6217039 - - 103.8344731 - - 10.54248 - - 103.6903079 '180207': name: km: ព្រៃនប់ @@ -19940,23 +19872,6 @@ communes: - 103.84967 - 10.585083 - 103.688721 - '180208': - name: - km: រាម - latin: Ream - administrative_unit: - km: ឃុំ - latin: Khum - en: Commune - ungegn: Khŭm - geodata: - lat: '10.5113885' - long: '103.616945' - bounding_box: - - '10.5013885' - - '10.5213885' - - '103.606945' - - '103.626945' '180209': name: km: សាមគ្គី @@ -20222,6 +20137,51 @@ communes: latin: Sangkat en: Quarter ungegn: Sângkéat + '180601': + name: + km: រាម + latin: Ream + administrative_unit: + km: សង្កាត់ + latin: Sangkat + en: Quarter + ungegn: Sângkéat + '180602': + name: + km: បិតត្រាង + latin: Bet Trang + administrative_unit: + km: សង្កាត់ + latin: Sangkat + en: Quarter + ungegn: Sângkéat + '180603': + name: + km: អូរឧកញ៉ាហេង + latin: Ou Oknha Heng + administrative_unit: + km: សង្កាត់ + latin: Sangkat + en: Quarter + ungegn: Sângkéat + '180604': + name: + km: បឹងតាព្រហ្ម + latin: Boeng Ta Prum + administrative_unit: + km: សង្កាត់ + latin: Sangkat + en: Quarter + ungegn: Sângkéat + '180605': + name: + km: អូរជ្រៅ + latin: Ou Chrov + administrative_unit: + km: សង្កាត់ + latin: Sangkat + en: Quarter + ungegn: Sângkéat '190101': name: km: កំភុន diff --git a/data/districts.yml b/data/districts.yml index eb3ab23..c6a14cc 100644 --- a/data/districts.yml +++ b/data/districts.yml @@ -3110,6 +3110,15 @@ districts: ungegn: Krŏng links: wikipedia: https://en.wikipedia.org/wiki/Koh_Rong_(town) + '1806': + name: + km: កំពង់សោម + latin: Kampong Soam + administrative_unit: + km: ក្រុង + latin: Krong + en: Municipality + ungegn: Krŏng '1901': name: km: សេសាន diff --git a/data/villages.yml b/data/villages.yml index ffc0657..1c68199 100644 --- a/data/villages.yml +++ b/data/villages.yml @@ -101142,87 +101142,6 @@ villages: latin: Phum en: Village ungegn: Phum - '18020201': - name: - km: បឹងជុំ - latin: Boeng Chum - administrative_unit: - km: ភូមិ - latin: Phum - en: Village - ungegn: Phum - '18020202': - name: - km: បឹងតាព្រហ្ម - latin: Boeng Ta Prum - administrative_unit: - km: ភូមិ - latin: Phum - en: Village - ungegn: Phum - '18020203': - name: - km: បឹងតាស្រី - latin: Boeng Ta Srei - administrative_unit: - km: ភូមិ - latin: Phum - en: Village - ungegn: Phum - '18020204': - name: - km: ដូនលយ - latin: Doun Loy - administrative_unit: - km: ភូមិ - latin: Phum - en: Village - ungegn: Phum - '18020205': - name: - km: ភ្នំតូច - latin: Phnum Touch - administrative_unit: - km: ភូមិ - latin: Phum - en: Village - ungegn: Phum - '18020206': - name: - km: ទឹកចេញ - latin: Tuek Chenh - administrative_unit: - km: ភូមិ - latin: Phum - en: Village - ungegn: Phum - '18020301': - name: - km: ចំណោតរាម - latin: Chamnaot Ream - administrative_unit: - km: ភូមិ - latin: Phum - en: Village - ungegn: Phum - '18020302': - name: - km: គគីរ - latin: Kokir - administrative_unit: - km: ភូមិ - latin: Phum - en: Village - ungegn: Phum - '18020303': - name: - km: ពូធឿង - latin: Pu Thoeang - administrative_unit: - km: ភូមិ - latin: Phum - en: Village - ungegn: Phum '18020401': name: km: ចំការកៅស៊ូ @@ -101259,96 +101178,6 @@ villages: latin: Phum en: Village ungegn: Phum - '18020501': - name: - km: កោះខ្យង - latin: Kaoh Khyang - administrative_unit: - km: ភូមិ - latin: Phum - en: Village - ungegn: Phum - '18020502': - name: - km: អូរជ្រៅ - latin: Ou Chrov - administrative_unit: - km: ភូមិ - latin: Phum - en: Village - ungegn: Phum - '18020503': - name: - km: ស្រែចាមក្រោម - latin: Srae Cham Kraom - administrative_unit: - km: ភូមិ - latin: Phum - en: Village - ungegn: Phum - '18020504': - name: - km: ស្រែចាមលើ - latin: Srae Cham Leu - administrative_unit: - km: ភូមិ - latin: Phum - en: Village - ungegn: Phum - '18020505': - name: - km: ស្រែក្នុង - latin: Srae Knong - administrative_unit: - km: ភូមិ - latin: Phum - en: Village - ungegn: Phum - '18020601': - name: - km: បត់គគីរ - latin: Bat Kokir - administrative_unit: - km: ភូមិ - latin: Phum - en: Village - ungegn: Phum - '18020602': - name: - km: អូរចំណារ - latin: Ou Chamnar - administrative_unit: - km: ភូមិ - latin: Phum - en: Village - ungegn: Phum - '18020603': - name: - km: អូរតាប៉ាង - latin: Ou Ta Pang - administrative_unit: - km: ភូមិ - latin: Phum - en: Village - ungegn: Phum - '18020604': - name: - km: អូរតាសេក - latin: Ou Ta Sek - administrative_unit: - km: ភូមិ - latin: Phum - en: Village - ungegn: Phum - '18020605': - name: - km: អូរឧកញ៉ាហេង - latin: Ou Oknha Heng - administrative_unit: - km: ភូមិ - latin: Phum - en: Village - ungegn: Phum '18020701': name: km: បត់សិរមាន់ @@ -101394,42 +101223,6 @@ villages: latin: Phum en: Village ungegn: Phum - '18020801': - name: - km: អុង - latin: Ong - administrative_unit: - km: ភូមិ - latin: Phum - en: Village - ungegn: Phum - '18020802': - name: - km: រាម - latin: Ream - administrative_unit: - km: ភូមិ - latin: Phum - en: Village - ungegn: Phum - '18020804': - name: - km: ស្មាច់ដែង - latin: Smach Daeng - administrative_unit: - km: ភូមិ - latin: Phum - en: Village - ungegn: Phum - '18020805': - name: - km: ថ្មធំ - latin: Thma Thum - administrative_unit: - km: ភូមិ - latin: Phum - en: Village - ungegn: Phum '18020901': name: km: តាអោងធំ @@ -101961,6 +101754,213 @@ villages: latin: Phum en: Village ungegn: Phum + '18060101': + name: + km: អុង + latin: Ong + administrative_unit: + km: ភូមិ + latin: Phum + en: Village + ungegn: Phum + '18060102': + name: + km: រាម + latin: Ream + administrative_unit: + km: ភូមិ + latin: Phum + en: Village + ungegn: Phum + '18060103': + name: + km: ស្មាច់ដែង + latin: Smach Daeng + administrative_unit: + km: ភូមិ + latin: Phum + en: Village + ungegn: Phum + '18060104': + name: + km: ថ្មធំ + latin: Thma Thum + administrative_unit: + km: ភូមិ + latin: Phum + en: Village + ungegn: Phum + '18060201': + name: + km: ចំណោតរាម + latin: Chamnaot Ream + administrative_unit: + km: ភូមិ + latin: Phum + en: Village + ungegn: Phum + '18060202': + name: + km: គគីរ + latin: Kokir + administrative_unit: + km: ភូមិ + latin: Phum + en: Village + ungegn: Phum + '18060203': + name: + km: ពូធឿង + latin: Pu Thoeang + administrative_unit: + km: ភូមិ + latin: Phum + en: Village + ungegn: Phum + '18060301': + name: + km: បត់គគីរ + latin: Bat Kokir + administrative_unit: + km: ភូមិ + latin: Phum + en: Village + ungegn: Phum + '18060302': + name: + km: អូរចំណារ + latin: Ou Chamnar + administrative_unit: + km: ភូមិ + latin: Phum + en: Village + ungegn: Phum + '18060303': + name: + km: អូរតាប៉ាង + latin: Ou Ta Pang + administrative_unit: + km: ភូមិ + latin: Phum + en: Village + ungegn: Phum + '18060304': + name: + km: អូរតាសេក + latin: Ou Ta Sek + administrative_unit: + km: ភូមិ + latin: Phum + en: Village + ungegn: Phum + '18060305': + name: + km: អូរឧកញ៉ាហេង + latin: Ou Oknha Heng + administrative_unit: + km: ភូមិ + latin: Phum + en: Village + ungegn: Phum + '18060401': + name: + km: បឹងជុំ + latin: Boeng Chum + administrative_unit: + km: ភូមិ + latin: Phum + en: Village + ungegn: Phum + '18060402': + name: + km: បឹងតាព្រហ្ម + latin: Boeng Ta Prum + administrative_unit: + km: ភូមិ + latin: Phum + en: Village + ungegn: Phum + '18060403': + name: + km: បឹងតាស្រី + latin: Boeng Ta Srei + administrative_unit: + km: ភូមិ + latin: Phum + en: Village + ungegn: Phum + '18060404': + name: + km: ដូនលយ + latin: Doun Loy + administrative_unit: + km: ភូមិ + latin: Phum + en: Village + ungegn: Phum + '18060405': + name: + km: ភ្នំតូច + latin: Phnum Touch + administrative_unit: + km: ភូមិ + latin: Phum + en: Village + ungegn: Phum + '18060406': + name: + km: ទឹកចេញ + latin: Tuek Chenh + administrative_unit: + km: ភូមិ + latin: Phum + en: Village + ungegn: Phum + '18060501': + name: + km: កោះខ្យង + latin: Kaoh Khyang + administrative_unit: + km: ភូមិ + latin: Phum + en: Village + ungegn: Phum + '18060502': + name: + km: អូរជ្រៅ + latin: Ou Chrov + administrative_unit: + km: ភូមិ + latin: Phum + en: Village + ungegn: Phum + '18060503': + name: + km: ស្រែចាមក្រោម + latin: Srae Cham Kraom + administrative_unit: + km: ភូមិ + latin: Phum + en: Village + ungegn: Phum + '18060504': + name: + km: ស្រែចាមលើ + latin: Srae Cham Leu + administrative_unit: + km: ភូមិ + latin: Phum + en: Village + ungegn: Phum + '18060505': + name: + km: ស្រែក្នុង + latin: Srae Knong + administrative_unit: + km: ភូមិ + latin: Phum + en: Village + ungegn: Phum '19010101': name: km: កំភុន diff --git a/lib/pumi/bot/wikipedia/communes_in_cambodia_article.rb b/lib/pumi/bot/wikipedia/communes_in_cambodia_article.rb index 521cb97..9c45975 100644 --- a/lib/pumi/bot/wikipedia/communes_in_cambodia_article.rb +++ b/lib/pumi/bot/wikipedia/communes_in_cambodia_article.rb @@ -64,7 +64,7 @@ def villages_count end PAGE_TITLE = "List_of_communes_in_Cambodia".freeze - INTRO_TEXT = "
The '''communes of Cambodia''' ({{lang|km|ឃុំ}} ''[[khum]]''/{{lang|km|សង្កាត់}} ''[[sangkat]]'') are the third-level administrative divisions in Cambodia. They are the subdivisions of the [[List of districts in Cambodia|districts and municipalities of Cambodia]]. Communes can consist of as few as %s{{cite web|url=http://db.ncdd.gov.kh/gazetteer/view/commune.castle?cm=%s |title=%s |publisher=National Committee for Sub-National Democratic Development }} or as many as %s{{cite web|url=http://db.ncdd.gov.kh/gazetteer/view/commune.castle?cm=%s |title=%s |publisher=National Committee for Sub-National Democratic Development }} villages (''[[phum]]''), depending on the population.\nThere are a total of %s communes and %s villages in Cambodia.
".freeze + INTRO_TEXT = "
The '''communes of Cambodia''' ({{lang|km|ឃុំ}} ''[[khum]]''/{{lang|km|សង្កាត់}} ''[[sangkat]]'') are the third-level administrative divisions in Cambodia. They are the subdivisions of the [[List of districts in Cambodia|districts and municipalities of Cambodia]]. Communes can consist of as few as %s{{cite web|url=http://db.ncdd.gov.kh/gazetteer/view/commune.castle?cm=%s |title=%s |publisher=National Committee for Sub-National Democratic Development }} or as many as %s{{cite web|url=http://db.ncdd.gov.kh/gazetteer/view/commune.castle?cm=%s |title=%s |publisher=National Committee for Sub-National Democratic Development }} villages (''[[phum]]''), depending on the population.\nThere are a total of %s communes and %s villages in Cambodia.
".freeze TEMPLATE = File.read("#{__dir__}/templates/commune_list.wikitext.erb") diff --git a/lib/pumi/bot/wikipedia/districts_in_cambodia_article.rb b/lib/pumi/bot/wikipedia/districts_in_cambodia_article.rb index 6b53d3a..8af65d4 100644 --- a/lib/pumi/bot/wikipedia/districts_in_cambodia_article.rb +++ b/lib/pumi/bot/wikipedia/districts_in_cambodia_article.rb @@ -50,16 +50,28 @@ def generate_districts_section(province:) end def generate_districts_summary(districts:) + village_administrative_unit = Pumi::Village.all.first.administrative_unit + summary = districts_by_type(collection: districts).map do |au, d| next if Array(d).empty? - text = "#{d.size} #{au.name_en}" + text = "#{format_number(d.size)} #{au.name_en}" if d.size > 1 au.name_en.end_with?("y") ? text.chomp!("y") << "ies" : text << "s" end text << " (#{au.name_km} #{au.name_latin})" end + number_of_villages = 0 + districts.each do |district| + number_of_villages += Pumi::Village.where(district_id: district.id).size + end + villages_text = "#{format_number(number_of_villages)} #{village_administrative_unit.name_en}" + villages_text << "s" if number_of_villages > 1 + villages_text << " (#{village_administrative_unit.name_km} #{village_administrative_unit.name_latin})" + + summary << villages_text + if summary.size <= 2 summary.join(" and ") else @@ -112,6 +124,10 @@ def fetch_districts_by_type(type, collection:) administrative_unit = collection.keys.find { |au| au.name_en == type } Array(collection[administrative_unit]) end + + def format_number(number) + number.to_s.gsub(/(\d)(?=(\d\d\d)+(?!\d))/, "\\1,") + end end end end diff --git a/lib/pumi/bot/wikipedia/templates/commune_list.wikitext.erb b/lib/pumi/bot/wikipedia/templates/commune_list.wikitext.erb index d7a892b..a4e2bd6 100644 --- a/lib/pumi/bot/wikipedia/templates/commune_list.wikitext.erb +++ b/lib/pumi/bot/wikipedia/templates/commune_list.wikitext.erb @@ -1,17 +1,20 @@
<% provinces.each do |province| %> -<% province_page = URI.parse(province.links[:wikipedia]).path.split("/").last %> +<% province_page = URI.parse(province.links[:wikipedia]).path.split("/").last -%> ==[[<%= province_page %>|<%= province.full_name_en %>]]==
<%= province.name_en %> contains <%= province.communes_summary %>.{{cite web|url=http://db.ncdd.gov.kh/gazetteer/view/province.castle?pv=<%= province.id %> |title=<%= province.name_en %> |publisher=National Committee for Sub-National Democratic Development }} - <% province.districts.each do |district| %> -<% if district.links[:wikipedia] %> -<% district_page = URI.parse(district.links[:wikipedia]).path.split("/").last %> +<% if district.links[:wikipedia] -%> +<% district_page = URI.parse(district.links[:wikipedia]).path.split("/").last -%> +<% if district_page.gsub("_", " ") == district.full_name_en -%> +===[[<%= district.full_name_en %>]]=== +<% else -%> ===[[<%= district_page %>|<%= district.full_name_en %>]]=== -<% else %> +<% end -%> +<% else -%> ===<%= district.full_name_en %>=== -<% end %> +<% end -%>
<%= district.name_en %> contains <%= district.communes_summary %>.{{cite web|url=http://db.ncdd.gov.kh/gazetteer/view/district.castle?ds=<%= district.id %> |title=<%= district.name_en %> |publisher=National Committee for Sub-National Democratic Development }} diff --git a/lib/pumi/data_source/ncdd.rb b/lib/pumi/data_source/ncdd.rb index 250b024..8795bc7 100644 --- a/lib/pumi/data_source/ncdd.rb +++ b/lib/pumi/data_source/ncdd.rb @@ -18,7 +18,9 @@ class NCDD MISSPELLINGS = [ Misspelling.new(incorrect_text: "Siem Reab", correct_text: "Siem Reap"), - Misspelling.new(incorrect_text: "Aoral", correct_text: "Aural") + Misspelling.new(incorrect_text: "Aoral", correct_text: "Aural"), + Misspelling.new(incorrect_text: "Angk Romeas", correct_text: "Angk Romeas"), + Misspelling.new(incorrect_text: "Prea​ek Chrey", correct_text: "Preaek Chrey") ].freeze AdministrativeUnit = Struct.new(:en, :km, :latin, :ungegn, :code_length, :group, :type, keyword_init: true) diff --git a/spec/pumi/district_spec.rb b/spec/pumi/district_spec.rb index 4634d64..438985b 100644 --- a/spec/pumi/district_spec.rb +++ b/spec/pumi/district_spec.rb @@ -6,7 +6,7 @@ module Pumi it "returns all districts" do results = District.all - expect(results.size).to eq(209) + expect(results.size).to eq(210) expect(results.first).to be_a(District) end end