diff options
Diffstat (limited to 'wikipedia/WikipediaWebView.js')
-rw-r--r-- | wikipedia/WikipediaWebView.js | 31 |
1 files changed, 25 insertions, 6 deletions
diff --git a/wikipedia/WikipediaWebView.js b/wikipedia/WikipediaWebView.js index b898ba6..a6f2aaf 100644 --- a/wikipedia/WikipediaWebView.js +++ b/wikipedia/WikipediaWebView.js @@ -82,26 +82,31 @@ const WikipediaWebView = new Lang.Class({ return full_url; }, - loadArticleByURI: function(uri) { + loadArticleByURI: function(uri, source) { let parts = uri.split("/"); let suffix = parts[parts.length - 1]; let title = decodeURI(suffix.replace("_", " ", 'g')); - this.loadArticleByTitle(title); + // FIXME: this is a workaround for not storing the URI in the database + this.loadArticleByTitle(title, source); }, - loadArticleByTitle: function(title) { + loadArticleByTitle: function(title, source) { let params = { title: title, hideLinks: this.hide_links, + source: source, + lang: _systemPersonalityToDatabaseLang(this.system_personality) }; let url = this._getFullURL(hostName + getPageByTitleURI, params); this.load_uri(url); }, - loadArticleBySearchQuery: function(query) { + loadArticleBySearchQuery: function (query, source) { let params = { query: query, hideLinks: this.hide_links, + source: source, + lang: _systemPersonalityToDatabaseLang(this.system_personality) }; let url = this._getFullURL(hostName + getPageByQueryURI, params); this.load_uri(url); @@ -110,7 +115,7 @@ const WikipediaWebView = new Lang.Class({ loadTitlesBySearchQuery: function (query) { let params = { query: query, - lang: this.lang + lang: _systemPersonalityToDatabaseLang(this.system_personality) }; let url = this._getFullURL(hostName + getTitlesByQueryURI, params); this.load_uri(url); @@ -143,7 +148,8 @@ const WikipediaWebView = new Lang.Class({ let parts = uri.split("/"); let suffix = parts[parts.length - 1]; let title = decodeURI(suffix.replace("_", " ", 'g')); - this.loadArticleByTitle(title); + // FIXME: determine the source db from the link format? + this.loadArticleByTitle(title, 'Wikipedia'); return true; } else if (GLib.uri_parse_scheme(uri).startsWith('browser-')) { // Open everything that starts with 'browser-' in the system @@ -161,3 +167,16 @@ const WikipediaWebView = new Lang.Class({ this.setAllowedLinks(); } }); + +/* Temporary helper function; remove this when the original article URI is +stored inside the Elasticsearch database. FIXME */ +function _systemPersonalityToDatabaseLang(personality) { + switch (personality) { + case 'Guatemala': + case 'Mexico': + return 'es'; + case 'Brazil': + return 'pt'; + } + return 'en'; +} |