[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[taler-taldir] branch master updated: better document type and localizat
From: |
gnunet |
Subject: |
[taler-taldir] branch master updated: better document type and localization handling |
Date: |
Thu, 07 Jul 2022 16:10:43 +0200 |
This is an automated email from the git hooks/post-receive script.
martin-schanzenbach pushed a commit to branch master
in repository taldir.
The following commit(s) were added to refs/heads/master by this push:
new 7c497df better document type and localization handling
7c497df is described below
commit 7c497df7ada7d68cc2891e11ee5ba6d4a16215db
Author: Martin Schanzenbach <schanzen@gnunet.org>
AuthorDate: Thu Jul 7 16:10:39 2022 +0200
better document type and localization handling
---
cmd/taldir-server/taldir.go | 80 +++++++++++++++++++++++++++++++++------------
taldir.conf | 4 +++
2 files changed, 64 insertions(+), 20 deletions(-)
diff --git a/cmd/taldir-server/taldir.go b/cmd/taldir-server/taldir.go
index 160813a..c24a141 100644
--- a/cmd/taldir-server/taldir.go
+++ b/cmd/taldir-server/taldir.go
@@ -470,41 +470,85 @@ func (t *Taldir) ClearDatabase() {
}
func (t *Taldir) termsResponse(w http.ResponseWriter, r *http.Request) {
- acceptLangs, _, _ :=
language.ParseAcceptLanguage(r.Header.Get("Accept-Language"))
- // We ignore the error: the default language will be selected for t == nil.
- for _, lang := range acceptLangs {
- for _, typ := range r.Header["Accept"] {
- extensions, _ := mime.ExtensionsByType(typ)
+ fileType :=
t.Cfg.Section("taldir").Key("default_doc_filetype").MustString("text/markdown")
+ termsLocation :=
t.Cfg.Section("taldir").Key("default_tos_path").MustString("terms/")
+ for _, typ := range r.Header["Accept"] {
+ for _, a := range
strings.Split(t.Cfg.Section("taldir").Key("supported_doc_filetypes").String(),
" ") {
+ if typ == a {
+ fileType = a
+ }
+ }
+ }
+
+ if len(r.Header.Get("Accept-Language")) != 0 {
+ acceptLangs, _, _ :=
language.ParseAcceptLanguage(r.Header.Get("Accept-Language"))
+ for _, lang := range acceptLangs {
+ extensions, _ := mime.ExtensionsByType(fileType)
for _, ext := range extensions {
- log.Printf("Trying %s\n", "terms/" + lang.String() + ext)
- fileBytes, err := ioutil.ReadFile("terms/" + lang.String() + ext)
+ log.Printf("Trying %s\n", termsLocation + lang.String() + ext)
+ fileBytes, err := ioutil.ReadFile(termsLocation + lang.String() + ext)
if nil == err {
- w.Header().Set("Content-Type", typ)
+ w.Header().Set("Content-Type", fileType)
w.Write(fileBytes)
return
}
}
}
+ w.WriteHeader(404)
+ return
+ }
+ // Default document in expected/default format
+ defaultLanguage :=
t.Cfg.Section("taldir").Key("default_doc_lang").MustString("en-US")
+ extensions, _ := mime.ExtensionsByType(fileType)
+ for _, ext := range extensions {
+ fileBytes, err := ioutil.ReadFile(termsLocation + defaultLanguage + ext)
+ if nil == err {
+ w.Header().Set("Content-Type", fileType)
+ w.Write(fileBytes)
+ return
+ }
}
w.WriteHeader(404)
}
func (t *Taldir) privacyResponse(w http.ResponseWriter, r *http.Request) {
- acceptLangs, _, _ :=
language.ParseAcceptLanguage(r.Header.Get("Accept-Language"))
- // We ignore the error: the default language will be selected for t == nil.
- for _, lang := range acceptLangs {
- for _, typ := range r.Header["Accept"] {
- extensions, _ := mime.ExtensionsByType(typ)
+ fileType :=
t.Cfg.Section("taldir").Key("default_doc_filetype").MustString("text/markdown")
+ termsLocation :=
t.Cfg.Section("taldir").Key("default_pp_path").MustString("privacy/")
+ for _, typ := range r.Header["Accept"] {
+ for _, a := range
strings.Split(t.Cfg.Section("taldir").Key("supported_doc_filetypes").String(),
" ") {
+ if typ == a {
+ fileType = a
+ }
+ }
+ }
+
+ if len(r.Header.Get("Accept-Language")) != 0 {
+ acceptLangs, _, _ :=
language.ParseAcceptLanguage(r.Header.Get("Accept-Language"))
+ for _, lang := range acceptLangs {
+ extensions, _ := mime.ExtensionsByType(fileType)
for _, ext := range extensions {
- log.Printf("Trying %s\n", "privacy/" + lang.String() + ext)
- fileBytes, err := ioutil.ReadFile("privacy/" + lang.String() + ext)
+ log.Printf("Trying %s\n", termsLocation + lang.String() + ext)
+ fileBytes, err := ioutil.ReadFile(termsLocation + lang.String() + ext)
if nil == err {
- w.Header().Set("Content-Type", typ)
+ w.Header().Set("Content-Type", fileType)
w.Write(fileBytes)
return
}
}
}
+ w.WriteHeader(404)
+ return
+ }
+ // Default document in expected/default format
+ defaultLanguage :=
t.Cfg.Section("taldir").Key("default_doc_lang").MustString("en-US")
+ extensions, _ := mime.ExtensionsByType(fileType)
+ for _, ext := range extensions {
+ fileBytes, err := ioutil.ReadFile(termsLocation + defaultLanguage + ext)
+ if nil == err {
+ w.Header().Set("Content-Type", fileType)
+ w.Write(fileBytes)
+ return
+ }
}
w.WriteHeader(404)
}
@@ -544,10 +588,6 @@ func (t *Taldir) Initialize(cfgfile string, clearDb bool) {
fmt.Println("Production mode enabled")
}
- t.Validators = make(map[string]bool)
- for _, a := range
strings.Split(t.Cfg.Section("taldir").Key("validators").String(), " ") {
- t.Validators[a] = true
- }
t.Validators = make(map[string]bool)
for _, a := range
strings.Split(t.Cfg.Section("taldir").Key("validators").String(), " ") {
t.Validators[a] = true
diff --git a/taldir.conf b/taldir.conf
index a24771d..e3fe00c 100644
--- a/taldir.conf
+++ b/taldir.conf
@@ -6,6 +6,10 @@ bind_to = "localhost:11000"
salt = "ChangeMe"
monthly_fee = KUDOS:1
request_frequency = 3
+default_doc_filetype = text/markdown
+default_doc_lang = en-US
+default_tos_path = terms/
+default_pp_path = privacy/
[taldir-email]
sender = "taldir@taler.net"
--
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [taler-taldir] branch master updated: better document type and localization handling,
gnunet <=