This commit is contained in:
lulzette 2023-06-06 09:12:35 +03:00
parent 281855c519
commit 10f81a11be
2 changed files with 40 additions and 10 deletions

8
README.md Normal file
View File

@ -0,0 +1,8 @@
vk-to-smtp
====
Это демон, который получает посты из группы в ВК и пересылает их на почту.
Пока что еще не готов (прям совсем).
Зачем он нужен? Чтобы не заходить в ВК.

View File

@ -9,37 +9,59 @@ import (
"strconv" "strconv"
) )
/*
- json с конфигом
- json с последними постами из группы
Алгоритм:
- Читаем айди последнего поста
- Сохраняем в какую-нибудь переменную посты
- Формируем письмо из постов
- Отправляем письмо на почту
- При успешной отправке записываем айди последнего поста в жсон
*/
func main() { func main() {
// Get token and group id from ENV
token := os.Getenv("vktoken") token := os.Getenv("vktoken")
groupId, err := strconv.Atoi(os.Getenv("vkgroupid")) groupId, err := strconv.Atoi(os.Getenv("vkgroupid"))
if err != nil { if err != nil {
log.Fatal(err) log.Fatal(err)
} }
// Init VK
vk := api.NewVK(token) vk := api.NewVK(token)
// Fill params for wallGet
wallGetParams := params.NewWallGetBuilder() wallGetParams := params.NewWallGetBuilder()
wallGetParams.Count(10) wallGetParams.Count(10)
wallGetParams.Extended(true) wallGetParams.Extended(true)
wallGetParams.OwnerID(groupId) wallGetParams.OwnerID(groupId)
// Do WallGet
posts, err := vk.WallGet(wallGetParams.Params) posts, err := vk.WallGet(wallGetParams.Params)
if err != nil { if err != nil {
log.Fatal(err) log.Fatal(err)
} }
// Cycle through posts
for _, item := range posts.Items { for _, item := range posts.Items {
groupGetParams := params.NewGroupsGetByIDBuilder() if !item.IsPinned {
groupGetParams.GroupID(strconv.Itoa(item.OwnerID * -1)) groupGetParams := params.NewGroupsGetByIDBuilder()
groupGetParams.GroupID(strconv.Itoa(item.OwnerID * -1))
ownerName, err := vk.GroupsGetByID(groupGetParams.Params) ownerName, err := vk.GroupsGetByID(groupGetParams.Params)
if err != nil { if err != nil {
log.Fatal(err) log.Fatal(err)
}
fmt.Println("=====")
fmt.Println("Group:")
fmt.Println(ownerName[0].Name)
fmt.Println("Text:")
fmt.Println(item.Text)
} }
fmt.Println("Group:")
fmt.Println(ownerName[0].Name)
fmt.Println("Text:")
fmt.Println(item.Text)
} }
} }