mirror of
https://github.com/httpjamesm/AnonymousOverflow.git
synced 2024-12-06 19:16:43 +01:00
Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| b4a746da3d | |||
| 1a7635ccef | |||
| 4c971f3121 |
@@ -43,7 +43,7 @@ StackOverflow has a cluttered UI that might distract you from the content you're
|
||||
|
||||
The open-source [Libredirect](https://github.com/libredirect/libredirect) extension for Firefox and Chromium-based desktop browsers has support for redirections to AnonymousOverflow. To enable this, simply open the extension settings, click on Stack Overflow, then toggle "Enable". That's it, now Stack Overflow links will go to AnonymousOverflow.
|
||||
|
||||
The open-source [FREEdirector](https://openuserjs.org/scripts/sjehuda/FREEdirector) user.js script for web browsers with userscript support. You can install it with a web extension like [Greasemonkey](https://greasespot.net/), [Tampermonkey](https://tampermonkey.net/) or [Violentmonkey](https://violentmonkey.github.io/). Once installed, Stack Overflow links will go to AnonymousOverflow.
|
||||
The open-source [Proxy_Redirect](https://openuserjs.org/scripts/sjehuda/Proxy_Redirect) user.js script for web browsers with userscript support. You can install it with a web extension like [Greasemonkey](https://greasespot.net/), [Tampermonkey](https://tampermonkey.net/) or [Violentmonkey](https://violentmonkey.github.io/). Once installed, Stack Overflow links will go to AnonymousOverflow.
|
||||
|
||||
## How it works
|
||||
|
||||
|
||||
@@ -86,6 +86,8 @@ func main() {
|
||||
|
||||
r.GET("/proxy", routes.GetImage)
|
||||
|
||||
r.GET("/version", routes.GetVersion)
|
||||
|
||||
soPingCheck := checks.NewPingCheck("https://stackoverflow.com", "GET", 5000, nil, nil)
|
||||
sePingCheck := checks.NewPingCheck("https://stackexchange.com", "GET", 5000, nil, nil)
|
||||
healthcheck.New(r, config.DefaultConfig(), []checks.Check{soPingCheck, sePingCheck})
|
||||
|
||||
+18
-5
@@ -1,9 +1,13 @@
|
||||
:root {
|
||||
--code-bg: #36383d;
|
||||
--code-fg: #ffffff;
|
||||
}
|
||||
|
||||
:root,
|
||||
[data-theme="dark"] {
|
||||
--main-bg: #1b1f26;
|
||||
--text-color: #fff;
|
||||
--muted-text-color: #b3b3b3;
|
||||
--code-bg: #36383d;
|
||||
--code-fg: #ffffff;
|
||||
--input-bg: #2b303b;
|
||||
--input-bg-hover: #3b404b;
|
||||
--meta-bg: #525262;
|
||||
@@ -12,12 +16,10 @@
|
||||
}
|
||||
|
||||
@media (prefers-color-scheme: light) {
|
||||
:root {
|
||||
:root:not([data-theme="dark"]) {
|
||||
--main-bg: #dbdbdb;
|
||||
--text-color: #000;
|
||||
--muted-text-color: #636363;
|
||||
--code-bg: #36383d;
|
||||
--code-fg: #ffffff;
|
||||
--input-bg: #bcbcbc;
|
||||
--input-bg-hover: #a8a8a8;
|
||||
--meta-bg: #aaa8a8;
|
||||
@@ -26,6 +28,17 @@
|
||||
}
|
||||
}
|
||||
|
||||
[data-theme="light"] {
|
||||
--main-bg: #dbdbdb;
|
||||
--text-color: #000;
|
||||
--muted-text-color: #636363;
|
||||
--input-bg: #bcbcbc;
|
||||
--input-bg-hover: #a8a8a8;
|
||||
--meta-bg: #aaa8a8;
|
||||
--divider-color: #b5b5b5;
|
||||
--link-color: #335ad0;
|
||||
}
|
||||
|
||||
a {
|
||||
color: var(--link-color);
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@ package routes
|
||||
|
||||
import (
|
||||
"anonymousoverflow/config"
|
||||
"anonymousoverflow/src/utils"
|
||||
"fmt"
|
||||
"regexp"
|
||||
"strings"
|
||||
@@ -10,8 +11,10 @@ import (
|
||||
)
|
||||
|
||||
func GetHome(c *gin.Context) {
|
||||
theme := utils.GetThemeFromEnv()
|
||||
c.HTML(200, "home.html", gin.H{
|
||||
"version": config.Version,
|
||||
"theme": theme,
|
||||
})
|
||||
}
|
||||
|
||||
@@ -68,8 +71,10 @@ func PostHome(c *gin.Context) {
|
||||
translated := translateUrl(body.URL)
|
||||
|
||||
if translated == "" {
|
||||
theme := utils.GetThemeFromEnv()
|
||||
c.HTML(400, "home.html", gin.H{
|
||||
"errorMessage": "Invalid stack overflow/exchange URL",
|
||||
"theme": theme,
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@ package routes
|
||||
|
||||
import (
|
||||
"anonymousoverflow/config"
|
||||
"anonymousoverflow/src/utils"
|
||||
"fmt"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
@@ -17,9 +18,11 @@ func ChangeOptions(c *gin.Context) {
|
||||
text = "enabled"
|
||||
}
|
||||
c.SetCookie("disable_images", fmt.Sprintf("%t", !c.MustGet("disable_images").(bool)), 60*60*24*365*10, "/", "", false, true)
|
||||
theme := utils.GetThemeFromEnv()
|
||||
c.HTML(200, "home.html", gin.H{
|
||||
"successMessage": "Images are now " + text,
|
||||
"version": config.Version,
|
||||
"theme": theme,
|
||||
})
|
||||
default:
|
||||
c.String(400, "400 Bad Request")
|
||||
|
||||
@@ -101,6 +101,8 @@ func ViewQuestion(c *gin.Context) {
|
||||
imagePolicy = "'self'"
|
||||
}
|
||||
|
||||
theme := utils.GetThemeFromEnv()
|
||||
|
||||
c.HTML(200, "question.html", gin.H{
|
||||
"question": newFilteredQuestion,
|
||||
"answers": answers,
|
||||
@@ -108,6 +110,7 @@ func ViewQuestion(c *gin.Context) {
|
||||
"currentUrl": fmt.Sprintf("%s%s", os.Getenv("APP_URL"), c.Request.URL.Path),
|
||||
"sortValue": params.SoSortValue,
|
||||
"domain": domain,
|
||||
"theme": theme,
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
package routes
|
||||
|
||||
import (
|
||||
"anonymousoverflow/config"
|
||||
"github.com/gin-gonic/gin"
|
||||
)
|
||||
|
||||
func GetVersion(c *gin.Context) {
|
||||
c.String(200, config.Version)
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
package utils
|
||||
|
||||
import "os"
|
||||
|
||||
func GetThemeFromEnv() string {
|
||||
theme := os.Getenv("THEME")
|
||||
if theme == "" {
|
||||
theme = "auto"
|
||||
}
|
||||
return theme
|
||||
}
|
||||
+2
-2
@@ -1,5 +1,5 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<html data-theme="{{ .theme }}">
|
||||
|
||||
<head>
|
||||
<title>AnonymousOverflow - Private frontend for StackOverflow</title>
|
||||
@@ -58,4 +58,4 @@
|
||||
</div>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
</html>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<html data-theme="{{ .theme }}">
|
||||
|
||||
<head>
|
||||
<title>{{ .question.Title }} | AnonymousOverflow</title>
|
||||
@@ -92,4 +92,4 @@
|
||||
{{ end }}
|
||||
</body>
|
||||
|
||||
</html>
|
||||
</html>
|
||||
|
||||
Reference in New Issue
Block a user