summaryrefslogtreecommitdiff
path: root/src/wikiarticle.go
diff options
context:
space:
mode:
authordev2026-06-26 02:01:08 +0200
committerdev2026-06-26 02:01:08 +0200
commit122a4ec1037dfd027d9f3f7d5d25ce63dfe4450a (patch)
tree2c77f1eb329149f1e6adc9bedb67eb1e63107be6 /src/wikiarticle.go
parentc9d23f25e10ed054690a8e8eb83f8e742a7533f2 (diff)
downloadhnimdbbot-122a4ec1037dfd027d9f3f7d5d25ce63dfe4450a.tar.gz
fix: decode wiki article names for clean storage
- wikidata.go: url.PathUnescape SPARQL titles before storing - wikiarticle.go: PathUnescape on read, PathEscape on send - DB holds decoded names; URLs are always freshly encoded
Diffstat (limited to 'src/wikiarticle.go')
-rw-r--r--src/wikiarticle.go9
1 files changed, 6 insertions, 3 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