From 1d2347ab7250cba249e5f9453cb32b98b99735e2 Mon Sep 17 00:00:00 2001 From: Astra Date: Mon, 3 Nov 2025 10:08:22 +0000 Subject: [PATCH 1/2] Add option to ignore old posts, default 24 hours --- main.go | 50 +++++++++++++++++++++++++++++++++++--------------- 1 file changed, 35 insertions(+), 15 deletions(-) diff --git a/main.go b/main.go index fdc3019..34d95bb 100644 --- a/main.go +++ b/main.go @@ -43,8 +43,9 @@ type handler struct { } var ( - post = flag.String("post", "", "URL to a BlueSky post") - delete = flag.Bool("delete", false, "true/false to delete post") + post = flag.String("post", "", "URL to a BlueSky post") + delete = flag.Bool("delete", false, "true/false to delete post") + oldPosts = flag.Float64("oldposttime", 24, "Ignore posts if createdAt more than this many hours ago") ) func main() { @@ -189,6 +190,20 @@ func (h *handler) ProcessPost(event *models.Event) error { ps, _ := h.bsky.ParsePost(event.Commit.Record) po := ps.GetEmbeds() cid, _ := strconv.ParseInt(os.Getenv("TG_CHANNEL_ID"), 10, 64) + isEditedPost := false + + now := time.Now() + createdAt := ps.CreatedAt + duration := now.Sub(createdAt) + if duration.Hours() > *oldPosts { + // don't post old posts + return nil + } + + telegramRecord, telegramRecordErr := h.bsky.Bluesky.GetTelegramData(event.Commit.RKey) + if telegramRecordErr == "" { + isEditedPost = true + } if ps.IsReply() { //|| ps.IsQuotePost() { // don't want to post replies to channel @@ -283,20 +298,25 @@ func (h *handler) ProcessPost(event *models.Event) error { if len(mediaGroup) == 0 { log.Print("No mediaGroup to send, see previous error") } else { - resp, _ := h.tg.SendMediaGroup(tgbotapi.NewMediaGroup(cid, mediaGroup)) - uri, cid := getLink(event) - var messageIDs []int - for _, msgID := range resp { - messageIDs = append(messageIDs, msgID.MessageID) + if isEditedPost { + resp, err := h.tg.Send(tgbotapi.NewEditMessageCaption(telegramRecord.ChannelID, telegramRecord.MessageID[0], captionText)) + fmt.Println(resp, err) + } else { + resp, _ := h.tg.SendMediaGroup(tgbotapi.NewMediaGroup(cid, mediaGroup)) + uri, cid := getLink(event) + var messageIDs []int + for _, msgID := range resp { + messageIDs = append(messageIDs, msgID.MessageID) + } + h.bsky.Bluesky.CommitTelegramResponse(&bsky.TelegramRecord{ + ChannelID: resp[0].Chat.ID, + MessageID: messageIDs, + Link: &bsky.Link{ + Cid: cid, + URI: uri, + }, + }, event.Commit.RKey) } - h.bsky.Bluesky.CommitTelegramResponse(&bsky.TelegramRecord{ - ChannelID: resp[0].Chat.ID, - MessageID: messageIDs, - Link: &bsky.Link{ - Cid: cid, - URI: uri, - }, - }, event.Commit.RKey) } } else { m := tgbotapi.MessageConfig{} From e89137224bceb96b810e6904aa98cc0febd4b8a6 Mon Sep 17 00:00:00 2001 From: Astra Date: Mon, 3 Nov 2025 10:17:18 +0000 Subject: [PATCH 2/2] Don't post if starting with @ --- main.go | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/main.go b/main.go index 34d95bb..3fcd1a2 100644 --- a/main.go +++ b/main.go @@ -195,8 +195,9 @@ func (h *handler) ProcessPost(event *models.Event) error { now := time.Now() createdAt := ps.CreatedAt duration := now.Sub(createdAt) - if duration.Hours() > *oldPosts { - // don't post old posts + if duration.Hours() > *oldPosts || + strings.HasPrefix(ps.Text, "@") || + ps.IsReply() { return nil } @@ -205,11 +206,6 @@ func (h *handler) ProcessPost(event *models.Event) error { isEditedPost = true } - if ps.IsReply() { //|| ps.IsQuotePost() { - // don't want to post replies to channel - return nil - } - var captionText string if ps.IsQuotePost() { if ps.Embed.Record.Type == "app.bsky.embed.record" {