def _getSubtitle(self, item, args, id): log("(Media) Subtitle") subtitle = Cache( "%s.mediainfo.subtitles" % self._mediaSettings.mediaType, ttl=_ttl, readOnly=True, last_changed=self._mediaSettings.subtitle_lastchanged, ).get(id) if not subtitle: try: log("(Media) Getting subtitle") _res = self._handle_param(**self._mediaSettings.subtitles_provider.item(*args)) if not self.stop.is_set(): subtitle = cleanDictList( self._mediaSettings.subtitles_provider.build_item(_res, *args) ) # 1. Get request parameter. 2. Perform request(s). 3. Build info. except: log_error() sys.exc_clear() else: if subtitle: Cache( "%s.mediainfo.subtitles" % self._mediaSettings.mediaType, ttl=_ttl, last_changed=self._mediaSettings.subtitle_lastchanged, )[id] = subtitle if self._callbackfn: log("(Media) Callback with '%s'" % item["label"]) self._callbackfn(self._progressValue, item, subtitle or {}) if subtitle: item.setdefault("stream_info", {})["subtitle"] = subtitle.setdefault("stream_info", {}).get("subtitle", {}) item.setdefault("params", {}).update(subtitle.get("params", {}))
def _getSubtitle(self, item, args, id): log("(Media) Subtitle") subtitle = Cache("%s.mediainfo.subtitles" %self._mediaSettings.mediaType, ttl=_ttl, readOnly=True, last_changed=self._mediaSettings.subtitle_lastchanged).get(id) if not subtitle: try: log("(Media) Getting subtitle") _res = self._handle_param(**self._mediaSettings.subtitles_provider.item(*args)) if not self.stop.is_set(): subtitle = cleanDictList(self._mediaSettings.subtitles_provider.build_item(_res, *args)) # 1. Get request parameter. 2. Perform request(s). 3. Build info. except: log_error() sys.exc_clear() else: if subtitle: Cache("%s.mediainfo.subtitles" %self._mediaSettings.mediaType, ttl=_ttl, last_changed=self._mediaSettings.subtitle_lastchanged)[id] = subtitle if self._callbackfn: log("(Media) Callback with '%s'" %item['label']) self._callbackfn(self._progressValue, item, subtitle or {}) if subtitle: item.setdefault('stream_info', {})['subtitle'] = subtitle.setdefault('stream_info', {}).get("subtitle", {}) item.setdefault('params', {}).update(subtitle.get('params', {}))