mirror of
https://codeberg.org/video-prize-ranch/rimgo.git
synced 2026-02-14 20:45:51 +00:00
Compare commits
5 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
61a312aba0 | ||
|
|
33fa04e98d | ||
|
|
e5b87dc924 | ||
|
|
8cb2524924 | ||
|
|
23b66cba47 |
@@ -11,7 +11,7 @@ type Client struct {
|
||||
Cache *cache.Cache
|
||||
}
|
||||
|
||||
func NewClient(clientId string) (*Client) {
|
||||
func NewClient(clientId string) *Client {
|
||||
client := Client{
|
||||
ClientID: clientId,
|
||||
Cache: cache.New(15*time.Minute, 15*time.Minute),
|
||||
|
||||
@@ -36,6 +36,8 @@ func (client *Client) FetchTrending(section, sort, page string) ([]Submission, e
|
||||
case "best":
|
||||
q.Add("filter[window]", "all")
|
||||
q.Add("sort", "-top")
|
||||
case "random":
|
||||
q.Add("sort", "random")
|
||||
case "popular":
|
||||
fallthrough
|
||||
default:
|
||||
@@ -51,6 +53,8 @@ func (client *Client) FetchTrending(section, sort, page string) ([]Submission, e
|
||||
case "top":
|
||||
q.Add("filter[section]", "eq:top")
|
||||
q.Add("filter[window]", "day")
|
||||
case "random":
|
||||
q.Add("filter[section]", "eq:random")
|
||||
default:
|
||||
q.Add("filter[section]", "eq:hot")
|
||||
section = "hot"
|
||||
|
||||
2
main.go
2
main.go
@@ -96,7 +96,7 @@ func main() {
|
||||
Expiration: 30 * time.Minute,
|
||||
MaxBytes: 25000000,
|
||||
KeyGenerator: func(c *fiber.Ctx) string {
|
||||
return utils.GetInstanceProtocol(c) + " " + c.OriginalURL()
|
||||
return utils.GetInstanceUrl(c) + c.OriginalURL()
|
||||
},
|
||||
CacheControl: true,
|
||||
StoreResponseHeaders: true,
|
||||
|
||||
@@ -1,13 +1,10 @@
|
||||
package pages
|
||||
|
||||
import (
|
||||
"os"
|
||||
|
||||
"codeberg.org/rimgo/rimgo/utils"
|
||||
"github.com/gofiber/fiber/v2"
|
||||
)
|
||||
|
||||
|
||||
func HandleAbout(c *fiber.Ctx) error {
|
||||
utils.SetHeaders(c)
|
||||
c.Set("X-Frame-Options", "DENY")
|
||||
@@ -17,6 +14,6 @@ func HandleAbout(c *fiber.Ctx) error {
|
||||
return c.Render("about", fiber.Map{
|
||||
"proto": c.Protocol(),
|
||||
"domain": c.Hostname(),
|
||||
"force_webp": os.Getenv("FORCE_WEBP"),
|
||||
"force_webp": utils.Config.ForceWebp,
|
||||
})
|
||||
}
|
||||
@@ -25,7 +25,7 @@ func HandleTrending(c *fiber.Ctx) error {
|
||||
|
||||
section := c.Query("section")
|
||||
switch section {
|
||||
case "hot", "new", "top":
|
||||
case "hot", "new", "top", "random":
|
||||
default:
|
||||
section = "hot"
|
||||
}
|
||||
|
||||
@@ -21,51 +21,38 @@ type config struct {
|
||||
|
||||
var Config config
|
||||
|
||||
func envString(name, def string) string {
|
||||
env := os.Getenv(name)
|
||||
if env != "" {
|
||||
return env
|
||||
}
|
||||
return def
|
||||
}
|
||||
func envBool(name string) bool {
|
||||
return os.Getenv(name) == "true" || os.Getenv(name) == "1"
|
||||
}
|
||||
|
||||
func LoadConfig() {
|
||||
port := "3000"
|
||||
if os.Getenv("PORT") != "" {
|
||||
port = os.Getenv("PORT")
|
||||
}
|
||||
if os.Getenv("RIMGU_PORT") != "" {
|
||||
port = os.Getenv("RIMGU_PORT")
|
||||
}
|
||||
|
||||
addr := "0.0.0.0"
|
||||
if os.Getenv("ADDRESS") != "" {
|
||||
addr = os.Getenv("ADDRESS")
|
||||
}
|
||||
if os.Getenv("RIMGU_ADDRESS") != "" {
|
||||
addr = os.Getenv("RIMGU_ADDRESS")
|
||||
}
|
||||
|
||||
imgurId := "546c25a59c58ad7"
|
||||
if os.Getenv("IMGUR_CLIENT_ID") != "" {
|
||||
imgurId = os.Getenv("IMGUR_CLIENT_ID")
|
||||
}
|
||||
if os.Getenv("RIMGU_IMGUR_CLIENT_ID") != "" {
|
||||
imgurId = os.Getenv("RIMGU_IMGUR_CLIENT_ID")
|
||||
}
|
||||
|
||||
Config = config{
|
||||
Port: port,
|
||||
Addr: addr,
|
||||
ImgurId: imgurId,
|
||||
ProtocolDetection: os.Getenv("PROTOCOL_DETECTION") == "true" || os.Getenv("PROTOCOL_DETECTION") == "1",
|
||||
Secure: os.Getenv("SECURE") == "true" || os.Getenv("SECURE") == "1",
|
||||
FiberPrefork: os.Getenv("FIBER_PREFORK") == "true" || os.Getenv("FIBER_PREFORK") == "1",
|
||||
ForceWebp: os.Getenv("FORCE_WEBP") == "true" || os.Getenv("FORCE_WEBP") == "1",
|
||||
Port: envString("PORT", "3000"),
|
||||
Addr: envString("ADDR", "0.0.0.0"),
|
||||
ImgurId: envString("IMGUR_CLIENT_ID", "546c25a59c58ad7"),
|
||||
ProtocolDetection: envBool("PROTOCOL_DETECTION"),
|
||||
Secure: envBool("SECURE"),
|
||||
FiberPrefork: envBool("FIBER_PREFORK"),
|
||||
ForceWebp: envBool("FORCE_WEBP"),
|
||||
Privacy: map[string]interface{}{
|
||||
"set": os.Getenv("PRIVACY_NOT_COLLECTED") != "",
|
||||
"policy": os.Getenv("PRIVACY_POLICY"),
|
||||
"message": os.Getenv("PRIVACY_MESSAGE"),
|
||||
"country": os.Getenv("PRIVACY_COUNTRY"),
|
||||
"provider": os.Getenv("PRIVACY_PROVIDER"),
|
||||
"cloudflare": os.Getenv("PRIVACY_CLOUDFLARE") == "true" || os.Getenv("PRIVACY_CLOUDFLARE") == "1",
|
||||
"not_collected": os.Getenv("PRIVACY_NOT_COLLECTED") == "true" || os.Getenv("PRIVACY_NOT_COLLECTED") == "1",
|
||||
"ip": os.Getenv("PRIVACY_IP") == "true" || os.Getenv("PRIVACY_IP") == "1",
|
||||
"url": os.Getenv("PRIVACY_URL") == "true" || os.Getenv("PRIVACY_URL") == "1",
|
||||
"device": os.Getenv("PRIVACY_DEVICE") == "true" || os.Getenv("PRIVACY_DEVICE") == "1",
|
||||
"diagnostics": os.Getenv("PRIVACY_DIAGNOSTICS") == "true" || os.Getenv("PRIVACY_DIAGNOSTICS") == "1",
|
||||
"cloudflare": envBool("PRIVACY_CLOUDFLARE"),
|
||||
"not_collected": envBool("PRIVACY_NOT_COLLECTED"),
|
||||
"ip": envBool("PRIVACY_IP"),
|
||||
"url": envBool("PRIVACY_URL"),
|
||||
"device": envBool("PRIVACY_DEVICE"),
|
||||
"diagnostics": envBool("PRIVACY_DIAGNOSTICS"),
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
@@ -35,7 +35,7 @@ func GetJSON(url string) (gjson.Result, error) {
|
||||
return gjson.Result{}, err
|
||||
}
|
||||
|
||||
switch (res.StatusCode) {
|
||||
switch res.StatusCode {
|
||||
case 200:
|
||||
return gjson.Parse(string(body)), nil
|
||||
case 429:
|
||||
|
||||
@@ -30,20 +30,35 @@
|
||||
<a href="?section=hot&sort={{sort}}"><b>Hot</b></a>
|
||||
<a href="?section=new&sort={{sort}}">New</a>
|
||||
<a href="?section=top&sort={{sort}}">Top</a>
|
||||
<a href="?section=random&sort=random">Random</a>
|
||||
{{/equal}}
|
||||
{{#equal section "new"}}
|
||||
<a href="?section=hot&sort={{sort}}">Hot</a>
|
||||
<a href="?section=new&sort={{sort}}"><b>New</b></a>
|
||||
<a href="?section=top&sort={{sort}}">Top</a>
|
||||
<a href="?section=random&sort=random">Random</a>
|
||||
{{/equal}}
|
||||
{{#equal section "top"}}
|
||||
<a href="?section=hot&sort={{sort}}">Hot</a>
|
||||
<a href="?section=new&sort={{sort}}">New</a>
|
||||
<a href="?section=top&sort={{sort}}"><b>Top</b></a>
|
||||
<a href="?section=random&sort=random">Random</a>
|
||||
{{/equal}}
|
||||
{{#equal section "random"}}
|
||||
<a href="?section=hot&sort={{sort}}">Hot</a>
|
||||
<a href="?section=new&sort={{sort}}">New</a>
|
||||
<a href="?section=top&sort={{sort}}">Top</a>
|
||||
<a href="?section=random&sort=random"><b>Random</b></a>
|
||||
{{/equal}}
|
||||
</div>
|
||||
<hr class="sm:hidden my-2" />
|
||||
<div class="flex flex-col sm:items-end">
|
||||
{{#equal section "random"}}
|
||||
<a href="?section=hot&sort=popular">Popular</a>
|
||||
<a href="?section=hot&sort=newest">Newest</a>
|
||||
<a href="?section=hot&sort=best">Best</a>
|
||||
{{/equal}}
|
||||
{{#noteq section "random"}}
|
||||
{{#equal sort "popular"}}
|
||||
<a href="?section={{section}}&sort=popular"><b>Popular</b></a>
|
||||
<a href="?section={{section}}&sort=newest">Newest</a>
|
||||
@@ -59,6 +74,7 @@
|
||||
<a href="?section={{section}}&sort=newest">Newest</a>
|
||||
<a href="?section={{section}}&sort=best"><b>Best</b></a>
|
||||
{{/equal}}
|
||||
{{/noteq}}
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
Reference in New Issue
Block a user