summaryrefslogtreecommitdiffstats
path: root/vendor/github.com/SevereCloud/vksdk/v2/object/object.go
diff options
context:
space:
mode:
authorIvanik <ivan170102@gmail.com>2021-01-29 04:25:14 +0500
committerGitHub <noreply@github.com>2021-01-29 00:25:14 +0100
commit8764be74616bde87bbbf6c32901cd9f43264d1e0 (patch)
tree88902ba17d6a6d245cadb7e0b277bee7ef424f99 /vendor/github.com/SevereCloud/vksdk/v2/object/object.go
parent5dd15ef8e716c65accb6cd021095c0e19913d55f (diff)
downloadmatterbridge-msglm-8764be74616bde87bbbf6c32901cd9f43264d1e0.tar.gz
matterbridge-msglm-8764be74616bde87bbbf6c32901cd9f43264d1e0.tar.bz2
matterbridge-msglm-8764be74616bde87bbbf6c32901cd9f43264d1e0.zip
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
Diffstat (limited to 'vendor/github.com/SevereCloud/vksdk/v2/object/object.go')
-rw-r--r--vendor/github.com/SevereCloud/vksdk/v2/object/object.go566
1 files changed, 566 insertions, 0 deletions
diff --git a/vendor/github.com/SevereCloud/vksdk/v2/object/object.go b/vendor/github.com/SevereCloud/vksdk/v2/object/object.go
new file mode 100644
index 00000000..4daf7c07
--- /dev/null
+++ b/vendor/github.com/SevereCloud/vksdk/v2/object/object.go
@@ -0,0 +1,566 @@
+/*
+Package object contains objects for VK.
+
+See more https://vk.com/dev/objects
+*/
+package object // import "github.com/SevereCloud/vksdk/v2/object"
+
+import (
+ "bytes"
+ "encoding/json"
+ "reflect"
+)
+
+// Attachment interface.
+type Attachment interface {
+ ToAttachment() string
+}
+
+// JSONObject interface.
+type JSONObject interface {
+ ToJSON() string
+}
+
+// BaseBoolInt type.
+type BaseBoolInt bool
+
+// UnmarshalJSON func.
+func (b *BaseBoolInt) UnmarshalJSON(data []byte) (err error) {
+ switch {
+ case bytes.Equal(data, []byte("1")), bytes.Equal(data, []byte("true")):
+ *b = true
+ case bytes.Equal(data, []byte("0")), bytes.Equal(data, []byte("false")):
+ *b = false
+ default:
+ // return json error
+ err = &json.UnmarshalTypeError{
+ Value: string(data),
+ Type: reflect.TypeOf((*BaseBoolInt)(nil)),
+ }
+ }
+
+ return
+}
+
+// BaseCountry struct.
+type BaseCountry struct {
+ ID int `json:"id"`
+ Title string `json:"title"`
+}
+
+// BaseObject struct.
+type BaseObject struct {
+ ID int `json:"id"`
+ Title string `json:"title"`
+}
+
+// BaseObjectCount struct.
+type BaseObjectCount struct {
+ Count int `json:"count"`
+}
+
+// BaseObjectWithName struct.
+type BaseObjectWithName struct {
+ ID int `json:"id"`
+ Name string `json:"name"`
+}
+
+// BaseRequestParam struct.
+type BaseRequestParam struct {
+ Key string `json:"key"`
+ Value string `json:"value"`
+}
+
+// BaseSex const.
+const (
+ SexUnknown = iota
+ SexFemale
+ SexMale
+)
+
+// LongPollResponse struct.
+type LongPollResponse struct {
+ Ts int `json:"ts"`
+ Updates [][]interface{} `json:"updates"`
+ Failed int `json:"failed"`
+}
+
+// BaseCommentsInfo struct.
+type BaseCommentsInfo struct {
+ Count int `json:"count"`
+ CanPost BaseBoolInt `json:"can_post"`
+ GroupsCanPost BaseBoolInt `json:"groups_can_post"`
+ CanClose BaseBoolInt `json:"can_close"`
+ CanOpen BaseBoolInt `json:"can_open"`
+}
+
+// BaseGeo struct.
+type BaseGeo struct {
+ Coordinates string `json:"coordinates"`
+ Place BasePlace `json:"place"`
+ Showmap int `json:"showmap"`
+ Type string `json:"type"`
+}
+
+// BaseMessageGeo struct.
+type BaseMessageGeo struct {
+ Coordinates BaseGeoCoordinates `json:"coordinates"`
+ Place BasePlace `json:"place"`
+ Showmap int `json:"showmap"`
+ Type string `json:"type"`
+}
+
+// BaseGeoCoordinates struct.
+type BaseGeoCoordinates struct {
+ Latitude float64 `json:"latitude"`
+ Longitude float64 `json:"longitude"`
+}
+
+// BaseImage struct.
+type BaseImage struct {
+ Height float64 `json:"height"`
+ URL string `json:"url"`
+ Width float64 `json:"width"`
+ Type string `json:"type"`
+}
+
+// UnmarshalJSON is required to support images with `src` field.
+func (obj *BaseImage) UnmarshalJSON(data []byte) (err error) {
+ type renamedBaseImage struct {
+ Height float64 `json:"height"`
+ URL string `json:"url"`
+ Src string `json:"src"`
+ Width float64 `json:"width"`
+ Type string `json:"type"`
+ }
+
+ var renamedObj renamedBaseImage
+
+ err = json.Unmarshal(data, &renamedObj)
+
+ obj.Height = renamedObj.Height
+ obj.Width = renamedObj.Width
+ obj.Type = renamedObj.Type
+
+ if renamedObj.Src == "" {
+ obj.URL = renamedObj.URL
+ } else {
+ obj.URL = renamedObj.Src
+ }
+
+ return err
+}
+
+// BaseLikes struct.
+type BaseLikes struct {
+ UserLikes BaseBoolInt `json:"user_likes"` // Information whether current user likes
+ Count int `json:"count"` // Likes number
+}
+
+// BaseLikesInfo struct.
+type BaseLikesInfo struct {
+ CanLike BaseBoolInt `json:"can_like"` // Information whether current user can like the post
+ CanPublish BaseBoolInt `json:"can_publish"` // Information whether current user can repost
+ UserLikes BaseBoolInt `json:"user_likes"` // Information whether current uer has liked the post
+ Count int `json:"count"` // Likes number
+}
+
+// BaseLink struct.
+type BaseLink struct {
+ Application BaseLinkApplication `json:"application"`
+ Button BaseLinkButton `json:"button"`
+ ButtonText string `json:"button_text"`
+ ButtonAction string `json:"button_action"`
+ Caption string `json:"caption"`
+ Description string `json:"description"`
+ Photo PhotosPhoto `json:"photo"`
+ Video VideoVideo `json:"video"`
+ PreviewPage string `json:"preview_page"`
+ PreviewURL string `json:"preview_url"`
+ Product BaseLinkProduct `json:"product"`
+ Rating BaseLinkRating `json:"rating"`
+ Title string `json:"title"`
+ Target string `json:"target"`
+ URL string `json:"url"`
+ IsFavorite BaseBoolInt `json:"is_favorite"`
+}
+
+// BaseLinkApplication struct.
+type BaseLinkApplication struct {
+ AppID float64 `json:"app_id"`
+ Store BaseLinkApplicationStore `json:"store"`
+}
+
+// BaseLinkApplicationStore struct.
+type BaseLinkApplicationStore struct {
+ ID float64 `json:"id"`
+ Name string `json:"name"`
+}
+
+// BaseLinkButton struct.
+type BaseLinkButton struct {
+ Action BaseLinkButtonAction `json:"action"`
+ Title string `json:"title"`
+}
+
+// BaseLinkButtonAction struct.
+type BaseLinkButtonAction struct {
+ Type string `json:"type"`
+ URL string `json:"url"`
+}
+
+// BaseLinkProduct struct.
+type BaseLinkProduct struct {
+ Price MarketPrice `json:"price"`
+ Merchant string `json:"merchant"`
+ OrdersCount int `json:"orders_count"`
+}
+
+// BaseLinkRating struct.
+type BaseLinkRating struct {
+ ReviewsCount int `json:"reviews_count"`
+ Stars float64 `json:"stars"`
+}
+
+// BasePlace struct.
+type BasePlace struct {
+ Address string `json:"address"`
+ Checkins int `json:"checkins"`
+ City interface{} `json:"city"` // BUG(VK): https://github.com/VKCOM/vk-api-schema/issues/143
+ Country interface{} `json:"country"`
+ Created int `json:"created"`
+ ID int `json:"id"`
+ Icon string `json:"icon"`
+ Latitude float64 `json:"latitude"`
+ Longitude float64 `json:"longitude"`
+ Title string `json:"title"`
+ Type string `json:"type"`
+ IsDeleted BaseBoolInt `json:"is_deleted"`
+ TotalCheckins int `json:"total_checkins"`
+ Updated int `json:"updated"`
+ CategoryObject BaseCategoryObject `json:"category_object"`
+}
+
+// BaseCategoryObject struct.
+type BaseCategoryObject struct {
+ ID int `json:"id"`
+ Title string `json:"title"`
+ Icons []BaseImage `json:"icons"`
+}
+
+// BaseRepostsInfo struct.
+type BaseRepostsInfo struct {
+ Count int `json:"count"`
+ WallCount int `json:"wall_count"`
+ MailCount int `json:"mail_count"`
+ UserReposted int `json:"user_reposted"`
+}
+
+// BaseSticker struct.
+type BaseSticker struct {
+ Images []BaseImage `json:"images"`
+ ImagesWithBackground []BaseImage `json:"images_with_background"`
+ ProductID int `json:"product_id"`
+ StickerID int `json:"sticker_id"`
+ AnimationURL string `json:"animation_url"`
+}
+
+// MaxSize return the largest BaseSticker.
+func (sticker BaseSticker) MaxSize() (maxImageSize BaseImage) {
+ var max float64
+
+ for _, imageSize := range sticker.Images {
+ size := imageSize.Height * imageSize.Width
+ if size > max {
+ max = size
+ maxImageSize = imageSize
+ }
+ }
+
+ return
+}
+
+// MinSize return the smallest BaseSticker.
+func (sticker BaseSticker) MinSize() (minImageSize BaseImage) {
+ var min float64
+
+ for _, imageSize := range sticker.Images {
+ size := imageSize.Height * imageSize.Width
+ if size < min || min == 0 {
+ min = size
+ minImageSize = imageSize
+ }
+ }
+
+ return
+}
+
+// MaxSizeBackground return the largest BaseSticker with background.
+func (sticker BaseSticker) MaxSizeBackground() (maxImageSize BaseImage) {
+ var max float64
+
+ for _, imageSize := range sticker.ImagesWithBackground {
+ size := imageSize.Height * imageSize.Width
+ if size > max {
+ max = size
+ maxImageSize = imageSize
+ }
+ }
+
+ return
+}
+
+// MinSizeBackground return the smallest BaseSticker with background.
+func (sticker BaseSticker) MinSizeBackground() (minImageSize BaseImage) {
+ var min float64
+
+ for _, imageSize := range sticker.ImagesWithBackground {
+ size := imageSize.Height * imageSize.Width
+ if size < min || min == 0 {
+ min = size
+ minImageSize = imageSize
+ }
+ }
+
+ return
+}
+
+// BaseUserID struct.
+type BaseUserID struct {
+ UserID int `json:"user_id"`
+}
+
+// PrivacyCategory type.
+type PrivacyCategory string
+
+// Possible values.
+const (
+ PrivacyAll PrivacyCategory = "all"
+ PrivacyOnlyMe PrivacyCategory = "only_me"
+ PrivacyFriends PrivacyCategory = "friends"
+ PrivacyFriendsOfFriends PrivacyCategory = "friends_of_friends"
+)
+
+// Privacy struct.
+type Privacy struct {
+ Category PrivacyCategory `json:"category,omitempty"`
+ Lists struct {
+ Allowed []int `json:"allowed"`
+ } `json:"lists,omitempty"`
+ Owners struct {
+ Excluded []int `json:"excluded"`
+ } `json:"owners,omitempty"`
+}
+
+// EventsEventAttach struct.
+type EventsEventAttach struct {
+ Address string `json:"address,omitempty"` // address of event
+ ButtonText string `json:"button_text"` // text of attach
+ Friends []int `json:"friends"` // array of friends ids
+ ID int `json:"id"` // event ID
+ IsFavorite BaseBoolInt `json:"is_favorite"` // is favorite
+ MemberStatus int `json:"member_status,omitempty"` // Current user's member status
+ Text string `json:"text"` // text of attach
+ Time int `json:"time,omitempty"` // event start time
+}
+
+// OauthError struct.
+type OauthError struct {
+ Error string `json:"error"`
+ ErrorDescription string `json:"error_description"`
+ RedirectURI string `json:"redirect_uri"`
+}
+
+// Article struct.
+type Article struct {
+ ID int `json:"id"`
+ OwnerID int `json:"owner_id"`
+ OwnerName string `json:"owner_name"`
+ OwnerPhoto string `json:"owner_photo"`
+ State string `json:"state"`
+ CanReport BaseBoolInt `json:"can_report"`
+ IsFavorite BaseBoolInt `json:"is_favorite"`
+ NoFooter BaseBoolInt `json:"no_footer"`
+ Title string `json:"title"`
+ Subtitle string `json:"subtitle"`
+ Views int `json:"views"`
+ Shares int `json:"shares"`
+ URL string `json:"url"`
+ ViewURL string `json:"view_url"`
+ AccessKey string `json:"access_key"`
+ PublishedDate int `json:"published_date"`
+ Photo PhotosPhoto `json:"photo"`
+}
+
+// ExtendedResponse struct.
+type ExtendedResponse struct {
+ Profiles []UsersUser `json:"profiles,omitempty"`
+ Groups []GroupsGroup `json:"groups,omitempty"`
+}
+
+// ClientInfo struct.
+type ClientInfo struct {
+ ButtonActions []string `json:"button_actions"`
+ Keyboard BaseBoolInt `json:"keyboard"`
+ InlineKeyboard BaseBoolInt `json:"inline_keyboard"`
+ Carousel BaseBoolInt `json:"carousel"`
+ LangID int `json:"lang_id"`
+}
+
+// Language code.
+const (
+ LangRU = 0 // Русский
+ LangUK = 1 // Українська
+ LangBE = 2 // Беларуская (тарашкевiца)
+ LangEN = 3 // English
+ LangES = 4 // Español
+ LangFI = 5 // Suomi
+ LangDE = 6 // Deutsch
+ LangIT = 7 // Italiano
+ LangBG = 8 // Български
+ LangHR = 9 // Hrvatski
+ LangHU = 10 // Magyar
+ LangSR = 11 // Српски
+ LangPT = 12 // Português
+ LangEL = 14 // Ελληνικά
+ LangPL = 15 // Polski
+ LangFR = 16 // Français
+ LangKO = 17 // 한국어
+ LangZH = 18 // 汉语
+ LangLT = 19 // Lietuvių
+ LangJA = 20 // 日本語
+ LangCS = 21 // Čeština
+ LangET = 22 // Eesti
+ LangTT = 50 // Татарча
+ LangBA = 51 // Башҡортса
+ LangCV = 52 // Чăвашла
+ LangSK = 53 // Slovenčina
+ LangRO = 54 // Română
+ LangNO = 55 // Norsk
+ LangLV = 56 // Latviešu
+ LangAZ = 57 // Azərbaycan dili
+ LangHY = 58 // Հայերեն
+ LangSQ = 59 // Shqip
+ LangSV = 60 // Svenska
+ LangNL = 61 // Nederlands
+ LangTK = 62 // Türkmen
+ LangKA = 63 // ქართული
+ LangDA = 64 // Dansk
+ LangUZ = 65 // O‘zbek
+ LangMO = 66 // Moldovenească
+ LangBUA = 67 // Буряад
+ LangTH = 68 // ภาษาไทย
+ LangID = 69 // Bahasa Indonesia
+ LangTG = 70 // Тоҷикӣ
+ LangSL = 71 // Slovenščina
+ LangBS = 72 // Bosanski
+ LangPTBR = 73 // Português brasileiro
+ LangFA = 74 // فارسی
+ LangVI = 75 // Tiếng Việt
+ LangHI = 76 // हिन्दी
+ LangSI = 77 // සිංහල
+ LangBN = 78 // বাংলা
+ LangTL = 79 // Tagalog
+ LangMN = 80 // Монгол
+ LangMY = 81 // ဗမာစာ
+ LangTR = 82 // Türkçe
+ LangNE = 83 // नेपाली
+ LangUR = 85 // اردو
+ LangKY = 87 // Кыргыз тили
+ LangPA = 90 // پنجابی
+ LangOS = 91 // Ирон
+ LangKN = 94 // ಕನ್ನಡ
+ LangSW = 95 // Kiswahili
+ LangKK = 97 // Қазақша
+ LangAR = 98 // العربية
+ LangHE = 99 // עברית
+ LangPreRevolutionary = 100 // Дореволюцiонный
+ LangMYV = 101 // Эрзянь кель
+ LangKDB = 102 // Адыгэбзэ
+ LangSAH = 105 // Саха тыла
+ LangADY = 106 // Адыгабзэ
+ LangUDM = 107 // Удмурт
+ LangCHM = 108 // Марий йылме
+ LangBE2 = 114 // Беларуская
+ LangLEZ = 118 // Лезги чІал
+ LangTW = 119 // 臺灣話
+ LangKUM = 236 // Къумукъ тил
+ LangMVL = 270 // Mirandés
+ LangSLA = 298 // Русинськый
+ LangKRL = 379 // Karjalan kieli
+ LangTYV = 344 // Тыва дыл
+ LangXAL = 357 // Хальмг келн
+ LangTLY = 373 // Tolışə zıvon
+ LangKV = 375 // Коми кыв
+ LangUKClassic = 452 // Українська (клясична)
+ LangUKGalitska = 454 // Українська (Галицка)
+ LangKAB = 457 // Taqbaylit
+ LangEO = 555 // Esperanto
+ LangLA = 666 // Lingua Latina
+ LangSoviet = 777 // Советский
+)
+
+// Button action type.
+const (
+ // A button that sends a message with text specified in the label.
+ ButtonText = "text"
+
+ // Opens the VK Pay window with predefined parameters. The button is called
+ // “Pay with VK Pay” (VK Pay is displayed as a logo). This button always
+ // stretches to the whole keyboard width.
+ ButtonVKPay = "vkpay"
+
+ // Opens a specified VK Apps app. This button always stretches to the whole
+ // keyboard width.
+ ButtonVKApp = "open_app"
+
+ // Sends the location to the chat. This button always stretches to the
+ // whole keyboard width.
+ ButtonLocation = "location"
+
+ // Opens the specified link.
+ ButtonOpenLink = "open_link"
+
+ // Allows, without sending a message from the user, to receive a
+ // notification about pressing the button and perform the necessary action.
+ ButtonCallback = "callback"
+)
+
+// Button color. This parameter is used only for buttons with the text and callback types.
+const (
+ Primary = "primary" // Blue button, indicates the main action. #5181B8
+ ButtonBlue
+
+ Secondary = "secondary" // Default white button. #FFFFFF
+ ButtonWhite
+
+ Negative = "negative" // Dangerous or negative action (cancel, delete etc.) #E64646
+ ButtonRed
+
+ Positive = "positive" // Accept, agree. #4BB34B
+ ButtonGreen
+)
+
+// Platform content creation platform.
+type Platform int
+
+// Possible values.
+const (
+ _ Platform = iota
+ PlatformMobile // mobile web version
+ PlatformIPhone // iPhone
+ PlatformIPad // iPad
+ PlatformAndroid // Android
+ PlatformWindowsPhone // Windows Phone
+ PlatformWindows // Windows 8
+ PlatformFull // full web version
+ PlatformOther // other apps
+)
+
+// Conversations types.
+const (
+ PeerUser = "user"
+ PeerChat = "chat"
+ PeerGroup = "group"
+ PeerEmail = "email"
+)