vk-mailer/vk-to-smtp.go

84 lines
2.0 KiB
Go
Raw Normal View History

package main
import (
"fmt"
"github.com/SevereCloud/vksdk/v2/api"
"github.com/SevereCloud/vksdk/v2/api/params"
"log"
"os"
"strconv"
)
2023-06-06 09:12:35 +03:00
/*
- json с конфигом
2024-01-11 21:14:11 +03:00
- json с ID последних постов из групп
2023-06-06 09:12:35 +03:00
Алгоритм:
- Читаем айди последнего поста
- Сохраняем в какую-нибудь переменную посты
- Формируем письмо из постов
- Отправляем письмо на почту
- При успешной отправке записываем айди последнего поста в жсон
*/
func main() {
// Init: Get token and group id from ENV
token := os.Getenv("vktoken")
//groupId, err := strconv.Atoi(os.Getenv("vkgroupid"))
//if err != nil {
// log.Fatal(err)
//}
2023-06-06 09:12:35 +03:00
// Init VK
vk := api.NewVK(token)
2023-06-06 09:12:35 +03:00
// Fill params for wallGet
wallGetParams := params.NewWallGetBuilder()
wallGetParams.Count(10)
wallGetParams.Domain("podvalsound")
wallGetParams.Extended(true)
//wallGetParams.OwnerID(groupId)
2023-06-06 09:12:35 +03:00
// Do WallGet
posts, err := vk.WallGet(wallGetParams.Params)
if err != nil {
log.Fatal(err)
}
2023-06-06 09:12:35 +03:00
// Cycle through posts
for _, item := range posts.Items {
2023-06-06 09:12:35 +03:00
if !item.IsPinned {
groupGetParams := params.NewGroupsGetByIDBuilder()
groupGetParams.GroupID(strconv.Itoa(item.OwnerID * -1))
2023-06-06 09:12:35 +03:00
ownerName, err := vk.GroupsGetByID(groupGetParams.Params)
if err != nil {
log.Fatal(err)
}
fmt.Println("=====")
fmt.Println("Group:")
fmt.Println(ownerName[0].Name)
fmt.Println("Text:")
fmt.Println(item.Text)
fmt.Println("Attach: ")
// проходимся по аттачам если есть
if item.Attachments != nil {
//fmt.Println(item.Attachments)
for _, attach := range item.Attachments {
// если это фото - вытаскиваем урл
photosObj := attach.Photo
if photosObj.Sizes != nil {
for _, photoSizeObj := range photosObj.Sizes {
if photoSizeObj.Type == "y" {
fmt.Println(photoSizeObj.URL)
}
}
}
}
}
}
}
}