From 788d2d66118921e507304f704b545a4747bd73eb Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Wed, 6 Sep 2017 15:54:39 +0530 Subject: [PATCH] Update Ozon.ru metadata plugin for website changes. Fixes #1715347 [Crash getting metadata from Ozon.ru](https://bugs.launchpad.net/calibre/+bug/1715347) --- src/calibre/ebooks/metadata/sources/ozon.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/calibre/ebooks/metadata/sources/ozon.py b/src/calibre/ebooks/metadata/sources/ozon.py index 925294904c..b2552fd380 100644 --- a/src/calibre/ebooks/metadata/sources/ozon.py +++ b/src/calibre/ebooks/metadata/sources/ozon.py @@ -23,7 +23,7 @@ from calibre.ebooks.metadata.book.base import Metadata class Ozon(Source): name = 'OZON.ru' minimum_calibre_version = (2, 80, 0) - version = (1, 0, 0) + version = (1, 1, 0) description = _('Downloads metadata and covers from OZON.ru (updated)') capabilities = frozenset(['identify', 'cover']) @@ -152,6 +152,10 @@ class Ozon(Source): json_pat = re.compile(u'dataLayer\s*=\s*(.+)?;') json_info = re.search(json_pat, entry_string) jsondata = json_info.group(1) if json_info else None + if jsondata: + idx = jsondata.rfind('}]') + if idx > 0: + jsondata = jsondata[:idx + 2] # log.debug(u'jsondata: %s' % jsondata) dataLayer = json.loads(jsondata) if jsondata else None