mirror of
https://github.com/rystaf/mlmym.git
synced 2024-11-21 21:27:15 +00:00
This commit is contained in:
parent
a91b08547b
commit
3e1e3868f4
13
README.md
13
README.md
|
@ -3,14 +3,23 @@ a familiar desktop experience for [lemmy](https://join-lemmy.org).
|
|||
|
||||
![screenshot](https://raw.githubusercontent.com/rystaf/mlmym/main/screenshot1.png?raw=true)
|
||||
|
||||
### deployment
|
||||
## deployment
|
||||
|
||||
```bash
|
||||
docker run -it -p "8080:8080" ghcr.io/rystaf/mlmym:latest
|
||||
```
|
||||
|
||||
### config
|
||||
## config
|
||||
Set the environment variable `LEMMY_DOMAIN` to run in single instance mode
|
||||
```bash
|
||||
docker run -it -e LEMMY_DOMAIN='lemmydomain.com' -p "8080:8080" ghcr.io/rystaf/mlmym:latest
|
||||
```
|
||||
#### default user settings
|
||||
| environment variable | default |
|
||||
| -------------------- | ------- |
|
||||
| DARK | false |
|
||||
| HIDE_THUMBNAILS | false |
|
||||
| LISTING | All |
|
||||
| SORT | Hot |
|
||||
| COMMENT_SORT | Hot |
|
||||
|
||||
|
|
|
@ -1110,7 +1110,7 @@ form.create input[type=file], form.create select {
|
|||
}
|
||||
.preferences label{
|
||||
display: inline-block;
|
||||
width: 130px;
|
||||
width: 150px;
|
||||
margin-right: 5px;
|
||||
text-align: right;
|
||||
|
||||
|
|
35
routes.go
35
routes.go
|
@ -208,6 +208,14 @@ func RegReplace(input string, match string, replace string) string {
|
|||
return re.ReplaceAllString(input, replace)
|
||||
}
|
||||
|
||||
func getenv(key, fallback string) string {
|
||||
value := os.Getenv(key)
|
||||
if len(value) == 0 {
|
||||
return fallback
|
||||
}
|
||||
return value
|
||||
}
|
||||
|
||||
func Initialize(Host string, r *http.Request) (State, error) {
|
||||
state := State{
|
||||
Host: Host,
|
||||
|
@ -252,18 +260,27 @@ func Initialize(Host string, r *http.Request) (State, error) {
|
|||
state.Listing = getCookie(r, "DefaultListingType")
|
||||
state.Sort = getCookie(r, "DefaultSortType")
|
||||
state.CommentSort = getCookie(r, "DefaultCommentSortType")
|
||||
state.Dark = getCookie(r, "Dark") != ""
|
||||
if dark := getCookie(r, "Dark"); dark != "" {
|
||||
state.Dark = dark != "0"
|
||||
} else {
|
||||
state.Dark = os.Getenv("DARK") != "0"
|
||||
}
|
||||
state.ShowNSFW = getCookie(r, "ShowNSFW") != ""
|
||||
state.HideInstanceNames = getCookie(r, "HideInstanceNames") != ""
|
||||
if hide := getCookie(r, "HideThumbnails"); hide != "" {
|
||||
state.HideThumbnails = hide != "0"
|
||||
} else {
|
||||
state.HideThumbnails = os.Getenv("HIDE_THUMBNAILS") != "0"
|
||||
}
|
||||
state.ParseQuery(r.URL.RawQuery)
|
||||
if state.Sort == "" {
|
||||
state.Sort = "Hot"
|
||||
state.Sort = getenv("SORT", "Hot")
|
||||
}
|
||||
if state.CommentSort == "" {
|
||||
state.CommentSort = "Hot"
|
||||
state.CommentSort = getenv("COMMENT_SORT", "Hot")
|
||||
}
|
||||
if state.Listing == "" || state.Session == nil && state.Listing == "Subscribed" {
|
||||
state.Listing = "All"
|
||||
state.Listing = getenv("LISTING", "All")
|
||||
}
|
||||
return state, nil
|
||||
}
|
||||
|
@ -698,8 +715,7 @@ func Settings(w http.ResponseWriter, r *http.Request, ps httprouter.Params) {
|
|||
setCookie(w, "", "Dark", "1")
|
||||
state.Dark = true
|
||||
} else {
|
||||
deleteCookie(w, state.Host, "Dark")
|
||||
deleteCookie(w, "", "Dark")
|
||||
setCookie(w, "", "Dark", "0")
|
||||
state.Dark = false
|
||||
}
|
||||
if r.FormValue("shownsfw") != "" {
|
||||
|
@ -717,6 +733,13 @@ func Settings(w http.ResponseWriter, r *http.Request, ps httprouter.Params) {
|
|||
deleteCookie(w, "", "HideInstanceNames")
|
||||
state.HideInstanceNames = false
|
||||
}
|
||||
if r.FormValue("hideThumbnails") != "" {
|
||||
setCookie(w, "", "HideThumbnails", "1")
|
||||
state.HideInstanceNames = true
|
||||
} else {
|
||||
setCookie(w, "", "HideThumbnails", "0")
|
||||
state.HideInstanceNames = false
|
||||
}
|
||||
state.Listing = r.FormValue("DefaultListingType")
|
||||
state.Sort = r.FormValue("DefaultSortType")
|
||||
state.CommentSort = r.FormValue("DefaultCommentSortType")
|
||||
|
|
1
state.go
1
state.go
|
@ -104,6 +104,7 @@ type State struct {
|
|||
Dark bool
|
||||
ShowNSFW bool
|
||||
HideInstanceNames bool
|
||||
HideThumbnails bool
|
||||
}
|
||||
|
||||
func (s State) Unknown() string {
|
||||
|
|
|
@ -23,11 +23,13 @@
|
|||
{{ end }}
|
||||
{{ if and (ne .State.Op "vote_post") (ne .State.Op "save_post") }}
|
||||
</div>
|
||||
{{ if not .State.HideThumbnails }}
|
||||
<div class="thumb">
|
||||
<a class="url" href="{{ if .Post.URL.IsValid }}{{ .Post.URL }}{{ else }}/{{ .State.Host }}/post/{{ .Post.ID }}{{ end }}">
|
||||
<div {{ if and .Post.NSFW (not (and .State.Community .State.Community.CommunityView.Community.NSFW))}}class="img-blur"{{end}} style="background-image: url({{thumbnail .Post}})"></div>
|
||||
</a>
|
||||
</div>
|
||||
{{ end }}
|
||||
<div class="entry">
|
||||
<div class="title">
|
||||
<a class="url" href="{{ if .Post.URL.IsValid }}{{ .Post.URL }}{{ else }}/{{ .State.Host }}/post/{{ .Post.ID }}{{ end }}">{{ rmmarkdown .Post.Name }}</a>
|
||||
|
|
|
@ -125,7 +125,13 @@
|
|||
<input type="checkbox" name="hideInstanceNames" {{ if .HideInstanceNames }}checked{{end}}>
|
||||
</div>
|
||||
<div>
|
||||
<label>lemmy: {{ .Site.Version }}<br>mlmym: {{ .Version }}</label>
|
||||
<label>
|
||||
hide thumbnails
|
||||
</label>
|
||||
<input type="checkbox" name="hideThumbnails" {{ if .HideThumbnails }}checked{{end}}>
|
||||
</div>
|
||||
<div>
|
||||
<label>lemmy: {{ .Site.Version }}<br><a href="https://github.com/rystaf/mlmym">mlmym</a>: {{ .Version }}</label>
|
||||
<input type="submit" value="save">
|
||||
{{ if .XHR }}<input id="closesettings" type="submit" value="close">{{ end }}
|
||||
</div>
|
||||
|
|
Loading…
Reference in a new issue