Compare commits
2 commits
70b30a9313
...
e89137224b
| Author | SHA1 | Date | |
|---|---|---|---|
| e89137224b | |||
| 1d2347ab72 |
1 changed files with 33 additions and 17 deletions
50
main.go
50
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,12 +190,22 @@ 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
|
||||
|
||||
if ps.IsReply() { //|| ps.IsQuotePost() {
|
||||
// don't want to post replies to channel
|
||||
now := time.Now()
|
||||
createdAt := ps.CreatedAt
|
||||
duration := now.Sub(createdAt)
|
||||
if duration.Hours() > *oldPosts ||
|
||||
strings.HasPrefix(ps.Text, "@") ||
|
||||
ps.IsReply() {
|
||||
return nil
|
||||
}
|
||||
|
||||
telegramRecord, telegramRecordErr := h.bsky.Bluesky.GetTelegramData(event.Commit.RKey)
|
||||
if telegramRecordErr == "" {
|
||||
isEditedPost = true
|
||||
}
|
||||
|
||||
var captionText string
|
||||
if ps.IsQuotePost() {
|
||||
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 {
|
||||
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{}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue