Compare commits

..

2 commits

Author SHA1 Message Date
e89137224b Don't post if starting with @
All checks were successful
/ build (push) Successful in 1m40s
2025-11-03 10:17:18 +00:00
1d2347ab72 Add option to ignore old posts, default 24 hours 2025-11-03 10:08:22 +00:00

50
main.go
View file

@ -43,8 +43,9 @@ type handler struct {
} }
var ( var (
post = flag.String("post", "", "URL to a BlueSky post") post = flag.String("post", "", "URL to a BlueSky post")
delete = flag.Bool("delete", false, "true/false to delete 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() { func main() {
@ -189,12 +190,22 @@ func (h *handler) ProcessPost(event *models.Event) error {
ps, _ := h.bsky.ParsePost(event.Commit.Record) ps, _ := h.bsky.ParsePost(event.Commit.Record)
po := ps.GetEmbeds() po := ps.GetEmbeds()
cid, _ := strconv.ParseInt(os.Getenv("TG_CHANNEL_ID"), 10, 64) cid, _ := strconv.ParseInt(os.Getenv("TG_CHANNEL_ID"), 10, 64)
isEditedPost := false
if ps.IsReply() { //|| ps.IsQuotePost() { now := time.Now()
// don't want to post replies to channel createdAt := ps.CreatedAt
duration := now.Sub(createdAt)
if duration.Hours() > *oldPosts ||
strings.HasPrefix(ps.Text, "@") ||
ps.IsReply() {
return nil return nil
} }
telegramRecord, telegramRecordErr := h.bsky.Bluesky.GetTelegramData(event.Commit.RKey)
if telegramRecordErr == "" {
isEditedPost = true
}
var captionText string var captionText string
if ps.IsQuotePost() { if ps.IsQuotePost() {
if ps.Embed.Record.Type == "app.bsky.embed.record" { if ps.Embed.Record.Type == "app.bsky.embed.record" {
@ -283,20 +294,25 @@ func (h *handler) ProcessPost(event *models.Event) error {
if len(mediaGroup) == 0 { if len(mediaGroup) == 0 {
log.Print("No mediaGroup to send, see previous error") log.Print("No mediaGroup to send, see previous error")
} else { } else {
resp, _ := h.tg.SendMediaGroup(tgbotapi.NewMediaGroup(cid, mediaGroup)) if isEditedPost {
uri, cid := getLink(event) resp, err := h.tg.Send(tgbotapi.NewEditMessageCaption(telegramRecord.ChannelID, telegramRecord.MessageID[0], captionText))
var messageIDs []int fmt.Println(resp, err)
for _, msgID := range resp { } else {
messageIDs = append(messageIDs, msgID.MessageID) 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 { } else {
m := tgbotapi.MessageConfig{} m := tgbotapi.MessageConfig{}