diff options
-rw-r--r-- | model/settings.go | 2 | ||||
-rw-r--r-- | renderer/model.go | 1 | ||||
-rw-r--r-- | service/service.go | 9 | ||||
-rw-r--r-- | service/transport.go | 2 | ||||
-rw-r--r-- | templates/notification.tmpl | 4 | ||||
-rw-r--r-- | templates/settings.tmpl | 5 | ||||
-rw-r--r-- | templates/status.tmpl | 12 |
7 files changed, 30 insertions, 5 deletions
diff --git a/model/settings.go b/model/settings.go index fa69672..b7c77cf 100644 --- a/model/settings.go +++ b/model/settings.go @@ -9,6 +9,7 @@ type Settings struct { AutoRefreshNotifications bool `json:"auto_refresh_notifications"` FluorideMode bool `json:"fluoride_mode"` DarkMode bool `json:"dark_mode"` + AntiDopamineMode bool `json:"anti_dopamine_mode"` } func NewSettings() *Settings { @@ -21,5 +22,6 @@ func NewSettings() *Settings { AutoRefreshNotifications: false, FluorideMode: false, DarkMode: false, + AntiDopamineMode: false, } } diff --git a/renderer/model.go b/renderer/model.go index 85c73b8..7ea8c22 100644 --- a/renderer/model.go +++ b/renderer/model.go @@ -13,6 +13,7 @@ type Context struct { DarkMode bool CSRFToken string UserID string + AntiDopamineMode bool } type NavData struct { diff --git a/service/service.go b/service/service.go index 35ce3bd..cc59cb6 100644 --- a/service/service.go +++ b/service/service.go @@ -116,6 +116,7 @@ func getRendererContext(c *model.Client) *renderer.Context { DarkMode: settings.DarkMode, CSRFToken: session.CSRFToken, UserID: session.UserID, + AntiDopamineMode: settings.AntiDopamineMode, } } @@ -402,13 +403,19 @@ func (svc *service) ServeNotificationPage(c *model.Client, maxID string, var nextLink string var unreadCount int var readID string + var excludes []string var pg = mastodon.Pagination{ MaxID: maxID, MinID: minID, Limit: 20, } - notifications, err := c.GetNotifications(ctx, &pg) + dope := c.Session.Settings.AntiDopamineMode + if dope { + excludes = append(excludes, "follow", "favourite", "reblog") + } + + notifications, err := c.GetNotifications(ctx, &pg, excludes...) if err != nil { return } diff --git a/service/transport.go b/service/transport.go index 131c580..7d27a84 100644 --- a/service/transport.go +++ b/service/transport.go @@ -591,6 +591,7 @@ func NewHandler(s Service, staticDir string) http.Handler { arn := req.FormValue("auto_refresh_notifications") == "true" fluorideMode := req.FormValue("fluoride_mode") == "true" darkMode := req.FormValue("dark_mode") == "true" + antiDopamineMode := req.FormValue("anti_dopamine_mode") == "true" settings := &model.Settings{ DefaultVisibility: visibility, @@ -601,6 +602,7 @@ func NewHandler(s Service, staticDir string) http.Handler { AutoRefreshNotifications: arn, FluorideMode: fluorideMode, DarkMode: darkMode, + AntiDopamineMode: antiDopamineMode, } err := s.SaveSettings(c, settings) diff --git a/templates/notification.tmpl b/templates/notification.tmpl index b1855a6..227bc57 100644 --- a/templates/notification.tmpl +++ b/templates/notification.tmpl @@ -3,7 +3,9 @@ <div class="notification-title-container"> <div class="notification-title"> Notifications - {{if gt .UnreadCount 0}}({{.UnreadCount }}){{end}} + {{if and (not $.Ctx.AntiDopamineMode) (gt .UnreadCount 0)}} + ({{.UnreadCount }}) + {{end}} </div> <a class="notification-refresh" href="/notifications" target="_self">refresh</a> {{if .ReadID}} diff --git a/templates/settings.tmpl b/templates/settings.tmpl index d0710c3..ab5f03c 100644 --- a/templates/settings.tmpl +++ b/templates/settings.tmpl @@ -41,6 +41,11 @@ <input id="dark-mode" name="dark_mode" type="checkbox" value="true" {{if .Settings.DarkMode}}checked{{end}}> <label for="dark-mode"> Use dark theme </label> </div> + <div class="settings-form-field"> + <input id="anti-dopamine-mode" name="anti_dopamine_mode" type="checkbox" + value="true" {{if .Settings.AntiDopamineMode}}checked{{end}}> + <label for="anti-dopamine-mode"> Remove addictive social media features </label> + </div> <button type="submit"> Save </button> </form> diff --git a/templates/status.tmpl b/templates/status.tmpl index 3c0533b..de0909b 100644 --- a/templates/status.tmpl +++ b/templates/status.tmpl @@ -160,7 +160,9 @@ reply </a> <a class="status-reply-count" href="/thread/{{.ID}}#status-{{.ID}}" {{if $.Ctx.ThreadInNewTab}}target="_blank"{{end}}> - {{if .RepliesCount}} ({{DisplayInteractionCount .RepliesCount}}) {{end}} + {{if and (not $.Ctx.AntiDopamineMode) .RepliesCount}} + ({{DisplayInteractionCount .RepliesCount}}) + {{end}} </a> </div> <div class="status-action"> @@ -184,7 +186,9 @@ {{end}} {{end}} <a class="status-retweet-count" href="/retweetedby/{{.ID}}" title="click to see the the list"> - {{if .ReblogsCount}} ({{DisplayInteractionCount .ReblogsCount}}) {{end}} + {{if and (not $.Ctx.AntiDopamineMode) .ReblogsCount}} + ({{DisplayInteractionCount .ReblogsCount}}) + {{end}} </a> </div> <div class="status-action"> @@ -202,7 +206,9 @@ </form> {{end}} <a class="status-like-count" href="/likedby/{{.ID}}" title="click to see the the list"> - {{if .FavouritesCount}} ({{DisplayInteractionCount .FavouritesCount}}) {{end}} + {{if and (not $.Ctx.AntiDopamineMode) .FavouritesCount}} + ({{DisplayInteractionCount .FavouritesCount}}) + {{end}} </a> </div> <div class="status-action"> |