diff options
author | rmacqueen <rorymacqueen@gmail.com> | 2013-07-30 16:54:07 -0700 |
---|---|---|
committer | rmacqueen <rorymacqueen@gmail.com> | 2013-07-30 16:54:07 -0700 |
commit | ce3acb0de39663eb1162cc8c9d25f4385ad3f1fb (patch) | |
tree | c3f119f08d82f87ff341a1c3bec9d4fa2ea9e505 | |
parent | 43d107af937b1f36ac63493a633cfff37b8ea825 (diff) | |
parent | 6ec4b69e29c6915d3dd95aff1c119306fb72f97f (diff) |
Merge pull request #187 from endlessm/issues/143
Issues/143
-rw-r--r-- | wikipedia/data/brazil_categories.json | 16 | ||||
-rw-r--r-- | wikipedia/src/endless_wikipedia/PrebuiltArticlesPage.js | 11 | ||||
-rw-r--r-- | wikipedia/src/views/domain_wiki_view.js | 2 | ||||
-rw-r--r-- | wikipedia/src/views/wikipedia_view.js | 28 |
4 files changed, 40 insertions, 17 deletions
diff --git a/wikipedia/data/brazil_categories.json b/wikipedia/data/brazil_categories.json index 1141b7d..918867e 100644 --- a/wikipedia/data/brazil_categories.json +++ b/wikipedia/data/brazil_categories.json @@ -1,5 +1,5 @@ { - "app_name":"Hello", + "app_name":"Brazil", "image_uri":"resource:///com/endlessm/brazil/category_images/cuisine.jpg", "categories": [ @@ -10,13 +10,13 @@ "articles": [ { - "title":"Indonesia", - "url":"Indonesia" + "title":"Cachaça", + "url":"Cachaça" }, { - "title":"Protestant", - "url":"Protestant" + "title":"Feijoada", + "url":"Feijoada" } ] @@ -29,13 +29,13 @@ "articles": [ { - "title":"World Cup", + "title":"Regime militar no Brasil", "url":"Peplum_movie" }, { - "title":"Some title", - "url":"some_title" + "title":"Getúlio Vargas", + "url":"Getúlio_Vargas" } ] diff --git a/wikipedia/src/endless_wikipedia/PrebuiltArticlesPage.js b/wikipedia/src/endless_wikipedia/PrebuiltArticlesPage.js index 12d9b45..6bb1e55 100644 --- a/wikipedia/src/endless_wikipedia/PrebuiltArticlesPage.js +++ b/wikipedia/src/endless_wikipedia/PrebuiltArticlesPage.js @@ -3,6 +3,7 @@ const Gtk = imports.gi.Gtk; const Lang = imports.lang; const EndlessWikipedia = imports.endless_wikipedia.EndlessWikipedia; +const WikipediaView = imports.views.wikipedia_view; GObject.ParamFlags.READWRITE = GObject.ParamFlags.READABLE | GObject.ParamFlags.WRITABLE; @@ -24,6 +25,7 @@ const PrebuiltArticlesPage = new Lang.Class({ _init: function(props) { this._title = null; + //We don't use article_uri now since the database only needs to readable title. this._article_uri = null; // Create widgets @@ -39,9 +41,7 @@ const PrebuiltArticlesPage = new Lang.Class({ orientation: Gtk.Orientation.HORIZONTAL, vexpand: false }); - this._wiki_view = new Gtk.Label({ - vexpand: true - }); + this._wiki_view = new WikipediaView.WikipediaView(); this.parent(props); @@ -58,8 +58,6 @@ const PrebuiltArticlesPage = new Lang.Class({ context.add_class(EndlessWikipedia.STYLE_CLASS_PREBUILT); let context = this._separator.get_style_context(); context.add_class(EndlessWikipedia.STYLE_CLASS_ARTICLES_PAGE); - let context = this._wiki_view.get_style_context(); - context.add_class(EndlessWikipedia.STYLE_CLASS_ARTICLES_PAGE); let context = this.get_style_context(); context.add_class(EndlessWikipedia.STYLE_CLASS_ARTICLES_PAGE); }, @@ -80,8 +78,5 @@ const PrebuiltArticlesPage = new Lang.Class({ set article_uri(value) { this._article_uri = value; - if(this._wiki_view) - this._wiki_view.label = 'This is a "webview" displaying the ' + - 'article http://en.wikipedia.org/wiki/%s'.format(value); } });
\ No newline at end of file diff --git a/wikipedia/src/views/domain_wiki_view.js b/wikipedia/src/views/domain_wiki_view.js index 5a07ab4..e1a810a 100644 --- a/wikipedia/src/views/domain_wiki_view.js +++ b/wikipedia/src/views/domain_wiki_view.js @@ -125,7 +125,7 @@ const DomainWikiView = new Lang.Class({ set_article_info: function(article){ this._article_view.title = article.title; this._article_view.article_uri = article.uri; - + this._article_view._wiki_view.loadArticleByTitle(article.title); }, transition_page: function(transition_type, page_name){ diff --git a/wikipedia/src/views/wikipedia_view.js b/wikipedia/src/views/wikipedia_view.js new file mode 100644 index 0000000..c04fcdd --- /dev/null +++ b/wikipedia/src/views/wikipedia_view.js @@ -0,0 +1,28 @@ +const Gtk = imports.gi.Gtk; +const Lang = imports.lang; +const Soup = imports.gi.Soup; +const WebKit = imports.gi.WebKit; + +const getPageURL = "http://localhost:3000/getArticleByTitle?title="; + +const WikipediaView = new Lang.Class({ + Name: 'EndlessWikipediaView', + Extends: WebKit.WebView, + + _init: function(params) { + this._httpSession = new Soup.Session(); + this.parent(params); + }, + + loadArticleByTitle: function(title) { + let request = Soup.Message.new("GET", getPageURL + title); + this._httpSession.queue_message(request, Lang.bind(this, function(_httpSession, message) { + let articleJSON = request.response_body.data; + let article = JSON.parse(articleJSON); + let articleHTML = article["text"]; + this.load_string(articleHTML, "text/html", "UTF-8", ""); + //the last argument is the base-uri, we might need to change this based + //on our local image directory, I'm not sure. + })); + } +}); |