feat(web): Support redirecting to custom url for index page

This commit is contained in:
Manuel 2025-03-20 07:40:00 +01:00
parent d27348ca0b
commit 15bf56a1e7
Signed by: Manuel
GPG key ID: 4085037435E1F07A
3 changed files with 15 additions and 1 deletions

View file

@ -1,13 +1,19 @@
username = ""
password = "asd123"
#proxyaddr = "socks5://localhost:5555"
hostURL = "https://my.domain.tld"
#usewebserver = false
indextarget = "https://discord.gg/Kw4MFGxYEj" # Optional
hostURL = "https://my.domain.tld" # Can be omitted if not using webserver
webhook = "https://domain.tld/api/webhooks/"
channels = [
"NinEverything",
"NintendoEurope",
"NintendoAmerica",
]
# Binary representation for efficient filtering
# Bit from left to right (most to least significant bit): IsSelfThread, IsRetweet, IsReply, IsPin, IsQuoted
filter = [

View file

@ -20,6 +20,7 @@ type Config struct {
WebPort uint16
UserAgents []string
NitterBase string
IndexTarget string
}
func ConfigFromFile(filePath string) (*Config, error) {

View file

@ -72,12 +72,19 @@ func New(config *config.Config, scraper *ts.Scraper) (*WebServer, error) {
WriteTimeout: 30 * time.Second,
},
}
sm.HandleFunc("GET /", ws.handleIndex)
sm.HandleFunc("GET /avatar/{username}", ws.handleAvatar)
sm.HandleFunc("GET /tweet/{id}", ws.handleTweet)
sm.HandleFunc("GET /video/{id}", ws.handleVideo)
return ws, nil
}
func (ws WebServer) handleIndex(w http.ResponseWriter, r *http.Request) {
if ws.config.IndexTarget != "" {
http.Redirect(w, r, ws.config.IndexTarget, http.StatusPermanentRedirect)
}
}
func (ws WebServer) handleAvatar(w http.ResponseWriter, r *http.Request) {
username := r.PathValue("username")