Add models of Telegram API JSON responses.
This commit is contained in:
parent
76381e004a
commit
d0a044f3c7
1
src/telepathy/model.cr
Normal file
1
src/telepathy/model.cr
Normal file
@ -0,0 +1 @@
|
|||||||
|
require "./model/*"
|
14
src/telepathy/model/audio.cr
Normal file
14
src/telepathy/model/audio.cr
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
require "json"
|
||||||
|
|
||||||
|
module Telepathy
|
||||||
|
class Audio
|
||||||
|
JSON.mapping(
|
||||||
|
file_id: String,
|
||||||
|
duration: Int64,
|
||||||
|
performer: String?,
|
||||||
|
title: String?,
|
||||||
|
mime_type: String?,
|
||||||
|
file_size: Int64?
|
||||||
|
)
|
||||||
|
end
|
||||||
|
end
|
22
src/telepathy/model/chat.cr
Normal file
22
src/telepathy/model/chat.cr
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
require "json"
|
||||||
|
require "./message.cr"
|
||||||
|
|
||||||
|
module Telepathy
|
||||||
|
class Chat
|
||||||
|
JSON.mapping(
|
||||||
|
id: Int64,
|
||||||
|
type: String,
|
||||||
|
title: String?,
|
||||||
|
username: String?,
|
||||||
|
first_name: String?,
|
||||||
|
last_name: String?,
|
||||||
|
all_members_are_administrators: Bool?,
|
||||||
|
# TODO photo
|
||||||
|
description: String?,
|
||||||
|
invite_link: String?,
|
||||||
|
pinned_message: Message?,
|
||||||
|
sticker_set_name: String?,
|
||||||
|
can_set_sticker_set: Bool?
|
||||||
|
)
|
||||||
|
end
|
||||||
|
end
|
12
src/telepathy/model/contact.cr
Normal file
12
src/telepathy/model/contact.cr
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
require "json"
|
||||||
|
|
||||||
|
module Telepathy
|
||||||
|
class Contact
|
||||||
|
JSON.mapping(
|
||||||
|
phone_number: String,
|
||||||
|
first_name: String,
|
||||||
|
last_name: String?,
|
||||||
|
user_id: Int64?
|
||||||
|
)
|
||||||
|
end
|
||||||
|
end
|
14
src/telepathy/model/document.cr
Normal file
14
src/telepathy/model/document.cr
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
require "json"
|
||||||
|
require "./photo_size.cr"
|
||||||
|
|
||||||
|
module Telepathy
|
||||||
|
class Document
|
||||||
|
JSON.mapping(
|
||||||
|
file_id: String,
|
||||||
|
thumb: PhotoSize?,
|
||||||
|
file_name: String?,
|
||||||
|
mime_type: String?,
|
||||||
|
file_size: Int64?
|
||||||
|
)
|
||||||
|
end
|
||||||
|
end
|
10
src/telepathy/model/location.cr
Normal file
10
src/telepathy/model/location.cr
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
require "json"
|
||||||
|
|
||||||
|
module Telepathy
|
||||||
|
class Location
|
||||||
|
JSON.mapping(
|
||||||
|
longitude: Float32,
|
||||||
|
latitude: Float32
|
||||||
|
)
|
||||||
|
end
|
||||||
|
end
|
61
src/telepathy/model/message.cr
Normal file
61
src/telepathy/model/message.cr
Normal file
@ -0,0 +1,61 @@
|
|||||||
|
require "json"
|
||||||
|
require "./user.cr"
|
||||||
|
require "./char.cr"
|
||||||
|
require "./message_entity.cr"
|
||||||
|
require "./audio.cr"
|
||||||
|
require "./document.cr"
|
||||||
|
require "./photo_size.cr"
|
||||||
|
require "./video.cr"
|
||||||
|
require "./voice.cr"
|
||||||
|
require "./video_note.cr"
|
||||||
|
require "./contact.cr"
|
||||||
|
require "./location.cr"
|
||||||
|
require "./venue.cr"
|
||||||
|
|
||||||
|
module Telepathy
|
||||||
|
class Message
|
||||||
|
JSON.mapping(
|
||||||
|
message_id: Int64,
|
||||||
|
from: User?,
|
||||||
|
date: Int64,
|
||||||
|
chat: Chat,
|
||||||
|
forward_from: User?,
|
||||||
|
forward_from_chat: Chat?,
|
||||||
|
forward_from_message_id: Int64?,
|
||||||
|
forward_signature: String?,
|
||||||
|
forward_date: Int64?,
|
||||||
|
reply_to_message: Message?,
|
||||||
|
edit_date: Int64?,
|
||||||
|
media_group_id: String?,
|
||||||
|
author_signature: String?,
|
||||||
|
text: String?,
|
||||||
|
entities: Array(MessageEntity)?,
|
||||||
|
caption_entities: Array(MessageEntity)?,
|
||||||
|
audio: Audio?,
|
||||||
|
document: Document?,
|
||||||
|
photo: Array(PhotoSize)?,
|
||||||
|
video: Video?,
|
||||||
|
voice: Voice?,
|
||||||
|
video_note: VideoNote?,
|
||||||
|
# TODO game
|
||||||
|
# TODO sticker
|
||||||
|
caption: String?,
|
||||||
|
contact: Contact?,
|
||||||
|
location: Location?,
|
||||||
|
venue: Venue?,
|
||||||
|
new_chat_members: Array(User)?,
|
||||||
|
left_chat_member: User?,
|
||||||
|
new_chat_title: String?,
|
||||||
|
# new_chat_photo
|
||||||
|
delete_chat_photo: Bool?,
|
||||||
|
group_chat_created: Bool?,
|
||||||
|
supergroup_chat_created: Bool?,
|
||||||
|
channel_chat_created: Bool?,
|
||||||
|
migrate_to_chat_id: Int64?,
|
||||||
|
migrate_from_chat_id: Int64?,
|
||||||
|
pinned_message: Message?
|
||||||
|
# invoice
|
||||||
|
# successful_payment
|
||||||
|
)
|
||||||
|
end
|
||||||
|
end
|
14
src/telepathy/model/message_entity.cr
Normal file
14
src/telepathy/model/message_entity.cr
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
require "json"
|
||||||
|
require "./user.cr"
|
||||||
|
|
||||||
|
module Telepathy
|
||||||
|
class MessageEntity
|
||||||
|
JSON.mapping(
|
||||||
|
type: String,
|
||||||
|
offset: Int64,
|
||||||
|
length: Int64,
|
||||||
|
url: String?,
|
||||||
|
user: User?
|
||||||
|
)
|
||||||
|
end
|
||||||
|
end
|
12
src/telepathy/model/photo_size.cr
Normal file
12
src/telepathy/model/photo_size.cr
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
require "json"
|
||||||
|
|
||||||
|
module Telepathy
|
||||||
|
class PhotoSize
|
||||||
|
JSON.mapping(
|
||||||
|
file_id: String?,
|
||||||
|
width: Int64,
|
||||||
|
height: Int64,
|
||||||
|
file_size: Int64?
|
||||||
|
)
|
||||||
|
end
|
||||||
|
end
|
14
src/telepathy/model/user.cr
Normal file
14
src/telepathy/model/user.cr
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
require "json"
|
||||||
|
|
||||||
|
module Telepathy
|
||||||
|
class User
|
||||||
|
JSON.mapping(
|
||||||
|
id: Int64,
|
||||||
|
is_bot: Bool,
|
||||||
|
first_name: String,
|
||||||
|
last_name: String?,
|
||||||
|
username: String?,
|
||||||
|
language_code: String?
|
||||||
|
)
|
||||||
|
end
|
||||||
|
end
|
13
src/telepathy/model/venue.cr
Normal file
13
src/telepathy/model/venue.cr
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
require "json"
|
||||||
|
require "./location.cr"
|
||||||
|
|
||||||
|
module Telepathy
|
||||||
|
class Venue
|
||||||
|
JSON.mapping(
|
||||||
|
location: Location,
|
||||||
|
title: String,
|
||||||
|
address: String,
|
||||||
|
foursquare_id: String?
|
||||||
|
)
|
||||||
|
end
|
||||||
|
end
|
16
src/telepathy/model/video.cr
Normal file
16
src/telepathy/model/video.cr
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
require "json"
|
||||||
|
require "./photo_size.cr"
|
||||||
|
|
||||||
|
module Telepathy
|
||||||
|
class Video
|
||||||
|
JSON.mapping(
|
||||||
|
file_id: String,
|
||||||
|
width: Int64,
|
||||||
|
height: Int64,
|
||||||
|
duration: Int64,
|
||||||
|
thumb: PhotoSize?,
|
||||||
|
mime_type: String?,
|
||||||
|
file_size: Int64?
|
||||||
|
)
|
||||||
|
end
|
||||||
|
end
|
14
src/telepathy/model/video_note.cr
Normal file
14
src/telepathy/model/video_note.cr
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
require "json"
|
||||||
|
require "./photo_size.cr"
|
||||||
|
|
||||||
|
module Telepathy
|
||||||
|
class VideoNote
|
||||||
|
JSON.mapping(
|
||||||
|
file_id: String,
|
||||||
|
length: Int64,
|
||||||
|
duration: Int64,
|
||||||
|
thumb: PhotoSize?,
|
||||||
|
file_size: Int64?
|
||||||
|
)
|
||||||
|
end
|
||||||
|
end
|
13
src/telepathy/model/voice.cr
Normal file
13
src/telepathy/model/voice.cr
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
require "json"
|
||||||
|
require "./photo_size.cr"
|
||||||
|
|
||||||
|
module Telepathy
|
||||||
|
class Voice
|
||||||
|
JSON.mapping(
|
||||||
|
file_id: String,
|
||||||
|
duration: Int64,
|
||||||
|
mime_type: String?,
|
||||||
|
file_size: Int64?
|
||||||
|
)
|
||||||
|
end
|
||||||
|
end
|
Loading…
Reference in New Issue
Block a user