diff options
author | Marcus Lundblad <ml@dfupdate.se> | 2022-10-04 23:28:26 +0200 |
---|---|---|
committer | Marcus Lundblad <ml@dfupdate.se> | 2022-11-15 23:14:26 +0100 |
commit | bb2887e893ccdb8e0c3f9ff9ac69fb63eeeb663f (patch) | |
tree | 0eb57979e05c2aa4d39a7032a8de2cc334c898fc /src/placeView.js | |
parent | e7bd60963e278dc9e9d5b62d67029a93c9d1cb4f (diff) | |
download | gnome-maps-bb2887e893ccdb8e0c3f9ff9ac69fb63eeeb663f.tar.gz |
placeView: Use Wikidata to fetch metadata
Fetch thumbnails and article extracts using the
Wikidata tag when available.
Diffstat (limited to 'src/placeView.js')
-rw-r--r-- | src/placeView.js | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/src/placeView.js b/src/placeView.js index c8bcdc40..37493cfe 100644 --- a/src/placeView.js +++ b/src/placeView.js @@ -465,7 +465,8 @@ export class PlaceView extends Gtk.Box { info: Translations.translateReligion(place.religion) }); } - if (place.wiki && Wikipedia.isValidWikipedia(place.wiki)) { + if (place.wiki && Wikipedia.isValidWikipedia(place.wiki) || + place.wikidata && Wikipedia.isValidWikidata(place.wikidata)) { content.push({ type: 'wikipedia', info: '' }); } @@ -577,7 +578,13 @@ export class PlaceView extends Gtk.Box { let content = this._createContent(place); this._attachContent(content); - if (place.wiki && Wikipedia.isValidWikipedia(place.wiki)) { + if (place.wikidata && Wikipedia.isValidWikidata(place.wikidata)) { + let defaultArticle = + place.wiki && Wikipedia.isValidWikipedia(place.wiki)) ? + place.wiki : null; + + this._requestWikidata(place.wikidata, defaultArticle); + } else if (place.wiki && Wikipedia.isValidWikipedia(place.wiki)) { this._requestWikipedia(place.wiki); } @@ -592,6 +599,13 @@ export class PlaceView extends Gtk.Box { this._onThumbnailComplete.bind(this)); } + _requestWikidata(wikidata, defaultArticle) { + Wikipedia.fetchArticleInfoForWikidata( + wikidata, defaultArticle, THUMBNAIL_FETCH_SIZE, + this._onWikiMetadataComplete.bind(this), + this._onThumbnailComplete.bind(this)); + } + _onThumbnailComplete(thumbnail) { this.thumbnail = thumbnail; } |