diff --git a/.gitignore b/.gitignore index 3f9656f..f9b73d0 100644 --- a/.gitignore +++ b/.gitignore @@ -134,3 +134,4 @@ log.txt errors.txt traceback.txt game/Test audio/* +WhatPlaying.rpa diff --git a/game/AudioMetaData/itunes.py b/game/AudioMetaData/itunes.py index 121a8b7..d7f1d8a 100644 --- a/game/AudioMetaData/itunes.py +++ b/game/AudioMetaData/itunes.py @@ -87,6 +87,7 @@ def coveralbum_tag(self): # Optional try: image = ITunesWebParser._openurl(url) except InternetConnectionError: + self.__coveralbum = "noOptionFound" return None except Exception as ex: self.LOGGER.error("Unrecognized error.\n%s", ex.message) diff --git a/game/WhatPlayingScripts/_imports.rpy b/game/WhatPlayingScripts/_imports.rpy index 483bc1f..d480c96 100644 --- a/game/WhatPlayingScripts/_imports.rpy +++ b/game/WhatPlayingScripts/_imports.rpy @@ -134,3 +134,14 @@ init 1 python in _whatPlaying: url, ex.message ) + + def is_showable(image_object): + """ + Проверяет возможность показа 'ImageBase' изображения. + """ + if not isinstance(image_object, im.ImageBase): + raise TypeError(__("Переданный тип не 'im.ImageBase'.")) + try: + return bool(image_object.load()) + except Exception: + return False diff --git a/game/WhatPlayingScripts/displayables.rpy b/game/WhatPlayingScripts/displayables.rpy index 3d0e496..3078c39 100644 --- a/game/WhatPlayingScripts/displayables.rpy +++ b/game/WhatPlayingScripts/displayables.rpy @@ -14,10 +14,18 @@ init 4 python in _whatPlaying: super(_AlbumCover, self).__init__() + fn = picture_bytedata = None if metadata_object.coveralbum_tag: fn, picture_bytedata = metadata_object.coveralbum_tag fn = "{0} {1}".format(metadata_object.__unicode__(), fn) - else: + if not is_showable( + im.Data(data=picture_bytedata, filename=fn) + ): + # Если по каким-то причинам картинка не прогружается + # (Неподдерживаемый формат, огромный размер и т.п.) + fn = picture_bytedata = None + + if not (fn and picture_bytedata): with renpy.file("albumCoverPlaceholders.zip") as _raw_zipfile: with zipfile.ZipFile(_raw_zipfile, 'r') as _archive: _placeholder = random.choice(_archive.infolist()) diff --git a/game/options.rpy b/game/options.rpy index ab172a2..5010fa5 100644 --- a/game/options.rpy +++ b/game/options.rpy @@ -23,7 +23,7 @@ define gui.show_name = True ## Версия игры. -define config.version = "1.3.5" +define config.version = "1.3.6" ## Текст, помещённый в экран "Об игре". Поместите текст между тройными скобками. diff --git a/game/tl/english/WhatPlayingScripts/_imports.rpy b/game/tl/english/WhatPlayingScripts/_imports.rpy index dffd7c9..0e4e48f 100644 --- a/game/tl/english/WhatPlayingScripts/_imports.rpy +++ b/game/tl/english/WhatPlayingScripts/_imports.rpy @@ -10,3 +10,11 @@ translate english strings: old "Передан не текст." new "Wrong type. Text expected." +# TODO: Translation updated at 2020-08-13 00:12 + +translate english strings: + + # game/WhatPlayingScripts/_imports.rpy:143 + old "Переданный тип не 'im.ImageBase'." + new "Wrong type. 'im.ImageBase' expected." +