diff --git a/readme/html/test1.html b/readme/html/test1.html index 2e01e7bb..65bf7641 100644 --- a/readme/html/test1.html +++ b/readme/html/test1.html @@ -4,4 +4,384 @@

foo: // this is some code

-
blockquote
\ No newline at end of file +
blockquote
+ +

+/*
+
+*/
+
+'use strict';
+
+/*
+We have to load the Geo module to get Ox.COUNTRIES
+*/
+Ox.load({UI: {}, Geo: {}}, function() {
+
+    var countries = Ox.COUNTRIES.filter(function(country) {
+            /*
+            We filter out some types of countries that we're not interested in.
+            */
+            return !country.disputed
+                && !country.dissolved
+                && !country.exception
+                && country.code.length == 2
+        }).map(function(country) {
+            /*
+            For independent countries, the dependency property is undefined. We
+            want an empty array though, so that the type of this column gets
+            correctly detected as array.
+            */
+            country.dependency = country.dependency || [];
+            /*
+            When sorting the list by region, we want the regions to be grouped
+            by continent. To get this sort order, we set the value for region to
+            'Continent, Region'. Later, a format function for the region column
+            will remove the continent part again.
+            */
+            country.region = country.continent + ', ' + country.region;
+            return country;
+        }),
+        api = Ox.api(countries, {sort: ['+name'], unique: 'code'}),
+        $list = Ox.TextList({
+                columns: [
+                    {
+                        /*
+                        The format function of a column has a second argument
+                        which contains the values of all columns. This allows us
+                        to format a value dependent on other values. In this
+                        case, we want to display a flag, and while our items
+                        don't have a flag property, the Geo module allows us to
+                        derive it from the name property. The flag image needs a
+                        tooltip (which is why we can't use an $('') here),
+                        and gets some CSS adjustments.
+                        */
+                        format: function(value, data) {
+                            return Ox.Element({
+                                    element: '',
+                                    tooltip:
+                                        '
' + }) + .attr({ + src: Ox.getFlagByGeoname(data.name, 16) + }) + .css({ + width: '14px', + height: '14px', + marginLeft: '-3px' + }) + }, + /* + As the actual key for the column, we use the country + code, not the country name, since we still want to + display the name in its own column. + */ + id: 'flagURL', + operator: '+', + removable: false, + /* + We want the column title to be a flag symbol, so we + specify this as the titleImage. We can pick anything + from the collection of symbols that comes with Ox.UI. + The column still needs a textual title that will be + displayed in the menu that allows to show or hide + specific columns. + */ + title: 'Flag', + titleImage: 'flag', + /* + The country code is the unique key of our country table. + In consequence, whenever the list fires a select event, + it will reference this value as the item's id. + */ + unique: true, + visible: true, + width: 16 + }, + { + id: 'code', + operator: '+', + title: 'Code', + unique: true, + visible: true, + width: 64 + }, + { + id: 'name', + /* + The operator indicates that we want the default sort + order of this column to be ascending. + */ + operator: '+', + /* + As it wouldn't make much sense to display the list + without the name column, we make it non-removable. + */ + removable: false, + title: 'Name', + visible: true, + width: 256 + }, + { + id: 'continent', + operator: '+', + title: 'Continent', + visible: true, + width: 96 + }, + { + /* + To tweak the sort order for this column, we had changed + the value for region to 'Continent, Region'. The format + function now reverts that change. + */ + format: function(value) { + return value.split(', ')[1]; + }, + id: 'region', + operator: '+', + title: 'Region', + visible: true, + width: 160 + }, + { + /* + As the value is a number, it should be right-aligned. + */ + align: 'right', + /* + To get from square meters to something human-readable, + we use one of the built-in format functions. + */ + format: function(value) { + return Ox.formatArea(value); + }, + id: 'area', + operator: '-', + title: 'Area', + visible: true, + width: 112 + }, + { + format: function(value) { + return Ox.formatDegrees(value, 'lat'); + }, + align: 'right', + id: 'lat', + operator: '-', + title: 'Latitude', + visible: true, + width: 80 + }, + { + format: function(value) { + return Ox.formatDegrees(value, 'lng'); + }, + align: 'right', + id: 'lng', + operator: '+', + title: 'Longitude', + visible: true, + width: 80 + }, + /* + For the next four columns, which seem less important, we + omit the 'visible' option, which defaults to false. They can + still be made visible, they're just not visible by default. + */ + { + align: 'right', + format: function(value) { + return Ox.formatDegrees(value, 'lat'); + }, + id: 'south', + operator: '-', + title: 'South', + width: 80 + }, + { + align: 'right', + format: function(value) { + return Ox.formatDegrees(value, 'lat'); + }, + id: 'north', + operator: '-', + title: 'North', + width: 80 + }, + { + align: 'right', + format: function(value) { + return Ox.formatDegrees(value, 'lng'); + }, + id: 'west', + operator: '-', + title: 'West', + width: 80 + }, + { + align: 'right', + format: function(value) { + return Ox.formatDegrees(value, 'lng'); + }, + id: 'east', + operator: '-', + title: 'East', + width: 80 + }, + { + /* + The dependency property is an array of country names, + for each of which we want to display a flag. So we use a + similar constuction as above, and wrap the images in a + $('
') element. + */ + format: function(value) { + var ret = ''; + if (value) { + var ret = $('
').css({marginLeft: '-4px'}); + value.forEach(function(country) { + Ox.Element({ + element: '', + tooltip: country + }) + .attr({ + src: Ox.getFlagByGeoname(country, 16) + }) + .css({ + width: '14px', + height: '14px', + margin: '1px' + }) + .appendTo(ret); + }); + } + return ret; + }, + id: 'dependency', + operator: '+', + title: 'Dependency of', + visible: true, + width: 112 + } + ], + /* + This allows the user to move the columns around + */ + columnsMovable: true, + /* + This enables the UI to show or hide specific columns + */ + columnsRemovable: true, + /* + This makes sure the column titles get displayed + */ + columnsVisible: true, + items: api, + /* + Pagination is useful when a list is so big that only parts of it + can be requested or displayed. Since this is not the case here, + we set the page length to a sufficiently large number. + */ + pageLength: Ox.COUNTRIES.length, + scrollbarVisible: true, + /* + We have to specify the default sort order. + */ + sort: [{key: 'name', operator: '+'}] + }) + .bindEvent({ + /* + The init event of a list fires when the items function has + returned the total number of items. If we're dealing with a + remote API, a complex query, a huge dataset or a range request + for paginated results according to a non-trivial sort order, + this may happen quite a bit before any items are returned. Here, + we simply display the number of items in the status bar. + */ + init: function(data) { + $status.html( + (data.items || 'No') + ' countr' + + (data.items == 1 ? 'y' : 'ies') + ); + } + }), + /* + We want the user to be able to pick if dependent countries are included + in the list or not. So we add a checkbox, and bind the find function to + its change event. + */ + $include = Ox.Checkbox({ + title: 'Include Dependencies', + value: true + }) + .css({float: 'left', margin: '4px'}) + .bindEvent({ + change: find + }), + /* + We want a search field with find-as-you-type, so we use an input element + and set its changeOnKeypress option to true. + */ + $find = Ox.Input({ + changeOnKeypress: true, + placeholder: 'Find', + width: 192 + }) + .css({float: 'right', margin: '4px'}) + .bindEvent({ + change: find + }), + /* + ... + */ + $toolbar = Ox.Bar({size: 24}).append($include).append($find), + $status = $('
').css({ + marginTop: '2px', + fontSize: '9px', + textAlign: 'center' + }), + $statusbar = Ox.Bar({size: 16}).append($status), + $panel = Ox.SplitPanel({ + elements: [ + {element: $toolbar, size: 24}, + {element: $list}, + {element: $statusbar, size: 16} + ], + orientation: 'vertical' + }) + .appendTo(Ox.$body); + + function find() { + /* + The find function is bound to the change events of the $include checkbox + and the $find input field. In both cases, the value will be passed, but + since we need both values, we disregard it and query both elements for + their value. If the $include box is not checked, we add a second + condition that matches only independent countries. + */ + var conditions = [ + {key: 'name', operator: '=', value: $find.options('value')}, + ]; + !$include.options('value') && conditions.push( + {key: 'dependency', operator: '=', value: void 0} + ); + /* + ... + */ + api({ + keys: [], + query: {conditions: conditions, operator: '&'} + }, function(result) { + $list.options({ + items: Ox.api( + result.data.items, {sort: '+name', unique: 'code'} + ) + }); + }); + } + +}); +

\ No newline at end of file diff --git a/source/Ox.Geo/json/Ox.Geo.json b/source/Ox.Geo/json/Ox.Geo.json index 7cba40b1..79bfdf0a 100644 --- a/source/Ox.Geo/json/Ox.Geo.json +++ b/source/Ox.Geo/json/Ox.Geo.json @@ -4,8 +4,7 @@ "code": "AC", "continent": "Africa", "dependency": [ - "Saint Helena", - "Ascension and Tristan da Cunha" + "Saint Helena, Ascension and Tristan da Cunha" ], "east": -14.2892647, "exception": true, @@ -206,6 +205,13 @@ "created": "merged", "date": "1971-12-01" }, + "dissolved": { + "country": [ + "United Arab Emirates" + ], + "date": "1972-02-11", + "dissolved": "joined" + }, "east": 56.297054, "flagURL": "http://upload.wikimedia.org/wikipedia/commons/6/6d/Flag_of_Sharjah.svg", "independence": { @@ -448,6 +454,12 @@ ], "east": 24.0844444, "flagURL": "http://upload.wikimedia.org/wikipedia/commons/9/9d/Flag_of_Angola.svg", + "independence": { + "country": [ + "Portugal" + ], + "date": "1975-11-11" + }, "lat": -11.202692, "lng": 17.873887, "name": "Angola", @@ -460,9 +472,23 @@ "area": 18910547686.30963, "code": "AO-CAB", "continent": "Africa", + "created": { + "country": [ + "Portugal" + ], + "created": "split", + "date": "1975-08-01" + }, "disputed": [ "Angola" ], + "dissolved": { + "country": [ + "Angola" + ], + "date": "1975-11-11", + "dissolved": "joined" + }, "east": 13.109678, "flagURL": "http://upload.wikimedia.org/wikipedia/commons/2/22/Flag_of_Cabinda.svg", "lat": -5.0248749, @@ -578,12 +604,6 @@ ], "east": -173.0645, "flagURL": "http://upload.wikimedia.org/wikipedia/en/b/b9/Flag_of_Australia.svg", - "independence": { - "country": [ - "Papua New Guinea" - ], - "date": "1975-09-16" - }, "languages": [ "Aboriginal", "Australian", @@ -653,6 +673,13 @@ "area": 558581877.6893722, "code": "AW", "continent": "South America", + "created": { + "country": [ + "Netherlands Antilles" + ], + "created": "split", + "date": "1986-01-01" + }, "dependency": [ "Netherlands" ], @@ -854,6 +881,12 @@ "continent": "Asia", "east": 50.8509064, "flagURL": "http://upload.wikimedia.org/wikipedia/commons/2/2c/Flag_of_Bahrain.svg", + "independence": { + "country": [ + "United Kingdom" + ], + "date": "1971-12-16" + }, "lat": 25.930414, "lng": 50.637772, "name": "Bahrain", @@ -939,6 +972,12 @@ "flagURL": "http://upload.wikimedia.org/wikipedia/commons/9/9c/Flag_of_Brunei.svg", "googleName": "Brunei Darussalam", "imdbName": "Brunei Darussalam", + "independence": { + "country": [ + "United Kingdom" + ], + "date": "1984-01-01" + }, "lat": 4.535277, "lng": 114.727669, "name": "Brunei", @@ -1031,6 +1070,12 @@ "east": -72.6196289, "flagURL": "http://upload.wikimedia.org/wikipedia/commons/9/93/Flag_of_the_Bahamas.svg", "googleName": "The Bahamas", + "independence": { + "country": [ + "United Kingdom" + ], + "date": "1973-07-10" + }, "lat": 25.03428, "lng": -77.39628, "name": "Bahamas", @@ -1558,6 +1603,12 @@ "continent": "Africa", "east": -22.5933838, "flagURL": "http://upload.wikimedia.org/wikipedia/commons/3/38/Flag_of_Cape_Verde.svg", + "independence": { + "country": [ + "Portugal" + ], + "date": "1975-07-05" + }, "languages": [ "Kabuverdianu", "Kriolu" @@ -1574,6 +1625,13 @@ "area": 5069459315.473289, "code": "CW", "continent": "South America", + "created": { + "country": [ + "Netherlands Antilles" + ], + "created": "merged", + "date": "2010-10-10" + }, "dependency": [ "Netherlands" ], @@ -1804,6 +1862,12 @@ "continent": "South America", "east": -61.2295532, "flagURL": "http://upload.wikimedia.org/wikipedia/commons/c/c4/Flag_of_Dominica.svg", + "independence": { + "country": [ + "United Kingdom" + ], + "date": "1978-11-03" + }, "lat": 15.414999, "lng": -61.370976, "name": "Dominica", @@ -2084,6 +2148,12 @@ "continent": "Oceania", "east": -177.8686523, "flagURL": "http://upload.wikimedia.org/wikipedia/commons/b/ba/Flag_of_Fiji.svg", + "independence": { + "country": [ + "United Kingdom" + ], + "date": "1970-10-10" + }, "lat": -17.713371, "lng": 178.065032, "name": "Fiji", @@ -2205,17 +2275,11 @@ "Saint Martin", "Saint Pierre and Miquelon", "Wallis and Futuna", - "Antarctica", - "New Hebrides" + "New Hebrides", + "Antarctica" ], "east": 9.6625, "flagURL": "http://upload.wikimedia.org/wikipedia/en/c/c3/Flag_of_France.svg", - "independence": { - "country": [ - "Comoros" - ], - "date": "1975-07-06" - }, "languages": [ "French", "Breton", @@ -2233,6 +2297,13 @@ "area": 568730876782.7081, "code": "FR-AQ", "continent": "Antarctica", + "created": { + "country": [ + "French Southern and Antarctic Territories" + ], + "created": "merged", + "date": "1979" + }, "dependency": [ "France" ], @@ -2287,9 +2358,8 @@ "code": "GB", "continent": "Europe", "dependencies": [ - "Antarctica", - "New Hebrides", "Canton and Enderbury Islands", + "New Hebrides", "Akrotiri and Dhekelia", "Anguilla", "Bermuda", @@ -2317,7 +2387,8 @@ "Southern Rhodesia", "Trucial States", "Turks and Caicos Islands", - "Wales" + "Wales", + "Antarctica" ], "disputes": [ "Sealand" @@ -2325,12 +2396,6 @@ "east": 1.768926, "flagURL": "http://upload.wikimedia.org/wikipedia/en/a/ae/Flag_of_the_United_Kingdom.svg", "googleName": "UK", - "independence": { - "country": [ - "Brunei" - ], - "date": "1984-01-01" - }, "languages": [ "Cornish", "English", @@ -2538,6 +2603,12 @@ "continent": "South America", "east": -61.3620758, "flagURL": "http://upload.wikimedia.org/wikipedia/commons/b/bc/Flag_of_Grenada.svg", + "independence": { + "country": [ + "United Kingdom" + ], + "date": "1974-02-07" + }, "lat": 12.262776, "lng": -61.604171, "name": "Grenada", @@ -2977,6 +3048,12 @@ "continent": "Africa", "east": -13.6430556, "flagURL": "http://upload.wikimedia.org/wikipedia/commons/0/01/Flag_of_Guinea-Bissau.svg", + "independence": { + "country": [ + "Portugal" + ], + "date": "1974-09-10" + }, "lat": 11.803749, "lng": -15.180413, "name": "Guinea-Bissau", @@ -3605,6 +3682,12 @@ ], "east": 44.5646667, "flagURL": "http://upload.wikimedia.org/wikipedia/commons/9/94/Flag_of_the_Comoros.svg", + "independence": { + "country": [ + "France" + ], + "date": "1975-07-06" + }, "lat": -11.875001, "lng": 43.872219, "name": "Comoros", @@ -3644,6 +3727,13 @@ "disputed": [ "Comoros" ], + "dissolved": { + "country": [ + "Comoros" + ], + "date": "2002-03-10", + "dissolved": "joined" + }, "east": 43.8763046, "flagURL": "http://upload.wikimedia.org/wikipedia/commons/3/32/Flag_of_Moh%C3%A9li.svg", "lat": -12.3377376, @@ -3826,6 +3916,12 @@ "continent": "South America", "east": -60.8597946, "flagURL": "http://upload.wikimedia.org/wikipedia/commons/9/9f/Flag_of_Saint_Lucia.svg", + "independence": { + "country": [ + "United Kingdom" + ], + "date": "1979-02-22" + }, "lat": 13.909444, "lng": -60.978893, "name": "Saint Lucia", @@ -4467,6 +4563,12 @@ "continent": "Africa", "east": 41.3965, "flagURL": "http://upload.wikimedia.org/wikipedia/commons/d/d0/Flag_of_Mozambique.svg", + "independence": { + "country": [ + "Portugal" + ], + "date": "1975-06-25" + }, "lat": -18.665695, "lng": 35.529562, "name": "Mozambique", @@ -4723,12 +4825,6 @@ ], "east": 7.2271405, "flagURL": "http://upload.wikimedia.org/wikipedia/commons/2/20/Flag_of_the_Netherlands.svg", - "independence": { - "country": [ - "Suriname" - ], - "date": "1975-11-25" - }, "languages": [ "Dutch" ], @@ -5010,6 +5106,12 @@ ], "east": 159.9609, "flagURL": "http://upload.wikimedia.org/wikipedia/commons/e/e3/Flag_of_Papua_New_Guinea.svg", + "independence": { + "country": [ + "Australia" + ], + "date": "1975-09-16" + }, "languages": [ "Korowai" ], @@ -5213,12 +5315,6 @@ "continent": "Europe", "east": -6.1902091, "flagURL": "http://upload.wikimedia.org/wikipedia/commons/5/5c/Flag_of_Portugal.svg", - "independence": { - "country": [ - "Angola" - ], - "date": "1975-11-11" - }, "languages": [ "Portuguese" ], @@ -5328,6 +5424,12 @@ "continent": "Asia", "east": 51.6769, "flagURL": "http://upload.wikimedia.org/wikipedia/commons/6/65/Flag_of_Qatar.svg", + "independence": { + "country": [ + "United Kingdom" + ], + "date": "1971-09-03" + }, "lat": 25.354826, "lng": 51.183884, "name": "Qatar", @@ -5583,6 +5685,12 @@ "continent": "Oceania", "east": 168.0249023, "flagURL": "http://upload.wikimedia.org/wikipedia/commons/7/74/Flag_of_the_Solomon_Islands.svg", + "independence": { + "country": [ + "United Kingdom" + ], + "date": "1978-07-07" + }, "lat": -9.64571, "lng": 160.156194, "name": "Solomon Islands", @@ -5597,6 +5705,12 @@ "continent": "Africa", "east": 56.3928223, "flagURL": "http://upload.wikimedia.org/wikipedia/commons/f/fc/Flag_of_Seychelles.svg", + "independence": { + "country": [ + "United Kingdom" + ], + "date": "1976-06-29" + }, "lat": -4.679574, "lng": 55.491977, "name": "Seychelles", @@ -5654,6 +5768,10 @@ "area": 2899291545265.023, "code": "SH", "continent": "Africa", + "dependencies": [ + "Ascension", + "Tristan da Cunha" + ], "dependency": [ "United Kingdom" ], @@ -5866,6 +5984,12 @@ "continent": "South America", "east": -53.9429, "flagURL": "http://upload.wikimedia.org/wikipedia/commons/6/60/Flag_of_Suriname.svg", + "independence": { + "country": [ + "Netherlands" + ], + "date": "1975-11-25" + }, "lat": 3.919305, "lng": -56.027783, "name": "Suriname", @@ -5902,6 +6026,12 @@ "east": 7.658844, "flagURL": "http://upload.wikimedia.org/wikipedia/commons/4/4f/Flag_of_Sao_Tome_and_Principe.svg", "imdbName": "Sao Tome and Principe", + "independence": { + "country": [ + "Portugal" + ], + "date": "1975-07-12" + }, "lat": 0.18636, "lng": 6.613081, "name": "S\u00e3o Tom\u00e9 and Pr\u00edncipe", @@ -6009,8 +6139,7 @@ "code": "TA", "continent": "Africa", "dependency": [ - "Saint Helena", - "Ascension and Tristan da Cunha" + "Saint Helena, Ascension and Tristan da Cunha" ], "east": -12.2169685, "exception": true, @@ -6162,6 +6291,13 @@ "area": 61551190637.092255, "code": "TL", "continent": "Asia", + "created": { + "country": [ + "East Timor" + ], + "created": "renamed", + "date": "2002-05-20" + }, "east": 127.4249, "flagURL": "http://upload.wikimedia.org/wikipedia/commons/2/26/Flag_of_East_Timor.svg", "lat": -8.874217, @@ -6216,6 +6352,12 @@ "continent": "Oceania", "east": -173.2543945, "flagURL": "http://upload.wikimedia.org/wikipedia/commons/9/9a/Flag_of_Tonga.svg", + "independence": { + "country": [ + "United Kingdom" + ], + "date": "1970-06-04" + }, "languages": [ "Tonga (Tonga Islands)" ], @@ -6236,7 +6378,7 @@ ], "dissolved": { "country": [ - "Timor Leste" + "Timor-Leste" ], "date": "2002-05-20", "dissolved": "renamed" @@ -6439,9 +6581,8 @@ "code": "UK", "continent": "Europe", "dependencies": [ - "Antarctica", - "New Hebrides", "Canton and Enderbury Islands", + "New Hebrides", "Akrotiri and Dhekelia", "Anguilla", "Bermuda", @@ -6469,7 +6610,8 @@ "Southern Rhodesia", "Trucial States", "Turks and Caicos Islands", - "Wales" + "Wales", + "Antarctica" ], "disputes": [ "Sealand" @@ -6478,12 +6620,6 @@ "exception": true, "flagURL": "http://upload.wikimedia.org/wikipedia/en/a/ae/Flag_of_the_United_Kingdom.svg", "googleName": "UK", - "independence": { - "country": [ - "Brunei" - ], - "date": "1984-01-01" - }, "languages": [ "Cornish", "English", @@ -6529,6 +6665,7 @@ "code": "US", "continent": "North America", "dependencies": [ + "Canton and Enderbury Islands", "American Samoa", "Guam", "Northern Mariana Islands", @@ -6540,8 +6677,7 @@ "United States Minor Outlying Islands", "United States Miscellaneous Pacific Islands", "United States Virgin Islands", - "Wake Island", - "Canton and Enderbury Islands" + "Wake Island" ], "east": -66.885417, "flagURL": "http://upload.wikimedia.org/wikipedia/commons/e/e2/Flag_of_the_United_States_%28Pantone%29.svg", diff --git a/tools/geo/jsonc/countries.jsonc b/tools/geo/jsonc/countries.jsonc index d13d10b0..bb95695b 100644 --- a/tools/geo/jsonc/countries.jsonc +++ b/tools/geo/jsonc/countries.jsonc @@ -250,7 +250,7 @@ }, "dependencies": { "Argentina": ["Argentine Antarctica"], - "Argentina, Australia, Chile, France, New Zealand, Norway, United Kingdom": ["Antarctica"], + "Argentina; Australia; Chile; France; New Zealand; Norway; United Kingdom": ["Antarctica"], "Australia": [ "Ashmore and Cartier Islands", "Australian Antarctic Territory", "Christmas Island", "Cocos Islands", "Coral Sea Islands", "Heard Island and McDonald Islands", "Norfolk Island" @@ -266,7 +266,7 @@ "New Caledonia", "Réunion", "Saint Barthélemy", "Saint Martin", "Saint Pierre and Miquelon", "Wallis and Futuna" ], - "France, United Kingdom": ["New Hebrides"], + "France; United Kingdom": ["New Hebrides"], "Guernsey": ["Alderney", "Herm", "Sark"], "India": ["Jammu and Kashmir"], "Netherlands": [ @@ -287,7 +287,7 @@ "Saint Christopher-Nevis-Anguilla", "Saint Helena, Ascension and Tristan da Cunha", "Scotland", "South Georgia and the South Sandwich Islands", "Southern Rhodesia", "Trucial States", "Turks and Caicos Islands", "Wales" ], - "United Kingdom, United States": ["Canton and Enderbury Islands"], + "United Kingdom; United States": ["Canton and Enderbury Islands"], "United States": [ "American Samoa", "Guam", "Northern Mariana Islands", "Johnston Island", "Midway Islands", "Pacific Islands", "Panama Canal Zone", "Puerto Rico", "United States Minor Outlying Islands", "United States Miscellaneous Pacific Islands", @@ -301,7 +301,7 @@ "Cyprus": ["Northern Cyprus"], "Georgia": ["Abkhazia", "South Ossetia"], "Indonesia": ["East Timor"], - "Iraq, Saudi Arabia": ["Neutral Zone"], + "Iraq; Saudi Arabia": ["Neutral Zone"], "Moldova": ["Transnistria"], "Morocco": ["Sahrawi"], "New Hebrides": ["Tafea", "Tanna", "Vemerana"], diff --git a/tools/geo/py/geo.py b/tools/geo/py/geo.py index 9f6d6996..d76ef25c 100644 --- a/tools/geo/py/geo.py +++ b/tools/geo/py/geo.py @@ -1,5 +1,6 @@ # -*- coding: utf-8 -*- +import codecs import json import os import ox @@ -96,7 +97,6 @@ def get_countries(): 'country': data['dependency'], 'date': country['created']['date'] } - sys.exit() # Flags countries = sorted(countries, key=sort) flags = get_flags(countries) @@ -126,14 +126,14 @@ def get_country_data(country): country['created'] = DATA['created'][name] # dependencies for c, d in DATA['dependencies'].iteritems(): - c = c.split(', ') + c = c.split('; ') if name in c: country['dependencies'] = d if not 'dependencies' in country else country['dependencies'] + d elif name in d: country['dependency'] = c if not 'dependency' in country else country['dependency'] + c # disputes for c, d in DATA['disputes'].iteritems(): - c = c.split(', ') + c = c.split('; ') if name in c: country['disputes'] = d if not 'disputes' in country else country['disputes'] + d elif name in d: @@ -261,7 +261,7 @@ def parse_txt(): 'dissolved': {}, 'independence': {} } - f = open('../txt/countries.txt') + f = codecs.open('../txt/countries.txt', 'r', 'utf-8') lines = map(lambda x: x.strip(), f.readlines()) f.close() for line in filter(lambda x: x[0] != '#', lines): diff --git a/tools/geo/txt/countries.txt b/tools/geo/txt/countries.txt index a3c5174d..a8900ea9 100644 --- a/tools/geo/txt/countries.txt +++ b/tools/geo/txt/countries.txt @@ -1,3 +1,4 @@ +# FIXME: character encoding doesn't work! # see http://en.wikipedia.org/wiki/List_of_sovereign_states_by_date_of_formation # a < b / c a splits into b and c # a / b > c a and b join as c @@ -16,7 +17,7 @@ 1971-12-02 Abu Dhabi / Ajman / Dubai / Fujairah / Sharjah / Umm al-Quwain > United Arab Emirates 1971-12-16 United Kingdom * Bahrain 1971-12-16 Pakistan - Bangladesh -1972-02-11 Ras al Khaimah + United Arab Emirates +1972-02-11 Ras al-Khaimah + United Arab Emirates 1972-05-22 Ceylon = Sri Lanka 1973-06-01 British Honduras = Belize 1973-07-10 United Kingdom * Bahamas @@ -30,7 +31,9 @@ 1975-07-06 France * Comoros 1975-07-12 Portugal * São Tomé and Príncipe 1975-09-16 Australia * Papua New Guinea +1975-08-01 Portugal - Cabinda 1975-11-11 Portugal * Angola +1975-11-11 Cabinda + Angola 1975-11-25 Netherlands * Suriname 1975-11-30 Dahomey = Benin 1976-01-01 Gilbert and Ellice Islands < Ellice Islands / Gilbert Islands @@ -56,6 +59,7 @@ 1984-01-01 United Kingdom * Brunei 1984-08-04 Upper Volta = Burkina Faso 1986 Johnston Island / Midway Islands / United States Miscellaneous Pacific Islands / Wake Island > United States Minor Outlying Islands +1986-01-01 Netherlands Antilles - Aruba 1986-10-21 Pacific Islands - Marshall Islands 1986-11-03 Pacific Islands - Micronesia 1989-05-01 Kampuchea = Cambodia @@ -93,7 +97,7 @@ 1998-12-24 Bougainville + Papua New Guinea 2000-02-06 Chechnia + Russia 2002-03-10 Anjouan / Mohéli + Comoros -2002-05-20 East Timor = Timor Leste +2002-05-20 East Timor = Timor-Leste 2003-02-04 Yugoslavia = Serbia and Montenegro 2006-06-05 Serbia and Montenegro < Serbia / Montenegro 2008-02-17 Serbia - Kosovo