vk-mailer/vk-to-smtp.go

68 lines
1.5 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() {
2023-06-06 09:12:35 +03:00
// 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.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)
}
}
}