LiKenun commited on
Commit
cc6f2db
·
2 Parent(s): c089adf f551392

Merge branch alt into mime-type-handler-registry

Browse files
Files changed (1) hide show
  1. src/ctp_slack_bot/models/webvtt.py +18 -0
src/ctp_slack_bot/models/webvtt.py CHANGED
@@ -69,3 +69,21 @@ class WebVTTContent(Content):
69
 
70
  def get_metadata(self: Self) -> Mapping[str, Any]:
71
  return MappingProxyType(self.metadata)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
69
 
70
  def get_metadata(self: Self) -> Mapping[str, Any]:
71
  return MappingProxyType(self.metadata)
72
+
73
+ @classmethod
74
+ def __get_start_time(cls, web_vtt: WebVTT) -> Optional[datetime]:
75
+ try:
76
+ return next(datetime.fromisoformat(result[0])
77
+ for result
78
+ in map(ISO_DATE_TIME_PATTERN.findall, web_vtt.header_comments)
79
+ if result)
80
+ except (StopIteration, ValueError):
81
+ return None
82
+
83
+ @classmethod
84
+ def from_bytes(cls, id: str, metadata: Mapping[str, Any], buffer: bytes) -> Self:
85
+ web_vtt = WebVTT.from_buffer(BytesIO(buffer))
86
+ frames = tuple(WebVTTFrame.from_webvtt_caption(caption, index)
87
+ for index, caption
88
+ in enumerate(web_vtt.captions, 1))
89
+ return WebVTTContent(id=id, metadata=MappingProxyType(metadata), start_time=cls.__get_start_time(web_vtt), frames=frames)