feat: add shared user agent constants

This commit is contained in:
2026-05-18 14:07:33 +02:00
parent 825f481329
commit 9859ddea42
4 changed files with 21 additions and 6 deletions

View File

@@ -11,6 +11,7 @@ import (
"fmt"
"io"
"mal/internal/domain"
"mal/pkg/net/useragent"
"mal/pkg/net/utls"
"net/http"
"net/url"
@@ -23,7 +24,7 @@ const (
allAnimeBaseURL = "https://api.allanime.day"
allAnimeReferer = "https://allmanga.to/"
allAnimeOrigin = "https://youtu-chan.com"
defaultUserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/121.0"
defaultUserAgent = useragent.Firefox121
)
var (

View File

@@ -5,6 +5,7 @@ import (
"errors"
"fmt"
"io"
"mal/pkg/net/useragent"
"net/http"
"regexp"
"strconv"
@@ -13,8 +14,6 @@ import (
"github.com/PuerkitoBio/goquery"
)
const defaultUserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.0.0 Safari/537.36"
// idPattern extracts the watch order ID from chiaki.site URLs
var idPattern = regexp.MustCompile(`/id/(\d+)`)
@@ -82,7 +81,7 @@ func parseRootID(url string) (int, error) {
}
func addCommonHeaders(request *http.Request) {
request.Header.Set("User-Agent", defaultUserAgent)
request.Header.Set("User-Agent", useragent.Chrome135)
request.Header.Set("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8")
request.Header.Set("Accept-Language", "en-US,en;q=0.9")
request.Header.Set("Referer", "https://chiaki.site/")

View File

@@ -12,6 +12,7 @@ import (
"mal/integrations/jikan"
"mal/internal/db"
"mal/internal/domain"
"mal/pkg/net/useragent"
"net/http"
"net/url"
"sort"
@@ -359,7 +360,7 @@ func (s *playbackService) fetchSkipSegments(ctx context.Context, malID int, epis
if err != nil {
return []SkipSegment{}
}
req.Header.Set("User-Agent", "Mozilla/5.0")
req.Header.Set("User-Agent", useragent.Generic)
resp, err := s.httpClient.Do(req)
if err != nil {
@@ -424,7 +425,7 @@ func (s *playbackService) warmStreamURL(targetURL, referer string) {
if referer != "" {
req.Header.Set("Referer", referer)
}
req.Header.Set("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/121.0")
req.Header.Set("User-Agent", useragent.Firefox121)
ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)
defer cancel()

View File

@@ -0,0 +1,14 @@
package useragent
// Keep these centralized so we don't end up with many drifting UA strings.
// Firefox121 mimics a modern Firefox desktop UA (used for some upstreams that
// gate responses based on UA).
const Firefox121 = "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/121.0"
// Chrome135 mimics a modern Chrome desktop UA.
const Chrome135 = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.0.0 Safari/537.36"
// Generic is a minimal UA string.
const Generic = "Mozilla/5.0"