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{}