From 60a5162b5cdb3bc17bea01c9b917bf9616ed9251 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=83=9E=E3=83=AA=E3=82=A6=E3=82=B9?= Date: Tue, 10 Jan 2023 19:00:58 -0500 Subject: [PATCH] Implemented #1 for Lemmy --- system/lemmy/lemmy.go | 32 +++++++++++++++++++++++++++++--- 1 file changed, 29 insertions(+), 3 deletions(-) diff --git a/system/lemmy/lemmy.go b/system/lemmy/lemmy.go index 7836f2f..f948891 100644 --- a/system/lemmy/lemmy.go +++ b/system/lemmy/lemmy.go @@ -3,8 +3,10 @@ package lemmy import ( "context" "fmt" + "net/http" "net/url" "strconv" + "time" "github.com/mrusme/neonmodem/models/author" "github.com/mrusme/neonmodem/models/forum" @@ -100,14 +102,38 @@ func (sys *System) Description() string { } func (sys *System) Load() error { + var httpClient *http.Client = nil + var httpTransport *http.Transport = nil + var err error - url := sys.config["url"] - if url == nil { + u := sys.config["url"] + if u == nil { return nil } - sys.client, err = lemmy.New(url.(string)) + proxy := sys.config["proxy"].(string) + if proxy != "" { + proxyURL, err := url.Parse(proxy) + if err != nil { + sys.logger.Error(err) + } else { + sys.logger.Debugf("setting up http proxy transport: %s\n", proxyURL.String()) + httpTransport = &http.Transport{ + Proxy: http.ProxyURL(proxyURL), + } + } + } + + httpClient = &http.Client{ + Transport: httpTransport, + Timeout: time.Second * 10, + } + + sys.client, err = lemmy.NewWithClient( + u.(string), + httpClient, + ) if err != nil { return err }