5
0
mirror of https://github.com/cwinfo/matterbridge.git synced 2024-11-10 07:30:28 +00:00
matterbridge/vendor/github.com/SevereCloud/vksdk/v2/object/wall.go
Ivanik 8764be7461
Add vk bridge (#1372)
* Add vk bridge

* Vk bridge attachments

* Vk bridge forwarded messages

* Vk bridge sample config and code cleanup

* Vk bridge add vendor

* Vk bridge message edit

* Vk bridge: fix fetching names of other bots

* Vk bridge: code cleanup

* Vk bridge: fix shadows declaration

* Vk bridge: remove UseFileURL
2021-01-29 00:25:14 +01:00

258 lines
12 KiB
Go

package object // import "github.com/SevereCloud/vksdk/v2/object"
// WallAppPost struct.
type WallAppPost struct {
ID int `json:"id"` // Application ID
Name string `json:"name"` // Application name
Photo130 string `json:"photo_130"` // URL of the preview image with 130 px in width
Photo604 string `json:"photo_604"` // URL of the preview image with 604 px in width
}
// WallAttachedNote struct.
type WallAttachedNote struct {
Comments int `json:"comments"` // Comments number
Date int `json:"date"` // Date when the note has been created in Unixtime
ID int `json:"id"` // Note ID
OwnerID int `json:"owner_id"` // Note owner's ID
ReadComments int `json:"read_comments"` // Read comments number
Title string `json:"title"` // Note title
ViewURL string `json:"view_url"` // URL of the page with note preview
}
// WallCommentAttachment struct.
type WallCommentAttachment struct {
Audio AudioAudio `json:"audio"`
Doc DocsDoc `json:"doc"`
Link BaseLink `json:"link"`
Market MarketMarketItem `json:"market"`
MarketMarketAlbum MarketMarketAlbum `json:"market_market_album"`
Note WallAttachedNote `json:"note"`
Page PagesWikipageFull `json:"page"`
Photo PhotosPhoto `json:"photo"`
Sticker BaseSticker `json:"sticker"`
Type string `json:"type"`
Video VideoVideo `json:"video"`
Graffiti WallGraffiti `json:"graffiti"`
}
// WallGraffiti struct.
type WallGraffiti struct {
ID int `json:"id"` // Graffiti ID
OwnerID int `json:"owner_id"` // Graffiti owner's ID
Photo200 string `json:"photo_200"` // URL of the preview image with 200 px in width
Photo586 string `json:"photo_586"` // URL of the preview image with 586 px in width
URL string `json:"url"`
Width int `json:"width"`
Height int `json:"height"`
AccessKey string `json:"access_key"`
}
// Type of post source.
const (
WallPostSourceTypeVk = "vk"
WallPostSourceTypeWidget = "widget"
WallPostSourceTypeAPI = "api"
WallPostSourceTypeRss = "rss"
WallPostSourceTypeSms = "sms"
)
// WallPostSource struct.
type WallPostSource struct {
Link BaseLink `json:"link"`
Data string `json:"data"` // Additional data
Platform string `json:"platform"` // Platform name
Type string `json:"type"`
URL string `json:"url"` // URL to an external site used to publish the post
}
// WallPostedPhoto struct.
type WallPostedPhoto struct {
ID int `json:"id"` // Photo ID
OwnerID int `json:"owner_id"` // Photo owner's ID
Photo130 string `json:"photo_130"` // URL of the preview image with 130 px in width
Photo604 string `json:"photo_604"` // URL of the preview image with 604 px in width
}
// WallViews struct.
type WallViews struct {
Count int `json:"count"` // Count
}
// WallWallCommentThread struct.
type WallWallCommentThread struct {
Count int `json:"count"` // Comments number
Items []WallWallComment `json:"items"`
CanPost BaseBoolInt `json:"can_post"` // Information whether current user can comment the post
GroupsCanPost BaseBoolInt `json:"groups_can_post"` // Information whether groups can comment the post
ShowReplyButton BaseBoolInt `json:"show_reply_button"`
}
// WallWallComment struct.
type WallWallComment struct {
Attachments []WallCommentAttachment `json:"attachments"`
Date int `json:"date"` // Date when the comment has been added in Unixtime
Deleted BaseBoolInt `json:"deleted"`
FromID int `json:"from_id"` // Author ID
ID int `json:"id"` // Comment ID
Likes BaseLikesInfo `json:"likes"`
RealOffset int `json:"real_offset"` // Real position of the comment
ReplyToComment int `json:"reply_to_comment"` // Replied comment ID
ReplyToUser int `json:"reply_to_user"` // Replied user ID
Text string `json:"text"` // Comment text
PostID int `json:"post_id"`
PostOwnerID int `json:"post_owner_id"`
PhotoID int `json:"photo_id"`
PhotoOwnerID int `json:"photo_owner_id"`
VideoID int `json:"video_id"`
VideoOwnerID int `json:"video_owner_id"`
ItemID int `json:"item_id"`
MarketOwnerID int `json:"market_owner_id"`
ParentsStack []int `json:"parents_stack"`
OwnerID int `json:"owner_id"`
Thread WallWallCommentThread `json:"thread"`
Donut WallWallCommentDonut `json:"donut"`
}
// WallWallCommentDonut info about VK Donut.
type WallWallCommentDonut struct {
IsDonut BaseBoolInt `json:"is_donut"`
Placeholder string `json:"placeholder"`
}
// WallPost type.
const (
WallPostTypePost = "post"
WallPostTypeCopy = "copy"
WallPostTypeReply = "reply"
WallPostTypePostpone = "postpone"
WallPostTypeSuggest = "suggest"
)
// WallWallpost struct.
type WallWallpost struct {
AccessKey string `json:"access_key"` // Access key to private object
ID int `json:"id"` // Post ID
OwnerID int `json:"owner_id"` // Wall owner's ID
FromID int `json:"from_id"` // Post author ID
CreatedBy int `json:"created_by"`
Date int `json:"date"` // Date of publishing in Unixtime
Text string `json:"text"` // Post text
ReplyOwnerID int `json:"reply_owner_id"`
ReplyPostID int `json:"reply_post_id"`
FriendsOnly int `json:"friends_only"`
Comments BaseCommentsInfo `json:"comments"`
Likes BaseLikesInfo `json:"likes"` // Count of likes
Reposts BaseRepostsInfo `json:"reposts"` // Count of views
Views WallViews `json:"views"` // Count of views
PostType string `json:"post_type"`
PostSource WallPostSource `json:"post_source"`
Attachments []WallWallpostAttachment `json:"attachments"`
Geo BaseGeo `json:"geo"`
SignerID int `json:"signer_id"` // Post signer ID
CopyHistory []WallWallpost `json:"copy_history"`
CanPin BaseBoolInt `json:"can_pin"`
CanDelete BaseBoolInt `json:"can_delete"`
CanEdit BaseBoolInt `json:"can_edit"`
IsPinned BaseBoolInt `json:"is_pinned"`
IsFavorite BaseBoolInt `json:"is_favorite"` // Information whether the post in favorites list
IsArchived BaseBoolInt `json:"is_archived"` // Is post archived, only for post owners
MarkedAsAds BaseBoolInt `json:"marked_as_ads"`
Edited int `json:"edited"` // Date of editing in Unixtime
Copyright WallPostCopyright `json:"copyright"`
PostID int `json:"post_id"`
ParentsStack []int `json:"parents_stack"`
Donut WallWallpostDonut `json:"donut"` // need api v5.125
ShortTextRate float64 `json:"short_text_rate"`
CarouselOffset int `json:"carousel_offset"`
}
// Attachment type.
//
// TODO: check this.
const (
AttachmentTypePhoto = "photo"
AttachmentTypePostedPhoto = "posted_photo"
AttachmentTypeAudio = "audio"
AttachmentTypeVideo = "video"
AttachmentTypeDoc = "doc"
AttachmentTypeLink = "link"
AttachmentTypeGraffiti = "graffiti"
AttachmentTypeNote = "note"
AttachmentTypeApp = "app"
AttachmentTypePoll = "poll"
AttachmentTypePage = "page"
AttachmentTypeAlbum = "album"
AttachmentTypePhotosList = "photos_list"
AttachmentTypeMarketAlbum = "market_album"
AttachmentTypeMarket = "market"
AttachmentTypeEvent = "event"
AttachmentTypeWall = "wall"
AttachmentTypeStory = "story"
AttachmentTypePodcast = "podcast"
)
// WallWallpostAttachment struct.
type WallWallpostAttachment struct {
AccessKey string `json:"access_key"` // Access key for the audio
Album PhotosPhotoAlbum `json:"album"`
App WallAppPost `json:"app"`
Audio AudioAudio `json:"audio"`
Doc DocsDoc `json:"doc"`
Event EventsEventAttach `json:"event"`
Graffiti WallGraffiti `json:"graffiti"`
Link BaseLink `json:"link"`
Market MarketMarketItem `json:"market"`
MarketMarketAlbum MarketMarketAlbum `json:"market_market_album"`
Note WallAttachedNote `json:"note"`
Page PagesWikipageFull `json:"page"`
Photo PhotosPhoto `json:"photo"`
PhotosList []string `json:"photos_list"`
Poll PollsPoll `json:"poll"`
PostedPhoto WallPostedPhoto `json:"posted_photo"`
Type string `json:"type"`
Video VideoVideo `json:"video"`
Podcast PodcastsEpisode `json:"podcast"`
}
// WallWallpostToID struct.
type WallWallpostToID struct {
Attachments []WallWallpostAttachment `json:"attachments"`
Comments BaseCommentsInfo `json:"comments"`
CopyOwnerID int `json:"copy_owner_id"` // ID of the source post owner
CopyPostID int `json:"copy_post_id"` // ID of the source post
Date int `json:"date"` // Date of publishing in Unixtime
FromID int `json:"from_id"` // Post author ID
Geo BaseGeo `json:"geo"`
ID int `json:"id"` // Post ID
Likes BaseLikesInfo `json:"likes"`
PostID int `json:"post_id"` // wall post ID (if comment)
PostSource WallPostSource `json:"post_source"`
PostType string `json:"post_type"`
Reposts BaseRepostsInfo `json:"reposts"`
SignerID int `json:"signer_id"` // Post signer ID
Text string `json:"text"` // Post text
ToID int `json:"to_id"` // Wall owner's ID
IsFavorite BaseBoolInt `json:"is_favorite"` // Information whether the post in favorites list
MarkedAsAds BaseBoolInt `json:"marked_as_ads"`
ParentsStack []int `json:"parents_stack"`
Donut WallWallpostDonut `json:"donut"` // need api v5.125
ShortTextRate float64 `json:"short_text_rate"`
}
// WallWallpostDonut info about VK Donut.
type WallWallpostDonut struct {
IsDonut BaseBoolInt `json:"is_donut"`
CanPublishFreeCopy BaseBoolInt `json:"can_publish_free_copy"`
PaidDuration int `json:"paid_duration"`
EditMode string `json:"edit_mode"`
Durations []BaseObjectWithName `json:"durations"`
}
// WallPostCopyright information about the source of the post.
type WallPostCopyright struct {
ID int `json:"id,omitempty"`
Link string `json:"link"`
Type string `json:"type"`
Name string `json:"name"`
}