summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/wikiarticle.go9
-rw-r--r--src/wikidata.go2
2 files changed, 7 insertions, 4 deletions
diff --git a/src/wikiarticle.go b/src/wikiarticle.go
index 864f6c4..9c5845f 100644
--- a/src/wikiarticle.go
+++ b/src/wikiarticle.go
@@ -59,6 +59,10 @@ func (a *App) fetchWikiArticlesData() error {
if err := rows.Scan(&r.id, &r.imdbID, &r.wikiArticle); err != nil {
return fmt.Errorf("scan row: %w", err)
}
+ // Decode — wiki_article may be URL-encoded from SPARQL
+ if dec, err := url.PathUnescape(r.wikiArticle); err == nil {
+ r.wikiArticle = dec
+ }
entries = append(entries, r)
}
if err := rows.Err(); err != nil {
@@ -155,11 +159,10 @@ func (a *App) fetchWikiArticlesData() error {
return nil
}
-// queryWikiArticle fetches and parses a single wiki article from the custom server.
func (a *App) queryWikiArticle(name string) (wikiArticleEntry, int, error) {
- // Build URL manually — name is already URL-encoded in the DB
+ // Build URL — name is decoded from DB, encode it for the request
reqURL := fmt.Sprintf("%s?username=%s&name=%s",
- a.Config.WikiServer, url.QueryEscape(a.Config.WikiUsername), name)
+ a.Config.WikiServer, url.QueryEscape(a.Config.WikiUsername), url.PathEscape(name))
var resp *http.Response
var err error
diff --git a/src/wikidata.go b/src/wikidata.go
index 20411d2..c775f1f 100644
--- a/src/wikidata.go
+++ b/src/wikidata.go
@@ -175,7 +175,7 @@ func (a *App) queryWikidataBatch(ids []string) (map[string]wikiAcc, error) {
if n, ok := b["article"]; ok && n.Value != "" {
// Extract title from URL: strip "https://en.wikipedia.org/wiki/"
- title := strings.TrimPrefix(n.Value, "https://en.wikipedia.org/wiki/")
+ title, _ := url.PathUnescape(strings.TrimPrefix(n.Value, "https://en.wikipedia.org/wiki/"))
results[imdb] = wikiAcc{
wikiArticle: n.Value,
title: title,