Skip to content

Commit 48201e5

Browse files
committed
Add contentProvider field
1 parent c69dd08 commit 48201e5

File tree

1 file changed

+47
-10
lines changed

1 file changed

+47
-10
lines changed

linebot/models/messages.py

Lines changed: 47 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ def __init__(self, id=None, **kwargs):
4141
class TextMessage(Message):
4242
"""TextMessage.
4343
44-
https://devdocs.line.me/en/#text-message
44+
https://developers.line.biz/en/reference/messaging-api/#wh-text
4545
4646
Message object which contains the text sent from the source.
4747
"""
@@ -62,67 +62,86 @@ def __init__(self, id=None, text=None, **kwargs):
6262
class ImageMessage(Message):
6363
"""ImageMessage.
6464
65-
https://devdocs.line.me/en/#image-message
65+
https://developers.line.biz/en/reference/messaging-api/#wh-image
6666
6767
Message object which contains the image content sent from the source.
6868
The binary image data can be retrieved with the Content API.
6969
"""
7070

71-
def __init__(self, id=None, **kwargs):
71+
def __init__(self, id=None, content_provider=None, **kwargs):
7272
"""__init__ method.
7373
7474
:param str id: Message ID
75+
:param content_provider: ContentProvider object
76+
:type content_provider: :py:class:`linebot.models.messages.ContentProvider`
7577
:param kwargs:
7678
"""
7779
super(ImageMessage, self).__init__(id=id, **kwargs)
7880

7981
self.type = 'image'
82+
self.content_provider = self.get_or_new_from_json_dict(
83+
content_provider, ContentProvider
84+
)
8085

8186

8287
class VideoMessage(Message):
8388
"""VideoMessage.
8489
85-
https://devdocs.line.me/en/#video-message
90+
https://developers.line.biz/en/reference/messaging-api/#wh-video
8691
8792
Message object which contains the video content sent from the source.
8893
The binary video data can be retrieved with the Content API.
8994
"""
9095

91-
def __init__(self, id=None, **kwargs):
96+
def __init__(self, id=None, duration=None, content_provider=None, **kwargs):
9297
"""__init__ method.
9398
9499
:param str id: Message ID
100+
:param long duration: Length of video file (milliseconds)
101+
:param content_provider: ContentProvider object
102+
:type content_provider: :py:class:`linebot.models.messages.ContentProvider`
95103
:param kwargs:
96104
"""
97105
super(VideoMessage, self).__init__(id=id, **kwargs)
98106

99107
self.type = 'video'
108+
self.duration = duration
109+
self.content_provider = self.get_or_new_from_json_dict(
110+
content_provider, ContentProvider
111+
)
100112

101113

102114
class AudioMessage(Message):
103115
"""AudioMessage.
104116
105-
https://devdocs.line.me/en/#audio-message
117+
https://developers.line.biz/en/reference/messaging-api/#wh-audio
106118
107119
Message object which contains the audio content sent from the source.
108120
The binary audio data can be retrieved with the Content API.
109121
"""
110122

111-
def __init__(self, id=None, **kwargs):
123+
def __init__(self, id=None, duration=None, content_provider=None, **kwargs):
112124
"""__init__ method.
113125
114126
:param str id: Message ID
127+
:param long duration: Length of audio file (milliseconds)
128+
:param content_provider: ContentProvider object
129+
:type content_provider: :py:class:`linebot.models.messages.ContentProvider`
115130
:param kwargs:
116131
"""
117132
super(AudioMessage, self).__init__(id=id, **kwargs)
118133

119134
self.type = 'audio'
135+
self.duration = duration
136+
self.content_provider = self.get_or_new_from_json_dict(
137+
content_provider, ContentProvider
138+
)
120139

121140

122141
class LocationMessage(Message):
123142
"""LocationMessage.
124143
125-
https://devdocs.line.me/en/#location-message
144+
https://developers.line.biz/en/reference/messaging-api/#wh-location
126145
"""
127146

128147
def __init__(self, id=None, title=None, address=None, latitude=None, longitude=None,
@@ -148,7 +167,7 @@ def __init__(self, id=None, title=None, address=None, latitude=None, longitude=N
148167
class StickerMessage(Message):
149168
"""StickerMessage.
150169
151-
https://devdocs.line.me/en/#sticker-message
170+
https://developers.line.biz/en/reference/messaging-api/#wh-sticker
152171
153172
Message object which contains the sticker data sent from the source.
154173
For a list of basic LINE stickers and sticker IDs, see sticker list.
@@ -172,7 +191,7 @@ def __init__(self, id=None, package_id=None, sticker_id=None, **kwargs):
172191
class FileMessage(Message):
173192
"""FileMessage.
174193
175-
https://devdocs.line.me/en/#file-message
194+
https://developers.line.biz/en/reference/messaging-api/#wh-file
176195
177196
Message object which contains the file content sent from the source.
178197
The binary file data can be retrieved with the Content API.
@@ -191,3 +210,21 @@ def __init__(self, id=None, file_name=None, file_size=None, **kwargs):
191210
self.type = 'file'
192211
self.file_size = file_size
193212
self.file_name = file_name
213+
214+
215+
class ContentProvider(Base):
216+
"""Content provider."""
217+
218+
def __init__(self, type=None, original_content_url=None, preview_image_url=None, **kwargs):
219+
"""__init__ method.
220+
221+
:param str type: Provider of the content. `line` or `external`.
222+
:param str original_content_url: URL of the content.
223+
:param str preview_image_url: URL of the preview image.
224+
:param kwargs:
225+
"""
226+
super(ContentProvider, self).__init__(**kwargs)
227+
228+
self.type = type
229+
self.original_content_url = original_content_url
230+
self.preview_image_url = preview_image_url

0 commit comments

Comments
 (0)