summaryrefslogtreecommitdiff
path: root/src/placeView.js
diff options
context:
space:
mode:
authorMarcus Lundblad <ml@dfupdate.se>2022-10-04 23:28:26 +0200
committerMarcus Lundblad <ml@dfupdate.se>2022-11-15 23:14:26 +0100
commitbb2887e893ccdb8e0c3f9ff9ac69fb63eeeb663f (patch)
tree0eb57979e05c2aa4d39a7032a8de2cc334c898fc /src/placeView.js
parente7bd60963e278dc9e9d5b62d67029a93c9d1cb4f (diff)
downloadgnome-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.js18
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;
}