From 3c419d3ee70dfcfbac294cf3b84a65fda97e9e3f Mon Sep 17 00:00:00 2001 From: rlx <0x0073@0x2620.org> Date: Fri, 9 Sep 2011 23:05:04 +0000 Subject: [PATCH] update geo module; make Ox.load accept multiple modules --- source/Ox.Geo/Ox.Geo.js | 2 +- source/Ox.Geo/json/Ox.Geo.json | 122 ++++++++++++++++----------------- source/Ox.js | 30 +++++--- tools/geo/py/geo.py | 37 +++++++--- 4 files changed, 108 insertions(+), 83 deletions(-) diff --git a/source/Ox.Geo/Ox.Geo.js b/source/Ox.Geo/Ox.Geo.js index cf652ba9..835c9ca1 100644 --- a/source/Ox.Geo/Ox.Geo.js +++ b/source/Ox.Geo/Ox.Geo.js @@ -147,7 +147,7 @@ Ox.load.Geo = function(options, callback) { Ox.getCountryByName = function(name) { var country; Ox.forEach(Ox.COUNTRIES, function(c) { - if (name == c.name || name == c.googleName) { + if (name == c.name || name == c.googleName || name == c.imdbName) { country = c; return false; } diff --git a/source/Ox.Geo/json/Ox.Geo.json b/source/Ox.Geo/json/Ox.Geo.json index 0d051a4e..ddd529e4 100644 --- a/source/Ox.Geo/json/Ox.Geo.json +++ b/source/Ox.Geo/json/Ox.Geo.json @@ -766,7 +766,7 @@ "imageURLs": { "icon16": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAUUlEQVQ4EWNkYGD4D8RgwMzMyPD373+GZVN1GCIjpRi+v//NwMLAyMDIz8jwa9sfhu81PxkYeRkZGP7BdDAwMCGY5LFGDRgNRFDKGU0HgyEMAJcGD25//rDvAAAAAElFTkSuQmCC" }, - "area": 61469675843.9538, + "area": 61469675843.95348, "east": 6.40782, "lat": 50.503887, "lng": 4.469936, @@ -1283,7 +1283,7 @@ "dissolved": [], "flagURL": "http://upload.wikimedia.org/wikipedia/commons/8/86/Flag_of_Cote_d%27Ivoire.svg", "imdbCode": "ci", - "imdbName": "Côte d'Ivoire", + "imdbName": "Ivory Coast", "languages": [], "name": "Côte d'Ivoire", "other": false, @@ -1887,7 +1887,7 @@ "imageURLs": { "icon16": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABO0lEQVQ4EaVSPUsDQRSc3VvvzBHI+VUkkKsUBIUgFhaCFlaK2Fnaib/BTv+Gvf4RG8VKS5tgIRIwwsUimvvI+t5dBJvdO8kWyy5v3sy82RVYu9DglWSAkoAQ+bXqJhnvEEUYzmPWmwHo/B8OiThD2Grg7uYUJ0cdyO8kF5eymhMHS7uXo1Tj43OI24cX9HsD+IGPOPoCPKd0EsEZsGVNDS41HuytYn97GVfX93jqviMrEjISUWrUTCBvoQ45SnC4s4Kz40202nPIhgnKRskdMAmnOSaCjU4bzcU6Hp97eHuNIDxFAmYbQqxPnnESv6ZQEaeA79JrcJDcbA5U6TSfgk0UWEnB1Vzw8GbdAs67ChqU9hRL9LvNKkJGiT/+jRhrQQRb51M5UNGgZlUoKyqhxmUYa11Z/oi18bf4A2wFWJATKc24AAAAAElFTkSuQmCC" }, - "area": 1805549223.1433032, + "area": 1805549223.1432948, "east": -68.7385368, "lat": 12.1224221, "lng": -68.8824233, @@ -1941,7 +1941,7 @@ "imageURLs": { "icon16": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABSElEQVQ4EZWRv0oDQRDGv/1zuVtT+AfB2lhZCHkBTWPpu4RopY0HgvgEPoCPoIWdFopJYat2Np6CIiZgIYHcnjObnOfJqXcDs7ss+/3mm1kcHJ0lHKM4Tqw7VVvU+fNC6Nc8rDYXEccWQgoIlA81t7wenlzcwPge1pqNyhBlllph3dRwfHk3gVRzooJGK2TD9YAht5UhzkHacQbRWTs0kL9mkgNkTridMQSChkrJe1HqtDrvSQJYJJifnsL24SmGQmNnYwX0v5D0O0WRA7gHBCEF1OwMXvb28bR7jw/lQTK9IHIAriHoYV8H6ERdbL1eo2+lk9kCMV99AVLxwBuLOw9dvNFZql+Uk2sHyIlJyNUZxG7+Czcafugq/xAXjy2PpAapZ8+ALX+vXEbMKPmufGxGVy5T22XFDNDtqIf2Yw8DbVzPVcQM+AQxrLkCITMflwAAAABJRU5ErkJggg==" }, - "area": 135542041322.53484, + "area": 135542041322.53429, "east": 18.859236, "lat": 49.817492, "lng": 15.472962, @@ -1986,7 +1986,7 @@ "dissolved": [], "flagURL": "http://upload.wikimedia.org/wikipedia/commons/6/6f/Flag_of_the_Democratic_Republic_of_the_Congo.svg", "imdbCode": "cd", - "imdbName": "Democratic Republic of the Congo", + "imdbName": "Democratic Republic of Congo", "languages": [ "Lingala" ], @@ -2378,7 +2378,9 @@ "flagURL": "http://upload.wikimedia.org/wikipedia/commons/7/71/Flag_of_Ethiopia.svg", "imdbCode": "et", "imdbName": "Ethiopia", - "languages": [], + "languages": [ + "Amharic" + ], "name": "Ethiopia", "other": false, "wikipediaURL": "http://en.wikipedia.org/wiki/Ethiopia", @@ -2435,7 +2437,7 @@ "imageURLs": { "icon16": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAB8UlEQVQ4EaVSPWtUQRQ9b+Z9YDY8JZAN+4zRwEbRIuBXI1gJWgT8BRZWIZXY+AcsRTGIjVaWtjYRtIiNBs1CAkKagCurSUx0VZbsW9eXmfHcSZEEm4W9cB/3ztx77jnvTgBMO/RhKgj2uiXclx6I96oORso5w0IHpeQL7wwhyL1QUydGBlmoYW2OkjZ0C0tQ67oYPWSglfKwAVGVVggk30c7nLmWITt1DI/fdnDT1DyFp+sZbl89jK9IcffJImxu4GzBQTsEE5GaHnngcLj+EZPbS3hx8SSa7+owrRamLhXoxhW8+rCMuND4S0YT56oYHB/B2m8CbfzA95VPxIoofSBCUq2i2Fj3zTpNEVUydFdXYTsFi2QapVSP4v69KTx8cB16YtSfBZQS/jp/BQv5TzxaSDBdIS0yfLZ4HLcun0Zz+TO6tbonXYpjvHz9HGFoMH6kjG+EkItwdnYeDWoUXXdWRJ9D27zBjbkSxsoJtcuJQ9rJcSHlXyh28N7Xc3OsVo1cc2UJXbNR0ZmrAYIbNLbaME5AY5wtN5FGw8iSIZzBEqcTnOihXFu3u3GJxayVPOC2eOJjhVptC2tf2viz3cLmZs57Wb0VFb0+ZWqBuBCXH7s7NGTUkyk+oEA2QraO7omxs2cAsqX9/7iFT1/WN8A/Dgm5qCpH5ScAAAAASUVORK5CYII=" }, - "area": 42441463935.05421, + "area": 42441463935.05392, "east": -57.6768494, "lat": -51.796253, "lng": -59.523613, @@ -2544,7 +2546,7 @@ "imageURLs": { "icon16": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABGUlEQVQ4EaVTMU7EQAz0Js4JRAvSpUtHKAm6n9AhUfMIKPkDDzjpqvsJoYR0dIBEzYGUZBdbFyfObgpE3Diyx7Me2zGODDprrYM4MvD48garqwcwCVLGgastlJsbKE5TsISJCCMWycd//WwC5JbE+Jub0zGd47ifw5GeTtvRYSJ1vecYYzWek1hW7z2I2Rnw/PoJYIZBcVtP1QfsfppgiAbO7wYNQsXFsTee1tJCQijuVyWV4ml1HtYgE6quOqj3jBD83aOrmxA9IcE10xIMXV3frB7i9e0WDMZETnKoeH1/CXl2HAwRL/I06OBgQYV6CPREkS/hLDsJsKNDkn/h67sOgByTQ9K3MDok1jJ1LMym45pg9hZmE/wCBPtyZUtjObEAAAAASUVORK5CYII=" }, - "area": 676332610065.4193, + "area": 676332610065.4183, "east": 31.5871, "lat": 61.92411, "lng": 25.748151, @@ -2726,7 +2728,7 @@ "imageURLs": { "icon16": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAUUlEQVQ4EWNkUJ76nwEKmJkZGf5++Mmwcr4PQ5iXCsOfv/8YWBiA0szMDL927GP4nFrAwCjAz8Dw9y9MCwMTnEUmY9QAhtFABKad0XQwGMIAAH5+EW6ExWn7AAAAAElFTkSuQmCC" }, - "area": 37259932200.37096, + "area": 37259932200.370995, "east": 43.4839, "lat": 11.825138, "lng": 42.590275, @@ -2975,7 +2977,7 @@ "imageURLs": { "icon16": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACK0lEQVQ4EXVT3WoTQRT+ZmY3u4n5E4oFK9iCJajgjdfe+HPhjT6CfYGCKBQfQIqC+Ay+glAEhUIv9N6KkrZRa01TpSghaUmy2Z/xnJlZWms8MLuzZ873nZ9vVmgyTLIsg87skZACkHJSFLx/vMzHiwDiOIYIIYiI1zH7m4AzcjYKira+YbS5TaEC4cU5BBfOW1ge40iOCNzB+PsPdB48Qf/1W6SHAxOmKqdQvX0N554/gj8zbSt0lQgzAwZT4nH7J1rX7yH6sg1VqVMLtgdN5ScHXRQb85hffQH/7BkiIW6qVnK/Wtv+Og+fGrA/RQFkDOTFVpiappY+o7P0zLRo/IS1FVBA1NpB8/IdwKOszG4fvHF2NLxLzRUUZmeM30t+dSGUxHB9A7IcQlUr0ClXlAPdm7ukuLR/aGJVrWxkFh9nb+qk10P97i0a0pJ1/kdzLpvvRHtxGf1Xa1C1Krxk/zfSwRDDD5tQp2sn0k7+5Ni0e4AsimmISsEjpuF6E/037wxCR2MaAdWcL1LJ+Oi0t7KG0actqHqFWlK5CjRNT2F38THivX2IoOAmTUB3P9jHd2T3/jKE71t1KIEVmnqTYUgStukeLJgsOk7M0Hhwehyj93IVrRsLGO/sQQYBwMRk4n35qt3xBwVngxGpkKJ4pYGwMWfEjDa+mhlxZlkMrEoGfoLA+JwCGQ1WJ7F1eQWIUkh7yuUyO/yEv9HdPFkqkmQlgzF/vPPnwPz9B4FbBz6tAdv0AAAAAElFTkSuQmCC" }, - "area": 6703297450467.926, + "area": 6703297450467.932, "east": -8.26172, "lat": 71.706936, "lng": -42.604303, @@ -3237,13 +3239,13 @@ "imageURLs": { "icon16": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAB5UlEQVQ4EaVSTU8TURQ9M/P6ObamabuBBhMSQ4JhQUwM9hdIXBkWkPADdKP/gB+gO/bGtS6BhRs2JKQbCxsCVhPZtNYEKC0iU9tOO9zz2mmm4WvBnXkzd+6799x7zjwjv7Lr4R5m3lZrGADXbXYjAAtbHQ9u14NlGpD7WhsCBLuRU8f1MJGJIBlTqF+4cNq9awEUo343dolHTJw3u3g3n8NSPoszp4vt0hk2dmso/XauUDL7xT3MTNgYS4VRqbXwIGph8XkWYWUimwzh1bMMPr2ZwtsX42jKJGaAz2ACQ7q6eL88ifWdGp7kbERCJnrChdRdcUKWgaeTCYlJkGtgin5UkkvVJr4UjrGy8MjfGwqnpJhgnGbucRLFX+eIhfsNRkTUiZLZ6vR0gd+IU3jykbIVXs6m9b5B7mIagGPZglj4+RenojjHJ81Bjk70H5XT1ogGGoCdlGWiXPuPD+tl7Fcu8KPqoFpva9F4Fqh2Q8DXvp1oyloLQdUiEp2BhKi/uVfH1kFDd+GQH19PYToXZwpWv1bwp9HGw7hCl6KIDQH4wZgdseDxEp/rc+EI6YTCdzkDO4f/kIhZw+IrAH2QPjJ9arBWPNHA/I08ZAQN2sgEwQ3f57g0Fvq8/T2+7wTwuQaLgv4lJoHBb922MVIAAAAASUVORK5CYII=" }, - "area": 2657743977.5988255, - "east": 73.859146, + "area": 907919348.8570622, + "east": 73.7792015, "lat": -53.08181, "lng": 73.504158, - "north": -52.909416, - "south": -53.192001, - "west": 72.596535 + "north": -52.9609445, + "south": -53.1916875, + "west": 73.2506561 }, { "code": "HN", @@ -3363,6 +3365,7 @@ "imdbName": "India", "languages": [ "Telugu", + "Malayalam", "Ladakhi", "Marathi", "Punjabi", @@ -3465,7 +3468,7 @@ "imageURLs": { "icon16": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABWUlEQVQ4EaVTwU7CQBB9SxeKoImmJl6M3kw8GMM/ePQXPXkg9mJiAh41eCBcMJogB4QY4GIggAokte2us9OgpHLRbtPZ9s3Mm7cvrahvHWgkWKkEvdyamEAKy/olwpxJxNBVmCmRwXgSK/1pVpRZEJldaQ0hFkjUJsaX5W8ToykCoVZUrGBbad4NbrC8tOGrkLGonaKOLZqiryYtRudLua729MWwod+WMPOYQhhC0020THrbb2B7rnDWvEG5XaPRUb7avkfp8Q6VlzpjQeBzn/RJmqCrNx3guveA6rCDDZLanY1QcPZxuldAsVPDeasCZ20Tzx8DeHQM9sJ4YmSY0aVRE0+jPk52j+CHPnIyy+c+zu6gr2fovb8iZ+eRsSQO0w6rNUG4rsscngrYtHWabnyODAWmgYcsmZlJSTZPUWYefBrvmGRRyy//CdJa8SH9hSixgsT/QmKCL+vEz8udeEpdAAAAAElFTkSuQmCC" }, - "area": 848059568986.0638, + "area": 848059568986.0635, "east": 48.6351, "lat": 33.223191, "lng": 43.679291, @@ -4023,7 +4026,7 @@ "imageURLs": { "icon16": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABPUlEQVQ4Ed2Sv07DMBDGPyeGFFqiYioBYkBiQlCxsaBKTDwLjwGPwYuwd0JiBAYWQEJipZUKtE0j33F2EnWoHBAjHnJfzr7vfv6jcHjBkBEpAnHspGgrOvK69sNM5SoFmq1iRY/RiMdeA6q2tprUkE6NpQl2199gmgM4nOGXwetHB9O8IT4esFq/EDVyjbODB5yf3uH2MYaSxsf7hKv+Ea7vTxAlmWwnTKNBwKZh7Gy30GsmHryTZtiSnJtzhh5roXeR0Coi3Lzsoff0jPfByG/dtBOfU7H1xaH+bnMK3UuGlbMcDYHZZ2G7vAakbSAWhBp8MJFObeYxI9OSmHoDZrlGO4GE2sHMUP2NbnnMEkpV3GAIfO5p5R1oQ9N5plKVUfUfiCQEOscvXlzIQJD1z6CBakm72r+3L33/gcE38EhnAbC8XMoAAAAASUVORK5CYII=" }, - "area": 307187958.05156535, + "area": 307187958.0515524, "east": 9.63565, "lat": 47.166, "lng": 9.555373, @@ -4102,13 +4105,13 @@ "imageURLs": { "icon16": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAB20lEQVQ4EaWTO28TQRSFv9n1GrBMkkWKII7Mww0PiYcrpFAERAMpqHg1iQS/gp6SPtQ0/AE6CoQEkSKUQAMuSEjAtmLLsfMCwRLvgzvjZOU12A1XmtnZe889c+5ZreLRTMR/hDWo11Kg16BIDSqGvt0p20Ff2F8KzK3IVH6K26dq3CnUzFlJ7l9qEgSWigi9NDdyTY5nt/nUgpKsfHaHqfGm1BwhSVqWICBSFI9tMLfu8hOXqxceMHn+IR4jvG24UttEY7oj4YHmHnI8trfaXL9YZPbWXYNdblV4+f41Q24gg2S7+4kJNK+KQr62LzE9kUdDf+z+RudHMxmmr9zkTbkqmLIALe2SiZhAv9kCf35vhokTp6l93+JQyjGgJ1P3GTs8wnx5icnZx7RNtrPFBEopAt/n2eKcgF3Gh49QaqzJTRFnRsdY3Vg3NT8IUI5DFHU0xAQmYdsstxo8nX+Fbdm8q34RIFzOFwjCkKVWnUgwJrmnIibYV7VQXWH4YIazR3NcK5yTecFr7/K5WWehsrIPi58xgREkY+x4v3hRWmR1s0Exd9IAP6x942O9gpaPlfzyqu/PJLeiG3Ro2U66c+7ZYwU9eaz0AbSxOrQ/4Z5pvbi+BKahT1M3yR9hXqfTiXBHnQAAAABJRU5ErkJggg==" }, - "area": 106565243.90191776, + "area": 106541136.07033066, "east": 113.6127, "lat": 22.198745, "lng": 113.543873, "north": 22.217159, "south": 22.1066, - "west": 113.5287132 + "west": 113.5287322 }, { "code": "MG", @@ -4235,7 +4238,7 @@ "imageURLs": { "icon16": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAATUlEQVQ4EWMU2Wr1nwEKmIH0+39MDCtEnzEEcn9i+PWPmYHp738GFv7/DG83szHcL+UBs///helgYGBCMMljjRowGoiglDOaDgZDGAAAPj8SJOyaQUoAAAAASUVORK5CYII=" }, - "area": 2887946411067.38, + "area": 2887946411067.381, "east": 4.2666666, "lat": 17.570692, "lng": -3.996166, @@ -4970,7 +4973,9 @@ "flagURL": "http://upload.wikimedia.org/wikipedia/commons/f/f4/Flag_of_Niger.svg", "imdbCode": "ne", "imdbName": "Niger", - "languages": [], + "languages": [ + "Djerma" + ], "name": "Niger", "other": false, "wikipediaURL": "http://en.wikipedia.org/wiki/Niger", @@ -5060,13 +5065,13 @@ "imageURLs": { "icon16": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABQUlEQVQ4Ec2Sv0oDQRDGv9m7SzQQbGy0M43R1rRiXkCsfBDLPIWvYJ/WVBEEIY2gCCnigZEEQRFBFEISz9yuO5ucJLd7ATuHvWLnz+9mvllCraKgTZCAjEYob26jc1Jnl2U7p8e4fw4hcquQSpq4sLL+6PjnABZHKSNR5mDOERKBWr07XHSvTXHiS5OcAAIhljHObs/RCFu/iqeL+W4BpG6ZiNB+7aL/8YJG5wqXjzfTNc9WNw+yAHpqEx9PInyOBvD1+wjf+sbnUsOfp3ExP6ivyTfq7SZ670/whK+7ecAwGiMQnk5fxKQAPD1pCKFaqmAtV0A+WMHR7gGEoFkpLfwzBWC+QuD5OCzvo7q1h0E0xEZxfTqCY6UWIMHHWrBivmA+Fpa7clkmwNNacDd8sooZmAngIOvBZ5k51rgs3Y79AI6aZjBIljBGAAAAAElFTkSuQmCC" }, - "area": 112704828.2027126, - "east": 167.998033, + "area": 133359235.18423142, + "east": 167.9985523, "lat": -29.040835, "lng": 167.954712, - "north": -29.001979, - "south": -29.126415, - "west": 167.914414 + "north": -28.9929014, + "south": -29.1375059, + "west": 167.9134083 }, { "code": "KP", @@ -5633,13 +5638,13 @@ "imageURLs": { "icon16": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACF0lEQVQ4EaWTP2gUQRTGfzM7e5e747wrFAIiaHON+KeQGFBQG0VEoiFFwEoLW7WQCIoQiNqJYGWRQhvLFEEEC8FOsDiwUAgkIKggyZlLzuTu9nZnfLN6mgtHDPjg7czuvP3m+958w6njs+5N+bBz4FYkvynjaihJtpWKscjlOqtcnX/CjbmH7IlqLAMWRaBk8o9QeqTmrDYQ7mDwxwITHx9w5fMzcklE3SIwoCWFYTrfjKe4UHdKlrVLSIK8VA9wpFll6nyTM0dDT4VW2xEISj9CKUAXVUu1jWWvsAAmYPykYfISVEq/KhIZgm7x7/EvgOcouXdQ82UpptORlzVHoaS5PpLl5miGUlGkSgipVJaf/wHIZxXr8sPMnTzXplssLlkSqY8iqWpY9lVy3N79lsufnorcmEZQEBCH0hfrzkrRuWHDxGiW4Yph7mvC9KuIx7MRVjhr0R9LH4gch5bfMfX+FifaVVqeiZXvZgBevO5QXbCEsut6Gx7NtLHyoyxvGakoK90Ji4qaUD17d41jBwy7dmq+rzpiERyvbJTwHH1wv0gYIu8l+GP02wQC5e1oG/LIOXIZaNYshfLWTUwZ+ANOYt9RS6boRGqBphzY+Fj/Y/TG6kYK4I0UkBCbPBFiJGnQPTHSaW+k+V4jyT49YbwDvZXjTLnXyi8jFrdhZWPDIull+nC/5zK1RdDGy9TPximV/73OPwF9CRHpBlbGDAAAAABJRU5ErkJggg==" }, - "area": 24538272528.283676, - "east": -65.168503, + "area": 20363167075.50654, + "east": -65.22111, "lat": 18.220833, "lng": -66.590149, - "north": 18.568002, - "south": 17.831509, - "west": -67.998751 + "north": 18.51601, + "south": 17.88124, + "west": -67.94616 }, { "code": "QA", @@ -6210,13 +6215,13 @@ "imageURLs": { "icon16": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAADQ0lEQVQ4EUWTXWgcVRTHf3NnJtnZ7MZkLZs02TSiqU2qRG2iCdVCC8mDoNCHWqjgg2C1BcUn8bWI+ihofCvYUiiIIGIf1D5oFU0IlbaSVvLVVsjXbpJNdneyH7OzM3M90YoHhjPce//n/M//nGPw2bTmgRk6QhmaEBMMA7QSL59uYKDRhpzvmrz7z+T2f9NWkjBqkwcaFdZx9A7J+ipKBwJuQgUedlj9N+gDmLXr/0kWGvSWfmE0cZsfS8NUGglesy+yUlR81/Y+48EEvdzji/AsdPdjSDAt7EzjxTfOCT+MSNNRuIWzOoNTWqKs2vh1KU1i4Ro6HuOOGiXM53gyvM621U09mYGogbUrgNIhkWolkyxxOvMHV9cHKOdneTX9G/19Wa661zmWusyBvct8UH2PYtMgFKW0WLNoRiRaNWN7G1w59jljz5b5oT7G9ycu8elb8wSZA4z0lXn35BJ/pUdwzRTTg+O80jgvZTiIBkr0tWh1/+TK72m+zI1wqmeSnq6AsGGyUHuENw9OCV3F1/eeYt06yPk7I8zEjhA6SUEKfYprbAW9XJ7JUK5vMnqoAE0a0w+JV1fptLdYmY3wqx4nzY/Z2raZ7z4spbtYdr1C99bPBHY3QyMpXk78xIX5F1jKSYxqQdrm8e2tNB/dHGOo/T5n+6c5k3sb7Ji0WwIELXvIdx1lbGOCw803GBqGG9m7XFp8nrnqozweX2KPd5/Xn5nlndEZLiwcZbL1DKaqEIUKKwp8duwU3+ybYGvuQx5qXOSlvlVOPf0Vd4WF34DeTnDXIbsIqysehuOiPR9tO5j7j4yf64lcjMoyResQpULItupjsbxXwE1c845T9xSfrJ2W6QxxE8+Rz3l0WkqSlTDaJqZ03HF4rLlBaJrMFS1qgUlX0mTA8Zh0W9kf93Eth+1ShY2a5olUQLauibwaVjEy8Wo+fmQz0B6jIy7REwqlIm4WDIZTFQJlYtQKdDxs0deIqEpLA9/D3dUgYRoMplukJZqKH+Bpg9v5OvuSTbTKnG7WpRtmRKrFoRqELFcarFV8WTqNIVirLIdT2R3aYxYFL4BAVlUu8vLfFjOJZBMtmdedzSpxW1EVBqEk2wWL42+yvXqymAvzLwAAAABJRU5ErkJggg==" }, - "area": 925699958.3527337, - "east": -56.12809, + "area": 1256060691.6675959, + "east": -56.1071777, "lat": 46.941936, "lng": -56.27111, - "north": 47.1425, - "south": 46.7496, - "west": -56.40659 + "north": 47.1640418, + "south": 46.724565, + "west": -56.4450073 }, { "code": "VC", @@ -6315,14 +6320,7 @@ "wikipediaURL": "http://en.wikipedia.org/wiki/Saudi-Iraqi_neutral_zone", "imageURLs": { "icon16": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABw0lEQVQ4EaVTyUrDUBQ9SZPYpkKtCs62IC4cF4or127Un/FX/BQXLtzpHzgUREURWmchmmLmxHtvmzRUwYU3Azfv3eGc826Unf3rBP8w9R+5kvqjgKIA/LDFhI0ftvx6Z6Xz1vIfHBSECTjH0BSYukoFEnhBgpAr0a3TOi1llhXgZA6sjxoYoCCX/NFBTQq92CEYVBAluH/3MaD3iggFTvapc23EwO5qBVVTw5BZQNuL4fgxNucGMVHRsUN7M8OGxHIOmyBIq6/Nmvh0Yty+etiolzE+pCMm6HpBQcsKBB3H3L15gpKZCAJ2OIihWU6Iva0xrE6XcPPsYmmyJMV43/qKYBoqNJUocHuyDgVyIuqk0MUinjUd2F4Ej3yG3LJ8QhZ1uyYibJdBD4FCpM6aX1ivlXH94uKo8SndLp9c2G6MqaqOhYkSLlouHWkPgWjAx1Ik5RuPLubHHGyvVHB8ZYuIh+cfchIsLiNrPDgSmx5ldoypDgenlnBdpG6cwFOxTDqcXLWlqEZapPxZA+W3f4G5a6SOBPKLCIc0A0UarH7LEOQ3it1BSYXiPYM6p2Odj/21QMovDzVdyyez/xNTf8Qf39/bS77YSramZgAAAABJRU5ErkJggg==" - }, - "area": 8072447924.50245, - "east": 46.5157382, - "lat": 28.9602072, - "lng": 45.6763443, - "north": 29.1965989, - "south": 28.7778378, - "west": 44.7373584 + } }, { "code": "SA", @@ -6370,7 +6368,7 @@ "imageURLs": { "icon16": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABw0lEQVQ4EaVTTS9DURA9fR+a2rCxrTQRNFb+hC6Q2JF00ap2UxF/oX/Bgk0/1ILG2kIqET8Ay6Z0g6ZbQgjhaZ85N6YpFQum7bu3986ZM2dmXsBrd3z4wPp+A1sHV3CHg/DacvCDuXYA3v0rsvMRbCyOAwH5+sYgMXxkdi5QOmrCHRroC2LAD29IzYSRT0wKVj4SwFrdvTQbEhaTUaRjYXjiSICagnlHHxrBxNqnA7O55pOHhekRvIsari35f1a7gxtyYFuStgRcEXAhETU+PEuV68gfXsOh5m1Jm4T5Twc60opyTusFOwLO7NQNhliHBaPmQrXJWnZZGOTF65gAykxwWsBF8dU6SbhjU3LVqWy+nFInTfffwbxz+KBpJkz7WZjLUixqpbHTSdFcOWl1mc2FPCzd/HXtZvCbBEu07KWnMOhaX/ST1GTwHcx2Un+8UDM/7nnGYrJGvXPiKJhDom3Uau+JZlpImLUTXFkZdo2dsDtjS7nl2KiZMLIoWFtlB20zVByu3mFrPno4r93Cyc5FsBmfQEd6pUOiYH2pyMQzMjNL+pakS8zs/y8T02af1yoNlKo3fX1mDWg6J/ShLzHEfgBlpC98e6nA+AAAAABJRU5ErkJggg==" }, - "area": 327394184073.5614, + "area": 327394184073.5608, "east": -0.712426, "lat": 56.4906712, "lng": -4.2026458, @@ -6445,8 +6443,8 @@ "Montenegro" ], "flagURL": "http://upload.wikimedia.org/wikipedia/commons/9/90/Flag_of_Serbia_and_Montenegro.svg", - "imdbCode": "xsm", - "imdbName": "Serbia and Montenegro", + "imdbCode": "xfy", + "imdbName": "Federal Republic of Yugoslavia", "languages": [], "name": "Serbia and Montenegro", "other": false, @@ -6963,7 +6961,9 @@ "imdbName": "Spain", "languages": [ "Spanish", - "Catalan" + "Galician", + "Catalan", + "Basque" ], "name": "Spain", "other": false, @@ -7016,7 +7016,7 @@ "dissolved": [], "flagURL": "http://upload.wikimedia.org/wikipedia/commons/0/00/Flag_of_Palestine.svg", "imdbCode": "ps", - "imdbName": "Palestinian Territory", + "imdbName": "Occupied Palestinian Territory", "languages": [], "name": "Palestine", "other": false, @@ -7024,12 +7024,12 @@ "imageURLs": { "icon16": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABcUlEQVQ4EZVSTUrDQBT+ZhJsalOlFbrtrggeoFLNCbyCgiu7FFzo1m0tgsv2DoIXcO9GirjTA3SlFqImRsyM742kTWvTn4SXycx738+bGTSdDQ1AWxQ8Lh3P5U3dzCckYmkC+a4VzvIVkBPEZMCCIBOLPzaXvukYp6sVMLYbvhoSYUnTzzwqO9EbMAk5EfR2whcgjudhTV70SjXu26gJKbESfOG+vqXdkyOozwCwaHtnPKYFzhsnSiHK57DdexLVvg+nuT8D+pey6ATO01WCmCL69K9voH4UCl4ditpRWkORwGQMHaRJINkPBY8c3KRZG6syk3ECriV19+Mb1as2nOPD/4iJlSEBiwghkfMD3B14+nGvBv1wS5soOTMBG03NKZjrRzWlUKHtraGz4wIDP9P2CA7YafDFbhFdCouIRGHdtJMunvZvs7syAVoMJnUGx+yYrvgiV9EuRhotAibKBjxNKmNNXjZIueGOlDMKs5Z/AWRUnSDtQmpxAAAAAElFTkSuQmCC" }, - "area": 21209824251.985992, - "east": 35.5814, - "lat": 31.91321345, - "lng": 34.86011335, - "north": 32.6121, - "south": 31.2143269, + "area": 3208539855.5977607, + "east": 34.79048898, + "lat": 31.08477961, + "lng": 34.46465784, + "north": 31.3167512, + "south": 30.85280802, "west": 34.1388267 }, { @@ -7836,13 +7836,13 @@ "imageURLs": { "icon16": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABvUlEQVQ4EaWRS2sTURiGn69zMmm6SJpOmzQgEgURewEhCy0iIm50I7p2UTeCF9Df4U78GV0o/olspIKLqBVrtSaam0mamvukxzMpDThJ6yLf5uHwzfvOe94jly890SurZ/iQ+cbycpKM4ZLhp8wOydVzRN+mubn7jpZlM4XGP/L40Qudz1dYWJilVKoNuRiPsr1T4GrqLM/Wr+MegDUlfj0qlysTi81SKFSNODKkZ+osztHazZLbeENXLMboUYmEw78JIibJHnFj9r1YJ9Gt8Kf/i/ZxBl7sOSdMpVLHGXD/kLUG4aAivrbGxad3cPsayxq9gtxff66brQ6haZt2u0vQsGMYMuJqTzj1+T23Sxmax5SoMM3aATXoN2CI1ngUy0L2G5y+e4trD16aEk2CMSWoYr5KaCZIs9lhZsC24TRVk+ogYPMzvclW6eNhiSNvAOrKjdTg6crlPebnIxzxd7lGOOYQ/fEVKW4jYu5v0vlHdDare66LUgp3yL45W/R7Ltg2rgqMFXtm8jqZ0l63nvc4ehs5WnoK30iv0RjN5fvopKOk7z2cyECFl86f9IP/7qS+9WWiBPIqdmEig78EO71U4OOQsgAAAABJRU5ErkJggg==" }, - "area": 40553982827499.53, - "east": -75, - "lat": 14.0045105, - "lng": -134.2033385, + "area": 192180818088.18393, + "east": -171.718918, + "lat": 27.0754315, + "lng": -175.0114505, "north": 28.398027, - "south": -0.389006, - "west": 166.593323 + "south": 25.752836, + "west": -178.303983 }, { "code": "PUUM", diff --git a/source/Ox.js b/source/Ox.js index c299e643..790299a5 100644 --- a/source/Ox.js +++ b/source/Ox.js @@ -178,22 +178,32 @@ Ox = function(val) { Ox.load Loads a module (module, callback) -> undefined (module, options, callback) -> undefined + (modules, callback) -> undefined module Module name + modules Multiple modules {name: options} options Module options callback Callback function success If true, the module has been loaded successfully @*/ -Ox.load = function(/*module[[, options], callback]*/) { - // fixme: no way to load multiple modules - // problem: where do multiple options go? - // [{name: "", options: {}}, {name: "", options: {}}] isn't pretty - var len = arguments.length, - module = arguments[0], - options = len == 3 ? arguments[1] : {}, - callback = arguments[len - 1]; - Ox.loadFile(Ox.PATH + 'Ox.' + module + '/Ox.' + module + '.js', function() { - Ox.load[module](options, callback); +Ox.load = function() { + var callback = arguments[arguments.length - 1], + counter = 0, + isObject = Ox.isObject(arguments[0]), + length, + modules = isObject ? arguments[0] : {}, + success = 0; + if (!isObject) { + modules[arguments[0]] = Ox.isObject(arguments[1]) ? arguments[1] : {}; + } + length = Ox.len(modules) + Ox.forEach(modules, function(options, module) { + Ox.loadFile(Ox.PATH + 'Ox.' + module + '/Ox.' + module + '.js', function() { + Ox.load[module](options, function(s) { + success += s; + ++counter == length && callback(success == counter); + }); + }); }); }; diff --git a/tools/geo/py/geo.py b/tools/geo/py/geo.py index c77e42bf..0e0e1f63 100644 --- a/tools/geo/py/geo.py +++ b/tools/geo/py/geo.py @@ -635,6 +635,18 @@ geo = { 'ZRCD': 'crop()', 'ZW': 'crop(left)' }, + 'imdb_code': { + 'Côte d\'Ivoire': 'ci', + 'Democratic Republic of the Congo': 'cd', + 'Palestine': 'ps', + 'Serbia and Montenegro': 'xfy' + }, + 'imdb_name': { + 'Côte d\'Ivoire': 'Ivory Coast', # bug in some imdb entries + 'Democratic Republic of the Congo': 'Democratic Republic of Congo', # bug in some imdb entries + 'Palestine': 'Occupied Palestinian Territory', # bug in some imdb entries + 'Serbia and Montenegro': 'Federal Republic of Yugoslavia' + }, # import json # import re @@ -658,7 +670,7 @@ geo = { 'Albanian': 'Albania', 'Algonquin': '', 'American': 'United States', - 'Amharic': '', + 'Amharic': 'Ethiopia', 'Apache': '', 'Arabic': 'Saudi Arabia', 'Aragonese': '', @@ -676,7 +688,7 @@ geo = { 'Baka': '', 'Balinese': 'Indonesia', 'Bambara': 'Mali', - 'Basque': '', + 'Basque': 'Spain', 'Bassari': '', 'Belarusian': 'Belarus', 'Bemba': '', @@ -713,7 +725,7 @@ geo = { 'Dari': 'Afghanistan', 'Desiya': '', 'Dinka': '', - 'Djerma': '', + 'Djerma': 'Niger', 'Dogri': '', 'Dutch': 'Netherlands', 'Dyula': '', @@ -735,7 +747,7 @@ geo = { 'Fulah': '', 'Fur': '', 'Gaelic': 'Ireland', - 'Galician': '', + 'Galician': 'Spain', 'Georgian': 'Georgia', 'German': 'Germany', 'Grebo': '', @@ -812,7 +824,7 @@ geo = { 'Maithili': '', 'Malagasy': 'Madagascar', 'Malay': 'Malaysia', - 'Malayalam': '', + 'Malayalam': 'India', 'Malecite-Passamaquoddy': '', 'Malinka': 'Guinea', 'Maltese': 'Malta', @@ -1062,12 +1074,15 @@ def get_countries(): # other country['other'] = country['name'] in geo['other'] # imdb - for imdb_country in imdb_countries: - found = False - if imdb_country['code'].upper() == country['code'] or imdb_country['name'] == country['name']: - country['imdbCode'] = imdb_country['code'] - country['imdbName'] = imdb_country['name'] - break + if country['name'] in geo['imdb_name']: + country['imdbCode'] = geo['imdb_code'][country['name']] + country['imdbName'] = geo['imdb_name'][country['name']] + else: + for imdb_country in imdb_countries: + if imdb_country['code'].upper() == country['code'] or imdb_country['name'] == country['name']: + country['imdbCode'] = imdb_country['code'] + country['imdbName'] = imdb_country['name'] + break get_country_flag(country['code'], country['flagURL']) get_country_icon(country['code']) # languages