From 6ee36fe361e605653b3ebaee049a74fe7e1ab979 Mon Sep 17 00:00:00 2001 From: Antony Male Date: Sun, 22 Nov 2015 14:10:29 +0000 Subject: [PATCH] Fix a couple of issues with the relays map (geoip, 'data unavailable') - Move to ipinfo.io for geoip, rather than Telize. Telize has been closed down. ipinfo.io has apparently got decent availability, and allows 1,000 requests per day on the free tier. Since requests are made by the client, this should be more than enough (and the total across all clients should still be less than this). - Fix issue where one nonresponsive relay would cause 'data unavailable' to be shown for many relays. This was caused by the relay status promise not being correctly added to the list of things being waited for before the map was rendered. Any delayed relay status requests would therefore occur after the map was rendered, which was too late. --- cmd/strelaypoolsrv/auto/gui.go | 4 ++-- cmd/strelaypoolsrv/gui/index.html | 7 ++++--- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/cmd/strelaypoolsrv/auto/gui.go b/cmd/strelaypoolsrv/auto/gui.go index dab90edd3..cba115abe 100644 --- a/cmd/strelaypoolsrv/auto/gui.go +++ b/cmd/strelaypoolsrv/auto/gui.go @@ -5,12 +5,12 @@ import ( ) const ( - AssetsBuildDate = "Thu, 29 Oct 2015 19:42:35 GMT" + AssetsBuildDate = "Sun, 22 Nov 2015 14:10:01 GMT" ) func Assets() map[string][]byte { var assets = make(map[string][]byte, 1) - assets["index.html"], _ = base64.StdEncoding.DecodeString("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") + assets["index.html"], _ = base64.StdEncoding.DecodeString("H4sIAAAJbogA/6Qaa3PbNvJ7fgXCZkqqlUjJqduOLOnGcR6Xuab1NL5p73y+G4iEJNgUwZCgbTXRf79dECQBio7kPCVysS8s9gVAk6cvfzu7+Nf5K7KS63j25MkEv0lMk+XUYYlDkuWApunUyTdJKFc8WSpQKBKZiThm2dTJWEw3L6mkZzXQmT0hZLJiNMIHeFwzSUm4olnO5NQp5GLws2MOraRMB+xDwW+nzp+Df54OzsQ6pZLPY+YQFMYSoHv7asqiJbMoE7pmU+eWs7tUZNJAvuORXE0jdstDNlAvfcITLjmNB3lIYzYd+cMOVhHLw4ynkovE4NaBSAu5EpmNUyJJLmM2+x3tQnJJZT4JSlA5HPPkhqwytpg6QbCm92GU+HMhZC4zmuJLKNZBDQie+8/94yDM8wbmrzlg5blDwPiwNnITs3zFmKxVUKBSHiHfrGlKPuoXQlaML1dyTH4cDtP7Ew3e6m8fVzcW9MYgiHiewlzGJBEJswkmQS1pEpQLjo9zEW1IGNM8nzoVw8qEEb+thtB0lCfaYdToaqQNdy5ETNCtgO9RPYzEwJCD7Z6CaTPJIqfiJtm9HISwFAY/IOHrJcmzEI0Nxr3OfdCmiBYxzZiyNL2m90HM53mwpOi8fLHgYXDkD/2RsjroHrHMX/KFExhs09l5zGjOyB3lktyteAyPjCypXLGMRErx1MRHvTOWMioxsmS2AXckaSaWGcOV3LHWx49EofnobmS79X0f1jWlSWWAcjSCNXFmL+HzKSwGDM8MuZMADGYaz1BImzJfiTt0IduWMLDiETPsqKZsvBFyVmQZ6BBvCKiqskDuxyxZyhVoqwFEJODujHiAIoWkce4vxTt6f56JMEe0UMD00RJqtOeb8oL0c+LfC7KgGWkYzzeS5cD4nrOIfCLqFUWkJch/WHnNICnWp6Hkt+w9rAjEv6KmCkJyDeqTOw4TtIgg8SUslBVFGHPgXE39ETM6vWUZXTKSUVnaBNZCWhhq/WejYT42NLiZpzmARuvj9eh4/Xy4/nG4vhxeke/I6OhnwxBBrh2ki+V6L8fR4zge7+d49EgdD2D5/HEsgWovyx8eqeVqL8fjwzja+SPYjV4eTR1I7c6sHCSTp4MBOaOJKwkGL4FMRGC8TwTmpDsOyQpS1SJj9Aa8s5BkMGgnqD3Z4AI4hjwLIdfl/C/wVJZC+CpvB0KyLsKVnhLKVimAQMFK8gXLICgRoKJJilInnSW6M5Z+rCqaqsp1JhcR868/FAwyICbx8nFw5I/8H1R1vM7RLCXRrJPD52sBNEAFgIFPgCx/qgEHMT+0ql+3i/oBnFNMoWIJxSflueKKsADegjb1JMBCXJbkBlrPRERFzDy3bu3cPrmE8asefPgLHkMh9Vy1nDCyKBKV4rye7gwyJossaeAKsQ/ZloUcU2Wv7iD4gng8/5X+6qXYAb6G+iZL9F6PfPpEnvL8NbZmrAZq3u7APTF4yE3KxKKRQKbTKXGLJGILSLSR2zOHyOjkiaa9hTJRAP8coJf1hNybF/j5Tn2+UZ8X6vP8hXvVN+IQMvwcXHVK3kFt9xexEJmnHmOx1BqTgNSQ0fDoh17PEn5L44IBgxK7Qk7FHSAPh32TcSmshwyaiTcGUpx6PaM5q3gPT2qQaYVhu8Gz+VXiDIaVpbShanrCYkggu3jq+7JkdNWWphdSKelL8Zrfs8gzXOR74sLf70smJTGSbpULNrsMz+3YZaC7us/yUKQMl+1ZBpH0vn7DLYV6+KA+IU5SaNFMRy5J+6QhhGckg68P8F+TVLYp0X2dG2HiC0jwuh3WY0smeAojH7cnLRJZ5LvwIuO7wKojRF+9skbKkoIU2rhmwzMmw8pnmwbLAHYVojG5BOez/tWOv9MLGbzslsceOGdJBKlEU/2DbdrjSt0GuNWBUq2K2qOdaxt42Po2vtmykJ8W+cr7iDhjtSfrE2yGx+XCbHuVO9n8K2rsmFv8q8S4ENkrGq68ljzDdSqQGTdlaNXKqa4d8pMtogpQjYT6woLKrGAnBkYVPa05YCqBXH9Sv0i2ho2ZRBbPPPcbnizEhQa5PR938l6ViCyzOq+ZDDHj6/rraDnK+8GLpecEsI6p4Il0ej5U6sSr5w4cUlh2Y1KWSbt42+undwZTUnHycbekwTUy7lnBeuyOlNXOV5XvHU29SITFGnoOVPRVzPDxxeZt5LmA4fb6hq3/EgKcfNQkc8C4gCLyFsKlxbUE+7//dvry3em5YX8jjcM819BEmaH5oNOUszFcRgHsxA1VSWWAekIhtGaS6Tl5LnUb+YQEAfn76Z9mMxcJlmOzdyeymyYtZ9zHwwVlXxAJWSYGbcApQqbT6DgIMCfiYuNjSwiENuxDJFEdFYHWBNcSG7b5NUS8JYdmSzOtdZkD0XJGs3BVKxH89z9/C0A+uGiexhwm+i0uW20pJbgdMmgthQ3yyrZP007d3omFWSl2qRBgI3QFJOXz6KpBhRJTPzf5+LK2GVIBwLCNHUK/s1zEt2ibWIRUpRaYM3GwmOESiFyq0D+xFjxTVOwNE2/RvZuAq1aDpxjFPheB2+ZkxyHpCMTdYDxcS4OFWc1sg1gRa9rSoK+ipEzP5oRNLMMY76vy+OyDD60cVPveg1Z/w6SscwvRhXWP3Y2spo3cRoZXr3IbXa1PoyjD3tQZHx0Nfxo62Ko4QTnWTomHLcWXqN5qIQ5ajAdTUtk/GIGmurI+uWE70WZ02xbxJeBeYVVzy37PbROSLvzvW7oqqB20urvcL7fMQi759tsuDJ6AoZIQ6U+zjO7Ma49tFJNdA3HYYdzvsuqa66XCfWDKevCkxWfbSmDbJw+NWQHj6zfPEmTgbzs2bV/rmF+uzN4UoRnpsZrUIIT8QOPYq6jbjYk5x51m3W6xMPvMBewc844e4xcqf0mWL9SwlYq+uNTr8oXYmObq/Yb/DGR7qJq1zIhcbSUeyMVtdMju5zBVnI5ChZ1oWFXIvrvDPRU5l+UGsXv2XsUQ6me/5g4F1PaB1v7moWR1skNSTU997w6Xrqg7mN3hsm3qrNqWemXDnN2o3ftuK4kDXqsz14YZ1099axwox+pMzYKq251x02/1WxHc2iOYVmqnlVJdXx+y7Wp9pga8di6CNk3csDMRi2xM3G9evx7CH7ffifVbSkMuN7AF83/uxvhD3xAdtYcXPI73CUEcQ8Tz4zZCtw0JKa9uHrI8JBwa8QJ2jp5lQPvY/zsyGg7xOMZKzRZOD5COQXE75/bs/VfLifQdHzqdPhXwqr1Xr9SmB4FiLbReSOzmOpbxLYD/gHIg7jxLskEFbbM8K+V6Wn6vSwKNol94DsN4TLIWRc7ErToceSD520JA9cRTh8Ql1LbDoQILeai8MBY58x4rJYx5ePM5EfvCipA7Ze1yvmYfWCcRqxtsoIf2hH3i/G8e0+TG2VPOjdeyBPnsHqYZeXrilfs/VDxhsfwFl7o+lSwMXLSEVZiqOznonka2WZATONm/YZfsjZ6b8g6ro/XxhPreXqmv5vz5SXN4jT1deUEbVHHjqOsL88jCuCCubwPS2WSON6HW+my3k2A+sy9DdTIQ6uI+v3ShSbjlEYsG84175cyqVzLfkEmBHD9LoEQUs44LVeMCWi+8cYXSoZCy3AVfw+ze4yPUCjyuahSoEcgnvDVmY2fNIM+tnXKa2ax9MdQlxcqBT/FMVp+JO7P6fLAR+cBF6cHSdu9JbZHNkWEjs+tu9TECzTtWW9pZed3aEmbfyR4sSbsDBKGIYWnxRwgWZ2vcvxY88fAopfcFMi7dZSzmNB7gdS+4nD0rI0wfwWNGhs7sjQKpW2QS8zWXHRNoE+65iTxcA8gy3SoUiXpgUddFJ1iuMdljTJiybKCv5r/Ojh2MlDG1u+6zZgf5V5i0g1tp1y5tvtCwOz8NMX9XY+c1vHYBMfSW8pjO4/onDZP2Va2Z/SdB+Yuy/wMAAP//AQAA//9dRfhVYiYAAA==") return assets } diff --git a/cmd/strelaypoolsrv/gui/index.html b/cmd/strelaypoolsrv/gui/index.html index 3b170318f..1aba68b48 100644 --- a/cmd/strelaypoolsrv/gui/index.html +++ b/cmd/strelaypoolsrv/gui/index.html @@ -143,7 +143,7 @@ $scope.uri[relay.url] = uri; initProgress("Resolving location for " + uri.hostname); - var resolveGeoIp = $http.get('http://www.telize.com/geoip/' + uri.hostname).then(function (response) { + var resolveGeoIp = $http.get('http://ipinfo.io/' + uri.hostname).then(function (response) { progressDone("Resolving location for " + uri.hostname); $scope.geoip[relay.url] = response.data; @@ -173,7 +173,7 @@ resolveStatus.resolve(response.data); }); - promises.push(resolveStatus); + promises.push(resolveStatus.promise); }); $q.all(promises).then(function() { @@ -183,7 +183,8 @@ angular.forEach($scope.relays, function(relay) { var scope = $rootScope.$new(true); var geoip = $scope.geoip[relay.url]; - var position = new google.maps.LatLng(geoip.latitude, geoip.longitude); + var locParts = geoip.loc.split(','); + var position = new google.maps.LatLng(locParts[0], locParts[1]); scope.status = $scope.status[relay.url]; scope.geoip = geoip;