diff options
author | r <r@freesoftwareextremist.com> | 2019-12-14 18:12:48 +0000 |
---|---|---|
committer | r <r@freesoftwareextremist.com> | 2019-12-14 18:12:48 +0000 |
commit | ea66bd539dec12ef2846c23e505593f9f9d9fac3 (patch) | |
tree | 17d40c5aaf44e87ea65e444e15e87e771ca947c0 | |
parent | 787a197ad8cbce572152ee41b2a411b8d145285a (diff) | |
download | bloat-ea66bd539dec12ef2846c23e505593f9f9d9fac3.tar.gz bloat-ea66bd539dec12ef2846c23e505593f9f9d9fac3.zip |
Focus relevant status on like, retweet and reply
-rw-r--r-- | service/auth.go | 2 | ||||
-rw-r--r-- | service/logging.go | 2 | ||||
-rw-r--r-- | service/service.go | 13 | ||||
-rw-r--r-- | service/transport.go | 14 | ||||
-rw-r--r-- | templates/status.tmpl | 4 |
5 files changed, 20 insertions, 15 deletions
diff --git a/service/auth.go b/service/auth.go index cb442a7..5ee2001 100644 --- a/service/auth.go +++ b/service/auth.go @@ -142,7 +142,7 @@ func (s *authService) UnRetweet(ctx context.Context, client io.Writer, c *mastod return s.Service.UnRetweet(ctx, client, c, id) } -func (s *authService) PostTweet(ctx context.Context, client io.Writer, c *mastodon.Client, content string, replyToID string) (err error) { +func (s *authService) PostTweet(ctx context.Context, client io.Writer, c *mastodon.Client, content string, replyToID string) (id string, err error) { c, err = s.getClient(ctx) if err != nil { return diff --git a/service/logging.go b/service/logging.go index b11599e..0ed40bd 100644 --- a/service/logging.go +++ b/service/logging.go @@ -108,7 +108,7 @@ func (s *loggingService) UnRetweet(ctx context.Context, client io.Writer, c *mas return s.Service.UnRetweet(ctx, client, c, id) } -func (s *loggingService) PostTweet(ctx context.Context, client io.Writer, c *mastodon.Client, content string, replyToID string) (err error) { +func (s *loggingService) PostTweet(ctx context.Context, client io.Writer, c *mastodon.Client, content string, replyToID string) (id string, err error) { defer func(begin time.Time) { s.logger.Printf("method=%v, content=%v, reply_to_id=%v, took=%v, err=%v\n", "PostTweet", content, replyToID, time.Since(begin), err) diff --git a/service/service.go b/service/service.go index b10a5de..3bfb163 100644 --- a/service/service.go +++ b/service/service.go @@ -36,7 +36,7 @@ type Service interface { UnLike(ctx context.Context, client io.Writer, c *mastodon.Client, id string) (err error) Retweet(ctx context.Context, client io.Writer, c *mastodon.Client, id string) (err error) UnRetweet(ctx context.Context, client io.Writer, c *mastodon.Client, id string) (err error) - PostTweet(ctx context.Context, client io.Writer, c *mastodon.Client, content string, replyToID string) (err error) + PostTweet(ctx context.Context, client io.Writer, c *mastodon.Client, content string, replyToID string) (id string, err error) } type service struct { @@ -292,11 +292,16 @@ func (svc *service) UnRetweet(ctx context.Context, client io.Writer, c *mastodon return } -func (svc *service) PostTweet(ctx context.Context, client io.Writer, c *mastodon.Client, content string, replyToID string) (err error) { +func (svc *service) PostTweet(ctx context.Context, client io.Writer, c *mastodon.Client, content string, replyToID string) (id string, err error) { tweet := &mastodon.Toot{ Status: content, InReplyToID: replyToID, } - _, err = c.PostStatus(ctx, tweet) - return + + s, err := c.PostStatus(ctx, tweet) + if err != nil { + return + } + + return s.ID, nil } diff --git a/service/transport.go b/service/transport.go index 709a2ff..00f7430 100644 --- a/service/transport.go +++ b/service/transport.go @@ -108,7 +108,7 @@ func NewHandler(s Service, staticDir string) http.Handler { return } - w.Header().Add("Location", req.Header.Get("Referer")) + w.Header().Add("Location", req.Header.Get("Referer")+"#status-"+id) w.WriteHeader(http.StatusSeeOther) }).Methods(http.MethodGet) @@ -121,7 +121,7 @@ func NewHandler(s Service, staticDir string) http.Handler { return } - w.Header().Add("Location", req.Header.Get("Referer")) + w.Header().Add("Location", req.Header.Get("Referer")+"#status-"+id) w.WriteHeader(http.StatusSeeOther) }).Methods(http.MethodGet) @@ -134,7 +134,7 @@ func NewHandler(s Service, staticDir string) http.Handler { return } - w.Header().Add("Location", req.Header.Get("Referer")) + w.Header().Add("Location", req.Header.Get("Referer")+"#status-"+id) w.WriteHeader(http.StatusSeeOther) }).Methods(http.MethodGet) @@ -147,7 +147,7 @@ func NewHandler(s Service, staticDir string) http.Handler { return } - w.Header().Add("Location", req.Header.Get("Referer")) + w.Header().Add("Location", req.Header.Get("Referer")+"#status-"+id) w.WriteHeader(http.StatusSeeOther) }).Methods(http.MethodGet) @@ -155,15 +155,15 @@ func NewHandler(s Service, staticDir string) http.Handler { ctx := getContextWithSession(context.Background(), req) content := req.FormValue("content") replyToID := req.FormValue("reply_to_id") - err := s.PostTweet(ctx, w, nil, content, replyToID) + id, err := s.PostTweet(ctx, w, nil, content, replyToID) if err != nil { s.ServeErrorPage(ctx, w, err) return } - location := "/timeline" + location := "/timeline" + "#status-" + id if len(replyToID) > 0 { - location = "/thread/" + replyToID + location = "/thread/" + replyToID + "#status-" + id } w.Header().Add("Location", location) w.WriteHeader(http.StatusSeeOther) diff --git a/templates/status.tmpl b/templates/status.tmpl index 3953f23..24f9a54 100644 --- a/templates/status.tmpl +++ b/templates/status.tmpl @@ -1,4 +1,4 @@ -<div id="status-{{.ID}}" class="status-container-container"> +<div id="status-{{if .Reblog}}{{.Reblog.ID}}{{else}}{{.ID}}{{end}}" class="status-container-container"> {{if .Reblog}} <div class="retweet-info"> <img class="status-profile-img" src="{{.Account.AvatarStatic}}" alt="profile-avatar" /> @@ -67,7 +67,7 @@ <span> {{DisplayInteractionCount .FavouritesCount}} </span> </a> {{end}} - <a class="status-time" href="/thread/{{.ID}}"> + <a class="status-time" href="/thread/{{.ID}}#status-{{.ID}}"> <time datetime="{{FormatTimeRFC3339 .CreatedAt}}" title="{{.CreatedAt}}"> {{TimeSince .CreatedAt}} </time> </a> </div> |