diff options
author | Rechi <Rechi@users.noreply.github.com> | 2018-09-08 18:11:04 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-09-08 18:11:04 +0200 |
commit | 2012e95fb9ce736f08388b09b3d52cd932744073 (patch) | |
tree | 6a42659b6c48b8a5bfdf4e4dc89897d559cee350 | |
parent | 6baf09e182c66e916b0ebdf31c330d0bc0cf2725 (diff) | |
parent | e396ef3d2f5eb8c1d6d0a6c597e2e0affb30f3c5 (diff) |
Merge pull request #14394 from Rechi/addons
[addons] sync with repo
27 files changed, 1273 insertions, 578 deletions
diff --git a/addons/game.controller.default/addon.xml b/addons/game.controller.default/addon.xml index 3dcc9ba40a..86c67770d3 100644 --- a/addons/game.controller.default/addon.xml +++ b/addons/game.controller.default/addon.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <addon id="game.controller.default" name="Default Controller" - version="1.0.5" + version="1.0.6" provider-name="Team Kodi"> <requires> </requires> @@ -9,7 +9,7 @@ <extension point="xbmc.addon.metadata"> <summary lang="en_GB">Default Controller</summary> <description lang="en_GB">The default media center controller is based on the Xbox 360 controller.</description> - <disclaimer>Image credit: Wikipedia (wikipedia.org)</disclaimer> + <disclaimer lang="en_GB">Image credit: Wikipedia (wikipedia.org)</disclaimer> <platform>all</platform> <assets> <icon>resources/icon.png</icon> diff --git a/addons/metadata.album.universal/addon.xml b/addons/metadata.album.universal/addon.xml index d4b6afcb13..d84aae24ec 100644 --- a/addons/metadata.album.universal/addon.xml +++ b/addons/metadata.album.universal/addon.xml @@ -1,7 +1,7 @@ -<?xml version="1.0" encoding="UTF-8" standalone="yes"?> +<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <addon id="metadata.album.universal" name="Universal Album Scraper" - version="2.7.3" + version="3.1.1" provider-name="Olympia, Team Kodi"> <requires> <import addon="xbmc.metadata" version="2.1.0"/> diff --git a/addons/metadata.album.universal/albumuniversal.xml b/addons/metadata.album.universal/albumuniversal.xml index be1b5d9f92..c913d7e3d8 100644 --- a/addons/metadata.album.universal/albumuniversal.xml +++ b/addons/metadata.album.universal/albumuniversal.xml @@ -26,29 +26,11 @@ </CreateAlbumSearchUrl> <GetAlbumSearchResults dest="8"> <RegExp input="$$5" output="<results sorted="yes">\1</results>" dest="8"> - <RegExp input="$$1" output="<entity><year>\5-\4-T#\6</year><artist>\3</artist><title>\2</title><url cache="mb-\1-album.xml">$INFO[mbsite]/ws/2/release/\1?inc=recordings+release-groups+artists+labels+ratings</url></entity>" dest="5"> - <expression repeat="yes">id="([^"]*)"><title>([^<]*)</title><status>Official</status>(?:<packaging>[^<]*</packaging>)?<text-representation>(?:<language>[^<]*</language>)*(?:<script>[^<]*</script>)*</text-representation><artist-credit><name-credit(?:>)*(?:\sjoinphrase="[^"]*">)*(?:<name>[^<]*</name)*(?:>)*<artist\sid="[^"]*"><name>([^<]*)</name>(?:<sort-name>[^<]*</sort-name>)*(?:<disambiguation>[^<]*</disambiguation>)*(?:<alias-list>(?:<alias[^<]*</alias>)*</alias-list>)*</artist></name-credit>(?:<name-credit(?:>)*(?:\sjoinphrase="[^"]*">)*(?:<name>[^<]*</name)*(?:>)*<artist\sid="[^"]*"><name>[^<]*</name>(?:<sort-name>[^<]*</sort-name>)*(?:<disambiguation>[^<]*</disambiguation>)*(?:<alias-list>(?:<alias[^<]*</alias>)*</alias-list>)*</artist></name-credit>)*</artist-credit><release-group\stype="Album"\sid="[^"]*">(?:<primary-type>[^<]*</primary-type>)*(?:<secondary-type-list>(?:<secondary-type>[^<]*</secondary-type>)+</secondary-type-list>)*</release-group>(?:<date>(\d{4})[^<]*</date>)*(?:<country>)*([^<]*)?.*?<track-list\scount="(\d+)</expression> - </RegExp> - <RegExp input="$$1" output="<entity><year>\5-\4-T#\6</year><artist>\3</artist><title>\2</title><url cache="mb-\1-album.xml">$INFO[mbsite]/ws/2/release/\1?inc=recordings+release-groups+artists+labels+ratings</url></entity>" dest="5+"> - <expression repeat="yes">id="([^"]*)"><title>([^<]*)</title><status>Official</status>(?:<packaging>[^<]*</packaging>)?<text-representation>(?:<language>[^<]*</language>)*(?:<script>[^<]*</script>)*</text-representation><artist-credit><name-credit(?:>)*(?:\sjoinphrase="[^"]*">)*(?:<name>[^<]*</name)*(?:>)*<artist\sid="[^"]*"><name>([^<]*)</name>(?:<sort-name>[^<]*</sort-name>)*(?:<disambiguation>[^<]*</disambiguation>)*(?:<alias-list>(?:<alias[^<]*</alias>)*</alias-list>)*</artist></name-credit>(?:<name-credit(?:>)*(?:\sjoinphrase="[^"]*">)*(?:<name>[^<]*</name)*(?:>)*<artist\sid="[^"]*"><name>[^<]*</name>(?:<sort-name>[^<]*</sort-name>)*(?:<disambiguation>[^<]*</disambiguation>)*(?:<alias-list>(?:<alias[^<]*</alias>)*</alias-list>)*</artist></name-credit>)*</artist-credit><release-group(?:\stype="[^"]*")*\sid="[^"]*">(?:<primary-type>[^<]*</primary-type>)*(?:<secondary-type-list>(?:<secondary-type>[^<]*</secondary-type>)+</secondary-type-list>)*</release-group>(?:<date>(\d{4})[^<]*</date>)*(?:<country>)*([^<]*)?.*?<track-list\scount="(\d+)</expression> - </RegExp> - <RegExp input="$$1" output="<entity><year>\6-\5-T#\7</year><artist>\4</artist><title>\3</title><relevance scale="100">\2</relevance><url cache="mb-\1-album.xml">$INFO[mbsite]/ws/2/release/\1?inc=recordings+release-groups+artists+labels+ratings</url></entity>" dest="5+"> - <expression repeat="yes">id="([^"]*)" ext:score="(\d*)"><title>([^<]*)</title><status>Official</status>(?:<disambiguation>[^<]*</disambiguation>)*(?:<packaging>[^<]*</packaging>)?<text-representation>(?:<language>[^<]*</language>)*(?:<script>[^<]*</script>)*</text-representation><artist-credit><name-credit(?:>)*(?:\sjoinphrase="[^"]*">)*(?:<name>[^<]*</name)*(?:>)*<artist\sid="[^"]*"><name>([^<]*)</name>(?:<sort-name>[^<]*</sort-name>)*(?:<disambiguation>[^<]*</disambiguation>)*(?:<alias-list>(?:<alias[^<]*</alias>)*</alias-list>)*</artist></name-credit>(?:<name-credit(?:>)*(?:\sjoinphrase="[^"]*">)*(?:<name>[^<]*</name)*(?:>)*<artist\sid="[^"]*"><name>[^<]*</name>(?:<sort-name>[^<]*</sort-name>)*(?:<disambiguation>[^<]*</disambiguation>)*(?:<alias-list>(?:<alias[^<]*</alias>)*</alias-list>)*</artist></name-credit>)*</artist-credit><release-group\sid="[^"]*"\stype="Album">(?:<primary-type>[^<]*</primary-type>)*(?:<secondary-type-list>(?:<secondary-type>[^<]*</secondary-type>)+</secondary-type-list>)*</release-group>(?:<date>(\d{4})[^<]*</date>)*(?:<country>)*([^<]*)?.*?<track-list\scount="(\d+)</expression> - </RegExp> - <RegExp input="$$1" output="<entity><year>\6-\5-T#\7</year><artist>\4</artist><title>\3</title><relevance scale="100">\2</relevance><url cache="mb-\1-album.xml">$INFO[mbsite]/ws/2/release/\1?inc=recordings+release-groups+artists+labels+ratings</url></entity>" dest="5+"> - <expression repeat="yes">id="([^"]*)" ext:score="(\d*)"><title>([^<]*)</title><status>Official</status>(?:<disambiguation>[^<]*</disambiguation>)*(?:<packaging>[^<]*</packaging>)?<text-representation>(?:<language>[^<]*</language>)*(?:<script>[^<]*<)*/script></text-representation><artist-credit><name-credit(?:>)*(?:\sjoinphrase="[^"]*">)*(?:<name>[^<]*</name)*(?:>)*<artist\sid="[^"]*"><name>([^<]*)</name>(?:<sort-name>[^<]*</sort-name>)*(?:<disambiguation>[^<]*</disambiguation>)*(?:<alias-list>(?:<alias[^<]*</alias>)*</alias-list>)*</artist></name-credit>(?:<name-credit(?:>)*(?:\sjoinphrase="[^"]*">)*(?:<name>[^<]*</name)*(?:>)*<artist\sid="[^"]*"><name>[^<]*</name>(?:<sort-name>[^<]*</sort-name>)*(?:<disambiguation>[^<]*</disambiguation>)*(?:<alias-list>(?:<alias[^<]*</alias>)*</alias-list>)*</artist></name-credit>)*</artist-credit><release-group\sid="[^"]*"(?:\stype="[^"]*")*>(?:<primary-type>[^<]*</primary-type>)*(?:<secondary-type-list>(?:<secondary-type>[^<]*</secondary-type>)+</secondary-type-list>)*</release-group>(?:<date>(\d{4})[^<]*</date>)*(?:<country>)*([^<]*)?.*?<track-list\scount="(\d+)</expression> - </RegExp> - <RegExp input="$$1" output="<entity><year>\5-\4-T#\6</year><artist>\3</artist><title>\2</title><url cache="mb-\1-album.xml">$INFO[mbsite]/ws/2/release/\1?inc=recordings+release-groups+artists+labels+ratings</url></entity>" dest="5+"> - <expression repeat="yes">id="([^"]*)"><title>([^<]*)</title><status>(?!Official)[^<]*</status>(?:<disambiguation>[^<]*</disambiguation>)*(?:<packaging>[^<]*</packaging>)?<text-representation>(?:<language>[^<]*</language>)*(?:<script>[^<]*</script>)*</text-representation><artist-credit><name-credit(?:>)*(?:\sjoinphrase="[^"]*">)*(?:<name>[^<]*</name)*(?:>)*<artist\sid="[^"]*"><name>([^<]*)</name>(?:<sort-name>[^<]*</sort-name>)*(?:<disambiguation>[^<]*</disambiguation>)*(?:<alias-list>(?:<alias[^<]*</alias>)*</alias-list>)*</artist></name-credit>(?:<name-credit(?:>)*(?:\sjoinphrase="[^"]*">)*(?:<name>[^<]*</name)*(?:>)*<artist\sid="[^"]*"><name>[^<]*</name>(?:<sort-name>[^<]*</sort-name>)*(?:<disambiguation>[^<]*</disambiguation>)*(?:<alias-list>(?:<alias[^<]*</alias>)*</alias-list>)*</artist></name-credit>)*</artist-credit><release-group\stype="Album"\sid="[^"]*">(?:<primary-type>[^<]*</primary-type>)*(?:<secondary-type-list>(?:<secondary-type>[^<]*</secondary-type>)+</secondary-type-list>)*</release-group>(?:<date>(\d{4})[^<]*</date>)*(?:<country>)*([^<]*)?.*?<track-list\scount="(\d+)</expression> - </RegExp> - <RegExp input="$$1" output="<entity><year>\5-\4-T#\6</year><artist>\3</artist><title>\2</title><url cache="mb-\1-album.xml">$INFO[mbsite]/ws/2/release/\1?inc=recordings+release-groups+artists+labels+ratings</url></entity>" dest="5+"> - <expression repeat="yes">id="([^"]*)"><title>([^<]*)</title><status>(?!Official)[^<]*</status>(?:<disambiguation>[^<]*</disambiguation>)*(?:<packaging>[^<]*</packaging>)?<text-representation>(?:<language>[^<]*</language>)*(?:<script>[^<]*</script>)*</text-representation><artist-credit><name-credit(?:>)*(?:\sjoinphrase="[^"]*">)*(?:<name>[^<]*</name)*(?:>)*<artist\sid="[^"]*"><name>([^<]*)</name>(?:<sort-name>[^<]*</sort-name>)*(?:<disambiguation>[^<]*</disambiguation>)*(?:<alias-list>(?:<alias[^<]*</alias>)*</alias-list>)*</artist></name-credit>(?:<name-credit(?:>)*(?:\sjoinphrase="[^"]*">)*(?:<name>[^<]*</name)*(?:>)*<artist\sid="[^"]*"><name>[^<]*</name>(?:<sort-name>[^<]*</sort-name>)*(?:<disambiguation>[^<]*</disambiguation>)*(?:<alias-list>(?:<alias[^<]*</alias>)*</alias-list>)*</artist></name-credit>)*</artist-credit><release-group(?:\stype="[^"]*")*\sid="[^"]*">(?:<primary-type>[^<]*</primary-type>)*(?:<secondary-type-list>(?:<secondary-type>[^<]*</secondary-type>)+</secondary-type-list>)*</release-group>(?:<date>(\d{4})[^<]*</date>)*(?:<country>)*([^<]*)?.*?<track-list\scount="(\d+)</expression> - </RegExp> - <RegExp input="$$1" output="<entity><year>\6-\5-T#\7</year><artist>\4</artist><title>\3</title><relevance scale="100">\2</relevance><url cache="mb-\1-album.xml">$INFO[mbsite]/ws/2/release/\1?inc=recordings+release-groups+artists+labels+ratings</url></entity>" dest="5+"> - <expression repeat="yes">id="([^"]*)" ext:score="(\d*)"><title>([^<]*)</title><status>(?!Official)[^<]*</status>(?:<disambiguation>[^<]*</disambiguation>)*(?:<packaging>[^<]*</packaging>)?<text-representation>(?:<language>[^<]*</language>)*(?:<script>[^<]*</script>)*</text-representation><artist-credit><name-credit(?:>)*(?:\sjoinphrase="[^"]*">)*(?:<name>[^<]*</name)*(?:>)*<artist\sid="[^"]*"><name>([^<]*)</name>(?:<sort-name>[^<]*</sort-name>)*(?:<disambiguation>[^<]*</disambiguation>)*(?:<alias-list>(?:<alias[^<]*</alias>)*</alias-list>)*</artist></name-credit>(?:<name-credit(?:>)*(?:\sjoinphrase="[^"]*">)*(?:<name>[^<]*</name)*(?:>)*<artist\sid="[^"]*"><name>[^<]*</name>(?:<sort-name>[^<]*</sort-name>)*(?:<disambiguation>[^<]*</disambiguation>)*(?:<alias-list>(?:<alias[^<]*</alias>)*</alias-list>)*</artist></name-credit>)*</artist-credit><release-group\sid="[^"]*"\stype="Album">(?:<primary-type>[^<]*</primary-type>)*(?:<secondary-type-list>(?:<secondary-type>[^<]*</secondary-type>)+</secondary-type-list>)*</release-group>(?:<date>(\d{4})[^<]*</date>)*(?:<country>)*([^<]*)?.*?<track-list\scount="(\d+)</expression> + <RegExp input="$$1" output="<entity><year>\6-\5-T#\7</year><artist>\4</artist><title>\3</title><relevance scale="100">\2</relevance><url cache="mb-\1-album.xml">$INFO[mbsite]/ws/2/release/\1?inc=recordings+release-groups+artists+labels+ratings</url></entity>" dest="5"> + <expression repeat="yes">release\sid="([^"]*)"[^:]*:score="(\d*)"><title>([^<]*)</title><status>Official</status>(?:<disambiguation>[^<]*</disambiguation>)*(?:<packaging>[^<]*</packaging>)*<text-representation>(?:<language>[^<]*</language>)*(?:<script>[^<]*</script>)*</text-representation><artist-credit><name-credit(?:>)*(?:\sjoinphrase="[^"]*">)*(?:<name>[^<]*</name)*(?:>)*<artist\sid="[^"]*"><name>([^<]*)</name>(?:<sort-name>[^<]*</sort-name>)*(?:<disambiguation>[^<]*</disambiguation>)*(?:<alias-list>(?:<alias[^<]*</alias>)*</alias-list>)*</artist></name-credit>(?:<name-credit(?:>)*(?:\sjoinphrase="[^"]*">)*(?:<name>[^<]*</name)*(?:>)*<artist\sid="[^"]*"><name>[^<]*</name>(?:<sort-name>[^<]*</sort-name>)*(?:<disambiguation>[^<]*</disambiguation>)*(?:<alias-list>(?:<alias[^<]*</alias>)*</alias-list>)*</artist></name-credit>)*</artist-credit><release-group\sid="[^"]*"\stype="Album"\stype-id="[^"]*"><title>[^<]*</title>(?:<disambiguation>[^<]*</disambiguation>)*(?:<primary-type\sid="[^"]*">[^<]*</primary-type>)*(?:<secondary-type-list>(?:<secondary-type\sid="[^"]*">[^<]*</secondary-type>)+</secondary-type-list>)*</release-group>(?:<date>(\d{4})[^<]*</date>)*(?:<country>)*([^<]*)?.*?<track-list\scount="(\d+).*?</release></expression> </RegExp> <RegExp input="$$1" output="<entity><year>\6-\5-T#\7</year><artist>\4</artist><title>\3</title><relevance scale="100">\2</relevance><url cache="mb-\1-album.xml">$INFO[mbsite]/ws/2/release/\1?inc=recordings+release-groups+artists+labels+ratings</url></entity>" dest="5+"> - <expression repeat="yes">id="([^"]*)" ext:score="(\d*)"><title>([^<]*)</title><status>(?!Official)[^<]*</status>(?:<disambiguation>[^<]*</disambiguation>)*(?:<packaging>[^<]*</packaging>)?<text-representation>(?:<language>[^<]*</language>)*(?:<script>[^<]*</script>)*</text-representation><artist-credit><name-credit(?:>)*(?:\sjoinphrase="[^"]*">)*(?:<name>[^<]*</name)*(?:>)*<artist\sid="[^"]*"><name>([^<]*)</name>(?:<sort-name>[^<]*</sort-name>)*(?:<disambiguation>[^<]*</disambiguation>)*(?:<alias-list>(?:<alias[^<]*</alias>)*</alias-list>)*</artist></name-credit>(?:<name-credit(?:>)*(?:\sjoinphrase="[^"]*">)*(?:<name>[^<]*</name)*(?:>)*<artist\sid="[^"]*"><name>[^<]*</name>(?:<sort-name>[^<]*</sort-name>)*(?:<disambiguation>[^<]*</disambiguation>)*(?:<alias-list>(?:<alias[^<]*</alias>)*</alias-list>)*</artist></name-credit>)*</artist-credit><release-group\sid="[^"]*"(?:\stype="[^"]*")*>(?:<primary-type>[^<]*</primary-type>)*(?:<secondary-type-list>(?:<secondary-type>[^<]*</secondary-type>)+</secondary-type-list>)*</release-group>(?:<date>(\d{4})[^<]*</date>)*(?:<country>)*([^<]*)?.*?<track-list\scount="(\d+)</expression> + <expression repeat="yes">release\sid="([^"]*)"[^:]*:score="(\d*)"><title>([^<]*)</title><status>Official</status>(?:<disambiguation>[^<]*</disambiguation>)*(?:<packaging>[^<]*</packaging>)*<text-representation>(?:<language>[^<]*</language>)*(?:<script>[^<]*</script>)*</text-representation><artist-credit><name-credit(?:>)*(?:\sjoinphrase="[^"]*">)*(?:<name>[^<]*</name)*(?:>)*<artist\sid="[^"]*"><name>([^<]*)</name>(?:<sort-name>[^<]*</sort-name>)*(?:<disambiguation>[^<]*</disambiguation>)*(?:<alias-list>(?:<alias[^<]*</alias>)*</alias-list>)*</artist></name-credit>(?:<name-credit(?:>)*(?:\sjoinphrase="[^"]*">)*(?:<name>[^<]*</name)*(?:>)*<artist\sid="[^"]*"><name>[^<]*</name>(?:<sort-name>[^<]*</sort-name>)*(?:<disambiguation>[^<]*</disambiguation>)*(?:<alias-list>(?:<alias[^<]*</alias>)*</alias-list>)*</artist></name-credit>)*</artist-credit><release-group\sid="[^"]*"\stype="[^"]*"\stype-id="[^"]*"><title>[^<]*</title>(?:<disambiguation>[^<]*</disambiguation>)*(?:<primary-type\sid="[^"]*">[^<]*</primary-type>)*(?:<secondary-type-list>(?:<secondary-type\sid="[^"]*">[^<]*</secondary-type>)+</secondary-type-list>)*</release-group>(?:<date>(\d{4})[^<]*</date>)*(?:<country>)*([^<]*)?.*?<track-list\scount="(\d+).*?</release></expression> </RegExp> <expression noclean="1" /> </RegExp> @@ -140,9 +122,21 @@ <RegExp conditional="fanarttvalbumthumbs" input="$$4" output="<chain function="GetFanartTvAlbumThumbsByMBID">\1</chain>" dest="5+"> <expression noclean="1">(.+)</expression> </RegExp> + <RegExp conditional="fanarttvalbumdiscart" input="$$4" output="<chain function="GetFanartTvAlbumDiscartByMBID">\1</chain>" dest="5+"> + <expression noclean="1">(.+)</expression> + </RegExp> <RegExp conditional="tadbalbumthumbs" input="$$4" output="<chain function="GetTADBAlbumThumbsByMBID">\1</chain>" dest="5+"> <expression noclean="1">(.+)</expression> </RegExp> + <RegExp conditional="tadbalbumdiscart" input="$$4" output="<chain function="GetTADBAlbumDiscartByMBID">\1</chain>" dest="5+"> + <expression noclean="1">(.+)</expression> + </RegExp> + <RegExp conditional="tadbalbumback" input="$$4" output="<chain function="GetTADBAlbumBackByMBID">\1</chain>" dest="5+"> + <expression noclean="1">(.+)</expression> + </RegExp> + <RegExp conditional="tadbalbumspine" input="$$4" output="<chain function="GetTADBAlbumSpineByMBID">\1</chain>" dest="5+"> + <expression noclean="1">(.+)</expression> + </RegExp> <RegExp conditional="allmusicalbumthumbs" input="$$4" output="<url function="GetAMGAlbumThumbs" cache="mb-\1-rg.xml">$INFO[mbsite]/ws/2/release-group/\1?inc=url-rels</url>" dest="5+"> <expression noclean="1">(.+)</expression> </RegExp> diff --git a/addons/metadata.album.universal/changelog.txt b/addons/metadata.album.universal/changelog.txt index a1c379dd43..6ac78241fa 100644 --- a/addons/metadata.album.universal/changelog.txt +++ b/addons/metadata.album.universal/changelog.txt @@ -1,3 +1,13 @@ +[B]3.1.1[/B] +Fixed: further fixes to search results + +[B]3.1.0[/B] +Added: scraping extra artwork from theaudiobdb.com + +[B]3.0.0[/B] +Fixed: albums won't be found on MusicBrainz +Added: scraping discart from fanart.tv + [B]2.7.3[/B] Fixed: albums without year on MusicBrainz won't be found diff --git a/addons/metadata.album.universal/resources/language/English/strings.po b/addons/metadata.album.universal/resources/language/English/strings.po index 95dc7344a8..2567910cc1 100644 --- a/addons/metadata.album.universal/resources/language/English/strings.po +++ b/addons/metadata.album.universal/resources/language/English/strings.po @@ -66,4 +66,20 @@ msgstr "" msgctxt "#30012" msgid "MusicBrainz Mirror" +msgstr "" + +msgctxt "#30013" +msgid "Grab Album Discart from fanart.tv" +msgstr "" + +msgctxt "#30014" +msgid "Grab Album Back Cover from theaudiodb.com" +msgstr "" + +msgctxt "#30015" +msgid "Grab Album Discart from theaudiodb.com" +msgstr "" + +msgctxt "#30016" +msgid "Grab Album Spine from theaudiodb.com" msgstr ""
\ No newline at end of file diff --git a/addons/metadata.album.universal/resources/settings.xml b/addons/metadata.album.universal/resources/settings.xml index 05467b8903..f52de9b10a 100644 --- a/addons/metadata.album.universal/resources/settings.xml +++ b/addons/metadata.album.universal/resources/settings.xml @@ -16,9 +16,13 @@ <setting label="30000" type="bool" id="fanarttvalbumthumbs" default="true"/> <setting label="30010" type="bool" id="tadbalbumthumbs" default="true"/> <setting label="30008" type="bool" id="allmusicalbumthumbs" default="false"/> + <setting label="30013" type="bool" id="fanarttvalbumdiscart" default="false"/> + <setting label="30015" type="bool" id="tadbalbumdiscart" default="false"/> + <setting label="30014" type="bool" id="tadbalbumback" default="false"/> + <setting label="30016" type="bool" id="tadbalbumspine" default="false"/> </category> <category label="30011"> - <setting label="30012" type="text" id="mbsite" default="http://musicbrainz.org"/> + <setting label="30012" type="text" id="mbsite" default="https://musicbrainz.org"/> </category> </settings> diff --git a/addons/metadata.artists.universal/addon.xml b/addons/metadata.artists.universal/addon.xml index 972f78d80d..0f9ab23270 100644 --- a/addons/metadata.artists.universal/addon.xml +++ b/addons/metadata.artists.universal/addon.xml @@ -1,14 +1,14 @@ -<?xml version="1.0" encoding="UTF-8" standalone="yes"?> +<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <addon id="metadata.artists.universal" name="Universal Artist Scraper" - version="4.1.4" + version="4.2.1" provider-name="Olympia, Team Kodi"> <requires> <import addon="xbmc.metadata" version="2.1.0"/> <import addon="metadata.common.allmusic.com" version="3.1.0"/> <import addon="metadata.common.fanart.tv" version="3.1.0"/> <import addon="metadata.common.musicbrainz.org" version="2.1.0"/> - <import addon="metadata.common.theaudiodb.com" version="1.8.1"/> + <import addon="metadata.common.theaudiodb.com" version="2.0.0"/> </requires> <extension point="xbmc.metadata.scraper.artists" language="en" diff --git a/addons/metadata.artists.universal/artistuniversal.xml b/addons/metadata.artists.universal/artistuniversal.xml index b1d1c605f5..6131998bbc 100644 --- a/addons/metadata.artists.universal/artistuniversal.xml +++ b/addons/metadata.artists.universal/artistuniversal.xml @@ -52,6 +52,9 @@ <RegExp input="$$1" output="<musicBrainzArtistID>$$8</musicBrainzArtistID><name>\1</name>" dest="5"> <expression noclean="1"><artist.*?<name>([^<]*)</expression> </RegExp> + <RegExp input="$$1" output="<sortname>\1</sortname>" dest="5+"> + <expression noclean="1"><artist.*?<sort-name>([^<]*)</expression> + </RegExp> <RegExp input="$$1" output="<type>\1</type>" dest="5+"> <expression noclean="1"><artist.*?\stype="([Person|Group|Orchestra|Choir|Character|Other])"</expression> </RegExp> @@ -67,9 +70,24 @@ <RegExp input="$$8" conditional="fanarttvartistcl" output="<chain function="GetFanartTvArtistClearlogoByMBID">\1</chain>" dest="5+"> <expression noclean="1">(.+)</expression> </RegExp> + <RegExp input="$$8" conditional="fanarttvartistbanner" output="<chain function="GetFanartTvArtistBannerByMBID">\1</chain>" dest="5+"> + <expression noclean="1">(.+)</expression> + </RegExp> <RegExp input="$$8" conditional="tadbthumbs" output="<chain function="GetTADBArtistThumbsByMBID">$$8</chain>" dest="5+"> <expression noclean="1">(.+)</expression> </RegExp> + <RegExp input="$$8" conditional="tadbartistclearlogo" output="<chain function="GetTADBArtistClearlogoByMBID">$$8</chain>" dest="5+"> + <expression noclean="1">(.+)</expression> + </RegExp> + <RegExp input="$$8" conditional="tadbartistclearart" output="<chain function="GetTADBArtistClearartByMBID">$$8</chain>" dest="5+"> + <expression noclean="1">(.+)</expression> + </RegExp> + <RegExp input="$$8" conditional="tadbartistlandscape" output="<chain function="GetTADBArtistLandscapeByMBID">$$8</chain>" dest="5+"> + <expression noclean="1">(.+)</expression> + </RegExp> + <RegExp input="$$8" conditional="tadbartistbanner" output="<chain function="GetTADBArtistBannerByMBID">$$8</chain>" dest="5+"> + <expression noclean="1">(.+)</expression> + </RegExp> <RegExp input="$$8" conditional="fanarttvfanart" output="<chain function="GetFanartTvArtistFanartsByMBID">\1</chain>" dest="5+"> <expression noclean="1">(.+)</expression> </RegExp> diff --git a/addons/metadata.artists.universal/changelog.txt b/addons/metadata.artists.universal/changelog.txt index d08f2917dc..b29163f255 100644 --- a/addons/metadata.artists.universal/changelog.txt +++ b/addons/metadata.artists.universal/changelog.txt @@ -1,3 +1,12 @@ +[B]4.2.1[/B] +fixed: dependency error + +[B]4.2.0[/B] +added: scraping extra artwork from theaudiodb.com + +[B]4.1.5[/B] +added: artist sort name from Musicbrainz and artist banner from fanart.tv + [B]4.1.4[/B] changed: include some other valid MB artist types in the previous fix diff --git a/addons/metadata.artists.universal/resources/language/English/strings.po b/addons/metadata.artists.universal/resources/language/English/strings.po index 4a1e97a38a..9571041015 100644 --- a/addons/metadata.artists.universal/resources/language/English/strings.po +++ b/addons/metadata.artists.universal/resources/language/English/strings.po @@ -124,4 +124,24 @@ msgstr "" msgctxt "#30027" msgid "Enable Artist Clearlogo from fanart.tv" +msgstr "" + +msgctxt "#30028" +msgid "Enable Artist Banner from fanart.tv" +msgstr "" + +msgctxt "#30029" +msgid "Enable Artist Clearlogo from theaudiodb.com" +msgstr "" + +msgctxt "#30030" +msgid "Enable Artist Clearart from theaudiodb.com" +msgstr "" + +msgctxt "#30031" +msgid "Enable Artist Landscape from theaudiodb.com" +msgstr "" + +msgctxt "#30032" +msgid "Enable Artist Banner from theaudiodb.com" msgstr ""
\ No newline at end of file diff --git a/addons/metadata.artists.universal/resources/settings.xml b/addons/metadata.artists.universal/resources/settings.xml index 6a021a430d..84f7fb1e84 100644 --- a/addons/metadata.artists.universal/resources/settings.xml +++ b/addons/metadata.artists.universal/resources/settings.xml @@ -33,10 +33,15 @@ <setting label="30004" type="bool" id="fanarttvfanart" default="true"/> <setting label="30023" type="bool" id="tadbfanart" default="true"/> <setting label="30027" type="bool" id="fanarttvartistcl" default="false"/> + <setting label="30029" type="bool" id="tadbartistclearlogo" default="false"/> + <setting label="30030" type="bool" id="tadbartistclearart" default="false"/> + <setting label="30031" type="bool" id="tadbartistlandscape" default="false"/> + <setting label="30028" type="bool" id="fanarttvartistbanner" default="false"/> + <setting label="30032" type="bool" id="tadbartistbanner" default="false"/> </category> <category label="30025"> - <setting label="30026" type="text" id="mbsite" default="http://musicbrainz.org"/> + <setting label="30026" type="text" id="mbsite" default="https://musicbrainz.org"/> </category> </settings> diff --git a/addons/metadata.common.allmusic.com/addon.xml b/addons/metadata.common.allmusic.com/addon.xml index 2c2bf34bf8..3099cb809c 100644 --- a/addons/metadata.common.allmusic.com/addon.xml +++ b/addons/metadata.common.allmusic.com/addon.xml @@ -1,7 +1,7 @@ -<?xml version="1.0" encoding="UTF-8" standalone="yes"?> +<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <addon id="metadata.common.allmusic.com" name="AllMusic Scraper Library" - version="3.1.1" + version="3.2.0" provider-name="Team Kodi"> <requires> <import addon="xbmc.metadata" version="2.1.0"/> diff --git a/addons/metadata.common.allmusic.com/allmusic.xml b/addons/metadata.common.allmusic.com/allmusic.xml index 20e9ee38ed..e431cf5051 100644 --- a/addons/metadata.common.allmusic.com/allmusic.xml +++ b/addons/metadata.common.allmusic.com/allmusic.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="UTF-8"?> <scraperfunctions> <GetAMGDiscographyByAMGID dest="5" clearbuffers="no"> - <RegExp input="$$1" output="<details><url cache="am-\1-artist-discography.html" function="ParseAMGDiscography">http://www.allmusic.com/artist/\1/discography</url></details>" dest="5"> + <RegExp input="$$1" output="<details><url cache="am-\1-artist-discography.html" function="ParseAMGDiscography">https://www.allmusic.com/artist/\1/discography</url></details>" dest="5"> <expression clear="yes" noclean="1"/> </RegExp> </GetAMGDiscographyByAMGID> @@ -17,54 +17,8 @@ </RegExp> </ParseAMGDiscography> - <GetAMGBiographyByAMGID dest="5" clearbuffers="no"> - <RegExp input="$$1" output="<details><url cache="am-\1-artist.html" function="ParseAMGBiography">http://www.allmusic.com/artist/\1</url></details>" dest="5"> - <expression noclean="1"/> - </RegExp> - </GetAMGBiographyByAMGID> - <ParseAMGBiography dest="5" clearbuffers="no"> - <RegExp input="$$2" output="<details>\1</details>" dest="5"> - <RegExp input="" output="" dest="2"> - <expression /> - </RegExp> - <RegExp input="$$1" output="\1" dest="11"> - <expression clear="yes">" itemprop="description">(.*?)div class="advertisement leaderboard"></expression> - </RegExp> - <RegExp input="$$11" output="$$12" dest="2"> - <RegExp input="$INFO[biogfbsource]" output="<chain function="GetLastFMFallbackBiographyByMBID">$$8</chain>" dest="12"> - <expression>last.fm</expression> - </RegExp> - <RegExp input="$INFO[biogfbsource]" output="<chain function="GetTADBFMFallbackBiographyByMBID">$$8</chain>" dest="12"> - <expression>TheAudioDb.com</expression> - </RegExp> - <expression>^$</expression> - </RegExp> - <RegExp input="$$11" output="<biography>\1</biography>" dest="2"> - <expression>(.+)</expression> - </RegExp> - <expression noclean="1"/> - </RegExp> - </ParseAMGBiography> - - <GetAMGFallbackBiographyByAMGID dest="5" clearbuffers="no"> - <RegExp input="$$1" output="<details><url cache="am-\1-artist.html" function="ParseAMGFallbackBiography">http://www.allmusic.com/artist/\1</url></details>" dest="5"> - <expression noclean="1"/> - </RegExp> - </GetAMGFallbackBiographyByAMGID> - <ParseAMGFallbackBiography dest="5" clearbuffers="no"> - <RegExp input="$$2" output="<details>\1</details>" dest="5"> - <RegExp input="" output="" dest="2"> - <expression /> - </RegExp> - <RegExp input="$$1" output="<biography>\1</biography>" dest="2"> - <expression clear="yes">" itemprop="description">(.*?)div class="advertisement leaderboard"></expression> - </RegExp> - <expression noclean="1"/> - </RegExp> - </ParseAMGFallbackBiography> - <GetAMGArtistLifeSpanByAMGID dest="5" clearbuffers="no"> - <RegExp input="$$1" output="<details><url cache="am-\1-artist.html" function="ParseAMGArtistLifeSpan">http://www.allmusic.com/artist/\1</url></details>" dest="5"> + <RegExp input="$$1" output="<details><url cache="am-\1-artist.html" function="ParseAMGArtistLifeSpan">https://www.allmusic.com/artist/\1</url></details>" dest="5"> <expression noclean="1"/> </RegExp> </GetAMGArtistLifeSpanByAMGID> @@ -76,17 +30,17 @@ <RegExp input="" output="" dest="11"> <expression /> </RegExp> - <RegExp input="$$1" output="<born>\1 \2</born>" dest="11+"> - <expression trim="1,2"><h4>\s*Born\s*</h4>\s*<div>(.*?\d{4})\s*([^<]*)?</expression> + <RegExp input="$$1" output="<born>\1 \3</born>" dest="11+"> + <expression trim="1,2"><h4>\s.+Born.*?birthdate/[^"]+">([^<]*)(.*?"/birthplace/[^"]+">([^<]*))?</expression> </RegExp> - <RegExp input="$$1" output="<died>\1 \2</died>" dest="11+"> - <expression trim="1,2"><h4>\s*Died\s*</h4>\s*<div>(.*?\d{4})\s*([^<]*)?</expression> + <RegExp input="$$1" output="<died>\1 \3</died>" dest="11+"> + <expression trim="1,2"><h4>\s.+Died.*?deathdate/[^"]+">([^<]*)(.*?"/deathplace/[^"]+">([^<]*))?</expression> </RegExp> <RegExp input="$$1" output="<formed>\1</formed>" dest="11+"> - <expression trim="1,2"><h4>\s*Formed\s*</h4>\s*<div>(.*?\d{4})\s*([^<]*)?</expression> + <expression trim="1,2"><h4>\s.+Formed.*?birthdate/[^"]+">([^<]*)</expression> </RegExp> <RegExp input="$$1" output="<disbanded>\1</disbanded>" dest="11+"> - <expression trim="1,2"><h4>\s*Disbanded\s*</h4>\s*<div>(.*?\d{4})\s*([^<]*)?</expression> + <expression trim="1,2"><h4>\s.+Disbanded.*?deathdate/[^"]+[^"]+">([^<]*)</expression> </RegExp> <RegExp input="$$11" output="$$12" dest="2"> <RegExp input="$INFO[lifespanfbsource]" output="<chain function="GetMBFallbackLafeSpanByMBID">$$8</chain>" dest="12"> @@ -105,7 +59,7 @@ </ParseAMGArtistLifeSpan> <GetAMGFallbackArtistLifeSpanByAMGID dest="5" clearbuffers="no"> - <RegExp input="$$1" output="<details><url cache="am-\1-artist.html" function="ParseAMGFallbackArtistLifeSpan">http://www.allmusic.com/artist/\1</url></details>" dest="5"> + <RegExp input="$$1" output="<details><url cache="am-\1-artist.html" function="ParseAMGFallbackArtistLifeSpan">https://www.allmusic.com/artist/\1</url></details>" dest="5"> <expression noclean="1"/> </RegExp> </GetAMGFallbackArtistLifeSpanByAMGID> @@ -131,7 +85,7 @@ </ParseAMGFallbackArtistLifeSpan> <GetAMGArtistYearsActiveByAMGID dest="5" clearbuffers="no"> - <RegExp input="$$1" output="<details><url cache="am-\1-artist.html" function="ParseAMGArtistYearsActive">http://www.allmusic.com/artist/\1</url></details>" dest="5"> + <RegExp input="$$1" output="<details><url cache="am-\1-artist.html" function="ParseAMGArtistYearsActive">https://www.allmusic.com/artist/\1</url></details>" dest="5"> <expression noclean="1"/> </RegExp> </GetAMGArtistYearsActiveByAMGID> @@ -148,7 +102,7 @@ </ParseAMGArtistYearsActive> <GetAMGArtistGenresByAMGID dest="5" clearbuffers="no"> - <RegExp input="$$1" output="<details><url cache="am-\1-artist.html" function="ParseAMGArtistGenres">http://www.allmusic.com/artist/\1</url></details>" dest="5"> + <RegExp input="$$1" output="<details><url cache="am-\1-artist.html" function="ParseAMGArtistGenres">https://www.allmusic.com/artist/\1</url></details>" dest="5"> <expression noclean="1"/> </RegExp> </GetAMGArtistGenresByAMGID> @@ -164,7 +118,7 @@ <expression noclean="1"><h4>Genre</h4>\s*<div>(.*?)</div></expression> </RegExp> <RegExp input="$$6" output="<genre>\1</genre>" dest="11"> - <expression repeat="yes" noclean="1"><a\shref="http://www.allmusic.com/genre/[^"]*">([^<]*)</expression> + <expression repeat="yes" noclean="1"><a\shref="https://www.allmusic.com/genre/[^"]*">([^<]*)</expression> </RegExp> <RegExp input="$$11" output="$$12" dest="2"> <RegExp input="$INFO[genresfbsource]" output="<chain function="GetLastFMFallbackArtistGenresByMBID">$$8</chain>" dest="12"> @@ -183,7 +137,7 @@ </ParseAMGArtistGenres> <GetAMGFallbackArtistGenresByAMGID dest="5" clearbuffers="no"> - <RegExp input="$$1" output="<details><url cache="am-\1-artist.html" function="ParseAMGFallbackArtistGenres">http://www.allmusic.com/artist/\1</url></details>" dest="5"> + <RegExp input="$$1" output="<details><url cache="am-\1-artist.html" function="ParseAMGFallbackArtistGenres">https://www.allmusic.com/artist/\1</url></details>" dest="5"> <expression noclean="1"/> </RegExp> </GetAMGFallbackArtistGenresByAMGID> @@ -199,14 +153,14 @@ <expression noclean="1"><h4>Genre</h4>\s*<div>(.*?)</div></expression> </RegExp> <RegExp input="$$6" output="<genre>\1</genre>" dest="2"> - <expression repeat="yes" noclean="1"><a\shref="http://www.allmusic.com/genre/[^"]*">([^<]*)</expression> + <expression repeat="yes" noclean="1"><a\shref="https://www.allmusic.com/genre/[^"]*">([^<]*)</expression> </RegExp> <expression noclean="1" /> </RegExp> </ParseAMGFallbackArtistGenres> <GetAMGArtistStylesByAMGID dest="5" clearbuffers="no"> - <RegExp input="$$1" output="<details><url cache="am-\1-artist.html" function="ParseAMGArtistStyles">http://www.allmusic.com/artist/\1</url></details>" dest="5"> + <RegExp input="$$1" output="<details><url cache="am-\1-artist.html" function="ParseAMGArtistStyles">https://www.allmusic.com/artist/\1</url></details>" dest="5"> <expression noclean="1"/> </RegExp> </GetAMGArtistStylesByAMGID> @@ -222,7 +176,7 @@ <expression noclean="1"><h4>Styles</h4>\s*<div>(.*?)</div></expression> </RegExp> <RegExp input="$$7" output="<style>\1</style>" dest="11"> - <expression repeat="yes" noclean="1"><a\shref="http://www.allmusic.com/style/[^"]*">([^<]*)</expression> + <expression repeat="yes" noclean="1"><a\shref="https://www.allmusic.com/style/[^"]*">([^<]*)</expression> </RegExp> <RegExp input="$$11" output="$$12" dest="2"> <RegExp input="$INFO[stylesfbsource]" output="<chain function="GetLastFMFallbackArtistStylesByMBID">$$8</chain>" dest="12"> @@ -241,7 +195,7 @@ </ParseAMGArtistStyles> <GetAMGFallbackArtistStylesByAMGID dest="5" clearbuffers="no"> - <RegExp input="$$1" output="<details><url cache="am-\1-artist.html" function="ParseAMGFallbackArtistStyles">http://www.allmusic.com/artist/\1</url></details>" dest="5"> + <RegExp input="$$1" output="<details><url cache="am-\1-artist.html" function="ParseAMGFallbackArtistStyles">https://www.allmusic.com/artist/\1</url></details>" dest="5"> <expression noclean="1"/> </RegExp> </GetAMGFallbackArtistStylesByAMGID> @@ -257,14 +211,14 @@ <expression noclean="1"><h4>Styles</h4>\s*<div>(.*?)</div></expression> </RegExp> <RegExp input="$$7" output="<style>\1</style>" dest="2"> - <expression repeat="yes" noclean="1"><a\shref="http://www.allmusic.com/style/[^"]*">([^<]*)</expression> + <expression repeat="yes" noclean="1"><a\shref="https://www.allmusic.com/style/[^"]*">([^<]*)</expression> </RegExp> <expression noclean="1" /> </RegExp> </ParseAMGFallbackArtistStyles> <GetAMGArtistMoodsByAMGID dest="5" clearbuffers="no"> - <RegExp input="$$1" output="<details><url cache="am-\1-artist.html" function="ParseAMGArtistMoods">http://www.allmusic.com/artist/\1</url></details>" dest="5"> + <RegExp input="$$1" output="<details><url cache="am-\1-artist.html" function="ParseAMGArtistMoods">https://www.allmusic.com/artist/\1</url></details>" dest="5"> <expression noclean="1"/> </RegExp> </GetAMGArtistMoodsByAMGID> @@ -296,7 +250,7 @@ </ParseAMGArtistMoods> <GetAMGFallbackArtistMoodsByAMGID dest="5" clearbuffers="no"> - <RegExp input="$$1" output="<details><url cache="am-\1-artist.html" function="ParseAMGFallbackArtistMoods">http://www.allmusic.com/artist/\1</url></details>" dest="5"> + <RegExp input="$$1" output="<details><url cache="am-\1-artist.html" function="ParseAMGFallbackArtistMoods">https://www.allmusic.com/artist/\1</url></details>" dest="5"> <expression noclean="1"/> </RegExp> </GetAMGFallbackArtistMoodsByAMGID> @@ -318,74 +272,9 @@ </RegExp> </ParseAMGFallbackArtistMoods> - <GetAMGArtistThumbsByAMGID dest="5" clearbuffers="no"> - <RegExp input="$$1" output="<details><url cache="am-\1-artist.html" function="ParseAMGArtistThumbs">http://www.allmusic.com/artist/\1</url></details>" dest="5"> - <expression noclean="1"/> - </RegExp> - </GetAMGArtistThumbsByAMGID> - <ParseAMGArtistThumbs dest="5" clearbuffers="no"> - <RegExp input="$$2" output="<details>\1</details>" dest="5"> - <RegExp input="" output="" dest="2"> - <expression /> - </RegExp> - <RegExp input="" output="" dest="4"> - <expression /> - </RegExp> - <RegExp input="$$1" output="\1" dest="4"> - <expression noclean="1"><h\d>Photo\sGallery</h\d>(.*?)<h2\sclass="artist-name"</expression> - </RegExp> - <RegExp input="$$4" output="<thumb>http://cps-static.rovicorp.com/3/JPG_1080/\1</thumb>" dest="2"> - <expression repeat="yes" noclean="1"><img src="http://cps-static.rovicorp.com/3/JPG_[^/]*/([^"]*)</expression> - </RegExp> - <expression noclean="1"/> - </RegExp> - </ParseAMGArtistThumbs> - - - <GetAMGAlbumReviewByAMGID dest="5"> - <RegExp input="$$1" output="<details><url cache="am-\1-album.html" function="ParseAMGAlbumReview">http://www.allmusic.com/album/\1</url></details>" dest="5"> - <expression noclean="1"/> - </RegExp> - </GetAMGAlbumReviewByAMGID> - <ParseAMGAlbumReview dest="5"> - <RegExp input="$$2" output="<details>\1</details>" dest="5"> - <RegExp input="$$1" output="<review>\1</review>" dest="2"> - <expression><span itemprop="description">([^<]*)</expression> - </RegExp> - <expression noclean="1" /> - </RegExp> - </ParseAMGAlbumReview> - - <GetAMGAlbumTitleByAMGID dest="5"> - <RegExp input="$$1" output="<details><url cache="am-\1-album.html" function="ParseAMGAlbumTitle">http://www.allmusic.com/album/\1</url></details>" dest="5"> - <expression noclean="1"/> - </RegExp> - </GetAMGAlbumTitleByAMGID> - <ParseAMGAlbumTitle dest="5"> - <RegExp input="$$2" output="<details>\1</details>" dest="5"> - <RegExp input="$$1" output="<title>\1</title>" dest="2"> - <expression trim="1" noclean="1"><div class="album-title">([^<]*)</expression> - </RegExp> - <expression noclean="1" /> - </RegExp> - </ParseAMGAlbumTitle> - - <GetAMGAlbumArtistByAMGID dest="5"> - <RegExp input="$$1" output="<details><url cache="am-\1-album.html" function="ParseAMGAlbumArtist">http://www.allmusic.com/album/\1</url></details>" dest="5"> - <expression noclean="1"/> - </RegExp> - </GetAMGAlbumArtistByAMGID> - <ParseAMGAlbumArtist dest="5"> - <RegExp input="$$2" output="<details>\1</details>" dest="5"> - <RegExp input="$$1" output="<artist>\1</artist>" dest="2"> - <expression noclean="1"><div class="album-artist">[^>]*>([^<]*)</expression> - </RegExp> - <expression noclean="1" /> - </RegExp> - </ParseAMGAlbumArtist> <GetAMGAlbumRatingByAMGID dest="5"> - <RegExp input="$$1" output="<details><url cache="am-\1-album.html" function="ParseAMGAlbumRating">http://www.allmusic.com/album/\1</url></details>" dest="5"> + <RegExp input="$$1" output="<details><url cache="am-\1-album.html" function="ParseAMGAlbumRating">https://www.allmusic.com/album/\1</url></details>" dest="5"> <expression noclean="1"/> </RegExp> </GetAMGAlbumRatingByAMGID> @@ -398,59 +287,42 @@ </RegExp> </ParseAMGAlbumRating> - <GetAMGAlbumDateByAMGID dest="5"> - <RegExp input="$$1" output="<details><url cache="am-\1-album.html" function="ParseAMGAlbumDate">http://www.allmusic.com/album/\1</url></details>" dest="5"> - <expression noclean="1"/> - </RegExp> - </GetAMGAlbumDateByAMGID> - <ParseAMGAlbumDate dest="5"> - <RegExp input="$$2" output="<details>\1</details>" dest="5"> - <RegExp input="$$1" output="<releasedate>\1</releasedate>" dest="2"> - <expression noclean="1"><dd class="release-date">([^<]*)</expression> - </RegExp> - <RegExp input="$$1" output="<year>\2</year>" dest="2+"> - <expression trim="1" noclean="1"><dd class="release-date">([^,]*,)?([^<]*)</expression> - </RegExp> - <expression noclean="1" /> - </RegExp> - </ParseAMGAlbumDate> - <GetAMGAlbumGenresByAMGID dest="5"> - <RegExp input="$$1" output="<details><url cache="am-\1-album.html" function="ParseAMGAlbumGenres">http://www.allmusic.com/album/\1</url></details>" dest="5"> + <RegExp input="$$1" output="<details><url cache="am-\1-album.html" function="ParseAMGAlbumGenres">https://www.allmusic.com/album/\1</url></details>" dest="5"> <expression noclean="1"/> </RegExp> </GetAMGAlbumGenresByAMGID> <ParseAMGAlbumGenres dest="5"> <RegExp input="$$2" output="<details>\1</details>" dest="5"> <RegExp input="$$1" output="\1" dest="6"> - <expression noclean="1"><h4>Genre</h4>\s*<div>(.*?)</div></expression> + <expression noclean="1">class="genre">(.*?)</div></expression> </RegExp> <RegExp input="$$6" output="<genre>\1</genre>" dest="2"> - <expression repeat="yes" noclean="1"><a\shref="http://www.allmusic.com/genre/[^"]*">([^<]*)</expression> + <expression repeat="yes" noclean="1"><a\shref="https://www.allmusic.com/genre/[^"]*">([^<]*)</expression> </RegExp> <expression noclean="1" /> </RegExp> </ParseAMGAlbumGenres> <GetAMGAlbumStylesByAMGID dest="5"> - <RegExp input="$$1" output="<details><url cache="am-\1-album.html" function="ParseAMGAlbumStyles">http://www.allmusic.com/album/\1</url></details>" dest="5"> + <RegExp input="$$1" output="<details><url cache="am-\1-album.html" function="ParseAMGAlbumStyles">https://www.allmusic.com/album/\1</url></details>" dest="5"> <expression noclean="1"/> </RegExp> </GetAMGAlbumStylesByAMGID> <ParseAMGAlbumStyles dest="5"> <RegExp input="$$2" output="<details>\1</details>" dest="5"> <RegExp input="$$1" output="\1" dest="7"> - <expression noclean="1"><h4>Styles</h4>\s*<div>(.*?)</div></expression> + <expression noclean="1">class="styles">(.*?)</div></expression> </RegExp> <RegExp input="$$7" output="<style>\1</style>" dest="2"> - <expression repeat="yes" noclean="1"><a\shref="http://www.allmusic.com/style/[^"]*">([^<]*)</expression> + <expression repeat="yes" noclean="1"><a\shref="https://www.allmusic.com/style/[^"]*">([^<]*)</expression> </RegExp> <expression noclean="1" /> </RegExp> </ParseAMGAlbumStyles> <GetAMGAlbumMoodsByAMGID dest="5"> - <RegExp input="$$1" output="<details><url cache="am-\1-album.html" function="ParseAMGAlbumMoods">http://www.allmusic.com/album/\1</url></details>" dest="5"> + <RegExp input="$$1" output="<details><url cache="am-\1-album.html" function="ParseAMGAlbumMoods">https://www.allmusic.com/album/\1</url></details>" dest="5"> <expression noclean="1"/> </RegExp> </GetAMGAlbumMoodsByAMGID> @@ -460,84 +332,41 @@ <expression trim="1" noclean="1">>\s*<h4>Album\sMoods</h4>(.*?)</section></expression> </RegExp> <RegExp input="$$8" output="<mood>\1</mood>" dest="2"> - <expression repeat="yes" noclean="1"><a\shref="http://www.allmusic.com/mood/[^"]*">([^<]*)</expression> + <expression repeat="yes" noclean="1"><a\shref="https://www.allmusic.com/mood/[^"]*">([^<]*)</expression> </RegExp> <expression noclean="1" /> </RegExp> </ParseAMGAlbumMoods> <GetAMGAlbumThemesByAMGID dest="5"> - <RegExp input="$$1" output="<details><url cache="am-\1-album.html" function="ParseAMGAlbumThemes">http://www.allmusic.com/album/\1</url></details>" dest="5"> + <RegExp input="$$1" output="<details><url cache="am-\1-album.html" function="ParseAMGAlbumThemes">https://www.allmusic.com/album/\1</url></details>" dest="5"> <expression noclean="1"/> </RegExp> </GetAMGAlbumThemesByAMGID> <ParseAMGAlbumThemes dest="5"> <RegExp input="$$2" output="<details>\1</details>" dest="5"> <RegExp input="$$1" output="\1" dest="4"> - <expression trim="1" noclean="1">>\s*<h4>Themes</h4>(.*?)</ul></expression> + <expression trim="1" noclean="1"><section\sclass="themes">(.*?)</section></expression> </RegExp> <RegExp input="$$4" output="<theme>\1</theme>" dest="2"> - <expression repeat="yes" noclean="1"><a\shref="http://www.allmusic.com/theme/[^"]*">([^<]*)</expression> + <expression repeat="yes" noclean="1"><a\shref="https://www.allmusic.com/theme/[^"]*">([^<]*)</expression> </RegExp> <expression noclean="1" /> </RegExp> </ParseAMGAlbumThemes> - <GetAMGAlbumTracksByAMGID dest="5"> - <RegExp input="$$1" output="<details><url cache="am-\1-album.html" function="ParseAMGAlbumTracks">http://www.allmusic.com/album/\1</url></details>" dest="5"> - <expression noclean="1"/> - </RegExp> - </GetAMGAlbumTracksByAMGID> - <ParseAMGAlbumTracks dest="5"> - <RegExp input="$$2" output="<details>\1</details>" dest="5"> - <RegExp input="$$1" output="<track><position>\1</position><title>\2</title><duration>\3</duration></track>" dest="2"> - <expression repeat="yes" trim="1" noclean="1,2,3"><td class="tracknum">([0-9]*).*?<div class="title">[^>]*>([^<]*).*?<td class="time">([^<]*)</expression> - </RegExp> - <expression noclean="1" /> - </RegExp> - </ParseAMGAlbumTracks> - <GetAMGAlbumThumbsByAMGID dest="5"> - <RegExp input="$$1" output="<details><url cache="am-\1-album.html" function="ParseAMGAlbumThumbs">http://www.allmusic.com/album/\1</url></details>" dest="5"> + <RegExp input="$$1" output="<details><url cache="am-\1-album.html" function="ParseAMGAlbumThumbs">https://www.allmusic.com/album/\1</url></details>" dest="5"> <expression noclean="1"/> </RegExp> </GetAMGAlbumThumbsByAMGID> <ParseAMGAlbumThumbs dest="5"> <RegExp input="$$2" output="<details>\1</details>" dest="5"> - <RegExp input="$$1" output="<thumb>http://cps-static.rovicorp.com/3/JPG_500/\1</thumb>" dest="2"> - <expression noclean="1">"http://cps-static.rovicorp.com/3/JPG_[^/]*/([^"]*)</expression> + <RegExp input="$$1" output="<thumb>https://cdn-s3.allmusic.com/release-covers/500/\1</thumb>" dest="2"> + <expression noclean="1"><img src="https://cdn-s3.allmusic.com/release-covers/500/([^"]*)</expression> </RegExp> <expression noclean="1" /> </RegExp> </ParseAMGAlbumThumbs> - - <GetAMGFakeBiographyByAMGID dest="5"> - <RegExp input="$$1" output="<details><url cache="am-\1-artist.html" function="ParseAMGFakeBiography">http://www.allmusic.com/artist/\1</url></details>" dest="5"> - <expression noclean="1"/> - </RegExp> - </GetAMGFakeBiographyByAMGID> - <ParseAMGFakeBiography dest="5"> - <RegExp input="$$2" output="<details>\1</details>" dest="5"> - <RegExp input="$$1" output="<biography>Fetching artist biography from allmusic.com is not possible due to copyright reasons.</biography>" dest="2"> - <expression noclean="1" /> - </RegExp> - <expression noclean="1"/> - </RegExp> - </ParseAMGFakeBiography> - - <GetAMGFakeAlbumReviewByAMGID dest="5"> - <RegExp input="$$1" output="<details><url cache="am-\1-album.html" function="ParseAMGFakeAlbumReview">http://www.allmusic.com/album/\1</url></details>" dest="5"> - <expression noclean="1"/> - </RegExp> - </GetAMGFakeAlbumReviewByAMGID> - <ParseAMGFakeAlbumReview dest="5"> - <RegExp input="$$2" output="<details>\1</details>" dest="5"> - <RegExp input="$$1" output="<review>Fetching album review from allmusic.com is not possible due to copyright reasons.</review>" dest="2"> - <expression noclean="1"/> - </RegExp> - <expression noclean="1" /> - </RegExp> - </ParseAMGFakeAlbumReview> - </scraperfunctions> diff --git a/addons/metadata.common.fanart.tv/addon.xml b/addons/metadata.common.fanart.tv/addon.xml index 1a01b98ca4..45caf8c534 100644 --- a/addons/metadata.common.fanart.tv/addon.xml +++ b/addons/metadata.common.fanart.tv/addon.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <addon id="metadata.common.fanart.tv" name="fanart.tv Scraper Library" - version="3.1.5" + version="3.5.0" provider-name="Team Kodi"> <requires> <import addon="xbmc.metadata" version="2.1.0"/> diff --git a/addons/metadata.common.fanart.tv/fanarttv.xml b/addons/metadata.common.fanart.tv/fanarttv.xml index ecf02d7e86..6dffe1d0ff 100644 --- a/addons/metadata.common.fanart.tv/fanarttv.xml +++ b/addons/metadata.common.fanart.tv/fanarttv.xml @@ -16,13 +16,59 @@ <RegExp input="$$1" output="\1" dest="16"> <expression noclean="1">"artistthumb":\s\[(.*?)\}\s*\]</expression> </RegExp> - <RegExp input="$$16" output="<thumb preview="https://\1/preview/\2">https://\1/fanart/\2</thumb>" dest="13"> + <RegExp input="$$16" output="<thumb aspect="poster" preview="https://\1/preview/\2">https://\1/fanart/\2</thumb>" dest="13"> <expression repeat="yes" noclean="1">"id":\s"\d*",\s*"url":\s"https://([^/]*)/fanart/([^"]*)</expression> </RegExp> <expression noclean="1" /> </RegExp> </ParseFanartTvArtistThumbs> + <GetFanartTvArtistClearlogoByMBID dest="5" clearbuffers="no"> + <RegExp input="$$1" output="<details><url function="ParseFanartTvArtistClearlogo" cache="fanarttv-artistimages-\1.json">https://webservice.fanart.tv/v3/music/\1?api_key=ed4b784f97227358b31ca4dd966a04f1</url></details>" dest="5"> + <expression noclean="1" /> + </RegExp> + </GetFanartTvArtistClearlogoByMBID> + <ParseFanartTvArtistClearlogo dest="5" clearbuffers="no"> + <RegExp input="$$13" output="<details>\1</details>" dest="5"> + <RegExp input="" output="" dest="13"> + <expression /> + </RegExp> + <RegExp input="" output="" dest="16"> + <expression /> + </RegExp> + <RegExp input="$$1" output="\1" dest="16"> + <expression noclean="1">"hdmusiclogo":\s\[(.*?)\}\s*\]</expression> + </RegExp> + <RegExp input="$$16" output="<thumb aspect="clearlogo" preview="https://\1/preview/\2">https://\1/fanart/\2</thumb>" dest="13"> + <expression repeat="yes" noclean="1">"id":\s"\d*",\s*"url":\s"https://([^/]*)/fanart/([^"]*)</expression> + </RegExp> + <expression noclean="1" /> + </RegExp> + </ParseFanartTvArtistClearlogo> + + <GetFanartTvArtistBannerByMBID dest="5" clearbuffers="no"> + <RegExp input="$$1" output="<details><url function="ParseFanartTvArtistBanner" cache="fanarttv-artistimages-\1.json">https://webservice.fanart.tv/v3/music/\1?api_key=ed4b784f97227358b31ca4dd966a04f1</url></details>" dest="5"> + <expression noclean="1" /> + </RegExp> + </GetFanartTvArtistBannerByMBID> + <ParseFanartTvArtistBanner dest="5" clearbuffers="no"> + <RegExp input="$$13" output="<details>\1</details>" dest="5"> + <RegExp input="" output="" dest="13"> + <expression /> + </RegExp> + <RegExp input="" output="" dest="16"> + <expression /> + </RegExp> + <RegExp input="$$1" output="\1" dest="16"> + <expression noclean="1">"musicbanner":\s\[(.*?)\}\s*\]</expression> + </RegExp> + <RegExp input="$$16" output="<thumb aspect="banner" preview="https://\1/preview/\2">https://\1/fanart/\2</thumb>" dest="13"> + <expression repeat="yes" noclean="1">"id":\s"\d*",\s*"url":\s"https://([^/]*)/fanart/([^"]*)</expression> + </RegExp> + <expression noclean="1" /> + </RegExp> + </ParseFanartTvArtistBanner> + <GetFanartTvArtistFanartsByMBID dest="5" clearbuffers="no"> <RegExp input="$$1" output="<details><url function="ParseFanartTvArtistFanarts" cache="fanarttv-artistimages-\1.json">https://webservice.fanart.tv/v3/music/\1?api_key=ed4b784f97227358b31ca4dd966a04f1</url></details>" dest="5"> <expression noclean="1" /> @@ -75,6 +121,29 @@ </RegExp> </ParseFanartTvAlbumThumbs> + <GetFanartTvAlbumDiscartByMBID dest="5" clearbuffers="no"> + <RegExp input="$$1" output="<details><url function="ParseFanartTvAlbumDiscart" cache="fanarttv-albumimages-\1.json">https://webservice.fanart.tv/v3/music/albums/\1?api_key=ed4b784f97227358b31ca4dd966a04f1</url></details>" dest="5"> + <expression noclean="1" /> + </RegExp> + </GetFanartTvAlbumDiscartByMBID> + <ParseFanartTvAlbumDiscart dest="5" clearbuffers="no"> + <RegExp input="$$13" output="<details>\1</details>" dest="5"> + <RegExp input="" output="" dest="13"> + <expression /> + </RegExp> + <RegExp input="" output="" dest="16"> + <expression /> + </RegExp> + <RegExp input="$$1" output="\1" dest="16"> + <expression noclean="1">"cdart":\s\[(.*?)\}\s*\]</expression> + </RegExp> + <RegExp input="$$16" output="<thumb aspect="discart" preview="https://\1/preview/\2">https://\1/fanart/\2</thumb>" dest="13"> + <expression repeat="yes" noclean="1">"id":\s"\d*",\s*"url":\s"https://([^/]*)/fanart/([^"]*)</expression> + </RegExp> + <expression noclean="1" /> + </RegExp> + </ParseFanartTvAlbumDiscart> + <GetFanartTvFanartByIdChain dest="4"> <RegExp input="$$5" output="<details>\1</details>" dest="4"> <RegExp input="$$1" output="<url function="ParseFanartTvFanart" cache="fanarttv-\1.json">https://webservice.fanart.tv/v3/movies/\1?api_key=ed4b784f97227358b31ca4dd966a04f1</url>" dest="5"> @@ -107,15 +176,18 @@ </RegExp> </ParseFanartTvFanart> - <GetFanartTvThumbsByIdChain dest="4"> + <GetFanartTvThumbsByIdChain clearbuffers="no" dest="4"> <!-- Expected chaining format= tmdb_id::language--> <RegExp input="$$5" output="<details>\1</details>" dest="4"> - <RegExp input="$$1" output="<url function="ParseFanartTvThumbs" cache="fanarttv-\1.json">https://webservice.fanart.tv/v3/movies/\1?api_key=ed4b784f97227358b31ca4dd966a04f1</url>" dest="5"> - <expression /> + <RegExp input="$$1" output="\2" dest="11"> + <expression>(.+)::(.+)</expression> + </RegExp> + <RegExp input="$$1" output="<url function="ParseFanartTvMoviePoster" cache="fanarttv-\1.json">https://webservice.fanart.tv/v3/movies/\1?api_key=ed4b784f97227358b31ca4dd966a04f1</url>" dest="5"> + <expression>(.+)::(.+)</expression> </RegExp> <expression noclean="1" /> </RegExp> </GetFanartTvThumbsByIdChain> - <ParseFanartTvThumbs dest="5"> + <ParseFanartTvMoviePoster dest="5"> <RegExp input="$$13" output="<details>\1</details>" dest="5"> <RegExp input="" output="" dest="13"> <expression /> @@ -126,11 +198,524 @@ <RegExp input="$$1" output="\1" dest="16"> <expression noclean="1">"movieposter":\s\[(.*?)\}\s*\]</expression> </RegExp> - <RegExp input="$$16" output="<thumb preview="https://\1/preview/\2">https://\1/fanart/\2</thumb>" dest="13"> + <RegExp input="$$16" output="<thumb aspect="poster" preview="https://\1/preview/\2">https://\1/fanart/\2</thumb>" dest="13"> + <expression repeat="yes" noclean="1">"id":\s"\d*",\s*"url":\s"https://([^/]*)/fanart/([^"]*)",\s*"lang":\s"$$11"</expression> + </RegExp> + <RegExp input="$$16" output="<thumb aspect="poster" preview="https://\1/preview/\2">https://\1/fanart/\2</thumb>" dest="13+"> + <expression repeat="yes" noclean="1">"id":\s"\d*",\s*"url":\s"https://([^/]*)/fanart/([^"]*)",\s*"lang":\s"en"</expression> + </RegExp> + <RegExp input="$$16" output="<thumb aspect="poster" preview="https://\1/preview/\2">https://\1/fanart/\2</thumb>" dest="13+"> + <expression repeat="yes" noclean="1">"id":\s"\d*",\s*"url":\s"https://([^/]*)/fanart/([^"]*)",\s*"lang":\s"00"</expression> + </RegExp> + <expression noclean="1" /> + </RegExp> + </ParseFanartTvMoviePoster> + + <GetFanartTvMovieClearlogoByIdChain dest="4"> + <RegExp input="$$5" output="<details>\1</details>" dest="4"> + <RegExp input="$$1" output="\1" dest="18"> + <expression encode="1">.+::(.+)</expression> + </RegExp> + <RegExp input="$$1" output="<url function="ParseFanartTvMovieClearlogo" cache="fanarttv-\1.json">https://webservice.fanart.tv/v3/movies/\1?api_key=ed4b784f97227358b31ca4dd966a04f1</url>" dest="5"> + <expression encode="1">(.+)::.+</expression> + </RegExp> + <expression noclean="1" /> + </RegExp> + </GetFanartTvMovieClearlogoByIdChain> + <ParseFanartTvMovieClearlogo dest="5"> + <RegExp input="$$13" output="<details>\1</details>" dest="5"> + <RegExp input="" output="" dest="13"> + <expression /> + </RegExp> + <RegExp input="" output="" dest="16"> + <expression /> + </RegExp> + <RegExp input="$$1" output="\1" dest="16"> + <expression noclean="1">"hdmovielogo":\s\[(.*?)\}\s*\]</expression> + </RegExp> + <RegExp input="$$16" output="<thumb aspect="clearlogo" preview="https://\1/preview/\2">https://\1/fanart/\2</thumb>" dest="13"> + <expression repeat="yes" noclean="1">"id":\s"\d*",\s*"url":\s"https://([^/]*)/fanart/([^"]*)",\s*"lang":\s"$$18"</expression> + </RegExp> + <RegExp input="$$16" output="<thumb aspect="clearlogo" preview="https://\1/preview/\2">https://\1/fanart/\2</thumb>" dest="13+"> + <expression repeat="yes" noclean="1">"id":\s"\d*",\s*"url":\s"https://([^/]*)/fanart/([^"]*)",\s*"lang":\s"en"</expression> + </RegExp> + <RegExp input="$$16" output="<thumb aspect="clearlogo" preview="https://\1/preview/\2">https://\1/fanart/\2</thumb>" dest="13+"> + <expression repeat="yes" noclean="1">"id":\s"\d*",\s*"url":\s"https://([^/]*)/fanart/([^"]*)",\s*"lang":\s"00"</expression> + </RegExp> + <expression noclean="1" /> + </RegExp> + </ParseFanartTvMovieClearlogo> + + <GetFanartTvMovieClearartByIdChain dest="4"> + <RegExp input="$$5" output="<details>\1</details>" dest="4"> + <RegExp input="$$1" output="\1" dest="18"> + <expression encode="1">.+::(.+)</expression> + </RegExp> + <RegExp input="$$1" output="<url function="ParseFanartTvMovieClearart" cache="fanarttv-\1.json">https://webservice.fanart.tv/v3/movies/\1?api_key=ed4b784f97227358b31ca4dd966a04f1</url>" dest="5"> + <expression encode="1">(.+)::.+</expression> + </RegExp> + <expression noclean="1" /> + </RegExp> + </GetFanartTvMovieClearartByIdChain> + <ParseFanartTvMovieClearart dest="5"> + <RegExp input="$$13" output="<details>\1</details>" dest="5"> + <RegExp input="" output="" dest="13"> + <expression /> + </RegExp> + <RegExp input="" output="" dest="16"> + <expression /> + </RegExp> + <RegExp input="$$1" output="\1" dest="16"> + <expression noclean="1">"hdmovieclearart":\s\[(.*?)\}\s*\]</expression> + </RegExp> + <RegExp input="$$16" output="<thumb aspect="clearart" preview="https://\1/preview/\2">https://\1/fanart/\2</thumb>" dest="13"> + <expression repeat="yes" noclean="1">"id":\s"\d*",\s*"url":\s"https://([^/]*)/fanart/([^"]*)",\s*"lang":\s"$$18"</expression> + </RegExp> + <RegExp input="$$16" output="<thumb aspect="clearart" preview="https://\1/preview/\2">https://\1/fanart/\2</thumb>" dest="13+"> + <expression repeat="yes" noclean="1">"id":\s"\d*",\s*"url":\s"https://([^/]*)/fanart/([^"]*)",\s*"lang":\s"en"</expression> + </RegExp> + <RegExp input="$$16" output="<thumb aspect="clearart" preview="https://\1/preview/\2">https://\1/fanart/\2</thumb>" dest="13+"> + <expression repeat="yes" noclean="1">"id":\s"\d*",\s*"url":\s"https://([^/]*)/fanart/([^"]*)",\s*"lang":\s"00"</expression> + </RegExp> + <expression noclean="1" /> + </RegExp> + </ParseFanartTvMovieClearart> + + <GetFanartTvMoviebannerByIdChain dest="4"> + <RegExp input="$$5" output="<details>\1</details>" dest="4"> + <RegExp input="$$1" output="\1" dest="18"> + <expression encode="1">.+::(.+)</expression> + </RegExp> + <RegExp input="$$1" output="<url function="ParseFanartTvMoviebanner" cache="fanarttv-\1.json">https://webservice.fanart.tv/v3/movies/\1?api_key=ed4b784f97227358b31ca4dd966a04f1</url>" dest="5"> + <expression encode="1">(.+)::.+</expression> + </RegExp> + <expression noclean="1" /> + </RegExp> + </GetFanartTvMoviebannerByIdChain> + <ParseFanartTvMoviebanner dest="5"> + <RegExp input="$$13" output="<details>\1</details>" dest="5"> + <RegExp input="" output="" dest="13"> + <expression /> + </RegExp> + <RegExp input="" output="" dest="16"> + <expression /> + </RegExp> + <RegExp input="$$1" output="\1" dest="16"> + <expression noclean="1">"moviebanner":\s\[(.*?)\}\s*\]</expression> + </RegExp> + <RegExp input="$$16" output="<thumb aspect="banner" preview="https://\1/preview/\2">https://\1/fanart/\2</thumb>" dest="13"> + <expression repeat="yes" noclean="1">"id":\s"\d*",\s*"url":\s"https://([^/]*)/fanart/([^"]*)",\s*"lang":\s"$$18"</expression> + </RegExp> + <RegExp input="$$16" output="<thumb aspect="banner" preview="https://\1/preview/\2">https://\1/fanart/\2</thumb>" dest="13+"> + <expression repeat="yes" noclean="1">"id":\s"\d*",\s*"url":\s"https://([^/]*)/fanart/([^"]*)",\s*"lang":\s"en"</expression> + </RegExp> + <RegExp input="$$16" output="<thumb aspect="banner" preview="https://\1/preview/\2">https://\1/fanart/\2</thumb>" dest="13+"> + <expression repeat="yes" noclean="1">"id":\s"\d*",\s*"url":\s"https://([^/]*)/fanart/([^"]*)",\s*"lang":\s"00"</expression> + </RegExp> + <expression noclean="1" /> + </RegExp> + </ParseFanartTvMoviebanner> + + <GetFanartTvMovieLandscapeByIdChain dest="4"> + <RegExp input="$$5" output="<details>\1</details>" dest="4"> + <RegExp input="$$1" output="\1" dest="18"> + <expression encode="1">.+::(.+)</expression> + </RegExp> + <RegExp input="$$1" output="<url function="ParseFanartTvMovieLandscape" cache="fanarttv-\1.json">https://webservice.fanart.tv/v3/movies/\1?api_key=ed4b784f97227358b31ca4dd966a04f1</url>" dest="5"> + <expression encode="1">(.+)::.+</expression> + </RegExp> + <expression noclean="1" /> + </RegExp> + </GetFanartTvMovieLandscapeByIdChain> + <ParseFanartTvMovieLandscape dest="5"> + <RegExp input="$$13" output="<details>\1</details>" dest="5"> + <RegExp input="" output="" dest="13"> + <expression /> + </RegExp> + <RegExp input="" output="" dest="16"> + <expression /> + </RegExp> + <RegExp input="$$1" output="\1" dest="16"> + <expression noclean="1">"moviethumb":\s\[(.*?)\}\s*\]</expression> + </RegExp> + <RegExp input="$$16" output="<thumb aspect="landscape" preview="https://\1/preview/\2">https://\1/fanart/\2</thumb>" dest="13"> + <expression repeat="yes" noclean="1">"id":\s"\d*",\s*"url":\s"https://([^/]*)/fanart/([^"]*)",\s*"lang":\s"$$18"</expression> + </RegExp> + <RegExp input="$$16" output="<thumb aspect="landscape" preview="https://\1/preview/\2">https://\1/fanart/\2</thumb>" dest="13+"> + <expression repeat="yes" noclean="1">"id":\s"\d*",\s*"url":\s"https://([^/]*)/fanart/([^"]*)",\s*"lang":\s"en"</expression> + </RegExp> + <RegExp input="$$16" output="<thumb aspect="landscape" preview="https://\1/preview/\2">https://\1/fanart/\2</thumb>" dest="13+"> + <expression repeat="yes" noclean="1">"id":\s"\d*",\s*"url":\s"https://([^/]*)/fanart/([^"]*)",\s*"lang":\s"00"</expression> + </RegExp> + <expression noclean="1" /> + </RegExp> + </ParseFanartTvMovieLandscape> + + <GetFanartTvMovieDiscartByIdChain dest="4"> + <RegExp input="$$5" output="<details>\1</details>" dest="4"> + <RegExp input="$$1" output="\1" dest="18"> + <expression encode="1">.+::(.+)</expression> + </RegExp> + <RegExp input="$$1" output="<url function="ParseFanartTvMovieDiscart" cache="fanarttv-\1.json">https://webservice.fanart.tv/v3/movies/\1?api_key=ed4b784f97227358b31ca4dd966a04f1</url>" dest="5"> + <expression encode="1">(.+)::.+</expression> + </RegExp> + <expression noclean="1" /> + </RegExp> + </GetFanartTvMovieDiscartByIdChain> + <ParseFanartTvMovieDiscart dest="5"> + <RegExp input="$$13" output="<details>\1</details>" dest="5"> + <RegExp input="" output="" dest="13"> + <expression /> + </RegExp> + <RegExp input="" output="" dest="16"> + <expression /> + </RegExp> + <RegExp input="$$1" output="\1" dest="16"> + <expression noclean="1">"moviedisc":\s\[(.*?)\}\s*\]</expression> + </RegExp> + <RegExp input="$$16" output="<thumb aspect="discart" preview="https://\1/preview/\2">https://\1/fanart/\2</thumb>" dest="13"> + <expression repeat="yes" noclean="1">"id":\s"\d*",\s*"url":\s"https://([^/]*)/fanart/([^"]*)",\s*"lang":\s"$$18"</expression> + </RegExp> + <RegExp input="$$16" output="<thumb aspect="discart" preview="https://\1/preview/\2">https://\1/fanart/\2</thumb>" dest="13+"> + <expression repeat="yes" noclean="1">"id":\s"\d*",\s*"url":\s"https://([^/]*)/fanart/([^"]*)",\s*"lang":\s"en"</expression> + </RegExp> + <RegExp input="$$16" output="<thumb aspect="discart" preview="https://\1/preview/\2">https://\1/fanart/\2</thumb>" dest="13+"> + <expression repeat="yes" noclean="1">"id":\s"\d*",\s*"url":\s"https://([^/]*)/fanart/([^"]*)",\s*"lang":\s"00"</expression> + </RegExp> + <expression noclean="1" /> + </RegExp> + </ParseFanartTvMovieDiscart> + + <GetFanartTvTvShowPosterByIdChain dest="4"> + <RegExp input="$$5" output="<details>\1</details>" dest="4"> + <RegExp input="$$1" output="\1" dest="18"> + <expression encode="1">.+::(.+)</expression> + </RegExp> + <RegExp input="$$1" output="<url function="ParseFanartTvTvShowPoster" cache="fanarttv-\1.json">https://webservice.fanart.tv/v3/tv/\1?api_key=ed4b784f97227358b31ca4dd966a04f1</url>" dest="5"> + <expression encode="1">(.+)::.+</expression> + </RegExp> + <expression noclean="1" /> + </RegExp> + </GetFanartTvTvShowPosterByIdChain> + <ParseFanartTvTvShowPoster dest="5"> + <RegExp input="$$13" output="<details>\1</details>" dest="5"> + <RegExp input="" output="" dest="13"> + <expression /> + </RegExp> + <RegExp input="" output="" dest="16"> + <expression /> + </RegExp> + <RegExp input="$$1" output="\1" dest="16"> + <expression noclean="1">"tvposter":\s\[(.*?)\}\s*\]</expression> + </RegExp> + <RegExp input="$$16" output="<thumb aspect="poster" preview="https://\1/preview/\2">https://\1/fanart/\2</thumb>" dest="13+"> + <expression repeat="yes" noclean="1">"id":\s"\d*",\s*"url":\s"https://([^/]*)/fanart/([^"]*)",\s*"lang":\s"$$18"</expression> + </RegExp> + <RegExp input="$$16" output="<thumb aspect="poster" preview="https://\1/preview/\2">https://\1/fanart/\2</thumb>" dest="13+"> + <expression repeat="yes" noclean="1">"id":\s"\d*",\s*"url":\s"https://([^/]*)/fanart/([^"]*)",\s*"lang":\s"en"</expression> + </RegExp> + <RegExp input="$$16" output="<thumb aspect="poster" preview="https://\1/preview/\2">https://\1/fanart/\2</thumb>" dest="13+"> + <expression repeat="yes" noclean="1">"id":\s"\d*",\s*"url":\s"https://([^/]*)/fanart/([^"]*)",\s*"lang":\s"!$$18|!en"</expression> + </RegExp> + <expression noclean="1" /> + </RegExp> + </ParseFanartTvTvShowPoster> + + <GetFanartTvTvShowBannerByIdChain dest="4"> + <RegExp input="$$5" output="<details>\1</details>" dest="4"> + <RegExp input="$$1" output="\1" dest="18"> + <expression encode="1">.+::(.+)</expression> + </RegExp> + <RegExp input="$$1" output="<url function="ParseFanartTvTvShowBanner" cache="fanarttv-\1.json">https://webservice.fanart.tv/v3/tv/\1?api_key=ed4b784f97227358b31ca4dd966a04f1</url>" dest="5"> + <expression encode="1">(.+)::.+</expression> + </RegExp> + <expression noclean="1" /> + </RegExp> + </GetFanartTvTvShowBannerByIdChain> + <ParseFanartTvTvShowBanner dest="5"> + <RegExp input="$$13" output="<details>\1</details>" dest="5"> + <RegExp input="" output="" dest="13"> + <expression /> + </RegExp> + <RegExp input="" output="" dest="16"> + <expression /> + </RegExp> + <RegExp input="$$1" output="\1" dest="16"> + <expression noclean="1">"tvbanner":\s\[(.*?)\}\s*\]</expression> + </RegExp> + <RegExp input="$$16" output="<thumb aspect="banner" preview="https://\1/preview/\2">https://\1/fanart/\2</thumb>" dest="13+"> + <expression repeat="yes" noclean="1">"id":\s"\d*",\s*"url":\s"https://([^/]*)/fanart/([^"]*)",\s*"lang":\s"$$18"</expression> + </RegExp> + <RegExp input="$$16" output="<thumb aspect="banner" preview="https://\1/preview/\2">https://\1/fanart/\2</thumb>" dest="13+"> + <expression repeat="yes" noclean="1">"id":\s"\d*",\s*"url":\s"https://([^/]*)/fanart/([^"]*)",\s*"lang":\s"en"</expression> + </RegExp> + <RegExp input="$$16" output="<thumb aspect="banner" preview="https://\1/preview/\2">https://\1/fanart/\2</thumb>" dest="13+"> + <expression repeat="yes" noclean="1">"id":\s"\d*",\s*"url":\s"https://([^/]*)/fanart/([^"]*)",\s*"lang":\s"!$$18|!en"</expression> + </RegExp> + <expression noclean="1" /> + </RegExp> + </ParseFanartTvTvShowBanner> + + <GetFanartTvTvShowLandscapeByIdChain dest="4"> + <RegExp input="$$5" output="<details>\1</details>" dest="4"> + <RegExp input="$$1" output="\1" dest="18"> + <expression encode="1">.+::(.+)</expression> + </RegExp> + <RegExp input="$$1" output="<url function="ParseFanartTvTvShowLandscape" cache="fanarttv-\1.json">https://webservice.fanart.tv/v3/tv/\1?api_key=ed4b784f97227358b31ca4dd966a04f1</url>" dest="5"> + <expression encode="1">(.+)::.+</expression> + </RegExp> + <expression noclean="1" /> + </RegExp> + </GetFanartTvTvShowLandscapeByIdChain> + <ParseFanartTvTvShowLandscape dest="5"> + <RegExp input="$$13" output="<details>\1</details>" dest="5"> + <RegExp input="" output="" dest="13"> + <expression /> + </RegExp> + <RegExp input="" output="" dest="16"> + <expression /> + </RegExp> + <RegExp input="$$1" output="\1" dest="16"> + <expression noclean="1">"tvthumb":\s\[(.*?)\}\s*\]</expression> + </RegExp> + <RegExp input="$$16" output="<thumb aspect="landscape" preview="https://\1/preview/\2">https://\1/fanart/\2</thumb>" dest="13+"> + <expression repeat="yes" noclean="1">"id":\s"\d*",\s*"url":\s"https://([^/]*)/fanart/([^"]*)",\s*"lang":\s"$$18"</expression> + </RegExp> + <RegExp input="$$16" output="<thumb aspect="landscape" preview="https://\1/preview/\2">https://\1/fanart/\2</thumb>" dest="13+"> + <expression repeat="yes" noclean="1">"id":\s"\d*",\s*"url":\s"https://([^/]*)/fanart/([^"]*)",\s*"lang":\s"en"</expression> + </RegExp> + <RegExp input="$$16" output="<thumb aspect="landscape" preview="https://\1/preview/\2">https://\1/fanart/\2</thumb>" dest="13+"> + <expression repeat="yes" noclean="1">"id":\s"\d*",\s*"url":\s"https://([^/]*)/fanart/([^"]*)",\s*"lang":\s"!$$18|!en"</expression> + </RegExp> + <expression noclean="1" /> + </RegExp> + </ParseFanartTvTvShowLandscape> + + <GetFanartTvTvShowClearlogoByIdChain dest="4"> + <RegExp input="$$5" output="<details>\1</details>" dest="4"> + <RegExp input="$$1" output="\1" dest="18"> + <expression encode="1">.+::(.+)</expression> + </RegExp> + <RegExp input="$$1" output="<url function="ParseFanartTvTvShowClearlogo" cache="fanarttv-\1.json">https://webservice.fanart.tv/v3/tv/\1?api_key=ed4b784f97227358b31ca4dd966a04f1</url>" dest="5"> + <expression encode="1">(.+)::.+</expression> + </RegExp> + <expression noclean="1" /> + </RegExp> + </GetFanartTvTvShowClearlogoByIdChain> + <ParseFanartTvTvShowClearlogo dest="5"> + <RegExp input="$$13" output="<details>\1</details>" dest="5"> + <RegExp input="" output="" dest="13"> + <expression /> + </RegExp> + <RegExp input="" output="" dest="16"> + <expression /> + </RegExp> + <RegExp input="$$1" output="\1" dest="16"> + <expression noclean="1">"hdtvlogo":\s\[(.*?)\}\s*\]</expression> + </RegExp> + <RegExp input="$$16" output="<thumb aspect="clearlogo" preview="https://\1/preview/\2">https://\1/fanart/\2</thumb>" dest="13+"> + <expression repeat="yes" noclean="1">"id":\s"\d*",\s*"url":\s"https://([^/]*)/fanart/([^"]*)",\s*"lang":\s"$$18"</expression> + </RegExp> + <RegExp input="$$16" output="<thumb aspect="clearlogo" preview="https://\1/preview/\2">https://\1/fanart/\2</thumb>" dest="13+"> + <expression repeat="yes" noclean="1">"id":\s"\d*",\s*"url":\s"https://([^/]*)/fanart/([^"]*)",\s*"lang":\s"en"</expression> + </RegExp> + <RegExp input="$$16" output="<thumb aspect="clearlogo" preview="https://\1/preview/\2">https://\1/fanart/\2</thumb>" dest="13+"> + <expression repeat="yes" noclean="1">"id":\s"\d*",\s*"url":\s"https://([^/]*)/fanart/([^"]*)",\s*"lang":\s"!$$18|!en"</expression> + </RegExp> + <expression noclean="1" /> + </RegExp> + </ParseFanartTvTvShowClearlogo> + + <GetFanartTvTvShowClearartByIdChain dest="4"> + <RegExp input="$$5" output="<details>\1</details>" dest="4"> + <RegExp input="$$1" output="\1" dest="18"> + <expression encode="1">.+::(.+)</expression> + </RegExp> + <RegExp input="$$1" output="<url function="ParseFanartTvTvShowClearart" cache="fanarttv-\1.json">https://webservice.fanart.tv/v3/tv/\1?api_key=ed4b784f97227358b31ca4dd966a04f1</url>" dest="5"> + <expression encode="1">(.+)::.+</expression> + </RegExp> + <expression noclean="1" /> + </RegExp> + </GetFanartTvTvShowClearartByIdChain> + <ParseFanartTvTvShowClearart dest="5"> + <RegExp input="$$13" output="<details>\1</details>" dest="5"> + <RegExp input="" output="" dest="13"> + <expression /> + </RegExp> + <RegExp input="" output="" dest="16"> + <expression /> + </RegExp> + <RegExp input="$$1" output="\1" dest="16"> + <expression noclean="1">"hdclearart":\s\[(.*?)\}\s*\]</expression> + </RegExp> + <RegExp input="$$16" output="<thumb aspect="clearart" preview="https://\1/preview/\2">https://\1/fanart/\2</thumb>" dest="13+"> + <expression repeat="yes" noclean="1">"id":\s"\d*",\s*"url":\s"https://([^/]*)/fanart/([^"]*)",\s*"lang":\s"$$18"</expression> + </RegExp> + <RegExp input="$$16" output="<thumb aspect="clearart" preview="https://\1/preview/\2">https://\1/fanart/\2</thumb>" dest="13+"> + <expression repeat="yes" noclean="1">"id":\s"\d*",\s*"url":\s"https://([^/]*)/fanart/([^"]*)",\s*"lang":\s"en"</expression> + </RegExp> + <RegExp input="$$16" output="<thumb aspect="clearart" preview="https://\1/preview/\2">https://\1/fanart/\2</thumb>" dest="13+"> + <expression repeat="yes" noclean="1">"id":\s"\d*",\s*"url":\s"https://([^/]*)/fanart/([^"]*)",\s*"lang":\s"!$$18|!en"</expression> + </RegExp> + <expression noclean="1" /> + </RegExp> + </ParseFanartTvTvShowClearart> + + <GetFanartTvTvShowFanartByIdChain dest="4"> + <RegExp input="$$5" output="<details>\1</details>" dest="4"> + <RegExp input="$$1" output="<url function="ParseFanartTvTvShowFanart" cache="fanarttv-\1.json">https://webservice.fanart.tv/v3/tv/\1?api_key=ed4b784f97227358b31ca4dd966a04f1</url>" dest="5"> + <expression /> + </RegExp> + <expression noclean="1" /> + </RegExp> + </GetFanartTvTvShowFanartByIdChain> + <ParseFanartTvTvShowFanart dest="5"> + <RegExp input="$$13" output="<details><fanart>\1</fanart></details>" dest="5"> + <RegExp input="" output="" dest="13"> + <expression /> + </RegExp> + <RegExp input="" output="" dest="16"> + <expression /> + </RegExp> + <RegExp input="$$1" output="\1" dest="16"> + <expression noclean="1">"showbackground":\s\[(.*?)\}\s*\]</expression> + </RegExp> + <RegExp input="$$16" output="<thumb preview="https://\1/preview/\2">https://\1/fanart/\2</thumb>" dest="13+"> + <expression repeat="yes" noclean="1">"id":\s"\d*",\s*"url":\s"https://([^/]*)/fanart/([^"]*)</expression> + </RegExp> + <expression noclean="1" /> + </RegExp> + </ParseFanartTvTvShowFanart> + + <GetFanartTvTvShowCharacterartByIdChain dest="4"> + <RegExp input="$$5" output="<details>\1</details>" dest="4"> + <RegExp input="$$1" output="<url function="ParseFanartTvTvShowCharacterart" cache="fanarttv-\1.json">https://webservice.fanart.tv/v3/tv/\1?api_key=ed4b784f97227358b31ca4dd966a04f1</url>" dest="5"> + <expression /> + </RegExp> + <expression noclean="1" /> + </RegExp> + </GetFanartTvTvShowCharacterartByIdChain> + <ParseFanartTvTvShowCharacterart dest="5"> + <RegExp input="$$13" output="<details>\1</details>" dest="5"> + <RegExp input="" output="" dest="13"> + <expression /> + </RegExp> + <RegExp input="" output="" dest="16"> + <expression /> + </RegExp> + <RegExp input="$$1" output="\1" dest="16"> + <expression noclean="1">"characterart":\s\[(.*?)\}\s*\]</expression> + </RegExp> + <RegExp input="$$16" output="<thumb aspect="characterart" preview="https://\1/preview/\2">https://\1/fanart/\2</thumb>" dest="13+"> <expression repeat="yes" noclean="1">"id":\s"\d*",\s*"url":\s"https://([^/]*)/fanart/([^"]*)</expression> </RegExp> <expression noclean="1" /> </RegExp> - </ParseFanartTvThumbs> - + </ParseFanartTvTvShowCharacterart> + + <GetFanartTvTvShowSeasonposterByIdChain clearbuffers="no" dest="4"> + <RegExp input="$$5" output="<details>\1</details>" dest="4"> + <RegExp input="$$1" output="\1" dest="18"> + <expression encode="1">.+::(.+)</expression> + </RegExp> + <RegExp input="$$1" output="<url function="ParseFanartTvTvShowSeasonposter" cache="fanarttv-\1.json">https://webservice.fanart.tv/v3/tv/\1?api_key=ed4b784f97227358b31ca4dd966a04f1</url>" dest="5"> + <expression encode="1">(.+)::.+</expression> + </RegExp> + <expression noclean="1" /> + </RegExp> + </GetFanartTvTvShowSeasonposterByIdChain> + <ParseFanartTvTvShowSeasonposter dest="5"> + <RegExp input="$$13" output="<details>\1</details>" dest="5"> + <RegExp input="" output="" dest="13"> + <expression /> + </RegExp> + <RegExp input="" output="" dest="16"> + <expression /> + </RegExp> + <RegExp input="$$1" output="\1" dest="16"> + <expression noclean="1">"seasonposter":\s\[(.*?)\}\s*\]</expression> + </RegExp> + <RegExp input="$$16" output="<thumb aspect="poster" type="season" season="\3" preview="https://\1/preview/\2">https://\1/fanart/\2</thumb>" dest="13+"> + <expression repeat="yes" noclean="1">"id":\s"\d*",\s*"url":\s"https://([^/]*)/fanart/([^"]*)",\s*"lang":\s"$$18",\s*"likes[^,]*,\s*"season":\s"([0-9,]+)</expression> + </RegExp> + <RegExp input="$$16" output="<thumb aspect="poster" type="season" season="\3" preview="https://\1/preview/\2">https://\1/fanart/\2</thumb>" dest="13+"> + <expression repeat="yes" noclean="1">"id":\s"\d*",\s*"url":\s"https://([^/]*)/fanart/([^"]*)",\s*"lang":\s"en",\s*"likes[^,]*,\s*"season":\s"([0-9,]+)</expression> + </RegExp> + <RegExp input="$$16" output="<thumb aspect="poster" type="season" season="\3" preview="https://\1/preview/\2">https://\1/fanart/\2</thumb>" dest="13+"> + <expression repeat="yes" noclean="1">"id":\s"\d*",\s*"url":\s"https://([^/]*)/fanart/([^"]*)",\s*"lang":\s"!$$18|!en",\s*"likes[^,]*,\s*"season":\s"([0-9,]+)</expression> + </RegExp> + <expression noclean="1" /> + </RegExp> + </ParseFanartTvTvShowSeasonposter> + + <GetFanartTvTvShowSeasonbannerByIdChain clearbuffers="no" dest="4"> + <RegExp input="$$5" output="<details>\1</details>" dest="4"> + <RegExp input="$$1" output="\1" dest="18"> + <expression encode="1">.+::(.+)</expression> + </RegExp> + <RegExp input="$$1" output="<url function="ParseFanartTvTvShowSeasonbanner" cache="fanarttv-\1.json">https://webservice.fanart.tv/v3/tv/\1?api_key=ed4b784f97227358b31ca4dd966a04f1</url>" dest="5"> + <expression encode="1">(.+)::.+</expression> + </RegExp> + <expression noclean="1" /> + </RegExp> + </GetFanartTvTvShowSeasonbannerByIdChain> + <ParseFanartTvTvShowSeasonbanner dest="5"> + <RegExp input="$$13" output="<details>\1</details>" dest="5"> + <RegExp input="" output="" dest="13"> + <expression /> + </RegExp> + <RegExp input="" output="" dest="16"> + <expression /> + </RegExp> + <RegExp input="$$1" output="\1" dest="16"> + <expression noclean="1">"seasonbanner":\s\[(.*?)\}\s*\]</expression> + </RegExp> + <RegExp input="$$16" output="<thumb aspect="banner" type="season" season="\3" preview="https://\1/preview/\2">https://\1/fanart/\2</thumb>" dest="13+"> + <expression repeat="yes" noclean="1">"id":\s"\d*",\s*"url":\s"https://([^/]*)/fanart/([^"]*)",\s*"lang":\s"$$18",\s*"likes[^,]*,\s*"season":\s"([0-9,]+)</expression> + </RegExp> + <RegExp input="$$16" output="<thumb aspect="banner" type="season" season="\3" preview="https://\1/preview/\2">https://\1/fanart/\2</thumb>" dest="13+"> + <expression repeat="yes" noclean="1">"id":\s"\d*",\s*"url":\s"https://([^/]*)/fanart/([^"]*)",\s*"lang":\s"en",\s*"likes[^,]*,\s*"season":\s"([0-9,]+)</expression> + </RegExp> + <RegExp input="$$16" output="<thumb aspect="banner" type="season" season="\3" preview="https://\1/preview/\2">https://\1/fanart/\2</thumb>" dest="13+"> + <expression repeat="yes" noclean="1">"id":\s"\d*",\s*"url":\s"https://([^/]*)/fanart/([^"]*)",\s*"lang":\s"!$$18|!en",\s*"likes[^,]*,\s*"season":\s"([0-9,]+)</expression> + </RegExp> + <expression noclean="1" /> + </RegExp> + </ParseFanartTvTvShowSeasonbanner> + + <GetFanartTvTvShowSeasonLandscapeByIdChain clearbuffers="no" dest="4"> + <RegExp input="$$5" output="<details>\1</details>" dest="4"> + <RegExp input="$$1" output="\1" dest="18"> + <expression encode="1">.+::(.+)</expression> + </RegExp> + <RegExp input="$$1" output="<url function="ParseFanartTvTvShowSeasonLandscape" cache="fanarttv-\1.json">https://webservice.fanart.tv/v3/tv/\1?api_key=ed4b784f97227358b31ca4dd966a04f1</url>" dest="5"> + <expression encode="1">(.+)::.+</expression> + </RegExp> + <expression noclean="1" /> + </RegExp> + </GetFanartTvTvShowSeasonLandscapeByIdChain> + <ParseFanartTvTvShowSeasonLandscape dest="5"> + <RegExp input="$$13" output="<details>\1</details>" dest="5"> + <RegExp input="" output="" dest="13"> + <expression /> + </RegExp> + <RegExp input="" output="" dest="16"> + <expression /> + </RegExp> + <RegExp input="$$1" output="\1" dest="16"> + <expression noclean="1">"seasonthumb":\s\[(.*?)\}\s*\]</expression> + </RegExp> + <RegExp input="$$16" output="<thumb aspect="landscape" type="season" season="\3" preview="https://\1/preview/\2">https://\1/fanart/\2</thumb>" dest="13+"> + <expression repeat="yes" noclean="1">"id":\s"\d*",\s*"url":\s"https://([^/]*)/fanart/([^"]*)",\s*"lang":\s"$$18",\s*"likes[^,]*,\s*"season":\s"([0-9,]+)</expression> + </RegExp> + <RegExp input="$$16" output="<thumb aspect="landscape" type="season" season="\3" preview="https://\1/preview/\2">https://\1/fanart/\2</thumb>" dest="13+"> + <expression repeat="yes" noclean="1">"id":\s"\d*",\s*"url":\s"https://([^/]*)/fanart/([^"]*)",\s*"lang":\s"en",\s*"likes[^,]*,\s*"season":\s"([0-9,]+)</expression> + </RegExp> + <RegExp input="$$16" output="<thumb aspect="landscape" type="season" season="\3" preview="https://\1/preview/\2">https://\1/fanart/\2</thumb>" dest="13+"> + <expression repeat="yes" noclean="1">"id":\s"\d*",\s*"url":\s"https://([^/]*)/fanart/([^"]*)",\s*"lang":\s"!$$18|!en",\s*"likes[^,]*,\s*"season":\s"([0-9,]+)</expression> + </RegExp> + <expression noclean="1" /> + </RegExp> + </ParseFanartTvTvShowSeasonLandscape> + </scraperfunctions> diff --git a/addons/metadata.common.imdb.com/addon.xml b/addons/metadata.common.imdb.com/addon.xml index b5763c2f0c..2391d124af 100644 --- a/addons/metadata.common.imdb.com/addon.xml +++ b/addons/metadata.common.imdb.com/addon.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <addon id="metadata.common.imdb.com" name="IMDB Scraper Library" - version="2.9.3" + version="3.1.0" provider-name="Team Kodi"> <requires> <import addon="xbmc.metadata" version="2.1.0"/> diff --git a/addons/metadata.common.imdb.com/changelog.txt b/addons/metadata.common.imdb.com/changelog.txt index b4543c7c86..be2a0c4eda 100644 --- a/addons/metadata.common.imdb.com/changelog.txt +++ b/addons/metadata.common.imdb.com/changelog.txt @@ -1,3 +1,51 @@ +[B]3.1.0[/B] +- fixed: re-write most regular expressions following IMDb site layout changes + +[B]3.0.8[/B] +- changed: another change to IMDb outline + +[B]3.0.7[/B] +- changed: removed one of the IMDb outline catch + +[B]3.0.6[/B] +- fixed: try to limit world wide English to over ride proper USA title + +[B]3.0.5[/B] +- fixed: IMDb cast and outline following IMDb layout changes + +[B]3.0.4[/B] +- fixed: IMDb plot after IMDb layout changes + +[B]3.0.3[/B] +- fixed: World-wide English title won't scraped correctly + +[B]3.0.2[/B] +- Use TV certification in the absence of MPAA ones + +[B]3.0.1[/B] +- fixed: USA Title won't scraped correctly under some circumstances, plot outline quirks, IMDB Posters + +[B]3.0.0[/B] +- fixed: IMDb plot outline under some circumstances + +[B]2.9.9[/B] +- fixed: Thumb for IMDb cast + +[B]2.9.8[/B] +- fixed: IMDb outline for some movies + +[B]2.9.7[/B] +- changed: attempt to scrape generic local title from IMDb if multiple are available + +[B]2.9.6[/B] +- fixed: movie title issues after IMDb layout changes + +[B]2.9.5[/B] +- fixed: IMDb Full credits after IMDb layout changes + +[B]2.9.4[/B] +- fixed: USA certification rating due to IMDb changes + [B]2.9.3[/B] - fixed: always get USA rating regardless of the country set @@ -55,7 +103,7 @@ - fixed: MetaCritic Score [B]2.7.3[/B] -- fixed: orginal title won't scrape in some cases +- fixed: original title won't scrape in some cases [B]2.7.2[/B] - changed: make sure to parse the intended page @@ -115,7 +163,7 @@ - fixed: fetching directors and writers due to site changes [B]2.1.3[/B] -- fixed: make sure IMDb rating is geting fetched in every region +- fixed: make sure IMDb rating is getting fetched in every region [B]2.1.2[/B] - fixed: IMDb rating after another site change @@ -145,10 +193,10 @@ - reverted: fixchars removed from cast parsing, leads to Dharma Beta2 hanging, will be added back once next Beta is out [B]2.0.2[/B] -- fixed: some more cast won't get scraped under certain circumtances +- fixed: some more cast won't get scraped under certain circumstances [B]2.0.1[/B] -- fixed: cast won't get scraped under certain circumtances +- fixed: cast won't get scraped under certain circumstances [B]2.0.0[/B] - changed: adapted new IMDb layout diff --git a/addons/metadata.common.imdb.com/imdb.xml b/addons/metadata.common.imdb.com/imdb.xml index b5a5b35efb..0797bad7a1 100644 --- a/addons/metadata.common.imdb.com/imdb.xml +++ b/addons/metadata.common.imdb.com/imdb.xml @@ -1,7 +1,7 @@ -<?xml version="1.0" encoding="UTF-8"?> +<?xml version="1.0" encoding="UTF-8"?> <scraperfunctions> <GetIMDBGenresById dest="5"> - <RegExp input="$$1" output="<details><url cache="$$1-main.html" function="ParseIMDBGenres">http://akas.imdb.com/title/$$1/|accept-language=en-us</url></details>" dest="5"> + <RegExp input="$$1" output="<details><url cache="$$1-main.html" function="ParseIMDBGenres">http://www.imdb.com/title/$$1/|accept-language=en-us</url></details>" dest="5"> <expression noclean="1" /> </RegExp> </GetIMDBGenresById> @@ -15,21 +15,21 @@ </ParseIMDBGenres> <GetIMDBRatingById dest="5"> <!-- Compatibility function for Pre-Krypton versions--> - <RegExp input="$$1" output="<details><url cache="$$1-main.html" function="ParseIMDBRating">http://akas.imdb.com/title/$$1/|accept-language=en-us</url></details>" dest="5"> + <RegExp input="$$1" output="<details><url cache="$$1-main.html" function="ParseIMDBRating">http://www.imdb.com/title/$$1/|accept-language=en-us</url></details>" dest="5"> <expression noclean="1" /> </RegExp> </GetIMDBRatingById> <ParseIMDBRating dest="5"> <RegExp input="$$2" output="<details>\1</details>" dest="5"> - <RegExp input="$$1" output="<rating>\1</rating><votes>\2</votes>" dest="2"> - <expression><span\sitemprop="ratingValue">([0-9.]+).*?ratingCount">([0-9,]+)<</expression> + <RegExp input="$$1" output="<rating>\2</rating><votes>\1</votes>" dest="2"> + <expression>"ratingCount":\s([0-9,]+),\s*"bestRating":\s"[^"]*",\s*"worstRating":\s"[^"]*",\s*"ratingValue":\s"([0-9.]+)</expression> </RegExp> <expression noclean="1" /> </RegExp> </ParseIMDBRating> <GetIMDBRatingsById dest="5" clearbuffers="no"> - <RegExp input="$$1" output="<details><url cache="\1-main.html" function="ParseIMDBRatings">http://akas.imdb.com/title/\1/|accept-language=en-us</url></details>" dest="5"> + <RegExp input="$$1" output="<details><url cache="\1-main.html" function="ParseIMDBRatings">http://www.imdb.com/title/\1/|accept-language=en-us</url></details>" dest="5"> <expression noclean="1">^(tt\d+)</expression> </RegExp> <RegExp input="$$1" output="default="true"" dest="3"> @@ -38,15 +38,15 @@ </GetIMDBRatingsById> <ParseIMDBRatings dest="5"> <RegExp input="$$2" output="<details>\1</details>" dest="5"> - <RegExp input="$$1" output="<ratings><rating name="imdb" $$3><value>\1</value><votes>\2</votes></rating></ratings>" dest="2"> - <expression><span\sitemprop="ratingValue">([0-9.]+).*?ratingCount">([0-9,]+)<</expression> + <RegExp input="$$1" output="<ratings><rating name="imdb" $$3><value>\2</value><votes>\1</votes></rating></ratings>" dest="2"> + <expression>"ratingCount":\s([0-9,]+),\s*"bestRating":\s"[^"]*",\s*"worstRating":\s"[^"]*",\s*"ratingValue":\s"([0-9.]+)</expression> </RegExp> <expression noclean="1" /> </RegExp> </ParseIMDBRatings> <GetIMDBTOP250ById dest="5"> - <RegExp input="$$1" output="<details><url cache="$$1-main.html" function="ParseIMDBTOP250">http://akas.imdb.com/title/$$1/|accept-language=en-us</url></details>" dest="5"> + <RegExp input="$$1" output="<details><url cache="$$1-main.html" function="ParseIMDBTOP250">http://www.imdb.com/title/$$1/|accept-language=en-us</url></details>" dest="5"> <expression noclean="1" /> </RegExp> </GetIMDBTOP250ById> @@ -60,21 +60,21 @@ </ParseIMDBTOP250> <GetIMDBStudioById dest="5"> - <RegExp input="$$1" output="<details><url cache="$$1-main.html" function="ParseIMDBStudio">http://akas.imdb.com/title/$$1/|accept-language=en-us</url></details>" dest="5"> + <RegExp input="$$1" output="<details><url cache="$$1-main.html" function="ParseIMDBStudio">http://www.imdb.com/title/$$1/|accept-language=en-us</url></details>" dest="5"> <expression noclean="1" /> </RegExp> </GetIMDBStudioById> <ParseIMDBStudio dest="5"> <RegExp input="$$2" output="<details>\1</details>" dest="5"> <RegExp input="$$1" output="<studio>\1</studio>" dest="2"> - <expression>"/company/[^>]+>[^<]*<[^>]*>([^<]+)</span></expression> + <expression>"/company/[^"]+"\s*>([^<]+)</a></expression> </RegExp> <expression noclean="1" /> </RegExp> </ParseIMDBStudio> <GetIMDBCountryById dest="5"> - <RegExp input="$$1" output="<details><url cache="$$1-main.html" function="ParseIMDBCountry">http://akas.imdb.com/title/$$1/|accept-language=en-us</url></details>" dest="5"> + <RegExp input="$$1" output="<details><url cache="$$1-main.html" function="ParseIMDBCountry">http://www.imdb.com/title/$$1/|accept-language=en-us</url></details>" dest="5"> <expression noclean="1" /> </RegExp> </GetIMDBCountryById> @@ -84,34 +84,34 @@ <expression clear="yes" noclean="1">Country:[^>]+>(.*?)</div></expression> </RegExp> <RegExp input="$$6" output="<country>\1</country>" dest="2"> - <expression repeat="yes">itemprop='url'>([^<]+)</expression> + <expression repeat="yes">>([^<]+)</a></expression> </RegExp> <expression noclean="1" /> </RegExp> </ParseIMDBCountry> <GetMetaCriticRatingById dest="5"> <!-- Compatibility function for Pre-Krypton versions--> - <RegExp input="$$1" output="<details><url cache="$$1-criticreviews.html" function="ParseMetaCriticRating">http://akas.imdb.com/title/$$1/criticreviews|accept-language=en-us</url></details>" dest="5"> + <RegExp input="$$1" output="<details><url cache="$$1-criticreviews.html" function="ParseMetaCriticRating">http://www.imdb.com/title/$$1/criticreviews|accept-language=en-us</url></details>" dest="5"> <expression noclean="1" /> </RegExp> </GetMetaCriticRatingById> <ParseMetaCriticRating dest="5"> <RegExp input="$$2" output="<details>\1</details>" dest="5"> <RegExp input="$$1" output="\1" dest="6"> - <expression noclean="1">(<div class="metascore_block".*)</expression> + <expression clear="yes" noclean="1"><div\sclass="metacriticScore\sscore_mixed\stitleReviewBarSubItem"(.*?)<span\sclass="ghostText"</expression> </RegExp> <RegExp input="$$6" output="<rating max="100">\1</value>" dest="2"> - <expression clear="yes"><span itemprop="ratingValue">(\d+)</span></expression> + <expression clear="yes"><span>(\d+)</span></expression> </RegExp> <RegExp input="$$6" output="<votes>\1</votes>" dest="2+"> - <expression><span itemprop="ratingCount">(\d+)</span></expression> + <expression>>(\d+)\suser</a></expression> </RegExp> <expression noclean="1" /> </RegExp> </ParseMetaCriticRating> <GetMetaCriticRatingsById dest="5" clearbuffers="no"> - <RegExp input="$$1" output="<details><url cache="\1-criticreviews.html" function="ParseMetaCriticRatings">http://akas.imdb.com/title/\1/criticreviews|accept-language=en-us</url></details>" dest="5"> + <RegExp input="$$1" output="<details><url cache="\1-criticreviews.html" function="ParseMetaCriticRatings">http://www.imdb.com/title/\1/criticreviews|accept-language=en-us</url></details>" dest="5"> <expression noclean="1">(tt\d+)</expression> </RegExp> <RegExp input="$$1" output="default="true"" dest="3"> @@ -122,13 +122,13 @@ <RegExp input="$$2" output="<details>\1</details>" dest="5"> <RegExp input="$$4" output="<ratings><rating name="metacritic" max="100" $$3>\1</rating></ratings>" dest="2"> <RegExp input="$$1" output="\1" dest="6"> - <expression clear="yes" noclean="1">(<div class="metascore_block".*)</expression> + <expression clear="yes" noclean="1"><div\sclass="metacriticScore\sscore_mixed\stitleReviewBarSubItem"(.*?)<span\sclass="ghostText"</expression> </RegExp> <RegExp input="$$6" output="<value>\1</value>" dest="4"> - <expression clear="yes"><span itemprop="ratingValue">(\d+)</span></expression> + <expression clear="yes"><span>(\d+)</span></expression> </RegExp> <RegExp input="$$6" output="<votes>\1</votes>" dest="4+"> - <expression><span itemprop="ratingCount">(\d+)</span></expression> + <expression>>(\d+)\suser</a></expression> </RegExp> <expression noclean="1" clear="yes"/> </RegExp> @@ -137,21 +137,21 @@ </ParseMetaCriticRatings> <GetIMDBPlotById dest="5"> - <RegExp input="$$1" output="<details><url cache="$$1-main.html" function="ParseIMDBPlot">http://akas.imdb.com/title/$$1/|accept-language=en-us</url></details>" dest="5"> + <RegExp input="$$1" output="<details><url cache="$$1-main.html" function="ParseIMDBPlot">http://www.imdb.com/title/$$1/|accept-language=en-us</url></details>" dest="5"> <expression noclean="1" /> </RegExp> </GetIMDBPlotById> <ParseIMDBPlot dest="5"> <RegExp input="$$2" output="<details>\1</details>" dest="5"> <RegExp input="$$1" output="<plot>\1</plot>" dest="2"> - <expression fixchars="1" trim="1"><h2>Storyline</h2>\s+<div\sclass="inline\scanwrap"\sitemprop="description">\s+<p>(.*?)<[^a/]</expression> + <expression fixchars="1" trim="1"><h2>Storyline</h2>\s+<div\sclass="inline\scanwrap">\s+<p>\s+<span>(.*?)</span></expression> </RegExp> <expression noclean="1" /> </RegExp> </ParseIMDBPlot> <GetIMDBTaglineById dest="5"> - <RegExp input="$$1" output="<details><url cache="$$1-main.html" function="ParseIMDBTagline">http://akas.imdb.com/title/$$1/|accept-language=en-us</url></details>" dest="5"> + <RegExp input="$$1" output="<details><url cache="$$1-main.html" function="ParseIMDBTagline">http://www.imdb.com/title/$$1/|accept-language=en-us</url></details>" dest="5"> <expression noclean="1" /> </RegExp> </GetIMDBTaglineById> @@ -165,38 +165,47 @@ </ParseIMDBTagline> <GetIMDBOutlineById dest="5"> - <RegExp input="$$1" output="<details><url cache="$$1-main.html" function="ParseIMDBOutline">http://akas.imdb.com/title/$$1/|accept-language=en-us</url></details>" dest="5"> + <RegExp input="$$1" output="<details><url cache="$$1-main.html" function="ParseIMDBOutline">http://www.imdb.com/title/$$1/|accept-language=en-us</url></details>" dest="5"> <expression noclean="1" /> </RegExp> </GetIMDBOutlineById> <ParseIMDBOutline dest="5"> <RegExp input="$$2" output="<details>\1</details>" dest="5"> <RegExp input="$$1" output="<outline>\1</outline>" dest="2"> - <expression fixchars="1" trim="1">itemprop="description">(.+?)</div></expression> + <expression fixchars="1" trim="1"><div class="summary_text">(.+?)<div\sclass</expression> </RegExp> <RegExp input="$$1" output="<outline>\1</outline>" dest="2"> - <expression fixchars="1" trim="1">itemprop="description">(.+?)See\sfull\ssummary</expression> + <expression fixchars="1" trim="1"><div class="summary_text">(.+?)<a\shref="(.+?)=tt_ov_pl"</expression> + </RegExp> + <RegExp input="$$1" output="<outline>\1</outline>" dest="2"> + <expression fixchars="1" trim="1"><div class="summary_text">(.+?)<a\shref="[^"]*"\s*>Add\sa\sPlot</expression> </RegExp> <expression noclean="1" /> </RegExp> </ParseIMDBOutline> <GetIMDBOutlineToPlotById dest="5"> - <RegExp input="$$1" output="<details><url cache="$$1-main.html" function="ParseIMDBOutlineToPlot">http://akas.imdb.com/title/$$1/|accept-language=en-us</url></details>" dest="5"> + <RegExp input="$$1" output="<details><url cache="$$1-main.html" function="ParseIMDBOutlineToPlot">http://www.imdb.com/title/$$1/|accept-language=en-us</url></details>" dest="5"> <expression noclean="1" /> </RegExp> </GetIMDBOutlineToPlotById> <ParseIMDBOutlineToPlot dest="5"> <RegExp input="$$2" output="<details>\1</details>" dest="5"> - <RegExp input="$$1" output="<plot>\1</plot>" dest="2"> - <expression fixchars="1" trim="1">itemprop="description">([^<]+)<</expression> + <RegExp input="$$1" output="<outline>\1</outline>" dest="2"> + <expression fixchars="1" trim="1"><div class="summary_text">(.+?)<div\sclass</expression> + </RegExp> + <RegExp input="$$1" output="<outline>\1</outline>" dest="2"> + <expression fixchars="1" trim="1"><div class="summary_text">(.+?)<a\shref="(.+?)=tt_ov_pl"</expression> + </RegExp> + <RegExp input="$$1" output="<outline>\1</outline>" dest="2"> + <expression fixchars="1" trim="1"><div class="summary_text">(.+?)<a\shref="[^"]*"\s*>Add\sa\sPlot</expression> </RegExp> <expression noclean="1" /> </RegExp> </ParseIMDBOutlineToPlot> <GetIMDBCastById dest="5"> - <RegExp input="$$1" output="<details><url cache="$$1-main.html" function="ParseIMDBCast">http://akas.imdb.com/title/$$1/|accept-language=en-us</url></details>" dest="5"> + <RegExp input="$$1" output="<details><url cache="$$1-main.html" function="ParseIMDBCast">http://www.imdb.com/title/$$1/|accept-language=en-us</url></details>" dest="5"> <expression noclean="1" /> </RegExp> </GetIMDBCastById> @@ -206,10 +215,10 @@ <expression noclean="1"><table\sclass="cast_list">(.*?)</table></expression> </RegExp> <RegExp input="$$6" output="<actor><thumb>\2\3SX1024_SY1024_.jpg</thumb><name>\1</name><role>\5</role></actor>" dest="7"> - <expression repeat="yes" clear="yes" trim="3,4" noclean="1,2"><img[^a]*alt="([^"]*)"[^"]*"[^"]*"[^s]*src="(?:[^"]*\.[^"]*"class="loadlate\shidden\s"\sloadlate="([^"]*)(_V._))[^>]*.*?ter">[^>]*>\n\s*(<[^>]*>)?([^<\(]*)?</expression> + <expression repeat="yes" clear="yes" trim="3,4" noclean="1,2"><img[^a]*alt="([^"]*)"[^"]*"[^"]*"[^s]*src="(?:[^"]*\.[^"]*"\sclass="loadlate\shidden\s"\sloadlate="([^"]*)(_V..?_))[^>]*.*?ter">[^>]*>(<[^>]*>)?([^<\(]*)?</expression> </RegExp> <RegExp input="$$6" output="<actor><thumb></thumb><name>\1</name><role>\3</role></actor>" dest="7+"> - <expression repeat="yes" trim="1,2,3" fixchars="3" noclean="1,2"><img[^a]*alt="([^"]*)"[^"]*"[^"]*"[^s]*src="(?:[^"]*\.[^"]*\.png)"\sclass=".*?"\s/>*.*?ter">[^>]*>\n\s*(<[^>]*>)?([^<\(]*)?</expression> + <expression repeat="yes" trim="1,2,3" fixchars="3" noclean="1,2"><img[^a]*alt="([^"]*)"[^"]*"[^"]*"[^s]*src="(?:[^"]*\.[^"]*\.png)"\sclass=".*?"\s/>*.*?ter">[^>]*>(<[^>]*>)?([^<\(]*)?</expression> </RegExp> <RegExp input="$$7" output="<actor><thumb>\1</thumb>\2</actor>" dest="2+"> <expression repeat="yes" clear="yes" noclean="1,2,3"><actor><thumb>(?:(http.*?)|_SX[0-9]+_SY[0-9]+_)?</thumb>(.*?)</actor></expression> @@ -219,7 +228,7 @@ </ParseIMDBCast> <GetIMDBDirectorsById dest="5"> - <RegExp input="$$1" output="<details><url cache="$$1-main.html" function="ParseIMDBDirectors">http://akas.imdb.com/title/$$1/|accept-language=en-us</url></details>" dest="5"> + <RegExp input="$$1" output="<details><url cache="$$1-main.html" function="ParseIMDBDirectors">http://www.imdb.com/title/$$1/|accept-language=en-us</url></details>" dest="5"> <expression noclean="1" /> </RegExp> </GetIMDBDirectorsById> @@ -229,14 +238,14 @@ <expression clear="yes" noclean="1">Director(?:s)?:.*?</h4>(.*?)<div class</expression> </RegExp> <RegExp input="$$6" output="<director>\1</director>" dest="2"> - <expression repeat="yes" fixchars="1" clear="yes">href="/name[^>]*>[^<]*<[^>]*>([^<]*)<</expression> + <expression repeat="yes" fixchars="yes" clear="yes">href="/name[^>]*>([^<]*)</expression> </RegExp> <expression noclean="1" /> </RegExp> </ParseIMDBDirectors> <GetIMDBWritersById dest="5"> - <RegExp input="$$1" output="<details><url cache="$$1-main.html" function="ParseIMDBWriters">http://akas.imdb.com/title/$$1/|accept-language=en-us</url></details>" dest="5"> + <RegExp input="$$1" output="<details><url cache="$$1-main.html" function="ParseIMDBWriters">http://www.imdb.com/title/$$1/|accept-language=en-us</url></details>" dest="5"> <expression noclean="1" /> </RegExp> </GetIMDBWritersById> @@ -246,41 +255,44 @@ <expression clear="yes" noclean="1">Writer(?:s)?:.*?</h4>(.*?)<div class</expression> </RegExp> <RegExp input="$$6" output="<credits>\1</credits>" dest="2"> - <expression repeat="yes" fixchars="1" clear="yes">href="/name[^>]*>[^<]*<[^>]*>([^<]*)<</expression> + <expression repeat="yes" fixchars="yes" clear="yes">href="/name[^>]*>([^<]*)</expression> </RegExp> <expression noclean="1" /> </RegExp> </ParseIMDBWriters> <GetIMDBFullCastById dest="5"> - <RegExp input="$$1" output="<details><url cache="$$1-combined.html" function="ParseIMDBFullCast">http://akas.imdb.com/title/$$1/combined|accept-language=en-us</url></details>" dest="5"> + <RegExp input="$$1" output="<details><url cache="$$1-reference.html" function="ParseIMDBFullCast">http://www.imdb.com/title/$$1/reference|accept-language=en-us</url></details>" dest="5"> <expression noclean="1" /> </RegExp> </GetIMDBFullCastById> <ParseIMDBFullCast dest="5"> <RegExp input="$$2" output="<details>\1</details>" dest="5"> <RegExp input="$$1" output="\1" dest="6"> - <expression noclean="1"><table class="cast">(.*?)</table></expression> + <expression noclean="1"><table\sclass="cast_list">(.*?)</table></expression> </RegExp> - <RegExp input="$$6" output="<actor><thumb>\1_SX1024_SY1024_\2</thumb><name>\3</name><role>\5</role></actor>" dest="7"> - <expression repeat="yes" clear="yes" fixchars="3,5" trim="3,5" noclean="1,2"><img src="(?:([^"]*\.)[^"]*(\.jpg))?[^>]*[^"]*"nm"><a href="[^"]*[^>]*>([^<]*)<[^"]*"ddd">([^<]<)?[^"]*"char">(.*?)</td></expression> + <RegExp input="$$6" output="<actor><thumb>\2\3SX1024_SY1024_.jpg</thumb><name>\1</name><role>\5</role></actor>" dest="7"> + <expression repeat="yes" clear="yes" trim="3,4" noclean="1,2"><img[^a]*alt="([^"]*)"[^"]*"[^"]*"[^s]*src="(?:[^"]*\.[^"]*"\sclass="loadlate\shidden\s"\sloadlate="([^"]*)(_V..?_))[^>]*.*?ter">[^>]*>\n\s*(<[^>]*>)?([^<\(]*)?</expression> + </RegExp> + <RegExp input="$$6" output="<actor><thumb></thumb><name>\1</name><role>\3</role></actor>" dest="7+"> + <expression repeat="yes" trim="1,2,3" fixchars="3" noclean="1,2"><img[^a]*alt="([^"]*)"[^"]*"[^"]*"[^s]*src="(?:[^"]*\.[^"]*\.png)"\sclass=".*?"\s/>*.*?ter">[^>]*>\n\s*(<[^>]*>)?([^<\(]*)?</expression> </RegExp> <RegExp input="$$7" output="<actor><thumb>\1</thumb>\2</actor>" dest="2+"> - <expression repeat="yes" clear="yes" noclean="1,2,3"><actor><thumb>(?:(http.*?)|_SX[0-9]+_SY[0-9]+_)</thumb>(.*?)</actor></expression> + <expression repeat="yes" clear="yes" noclean="1,2,3"><actor><thumb>(?:(http.*?)|_SX[0-9]+_SY[0-9]+_)?</thumb>(.*?)</actor></expression> </RegExp> <expression noclean="1" /> </RegExp> </ParseIMDBFullCast> <GetIMDBFullDirectorsById dest="5"> - <RegExp input="$$1" output="<details><url cache="$$1-combined.html" function="ParseIMDBFullDirectors">http://akas.imdb.com/title/$$1/combined|accept-language=en-us</url></details>" dest="5"> + <RegExp input="$$1" output="<details><url cache="$$1-reference.html" function="ParseIMDBFullDirectors">http://www.imdb.com/title/$$1/reference|accept-language=en-us</url></details>" dest="5"> <expression noclean="1" /> </RegExp> </GetIMDBFullDirectorsById> <ParseIMDBFullDirectors dest="5"> <RegExp input="$$2" output="<details>\1</details>" dest="5"> <RegExp input="$$1" output="\1" dest="6"> - <expression clear="yes" noclean="1">Director(?:s)?:.*?</h5>[^>]*>(.*?)</div</expression> + <expression clear="yes" noclean="1">Director(?:s)?:.*?ipl-inline-list[^>]*>(.*?)</div</expression> </RegExp> <RegExp input="$$6" output="<director>\1</director>" dest="2"> <expression repeat="yes" fixchars="1"><a href="/name/[^>]*>([^<]*)<</expression> @@ -290,14 +302,14 @@ </ParseIMDBFullDirectors> <GetIMDBFullWritersById dest="5"> - <RegExp input="$$1" output="<details><url cache="$$1-combined.html" function="ParseIMDBFullWriters">http://akas.imdb.com/title/$$1/combined|accept-language=en-us</url></details>" dest="5"> + <RegExp input="$$1" output="<details><url cache="$$1-reference.html" function="ParseIMDBFullWriters">http://www.imdb.com/title/$$1/reference|accept-language=en-us</url></details>" dest="5"> <expression noclean="1" /> </RegExp> </GetIMDBFullWritersById> <ParseIMDBFullWriters dest="5"> <RegExp input="$$2" output="<details>\1</details>" dest="5"> <RegExp input="$$1" output="\1" dest="6"> - <expression noclean="1">Writing\scredits(.*?)name="</expression> + <expression noclean="1">Writer(?:s)?:.*?ipl-inline-list[^>]*>(.*?)</div</expression> </RegExp> <RegExp input="$$6" output="<credits>\1</credits>" dest="2"> <expression repeat="yes" fixchars="1"><a href="/name/[^>]*>([^<]*)<</expression> @@ -307,30 +319,30 @@ </ParseIMDBFullWriters> <GetIMDBThumbsById dest="5"> - <RegExp input="$$1" output="<details><url cache="$$1-posters.html" function="ParseIMDBThumbs">http://akas.imdb.com/title/$$1/posters|accept-language=en-us</url></details>" dest="5"> + <RegExp input="$$1" output="<details><url cache="$$1-main.html" function="ParseIMDBThumbs">http://www.imdb.com/title/$$1/|accept-language=en-us</url></details>" dest="5"> <expression noclean="1" /> </RegExp> </GetIMDBThumbsById> <ParseIMDBThumbs dest="5"> <RegExp input="$$6" output="<details>\1</details>" dest="5"> - <RegExp input="$$1" output="\1_SX1024_SY1024_\2" dest="4"> - <expression noclean="1,2"><a\sname="poster".*?src="(.*?)_S.*?(.jpg)".*?</a></expression> - </RegExp> - <RegExp input="$$4" output="<thumb aspect="poster">\1</thumb>" dest="6"> - <expression noclean="1">(.*?_SX[0-9]+_SY[0-9]+_.jpg)</expression> + <RegExp input="$$1" output="<thumb aspect="poster">\1\2.jpg</thumb>" dest="6"> + <expression noclean="1">Poster"\s*src="(.*?)(_V._)</expression> </RegExp> <expression noclean="1" /> </RegExp> </ParseIMDBThumbs> <GetIMDBUSACert dest="5"> - <RegExp input="$$1" output="<details><url cache="$$1-combined.html" function="ParseIMDBUSACert">http://akas.imdb.com/title/$$1/combined|accept-language=en-us</url></details>" dest="5"> + <RegExp input="$$1" output="<details><url cache="$$1-reference.html" function="ParseIMDBUSACert">http://www.imdb.com/title/$$1/reference|accept-language=en-us</url></details>" dest="5"> <expression noclean="1" /> </RegExp> </GetIMDBUSACert> <ParseIMDBUSACert dest="5"> <RegExp input="$$1" output="<details><mpaa>$INFO[certprefix]\1</mpaa></details>" dest="5"> - <expression>>\s*USA:(P?G|PG-13|R|NC-17)</a></expression> + <expression>>\s*United\sStates:(TV-(Y7?|P?G|14|MA))</a></expression> + </RegExp> + <RegExp input="$$1" output="<details><mpaa>$INFO[certprefix]\1</mpaa></details>" dest="5"> + <expression>>\s*United\sStates:(P?G|PG-13|R|NC-17)</a></expression> </RegExp> <RegExp input="$$1" output="<details><mpaa>$INFO[certprefix]\1</mpaa></details>" dest="5"> <expression>MPAA</a>:</h5><div\sclass="info-content">Rated\s(P?G|PG-13|R|NC-17)</expression> @@ -338,14 +350,14 @@ </ParseIMDBUSACert> <GetIMDBCountryCert dest="5"> - <RegExp input="$$1" output="<details><url cache="$$1-combined.html" function="ParseIMDBCountryCert">http://akas.imdb.com/title/$$1/combined|accept-language=en-us</url></details>" dest="5"> + <RegExp input="$$1" output="<details><url cache="$$1-reference.html" function="ParseIMDBCountryCert">http://www.imdb.com/title/$$1/reference|accept-language=en-us</url></details>" dest="5"> <expression noclean="1" /> </RegExp> <RegExp input="$INFO[imdbcertcountry]" output="$$2" dest="5"> - <RegExp input="$$1" output="<details><url cache="$$1-combined.html" function="ParseIMDBUSACert">http://akas.imdb.com/title/$$1/combined|accept-language=en-us</url></details>" dest="2"> + <RegExp input="$$1" output="<details><url cache="$$1-reference.html" function="ParseIMDBUSACert">http://www.imdb.com/title/$$1/reference|accept-language=en-us</url></details>" dest="2"> <expression noclean="1"/> </RegExp> - <expression>USA</expression> + <expression>United States</expression> </RegExp> </GetIMDBCountryCert> <ParseIMDBCountryCert dest="5"> @@ -355,81 +367,57 @@ </ParseIMDBCountryCert> <GetIMDBAKATitlesById dest="5"> - <RegExp input="$$1" output="<details><url cache="$$1-combined.html" function="ParseIMDBAKATitles">http://akas.imdb.com/title/$$1/combined|accept-language=en-us</url></details>" dest="5"> + <RegExp input="$$1" output="<details><url cache="$$1-releaseinfo.html" function="ParseIMDBAKATitles">http://www.imdb.com/title/$$1/releaseinfo|accept-language=en-us</url></details>" dest="5"> <expression noclean="1" /> </RegExp> </GetIMDBAKATitlesById> <ParseIMDBAKATitles dest="5"> <RegExp input="$$2" output="<details><title>\1</title></details>" dest="5"> - <RegExp input="$$1" output="\1" dest="2"> - <expression fixchars="1"><h1>([^<]*)</expression> + <RegExp input="$$1" output="\2" dest="2"> + <expression>'og:title'\scontent="(IMDb\s-\s)?(?:&#x22;)?([^"]*?)(?:&#x22;)? \([^\(]*?([0-9]{4})(?:–\s)?\)</expression> </RegExp> <RegExp input="$$10" output="\1" dest="4"> - <RegExp input="$$1" output="\2" dest="9"> - <expression fixchars="2"><meta\sname="title"\scontent="(IMDb\s-\s)?(?:&#x22;)?([^"]*?)(?:&#x22;)? \([^\(]*?([0-9]{4})(?:–\s)?\)</expression> + <RegExp input="$$1" output="\1" dest="9"> + <expression><td>\(original\stitle\)[^>]+>[^>]+>([^<]+)</expression> </RegExp> <RegExp input="$$1" output="\1" dest="9"> - <expression fixchars="1">class="originalTitle">([^<]*)</expression> + <expression>class="originalTitle">([^<]*)</expression> </RegExp> <RegExp input="$$9" output="\1" dest="10"> <expression /> </RegExp> <RegExp input="$$1" output="\1" dest="11"> - <expression fixchars="1" clear="yes">>\s*?"([^<]+)"[^<]+[<em>]?[^"]+Hong Kong\s[<em>][^"]+English</expression> - </RegExp> - <RegExp input="$$11" output="\1" dest="10"> - <expression>(.+)</expression> - </RegExp> - <RegExp input="$$1" output="\1" dest="11"> - <expression fixchars="1" clear="yes">>\s*?"([^<]+)"[^<]+[<em>]?[^"]+((Canada)\s(<em>)?\((English|imdb))</expression> - </RegExp> - <RegExp input="$$11" output="\1" dest="10"> - <expression>(.+)</expression> - </RegExp> - <RegExp input="$$1" output="\1" dest="11"> - <expression fixchars="1" clear="yes">>\s*?"([^<]+)"[^<]+[<em>]?[^"]+(UK(<em>)?<br>)</expression> + <expression>'og:title'\scontent="(IMDb\s-\s)?(?:&#x22;)?([^"]*?)(?:&#x22;)? \([^\(]*?([0-9]{4})(?:–\s)?\)</expression> </RegExp> <RegExp input="$$11" output="\1" dest="10"> <expression>(.+)</expression> </RegExp> <RegExp input="$$1" output="\1" dest="11"> - <expression fixchars="1" clear="yes">>\s*?"([^<]+)"[^"]+International\s(<em>)?\(English\stitle\)(</em>)?(,|<)( |b)</expression> + <expression clear="yes"><td>Hong Kong\s\(English[^>]+>[^>]+>([^<]+)</expression> </RegExp> <RegExp input="$$11" output="\1" dest="10"> <expression>(.+)</expression> </RegExp> <RegExp input="$$1" output="\1" dest="11"> - <expression fixchars="1" clear="yes">>\s*?"([^<]+)"[^"]+International\s(<em>)?\(English\stitle\)(</em>)? (<em>)?\(imdb</expression> + <expression clear="yes"><td>Canada\s\(English[^>]+>[^>]+>([^<]+)</expression> </RegExp> <RegExp input="$$11" output="\1" dest="10"> <expression>(.+)</expression> </RegExp> - <RegExp input="$$1" output="\1" dest="12"> - <expression fixchars="1" clear="yes"><a\shref="/country/[^>]+>(UK</a></div>)</expression> - </RegExp> - <RegExp input="$$12" output="$$9" dest="10"> - <expression>(.+)</expression> - </RegExp> - <RegExp input="$$1" output="\1" dest="12"> - <expression clear="yes"><a\shref="/country/[^>]+>(USA</a></div>)</expression> - </RegExp> - <RegExp input="$$12" output="$$9" dest="10"> - <expression>(.+)</expression> - </RegExp> <RegExp input="$$1" output="\1" dest="11"> - <expression fixchars="1" clear="yes">>\s*?"([^<]+)"[^<]+[<em>]?[^"]+(USA(<em>)?<br>)</expression> + <expression clear="yes"><td>UK<[^>]+>[^>]+>([^<]+)</expression> </RegExp> <RegExp input="$$11" output="\1" dest="10"> <expression>(.+)</expression> </RegExp> <RegExp input="$$1" output="\1" dest="11"> - <expression fixchars="1" clear="yes">>\s*?"([^<]+)"[^<]+[<em>]?[^"]+((USA)\s(<em>)?\((English|imdb))</expression> + <expression clear="yes"><td>World-wide\s\(English\stitle\)<[^>]+>[^>]+>([^<]+)</expression> </RegExp> <RegExp input="$$11" output="\1" dest="10"> <expression>(.+)</expression> </RegExp> <RegExp input="$$1" output="\1" dest="11"> - <expression fixchars="1" clear="yes">>\s*?"([^<]+)"[^<]+[<em>]?[^"]+((USA)\s(<em>)?\((new\stitle))</expression> + <expression clear="yes"><td>USA<[^>]+>[^>]+>([^<]+)</expression> </RegExp> <RegExp input="$$11" output="\1" dest="10"> <expression>(.+)</expression> @@ -440,23 +428,14 @@ <expression>(.+)</expression> </RegExp> <RegExp input="$$1" output="\1" dest="4"> - <expression fixchars="1">>\s*?"([^<]+)"[^<]+[<em>]?[^"]+$INFO[imdbakatitles]</expression> - </RegExp> - <RegExp input="$$4" output="\1" dest="2"> - <expression>(.+)</expression> + <expression><td>$INFO[imdbakatitles][^>]+>[^>]+>([^<]+)</expression> </RegExp> <RegExp input="$$1" output="\1" dest="4"> - <expression fixchars="1">>\s*?"([^<]+)"[^<]+[<em>]?[^"]+$INFO[imdbakatitles]\s(<em>)?\((imdb\sdisplay)</expression> + <expression><td>$INFO[imdbakatitles]<[^>]+>[^>]+>([^<]+)</expression> </RegExp> <RegExp input="$$4" output="\1" dest="2"> <expression>(.+)</expression> </RegExp> - <RegExp input="$$1" output="\1" dest="5"> - <expression><a\shref="/country/[^>]+>($INFO[imdbakatitles])</expression> - </RegExp> - <RegExp input="$$5" output="$$9" dest="4"> - <expression>($INFO[imdbakatitles])</expression> - </RegExp> <RegExp input="$INFO[imdbakatitles]" output="$$9" dest="4"> <expression>Keep Original</expression> </RegExp> diff --git a/addons/metadata.common.musicbrainz.org/addon.xml b/addons/metadata.common.musicbrainz.org/addon.xml index b73d251fc1..70d133adc2 100644 --- a/addons/metadata.common.musicbrainz.org/addon.xml +++ b/addons/metadata.common.musicbrainz.org/addon.xml @@ -1,7 +1,7 @@ -<?xml version="1.0" encoding="UTF-8" standalone="yes"?> +<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <addon id="metadata.common.musicbrainz.org" name="MusicBrainz Scraper Library" - version="2.1.2" + version="2.2.0" provider-name="Team Kodi"> <requires> <import addon="xbmc.metadata" version="2.1.0"/> diff --git a/addons/metadata.common.musicbrainz.org/musicbrainz.xml b/addons/metadata.common.musicbrainz.org/musicbrainz.xml index 3aba73676a..bdc4221676 100644 --- a/addons/metadata.common.musicbrainz.org/musicbrainz.xml +++ b/addons/metadata.common.musicbrainz.org/musicbrainz.xml @@ -91,19 +91,19 @@ </GetMBAlbumTitleByMBID> <ParseMBAlbumTitle dest="5"> <RegExp input="$$2" output="<details>\1</details>" dest="5"> - <RegExp input="$$1" output="<musicBrainzAlbumID>\1</musicBrainzAlbumID><title>\2</title>" dest="2"> + <RegExp input="$$1" output="<musicbrainzalbumid>\1</musicbrainzalbumid><title>\2</title>" dest="2"> <expression noclean="1"><release id="([^"]*)"><title>([^<]*)<</expression> </RegExp> - <!--MBID - release group--> + <!--MBID - release group--> <RegExp input="$$1" output="<musicbrainzreleasegroupid>\1</musicbrainzreleasegroupid>" dest="2+"> <expression noclean="1"><release-group\stype="[^"]*"\sid="([^"]*)"</expression> </RegExp> <RegExp input="$$1" output="<musicbrainzreleasegroupid>\1</musicbrainzreleasegroupid>" dest="2+"> <expression noclean="1"><release-group\stype="[^"]*"\stype-id="[^"]*"\sid="([^"]*)"</expression> - </RegExp> + </RegExp> <RegExp input="$$1" output="<musicbrainzreleasegroupid>\1</musicbrainzreleasegroupid>" dest="2+"> <expression noclean="1"><release-group\sid="([^"]*)"\stype="[^"]*"</expression> - </RegExp> + </RegExp> <RegExp input="$$1" output="<musicbrainzreleasegroupid>\1</musicbrainzreleasegroupid>" dest="2+"> <expression noclean="1"><release-group\sid="([^"]*)"\stype-id="[^"]*"</expression> </RegExp> @@ -112,7 +112,10 @@ </RegExp> <RegExp input="$$1" output="<musicbrainzreleasegroupid>\1</musicbrainzreleasegroupid>" dest="2+"> <expression noclean="1"><release-group\stype-id="[^"]*"\stype="[^"]*"\sid="([^"]*)"</expression> - </RegExp> + </RegExp> + <RegExp input="$$1" output="<scrapedmbid>\1</scrapedmbid>" dest="2+"> + <expression noclean="1" /> + </RegExp> <expression noclean="1">(.+)</expression> </RegExp> </ParseMBAlbumTitle> diff --git a/addons/metadata.common.theaudiodb.com/addon.xml b/addons/metadata.common.theaudiodb.com/addon.xml index b25f09b14c..0969e65f2b 100644 --- a/addons/metadata.common.theaudiodb.com/addon.xml +++ b/addons/metadata.common.theaudiodb.com/addon.xml @@ -1,7 +1,7 @@ -<?xml version="1.0" encoding="UTF-8" standalone="yes"?> +<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <addon id="metadata.common.theaudiodb.com" name="TheAudioDb Scraper Library" - version="1.9.1" + version="2.0.0" provider-name="Team Kodi"> <requires> <import addon="xbmc.metadata" version="2.1.0"/> diff --git a/addons/metadata.common.theaudiodb.com/tadb.xml b/addons/metadata.common.theaudiodb.com/tadb.xml index 5538b21f4e..60912060a7 100644 --- a/addons/metadata.common.theaudiodb.com/tadb.xml +++ b/addons/metadata.common.theaudiodb.com/tadb.xml @@ -50,6 +50,118 @@ </RegExp> </ParseTADBArtistFanarts> + <GetTADBArtistClearlogoByID dest="5" clearbuffers="no"> + <RegExp input="$$1" output="<details><url function="ParseTADBArtistClearlogo" cache="tadb-\1-artist.json">http://www.theaudiodb.com/api/v1/json/58424d43204d6564696120/artist.php?i=\1</url></details>" dest="5"> + <expression noclean="1" /> + </RegExp> + </GetTADBArtistClearlogoByID> + <GetTADBArtistClearlogoByMBID dest="5" clearbuffers="no"> + <RegExp input="$$1" output="<details><url function="ParseTADBArtistClearlogo" cache="tadb-\1-artist.json">http://www.theaudiodb.com/api/v1/json/58424d43204d6564696120/artist-mb.php?i=\1</url></details>" dest="5"> + <expression noclean="1"/> + </RegExp> + </GetTADBArtistClearlogoByMBID> + <ParseTADBArtistClearlogo dest="5" clearbuffers="no"> + <RegExp input="$$13" output="<details>\1</details>" dest="5"> + <RegExp input="" output="" dest="13"> + <expression /> + </RegExp> + <RegExp input="" output="" dest="14"> + <expression /> + </RegExp> + <RegExp input="$$1" output="<thumb aspect="clearlogo" preview="\1/preview">\1</thumb>" dest="14"> + <expression repeat="yes">strArtistLogo\d?":"([^"]*)</expression> + </RegExp> + <RegExp input="$$14" output="\1" dest="13"> + <expression noclean="1">(.+)</expression> + </RegExp> + <expression noclean="1" /> + </RegExp> + </ParseTADBArtistClearlogo> + + <GetTADBArtistClearartByID dest="5" clearbuffers="no"> + <RegExp input="$$1" output="<details><url function="ParseTADBArtistClearart" cache="tadb-\1-artist.json">http://www.theaudiodb.com/api/v1/json/58424d43204d6564696120/artist.php?i=\1</url></details>" dest="5"> + <expression noclean="1" /> + </RegExp> + </GetTADBArtistClearartByID> + <GetTADBArtistClearartByMBID dest="5" clearbuffers="no"> + <RegExp input="$$1" output="<details><url function="ParseTADBArtistClearart" cache="tadb-\1-artist.json">http://www.theaudiodb.com/api/v1/json/58424d43204d6564696120/artist-mb.php?i=\1</url></details>" dest="5"> + <expression noclean="1"/> + </RegExp> + </GetTADBArtistClearartByMBID> + <ParseTADBArtistClearart dest="5" clearbuffers="no"> + <RegExp input="$$13" output="<details>\1</details>" dest="5"> + <RegExp input="" output="" dest="13"> + <expression /> + </RegExp> + <RegExp input="" output="" dest="14"> + <expression /> + </RegExp> + <RegExp input="$$1" output="<thumb aspect="clearart" preview="\1/preview">\1</thumb>" dest="14"> + <expression repeat="yes">strArtistClearart\d?":"([^"]*)</expression> + </RegExp> + <RegExp input="$$14" output="\1" dest="13"> + <expression noclean="1">(.+)</expression> + </RegExp> + <expression noclean="1" /> + </RegExp> + </ParseTADBArtistClearart> + + <GetTADBArtistLandscapeByID dest="5" clearbuffers="no"> + <RegExp input="$$1" output="<details><url function="ParseTADBArtistLandscape" cache="tadb-\1-artist.json">http://www.theaudiodb.com/api/v1/json/58424d43204d6564696120/artist.php?i=\1</url></details>" dest="5"> + <expression noclean="1" /> + </RegExp> + </GetTADBArtistLandscapeByID> + <GetTADBArtistLandscapeByMBID dest="5" clearbuffers="no"> + <RegExp input="$$1" output="<details><url function="ParseTADBArtistLandscape" cache="tadb-\1-artist.json">http://www.theaudiodb.com/api/v1/json/58424d43204d6564696120/artist-mb.php?i=\1</url></details>" dest="5"> + <expression noclean="1"/> + </RegExp> + </GetTADBArtistLandscapeByMBID> + <ParseTADBArtistLandscape dest="5" clearbuffers="no"> + <RegExp input="$$13" output="<details>\1</details>" dest="5"> + <RegExp input="" output="" dest="13"> + <expression /> + </RegExp> + <RegExp input="" output="" dest="14"> + <expression /> + </RegExp> + <RegExp input="$$1" output="<thumb aspect="landscape" preview="\1/preview">\1</thumb>" dest="14"> + <expression repeat="yes">strArtistWideThumb\d?":"([^"]*)</expression> + </RegExp> + <RegExp input="$$14" output="\1" dest="13"> + <expression noclean="1">(.+)</expression> + </RegExp> + <expression noclean="1" /> + </RegExp> + </ParseTADBArtistLandscape> + + <GetTADBArtistBannerByID dest="5" clearbuffers="no"> + <RegExp input="$$1" output="<details><url function="ParseTADBArtistBanner" cache="tadb-\1-artist.json">http://www.theaudiodb.com/api/v1/json/58424d43204d6564696120/artist.php?i=\1</url></details>" dest="5"> + <expression noclean="1" /> + </RegExp> + </GetTADBArtistBannerByID> + <GetTADBArtistBannerByMBID dest="5" clearbuffers="no"> + <RegExp input="$$1" output="<details><url function="ParseTADBArtistBanner" cache="tadb-\1-artist.json">http://www.theaudiodb.com/api/v1/json/58424d43204d6564696120/artist-mb.php?i=\1</url></details>" dest="5"> + <expression noclean="1"/> + </RegExp> + </GetTADBArtistBannerByMBID> + <ParseTADBArtistBanner dest="5" clearbuffers="no"> + <RegExp input="$$13" output="<details>\1</details>" dest="5"> + <RegExp input="" output="" dest="13"> + <expression /> + </RegExp> + <RegExp input="" output="" dest="14"> + <expression /> + </RegExp> + <RegExp input="$$1" output="<thumb aspect="banner" preview="\1/preview">\1</thumb>" dest="14"> + <expression repeat="yes">strArtistBanner\d?":"([^"]*)</expression> + </RegExp> + <RegExp input="$$14" output="\1" dest="13"> + <expression noclean="1">(.+)</expression> + </RegExp> + <expression noclean="1" /> + </RegExp> + </ParseTADBArtistBanner> + <GetTADBBiographyByID dest="5" clearbuffers="no"> <RegExp input="$$1" output="<details><url function="ParseTADBBiography" cache="tadb-\1-artist.json">http://www.theaudiodb.com/api/v1/json/58424d43204d6564696120/artist.php?i=\1</url></details>" dest="5"> <expression noclean="1"/> @@ -575,4 +687,61 @@ </RegExp> </ParseTADBAlbumThumbs> + <GetTADBAlbumBackByID dest="5"> + <RegExp input="$$1" output="<details><url function="ParseTADBAlbumBack" cache="tadb-\1-album.json">http://www.theaudiodb.com/api/v1/json/58424d43204d6564696120/album.php?m=\1</url></details>" dest="5"> + <expression noclean="1"/> + </RegExp> + </GetTADBAlbumBackByID> + <GetTADBAlbumBackByMBID dest="5"> + <RegExp input="$$1" output="<details><url function="ParseTADBAlbumBack" cache="tadb-\1-album.json">http://www.theaudiodb.com/api/v1/json/58424d43204d6564696120/album-mb.php?i=\1</url></details>" dest="5"> + <expression noclean="1"/> + </RegExp> + </GetTADBAlbumBackByMBID> + <ParseTADBAlbumBack dest="5"> + <RegExp input="$$2" output="<details>\1</details>" dest="5"> + <RegExp input="$$1" output="<thumb aspect="back" preview="\1/preview">\1</thumb>" dest="2"> + <expression repeat="yes">strAlbumThumbBack\d?":"([^"]*)</expression> + </RegExp> + <expression noclean="1" /> + </RegExp> + </ParseTADBAlbumBack> + + <GetTADBAlbumDiscartByID dest="5"> + <RegExp input="$$1" output="<details><url function="ParseTADBAlbumDiscart" cache="tadb-\1-album.json">http://www.theaudiodb.com/api/v1/json/58424d43204d6564696120/album.php?m=\1</url></details>" dest="5"> + <expression noclean="1"/> + </RegExp> + </GetTADBAlbumDiscartByID> + <GetTADBAlbumDiscartByMBID dest="5"> + <RegExp input="$$1" output="<details><url function="ParseTADBAlbumDiscart" cache="tadb-\1-album.json">http://www.theaudiodb.com/api/v1/json/58424d43204d6564696120/album-mb.php?i=\1</url></details>" dest="5"> + <expression noclean="1"/> + </RegExp> + </GetTADBAlbumDiscartByMBID> + <ParseTADBAlbumDiscart dest="5"> + <RegExp input="$$2" output="<details>\1</details>" dest="5"> + <RegExp input="$$1" output="<thumb aspect="discart" preview="\1/preview">\1</thumb>" dest="2"> + <expression repeat="yes">strAlbumCDart\d?":"([^"]*)</expression> + </RegExp> + <expression noclean="1" /> + </RegExp> + </ParseTADBAlbumDiscart> + + <GetTADBAlbumSpineByID dest="5"> + <RegExp input="$$1" output="<details><url function="ParseTADBAlbumSpine" cache="tadb-\1-album.json">http://www.theaudiodb.com/api/v1/json/58424d43204d6564696120/album.php?m=\1</url></details>" dest="5"> + <expression noclean="1"/> + </RegExp> + </GetTADBAlbumSpineByID> + <GetTADBAlbumSpineByMBID dest="5"> + <RegExp input="$$1" output="<details><url function="ParseTADBAlbumSpine" cache="tadb-\1-album.json">http://www.theaudiodb.com/api/v1/json/58424d43204d6564696120/album-mb.php?i=\1</url></details>" dest="5"> + <expression noclean="1"/> + </RegExp> + </GetTADBAlbumSpineByMBID> + <ParseTADBAlbumSpine dest="5"> + <RegExp input="$$2" output="<details>\1</details>" dest="5"> + <RegExp input="$$1" output="<thumb aspect="spine" preview="\1/preview">\1</thumb>" dest="2"> + <expression repeat="yes">strAlbumSpine\d?":"([^"]*)</expression> + </RegExp> + <expression noclean="1" /> + </RegExp> + </ParseTADBAlbumSpine> + </scraperfunctions> diff --git a/addons/metadata.common.themoviedb.org/addon.xml b/addons/metadata.common.themoviedb.org/addon.xml index 0f5b905349..8000a309f4 100644 --- a/addons/metadata.common.themoviedb.org/addon.xml +++ b/addons/metadata.common.themoviedb.org/addon.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <addon id="metadata.common.themoviedb.org" name="The Movie Database Scraper Library" - version="2.17.6" + version="3.1.7" provider-name="Team Kodi"> <requires> <import addon="xbmc.metadata" version="2.1.0"/> diff --git a/addons/metadata.common.themoviedb.org/tmdb.xml b/addons/metadata.common.themoviedb.org/tmdb.xml index ed637830c8..722fa466b4 100644 --- a/addons/metadata.common.themoviedb.org/tmdb.xml +++ b/addons/metadata.common.themoviedb.org/tmdb.xml @@ -1,88 +1,81 @@ <?xml version="1.0" encoding="UTF-8"?> <scraperfunctions> - <GetTMDBCertificationsByIdChain dest="4"> + <GetTMDBCertificationsByIdChain clearbuffers="no" dest="4"> <!-- Expected chaining format= tmdb_id::certification_country::certification_prefix--> <RegExp input="$$5" output="<details>\1</details>" dest="4"> - <RegExp input="$$1" output="<url function="ParseTMDBCertifications" cache="tmdb-cert-\1.json">https://api.tmdb.org/3/movie/\1/releases?api_key=ecbc86c92da237cb9faff6d3ddc4be6d&amp;language=$INFO[tmdbcertcountry]</url>" dest="5"> - <expression /> + <RegExp input="$$1" output="\1" dest="16"> + <expression>.+::(.+)::(.+)?</expression> + </RegExp> + <RegExp input="$$1" output="\1" dest="17"> + <expression>.+::.+::(.+)?</expression> + </RegExp> + <RegExp input="$$1" output="<url function="ParseTMDBCertifications" cache="tmdb-cert-\1.json">https://api.tmdb.org/3/movie/\1/releases?api_key=45ab4cebe57ae11c2ee50c87005ddfe8</url>" dest="5"> + <expression>(.+)::(.+)::(.+)?</expression> </RegExp> <expression noclean="1" /> </RegExp> </GetTMDBCertificationsByIdChain> <ParseTMDBCertifications dest="5"> <RegExp input="$$2" output="<details>\1</details>" dest="5"> - <RegExp input="$$1" output="<mpaa>$INFO[certprefix]\1</mpaa>" dest="2"> - <expression fixchars="1">certification":"([^"]*)","[^"]*":"$INFO[tmdbcertcountry]"(.*?),"</expression> + <RegExp input="$$1" output="\1" dest="15"> + <expression fixchars="1">certification":"([^"]*)","[^"]*":"$$16"(.*?),"</expression> + </RegExp> + <RegExp input="$$15" output="<mpaa>$$17 \1</mpaa>" dest="2"> + <expression>(.+)</expression> </RegExp> <expression noclean="1" /> </RegExp> </ParseTMDBCertifications> - <GetTMDBTitleByIdChain dest="4"> + <GetTMDBTitleByIdChain clearbuffers="no" dest="4"> <!-- Expected chaining format= tmdb_id::language--> <RegExp input="$$5" output="<details>\1</details>" dest="4"> - <RegExp input="$$1" output="<url function="ParseTMDBTitle" cache="tmdb-$INFO[language]-\1.json">https://api.tmdb.org/3/movie/\1?api_key=ecbc86c92da237cb9faff6d3ddc4be6d&amp;language=$INFO[language]</url>" dest="5"> - <expression /> + <RegExp input="$$1" output="\1::\2" dest="16"> + <expression>(.+)::(.+)</expression> </RegExp> - <expression noclean="1" /> - </RegExp> - </GetTMDBTitleByIdChain> - <GetTMDBLangTitleByIdChain dest="4"> - <RegExp input="$$5" output="<details>\1</details>" dest="4"> - <RegExp input="$$1" output="<url function="ParseTMDBTitle" cache="tmdb-$INFO[tmdbtitlelanguage]-\1.json">https://api.tmdb.org/3/movie/\1?api_key=ecbc86c92da237cb9faff6d3ddc4be6d&amp;language=$INFO[tmdbtitlelanguage]</url>" dest="5"> - <expression /> + <RegExp input="$$1" output="<url function="ParseTMDBTitle" cache="tmdb-\2-\1.json">https://api.tmdb.org/3/movie/\1?api_key=45ab4cebe57ae11c2ee50c87005ddfe8&amp;language=\2</url>" dest="5"> + <expression>(.+)::(.+)</expression> </RegExp> - <RegExp input="$INFO[tmdbtitlelanguage]" output="$$2" dest="5"> - <RegExp input="$$1" output="<url function="ParseTMDBTitle" cache="tmdb-$INFO[tmdbsearchlanguage]-\1.json">https://api.tmdb.org/3/movie/\1?api_key=ecbc86c92da237cb9faff6d3ddc4be6d&amp;language=$INFO[tmdbsearchlanguage]</url>" dest="2"> - <expression/> + <RegExp input="$$1" output="$$2" dest="5"> + <RegExp input="$$1" output="<url function="ParseTMDBTitle" cache="tmdb-en-\1.json">https://api.tmdb.org/3/movie/\1?api_key=45ab4cebe57ae11c2ee50c87005ddfe8&amp;language=en</url>" dest="2"> + <expression>(.+)::</expression> </RegExp> - <expression>Keep Original</expression> + <expression>(.+)::Keep Original</expression> </RegExp> <expression noclean="1"/> </RegExp> - </GetTMDBLangTitleByIdChain> + </GetTMDBTitleByIdChain> <ParseTMDBTitle dest="5"> <RegExp input="$$2" output="<details>\1</details>" dest="5"> <RegExp input="$$1" output="<title>\1</title>" dest="2"> <expression fixchars="1">"title":"([^"]*)</expression> </RegExp> - <RegExp input="$INFO[tmdbtitlelanguage]" output="$$3" dest="2"> + <RegExp input="$$16" output="$$3" dest="2"> <RegExp input="$$1" output="<title>\1</title>" dest="3"> <expression fixchars="1">"original_title":"([^"]*)</expression> </RegExp> - <expression>Keep Original</expression> + <expression>(.+)::Keep Original</expression> </RegExp> <expression noclean="1" /> </RegExp> </ParseTMDBTitle> - <GetTMDBPlotByIdChain clearbuffers="no" dest="4"> + <GetTMDBPlotByIdChain clearbuffers="no" dest="4"> <!-- Expected chaining format= tmdb_id::language--> <RegExp input="$$5" output="<details>\1</details>" dest="4"> <RegExp input="$$1" output="\1" dest="8"> - <expression clear="yes" noclean="1" /> + <expression encode="1">(.+)::.+</expression> </RegExp> - <RegExp input="$$8" output="<url function="ParseTMDBPlot" cache="tmdb-$INFO[language]-\1.json">https://api.tmdb.org/3/movie/\1?api_key=ecbc86c92da237cb9faff6d3ddc4be6d&amp;language=$INFO[language]</url>" dest="5"> - <expression /> + <RegExp input="$$1" output="<url function="ParseTMDBPlot" cache="tmdb-\2-\1.json">https://api.tmdb.org/3/movie/\1?api_key=45ab4cebe57ae11c2ee50c87005ddfe8&amp;language=\2</url>" dest="5"> + <expression>(.+)::(.+)</expression> </RegExp> <expression noclean="1" /> </RegExp> </GetTMDBPlotByIdChain> - <GetTMDBLangPlotByIdChain clearbuffers="no" dest="4"> - <RegExp input="$$5" output="<details>\1</details>" dest="4"> - <RegExp input="$$1" output="\1" dest="8"> - <expression clear="yes" noclean="1" /> - </RegExp> - <RegExp input="$$8" output="<url function="ParseTMDBPlot" cache="tmdb-$INFO[tmdbplotlanguage]-\1.json">https://api.tmdb.org/3/movie/\1?api_key=ecbc86c92da237cb9faff6d3ddc4be6d&amp;language=$INFO[tmdbplotlanguage]</url>" dest="5"> - <expression /> - </RegExp> - <expression noclean="1" /> - </RegExp> - </GetTMDBLangPlotByIdChain> <ParseTMDBPlot dest="5"> <RegExp input="$$2" output="<details>\1</details>" dest="5"> <RegExp input="$$1" output="\1" dest="9"> <expression clear="yes" fixchars="1">"overview":"(.*?)","</expression> </RegExp> - <RegExp input="$$9" output="<url function="ParseFallbackTMDBPlot" cache="tmdb-en-$$8.json">https://api.tmdb.org/3/movie/$$8?api_key=ecbc86c92da237cb9faff6d3ddc4be6d&amp;language=en</url>" dest="2"> + <RegExp input="$$9" output="<url function="ParseFallbackTMDBPlot" cache="tmdb-en-$$8.json">https://api.tmdb.org/3/movie/$$8?api_key=45ab4cebe57ae11c2ee50c87005ddfe8&amp;language=en</url>" dest="2"> <expression>^$</expression> </RegExp> <RegExp input="$$9" output="<plot>\1</plot>" dest="2"> @@ -100,34 +93,23 @@ </RegExp> </ParseFallbackTMDBPlot> - <GetTMDBTaglineByIdChain clearbuffers="no" dest="4"> + <GetTMDBTaglineByIdChain clearbuffers="no" dest="4"> <!-- Expected chaining format= tmdb_id::language--> <RegExp input="$$5" output="<details>\1</details>" dest="4"> <RegExp input="$$1" output="\1" dest="8"> - <expression clear="yes" noclean="1" /> + <expression>(.+)::.+</expression> </RegExp> - <RegExp input="$$8" output="<url function="ParseTMDBTagline" cache="tmdb-$INFO[language]-\1.json">https://api.tmdb.org/3/movie/\1?api_key=ecbc86c92da237cb9faff6d3ddc4be6d&amp;language=$INFO[language]</url>" dest="5"> - <expression /> + <RegExp input="$$1" output="<url function="ParseTMDBTagline" cache="tmdb-\2-\1.json">https://api.tmdb.org/3/movie/\1?api_key=45ab4cebe57ae11c2ee50c87005ddfe8&amp;language=\2</url>" dest="5"> + <expression>(.+)::(.+)</expression> </RegExp> <expression noclean="1" /> </RegExp> </GetTMDBTaglineByIdChain> - <GetTMDBLangTaglineByIdChain clearbuffers="no" dest="4"> - <RegExp input="$$5" output="<details>\1</details>" dest="4"> - <RegExp input="$$1" output="\1" dest="8"> - <expression clear="yes" noclean="1" /> - </RegExp> - <RegExp input="$$8" output="<url function="ParseTMDBTagline" cache="tmdb-$INFO[tmdbtaglinelanguage]-\1.json">https://api.tmdb.org/3/movie/\1?api_key=ecbc86c92da237cb9faff6d3ddc4be6d&amp;language=$INFO[tmdbtaglinelanguage]</url>" dest="5"> - <expression /> - </RegExp> - <expression noclean="1" /> - </RegExp> - </GetTMDBLangTaglineByIdChain> <ParseTMDBTagline dest="5"> <RegExp input="$$2" output="<details>\1</details>" dest="5"> <RegExp input="$$1" output="\1" dest="9"> - <expression clear="yes" fixchars="1">"tagline":"([^"]*)</expression> + <expression clear="yes" fixchars="1">"tagline":"(.*?)","</expression> </RegExp> - <RegExp input="$$9" output="<url function="ParseFallbackTMDBTagline" cache="tmdb-en-$$8.json">https://api.tmdb.org/3/movie/$$8?api_key=ecbc86c92da237cb9faff6d3ddc4be6d&amp;language=en</url>" dest="2"> + <RegExp input="$$9" output="<url function="ParseFallbackTMDBTagline" cache="tmdb-en-$$8.json">https://api.tmdb.org/3/movie/$$8?api_key=45ab4cebe57ae11c2ee50c87005ddfe8&amp;language=en</url>" dest="2"> <expression>^$</expression> </RegExp> <RegExp input="$$9" output="<tagline>\1</tagline>" dest="2"> @@ -139,18 +121,18 @@ <ParseFallbackTMDBTagline dest="5"> <RegExp input="$$2" output="<details>\1</details>" dest="5"> <RegExp input="$$1" output="<tagline>\1</tagline>" dest="2"> - <expression clear="yes" fixchars="1">"tagline":"([^"]*)</expression> + <expression clear="yes" fixchars="1">"tagline":"(.*?)","</expression> </RegExp> <expression noclean="1" /> </RegExp> </ParseFallbackTMDBTagline> - <GetTMDBTagsByIdChain clearbuffers="no" dest="4"> + <GetTMDBTagsByIdChain clearbuffers="no" dest="4"> <!-- Expected chaining format= tmdb_id--> <RegExp input="$$5" output="<details>\1</details>" dest="4"> <RegExp input="$$1" output="\1" dest="8"> <expression clear="yes" noclean="1" /> </RegExp> - <RegExp input="$$8" output="<url function="ParseTMDBTags" >https://api.tmdb.org/3/movie/\1/keywords?api_key=ecbc86c92da237cb9faff6d3ddc4be6d</url>" dest="5"> + <RegExp input="$$8" output="<url function="ParseTMDBTags" >https://api.tmdb.org/3/movie/\1/keywords?api_key=45ab4cebe57ae11c2ee50c87005ddfe8</url>" dest="5"> <expression /> </RegExp> <expression noclean="1" /> @@ -165,57 +147,114 @@ </RegExp> </ParseTMDBTags> - <GetTMDBSetByIdChain clearbuffers="no" dest="4"> + <GetTMDBSetByIdChain clearbuffers="no" dest="4"> <!-- Expected chaining format= tmdb_id::language--> <RegExp input="$$5" output="<details>\1</details>" dest="4"> <RegExp input="$$1" output="\1" dest="8"> - <expression clear="yes" noclean="1" /> + <expression>(.+)::(.+)</expression> + </RegExp> + <RegExp input="$$1" output="\2" dest="10"> + <expression>(.+)::(.+)</expression> </RegExp> - <RegExp input="$$8" output="<url function="ParseTMDBSet" cache="tmdb-$INFO[language]-\1.json">https://api.tmdb.org/3/movie/\1?api_key=ecbc86c92da237cb9faff6d3ddc4be6d&amp;language=$INFO[language]</url>" dest="5"> + <RegExp input="$$8" output="<url function="GetTMDBSetID" cache="tmdb-$$10-\1.json">https://api.tmdb.org/3/movie/\1?api_key=45ab4cebe57ae11c2ee50c87005ddfe8&amp;language=$$10</url>" dest="5"> <expression /> </RegExp> <expression noclean="1" /> </RegExp> </GetTMDBSetByIdChain> - <GetTMDBLangSetByIdChain clearbuffers="no" dest="4"> - <RegExp input="$$5" output="<details>\1</details>" dest="4"> - <RegExp input="$$1" output="\1" dest="8"> - <expression clear="yes" noclean="1" /> + <GetTMDBSetID dest="5" clearbuffers="no"> + <RegExp input="$$2" output="<details>\1</details>" dest="5"> + <RegExp input="$$1" output="\1" dest="9"> + <expression clear="yes" noclean="1">"belongs_to_collection":\{"id":([0-9]+),"name":"([^"]*)</expression> </RegExp> - <RegExp input="$$8" output="<url function="ParseTMDBSet" cache="tmdb-$INFO[tmdbsetlanguage]-\1.json">https://api.tmdb.org/3/movie/\1?api_key=ecbc86c92da237cb9faff6d3ddc4be6d&amp;language=$INFO[tmdbsetlanguage]</url>" dest="5"> - <expression /> + <RegExp input="$$9" output="<url function="ParseTMDBBaseImageURL" cache="tmdb-config.json">https://api.tmdb.org/3/configuration?api_key=45ab4cebe57ae11c2ee50c87005ddfe8</url>" dest="2"> + <expression>(.+)</expression> + </RegExp> + <RegExp input="$$9" output="<url function="ParseTMDBSetOutline" cache="tmdbset-$$10-\1.json">https://api.tmdb.org/3/collection/\1?api_key=45ab4cebe57ae11c2ee50c87005ddfe8&amp;language=$$10&amp;append_to_response=images&amp;include_image_language=$$10,en,null</url>" dest="2+"> + <expression>(.+)</expression> </RegExp> <expression noclean="1" /> </RegExp> - </GetTMDBLangSetByIdChain> - <ParseTMDBSet dest="5"> + </GetTMDBSetID> + <ParseTMDBSetOutline dest="5" clearbuffers="no"> <RegExp input="$$2" output="<details>\1</details>" dest="5"> - <RegExp input="$$1" output="\1" dest="9"> - <expression clear="yes" noclean="1">"belongs_to_collection":\{"id":[0-9]+,"name":"([^"]*)</expression> + <RegExp input="$$4" output="<set>\1</set>$$13$$14" dest="2"> + <RegExp input="$$1" output="\1" dest="11"> + <expression noclean="1">"id":[0-9]+,"name":"([^"]*)</expression> + </RegExp> + <RegExp input="$$11" output="<name>\1</name>" dest="4"> + <expression>(.+)</expression> + </RegExp> + <RegExp input="$$1" output="\1" dest="6"> + <expression noclean="1">"id":([0-9]+)</expression> + </RegExp> + <RegExp input="$$1" output="\1" dest="9"> + <expression fixchars="1">"id":[0-9]+,"name":"[^"]*","overview":"(.*?)","</expression> + </RegExp> + <RegExp input="$$9" output="<overview>\1</overview>" dest="4+"> + <expression>(.+)</expression> + </RegExp> + <RegExp input="$$1" output="\1" dest="7"> + <expression clear="yes" noclean="1">"posters":\[\{([^\]]*)</expression> + </RegExp> + <RegExp input="$$7" output="<thumb aspect="set" preview="$$20w500\1">$$20original\1</thumb>" dest="13"> + <expression repeat="yes" clear="yes" noclean="1">"file_path":"([^"]*)[^:]*:[^:]*:"$$10</expression> + </RegExp> + <RegExp input="$$7" output="<thumb aspect="set" preview="$$20w500\1">$$20original\1</thumb>" dest="13+"> + <expression repeat="yes" noclean="1">"file_path":"([^"]*)[^:]*:[^:]*:"en</expression> + </RegExp> + <RegExp input="$$7" output="<thumb aspect="set" preview="$$20w500\1">$$20original\1</thumb>" dest="13+"> + <expression repeat="yes" noclean="1">"file_path":"([^"]*)[^:]*:[^:]*:null</expression> + </RegExp> + <RegExp input="$$1" output="\1" dest="7"> + <expression clear="yes" noclean="1">"backdrops":\[\{([^\]]*)</expression> + </RegExp> + <RegExp input="$$7" output="<thumb aspect="setfanart" preview="$$20w500\1">$$20original\1</thumb>" dest="14"> + <expression clear="yes" repeat="yes" noclean="1">"file_path":"([^"]*)</expression> + </RegExp> + <expression noclean="1" /> </RegExp> - <RegExp input="$$9" output="<url function="ParseFallbackTMDBSet" cache="tmdb-en-$$8.json">https://api.tmdb.org/3/movie/$$8?api_key=ecbc86c92da237cb9faff6d3ddc4be6d&amp;language=en</url>" dest="2"> + <RegExp input="$$9" output="<url function="ParseFallbackTMDBSetOutline" cache="tmdbset-en-$$6.json">https://api.tmdb.org/3/collection/$$6?api_key=45ab4cebe57ae11c2ee50c87005ddfe8&amp;language=en&amp;append_to_response=images&amp;include_image_language=$$10,en,null</url>" dest="2"> <expression>^$</expression> </RegExp> - <RegExp input="$$9" output="<set>\1</set>" dest="2"> - <expression>(.+)</expression> - </RegExp> <expression noclean="1" /> </RegExp> - </ParseTMDBSet> - <ParseFallbackTMDBSet dest="5"> - <RegExp input="$$2" output="<details>\1</details>" dest="5"> - <RegExp input="$$1" output="<set>\1</set>" dest="2"> - <expression noclean="1">"belongs_to_collection":\{"id":[0-9]+,"name":"([^"]*)</expression> + </ParseTMDBSetOutline> + <ParseFallbackTMDBSetOutline dest="5"> + <RegExp input="$$2" output="<details><set>\1</set>$$13$$14</details>" dest="5"> + <RegExp input="$$11" output="<name>\1</name>" dest="2"> + <expression>(.+)</expression> </RegExp> + <RegExp input="$$1" output="<overview>\1</overview>" dest="2+"> + <expression noclean="1">"id":[0-9]+,"name":"[^"]*","overview":"(.*?)","</expression> + </RegExp> + <RegExp input="$$1" output="\1" dest="7"> + <expression clear="yes" noclean="1">"posters":\[\{([^\]]*)</expression> + </RegExp> + <RegExp input="$$7" output="<thumb aspect="set" preview="$$20w500\1">$$20original\1</thumb>" dest="13"> + <expression repeat="yes" clear="yes" noclean="1">"file_path":"([^"]*)[^:]*:[^:]*:"$$10</expression> + </RegExp> + <RegExp input="$$7" output="<thumb aspect="set" preview="$$20w500\1">$$20original\1</thumb>" dest="13+"> + <expression repeat="yes" noclean="1">"file_path":"([^"]*)[^:]*:[^:]*:"en</expression> + </RegExp> + <RegExp input="$$7" output="<thumb aspect="set" preview="$$20w500\1">$$20original\1</thumb>" dest="13+"> + <expression repeat="yes" noclean="1">"file_path":"([^"]*)[^:]*:[^:]*:null</expression> + </RegExp> + <RegExp input="$$1" output="\1" dest="7"> + <expression clear="yes" noclean="1">"backdrops":\[\{([^\]]*)</expression> + </RegExp> + <RegExp input="$$7" output="<thumb aspect="setfanart" preview="$$20w500\1">$$20original\1</thumb>" dest="14"> + <expression clear="yes" repeat="yes" noclean="1">"file_path":"([^"]*)</expression> + </RegExp> <expression noclean="1" /> </RegExp> - </ParseFallbackTMDBSet> + </ParseFallbackTMDBSetOutline> - <GetTMDBCastByIdChain dest="4"> + <GetTMDBCastByIdChain dest="4"> <!-- Expected chaining format= tmdb_id--> <RegExp input="$$5" output="<details>\1</details>" dest="4"> - <RegExp input="$$1" output="<url function="ParseTMDBBaseImageURL" cache="tmdb-config.json">https://api.tmdb.org/3/configuration?api_key=ecbc86c92da237cb9faff6d3ddc4be6d</url>" dest="5"> + <RegExp input="$$1" output="<url function="ParseTMDBBaseImageURL" cache="tmdb-config.json">https://api.tmdb.org/3/configuration?api_key=45ab4cebe57ae11c2ee50c87005ddfe8</url>" dest="5"> <expression /> </RegExp> - <RegExp input="$$1" output="<url function="ParseTMDBCast" cache="tmdb-cast-\1.json">https://api.tmdb.org/3/movie/\1/casts?api_key=ecbc86c92da237cb9faff6d3ddc4be6d</url>" dest="5+"> + <RegExp input="$$1" output="<url function="ParseTMDBCast" cache="tmdb-cast-\1.json">https://api.tmdb.org/3/movie/\1/casts?api_key=45ab4cebe57ae11c2ee50c87005ddfe8</url>" dest="5+"> <expression /> </RegExp> <expression noclean="1" /> @@ -236,9 +275,9 @@ </RegExp> </ParseTMDBCast> - <GetTMDBDirectorsByIdChain dest="4"> + <GetTMDBDirectorsByIdChain dest="4"> <!-- Expected chaining format= tmdb_id--> <RegExp input="$$5" output="<details>\1</details>" dest="4"> - <RegExp input="$$1" output="<url function="ParseTMDBDirectors" cache="tmdb-cast-\1.json">https://api.tmdb.org/3/movie/\1/casts?api_key=ecbc86c92da237cb9faff6d3ddc4be6d</url>" dest="5"> + <RegExp input="$$1" output="<url function="ParseTMDBDirectors" cache="tmdb-cast-\1.json">https://api.tmdb.org/3/movie/\1/casts?api_key=45ab4cebe57ae11c2ee50c87005ddfe8</url>" dest="5"> <expression /> </RegExp> <expression noclean="1" /> @@ -256,9 +295,9 @@ </RegExp> </ParseTMDBDirectors> - <GetTMDBWitersByIdChain dest="4"> + <GetTMDBWitersByIdChain dest="4"> <!-- Expected chaining format= tmdb_id--> <RegExp input="$$5" output="<details>\1</details>" dest="4"> - <RegExp input="$$1" output="<url function="ParseTMDBWriters" cache="tmdb-cast-\1.json">https://api.tmdb.org/3/movie/\1/casts?api_key=ecbc86c92da237cb9faff6d3ddc4be6d</url>" dest="5"> + <RegExp input="$$1" output="<url function="ParseTMDBWriters" cache="tmdb-cast-\1.json">https://api.tmdb.org/3/movie/\1/casts?api_key=45ab4cebe57ae11c2ee50c87005ddfe8</url>" dest="5"> <expression /> </RegExp> <expression noclean="1" /> @@ -276,22 +315,14 @@ </RegExp> </ParseTMDBWriters> - <GetTMDBGenresByIdChain dest="4"> + <GetTMDBGenresByIdChain dest="4"> <!-- Expected chaining format= tmdb_id::language--> <RegExp input="$$5" output="<details>\1</details>" dest="4"> - <RegExp input="$$1" output="<url function="ParseTMDBGenres" cache="tmdb-$INFO[language]-\1.json">https://api.tmdb.org/3/movie/\1?api_key=ecbc86c92da237cb9faff6d3ddc4be6d&amp;language=$INFO[language]</url>" dest="5"> - <expression /> + <RegExp input="$$1" output="<url function="ParseTMDBGenres" cache="tmdb-\2-\1.json">https://api.tmdb.org/3/movie/\1?api_key=45ab4cebe57ae11c2ee50c87005ddfe8&amp;language=\2</url>" dest="5"> + <expression>(.+)::(.+)</expression> </RegExp> <expression noclean="1" /> </RegExp> </GetTMDBGenresByIdChain> - <GetTMDBLangGenresByIdChain dest="4"> - <RegExp input="$$5" output="<details>\1</details>" dest="4"> - <RegExp input="$$1" output="<url function="ParseTMDBGenres" cache="tmdb-$INFO[tmdbgenreslanguage]-\1.json">https://api.tmdb.org/3/movie/\1?api_key=ecbc86c92da237cb9faff6d3ddc4be6d&amp;language=$INFO[tmdbgenreslanguage]</url>" dest="5"> - <expression /> - </RegExp> - <expression noclean="1" /> - </RegExp> - </GetTMDBLangGenresByIdChain> <ParseTMDBGenres dest="5"> <RegExp input="$$2" output="<details>\1</details>" dest="5"> <RegExp input="$$1" output="\1" dest="7"> @@ -306,8 +337,14 @@ <GetTMDBRatingByIdChain dest="4"> <!-- Compatibility function for Pre-Krypton versions--> <RegExp input="$$5" output="<details>\1</details>" dest="4"> - <RegExp input="$$1" output="<url function="ParseTMDBRating" cache="tmdb-$INFO[language]-\1.json">https://api.tmdb.org/3/movie/\1?api_key=ecbc86c92da237cb9faff6d3ddc4be6d&amp;language=$INFO[language]</url>" dest="5"> - <expression /> + <RegExp input="$$1" output="\2" dest="11"> + <expression>(.+)::(..)</expression> + </RegExp> + <RegExp input="$$1" output="\2" dest="11"> + <expression>(.+)::([^\|]*)</expression> + </RegExp> + <RegExp input="$$1" output="<url function="ParseTMDBRating" cache="tmdb-$$11-\1.json">https://api.tmdb.org/3/movie/\1?api_key=45ab4cebe57ae11c2ee50c87005ddfe8&amp;language=$$11</url>" dest="5"> + <expression>^(.+)::</expression> </RegExp> <expression noclean="1" /> </RegExp> @@ -324,9 +361,15 @@ </RegExp> </ParseTMDBRating> - <GetTMDBRatingsByIdChain dest="4" clearbuffers="no"> + <GetTMDBRatingsByIdChain dest="4" clearbuffers="no"> <!-- Expected chaining format= tmdb_id::language_for_caching--> <RegExp input="$$5" output="<details>\1</details>" dest="4"> - <RegExp input="$$1" output="<url function="ParseTMDBRatings" cache="tmdb-$INFO[language]-\1.json">https://api.tmdb.org/3/movie/\1?api_key=ecbc86c92da237cb9faff6d3ddc4be6d&amp;language=$INFO[language]</url>" dest="5"> + <RegExp input="$$1" output="\2" dest="11"> + <expression>(.+)::(..)</expression> + </RegExp> + <RegExp input="$$1" output="\2" dest="11"> + <expression>(.+)::([^\|]*)</expression> + </RegExp> + <RegExp input="$$1" output="<url function="ParseTMDBRatings" cache="tmdb-$$11-\1.json">https://api.tmdb.org/3/movie/\1?api_key=45ab4cebe57ae11c2ee50c87005ddfe8&amp;language=$$11</url>" dest="5"> <expression noclean="1">^((tt)?\d+)</expression> </RegExp> <RegExp input="$$1" output="default="true"" dest="3"> @@ -347,10 +390,10 @@ </RegExp> </ParseTMDBRatings> - <GetTMDBStudioByIdChain dest="4"> + <GetTMDBStudioByIdChain dest="4"> <!-- Expected chaining format= tmdb_id::language_for_caching--> <RegExp input="$$5" output="<details>\1</details>" dest="4"> - <RegExp input="$$1" output="<url function="ParseTMDBStudio" cache="tmdb-en-\1.json">https://api.tmdb.org/3/movie/\1?api_key=ecbc86c92da237cb9faff6d3ddc4be6d&amp;language=en</url>" dest="5"> - <expression /> + <RegExp input="$$1" output="<url function="ParseTMDBStudio" cache="tmdb-\2-\1.json">https://api.tmdb.org/3/movie/\1?api_key=45ab4cebe57ae11c2ee50c87005ddfe8&amp;language=\2</url>" dest="5"> + <expression>(.+)::(.+)</expression> </RegExp> <expression noclean="1" /> </RegExp> @@ -367,10 +410,10 @@ </RegExp> </ParseTMDBStudio> - <GetTMDBCountryByIdChain dest="4"> + <GetTMDBCountryByIdChain dest="4"> <!-- Expected chaining format= tmdb_id::language_for_caching--> <RegExp input="$$5" output="<details>\1</details>" dest="4"> - <RegExp input="$$1" output="<url function="ParseTMDBCountry" cache="tmdb-en-\1.json">https://api.tmdb.org/3/movie/\1?api_key=ecbc86c92da237cb9faff6d3ddc4be6d&amp;language=en</url>" dest="5"> - <expression /> + <RegExp input="$$1" output="<url function="ParseTMDBCountry" cache="tmdb-\2-\1.json">https://api.tmdb.org/3/movie/\1?api_key=45ab4cebe57ae11c2ee50c87005ddfe8&amp;language=\2</url>" dest="5"> + <expression>(.+)::(.+)</expression> </RegExp> <expression noclean="1" /> </RegExp> @@ -387,22 +430,14 @@ </RegExp> </ParseTMDBCountry> - <GetTMDBTrailerByIdChain dest="4"> + <GetTMDBTrailerByIdChain dest="4"> <!-- Expected chaining format= tmdb_id::language--> <RegExp input="$$5" output="<details>\1</details>" dest="4"> - <RegExp input="$$1" output="<url function="ParseTMDBTrailer" cache="tmdb-trailer-$INFO[language]-\1.json">https://api.tmdb.org/3/movie/\1/trailers?api_key=ecbc86c92da237cb9faff6d3ddc4be6d&amp;language=$INFO[language]</url>" dest="5"> - <expression /> + <RegExp input="$$1" output="<url function="ParseTMDBTrailer" cache="tmdb-trailer-\2-\1.json">https://api.tmdb.org/3/movie/\1/trailers?api_key=45ab4cebe57ae11c2ee50c87005ddfe8&amp;language=\2</url>" dest="5"> + <expression>(.+)::(.+)</expression> </RegExp> <expression noclean="1" /> </RegExp> </GetTMDBTrailerByIdChain> - <GetTMDBLangTrailerByIdChain dest="4"> - <RegExp input="$$5" output="<details>\1</details>" dest="4"> - <RegExp input="$$1" output="<url function="ParseTMDBTrailer" cache="tmdb-trailer-$INFO[tmdbtrailerlanguage]-\1.json">https://api.tmdb.org/3/movie/\1/trailers?api_key=ecbc86c92da237cb9faff6d3ddc4be6d&amp;language=$INFO[tmdbtrailerlanguage]</url>" dest="5"> - <expression /> - </RegExp> - <expression noclean="1" /> - </RegExp> - </GetTMDBLangTrailerByIdChain> <ParseTMDBTrailer dest="5"> <RegExp input="$$2" output="<details>\1</details>" dest="5"> <RegExp input="$$1" output="\1" dest="8"> @@ -414,7 +449,7 @@ <RegExp input="$$7" output="<trailer>plugin://plugin.video.youtube/?action=play_video&amp;videoid=\1</trailer>" dest="9"> <expression noclean="1">"source":"([^"]*)</expression> </RegExp> - <RegExp input="$$9" output="<url function="ParseTMDBEnTrailer" cache="tmdb-trailer-en-$$8.json">https://api.tmdb.org/3/movie/$$8/trailers?api_key=ecbc86c92da237cb9faff6d3ddc4be6d&amp;language=en</url>" dest="2"> + <RegExp input="$$9" output="<url function="ParseTMDBEnTrailer" cache="tmdb-trailer-en-$$8.json">https://api.tmdb.org/3/movie/$$8/trailers?api_key=45ab4cebe57ae11c2ee50c87005ddfe8&amp;language=en</url>" dest="2"> <expression>^$</expression> </RegExp> <RegExp input="$$9" output="$$9" dest="2"> @@ -434,7 +469,7 @@ <RegExp input="$$7" output="<trailer>plugin://plugin.video.youtube/?action=play_video&amp;videoid=\1</trailer>" dest="9"> <expression noclean="1">"source":"([^"]*)</expression> </RegExp> - <RegExp input="$$9" output="<url function="ParseTMDBAllTrailer" cache="tmdb-trailer-$$8.json">https://api.tmdb.org/3/movie/$$8/trailers?api_key=ecbc86c92da237cb9faff6d3ddc4be6d</url>" dest="5"> + <RegExp input="$$9" output="<url function="ParseTMDBAllTrailer" cache="tmdb-trailer-$$8.json">https://api.tmdb.org/3/movie/$$8/trailers?api_key=45ab4cebe57ae11c2ee50c87005ddfe8</url>" dest="2"> <expression>^$</expression> </RegExp> <RegExp input="$$9" output="$$9" dest="2"> @@ -455,14 +490,17 @@ </RegExp> </ParseTMDBAllTrailer> - <GetTMDBFanartByIdChain dest="4"> + <GetTMDBFanartByIdChain dest="4"> <!-- Expected chaining format= tmdb_id::poster_language--> <RegExp input="$$5" output="<details>\1</details>" dest="4"> - <RegExp input="$$1" output="<url function="ParseTMDBBaseImageURL" cache="tmdb-config.json">https://api.tmdb.org/3/configuration?api_key=ecbc86c92da237cb9faff6d3ddc4be6d</url>" dest="5"> - <expression /> + <RegExp input="$$1" output="\2" dest="11"> + <expression>(.+)::(.+)</expression> </RegExp> - <RegExp input="$$1" output="<url function="ParseTMDBFanart" cache="tmdb-images-\1.json">https://api.tmdb.org/3/movie/\1/images?api_key=ecbc86c92da237cb9faff6d3ddc4be6d</url>" dest="5+"> + <RegExp input="$$1" output="<url function="ParseTMDBBaseImageURL" cache="tmdb-config.json">https://api.tmdb.org/3/configuration?api_key=45ab4cebe57ae11c2ee50c87005ddfe8</url>" dest="5"> <expression /> </RegExp> + <RegExp input="$$1" output="<url function="ParseTMDBFanart" cache="tmdb-images-\1.json">https://api.tmdb.org/3/movie/\1/images?api_key=45ab4cebe57ae11c2ee50c87005ddfe8&amp;language=$$11&amp;include_image_language=$$11,en,null</url>" dest="5+"> + <expression>(.+)::(.+)</expression> + </RegExp> <expression noclean="1" /> </RegExp> </GetTMDBFanartByIdChain> @@ -478,116 +516,66 @@ </RegExp> </ParseTMDBFanart> - <GetTMDBThumbsByIdChain dest="4"> + <GetTMDBThumbsByIdChain clearbuffers="no" dest="4"> <!-- Expected chaining format= tmdb_id::language--> <RegExp input="$$5" output="<details>\1</details>" dest="4"> - <RegExp input="$$1" output="<url function="ParseTMDBBaseImageURL" cache="tmdb-config.json">https://api.tmdb.org/3/configuration?api_key=ecbc86c92da237cb9faff6d3ddc4be6d</url>" dest="5"> - <expression /> + <RegExp input="$$1" output="\2" dest="11"> + <expression>(.+)::(.+)</expression> </RegExp> - <RegExp input="$$1" output="<url function="ParseTMDBThumbs" cache="tmdb-images-$INFO[language]-\1.json">https://api.tmdb.org/3/movie/\1/images?api_key=ecbc86c92da237cb9faff6d3ddc4be6d&amp;language=$INFO[language]</url>" dest="5+"> - <expression /> + <RegExp input="$$1" output="\1" dest="13"> + <expression>(.+)::(.+)</expression> </RegExp> - <expression noclean="1" /> - </RegExp> - </GetTMDBThumbsByIdChain> - <GetTMDBLangThumbsByIdChain dest="4"> - <RegExp input="$$5" output="<details>\1</details>" dest="4"> - <RegExp input="$$1" output="<url function="ParseTMDBBaseImageURL" cache="tmdb-config.json">https://api.tmdb.org/3/configuration?api_key=ecbc86c92da237cb9faff6d3ddc4be6d</url>" dest="5"> + <RegExp input="$$1" output="<url function="ParseTMDBBaseImageURL" cache="tmdb-config.json">https://api.tmdb.org/3/configuration?api_key=45ab4cebe57ae11c2ee50c87005ddfe8</url>" dest="5"> <expression /> </RegExp> - <RegExp input="$$1" output="<url function="ParseTMDBLangThumbs" cache="tmdb-images-$INFO[tmdbthumblanguage]-\1.json">https://api.tmdb.org/3/movie/\1/images?api_key=ecbc86c92da237cb9faff6d3ddc4be6d&amp;language=$INFO[tmdbthumblanguage]</url>" dest="5+"> - <expression /> + <RegExp input="$$1" output="<url function="ParseTMDBThumbs" cache="tmdb-images-\1.json">https://api.tmdb.org/3/movie/\1/images?api_key=45ab4cebe57ae11c2ee50c87005ddfe8&amp;language=$$11&amp;include_image_language=$$11,en,null</url>" dest="5+"> + <expression>(.+)::(.+)</expression> </RegExp> <expression noclean="1" /> </RegExp> - </GetTMDBLangThumbsByIdChain> + </GetTMDBThumbsByIdChain> <ParseTMDBThumbs clearbuffers="no" dest="5"> <RegExp input="$$2" output="<details>\1</details>" dest="5"> - <RegExp input="$$1" output="\1" dest="8"> - <expression noclean="1">"id":([0-9]*),</expression> - </RegExp> <RegExp input="$$1" output="\1" dest="7"> <expression clear="yes" noclean="1">"posters":\[\{([^\]]*)</expression> </RegExp> <RegExp input="$$7" output="<thumb aspect="poster" preview="$$20w500\1">$$20original\1</thumb>" dest="9"> - <expression clear="yes" repeat="yes" noclean="1">"file_path":"([^"]*)</expression> + <expression repeat="yes" clear="yes" noclean="1">"file_path":"([^"]*)[^:]*:[^:]*:"$$11</expression> </RegExp> - <RegExp input="$$9" output="$$9" dest="2"> - <expression clear="yes">(.+)</expression> + <RegExp input="$$7" output="<thumb aspect="poster" preview="$$20w500\1">$$20original\1</thumb>" dest="9+"> + <expression repeat="yes" noclean="1">"file_path":"([^"]*)[^:]*:[^:]*:"en</expression> </RegExp> - <RegExp input="$$9" output="$$12" dest="2+"> - <RegExp input="$INFO[language]" output="<url function="ParseTMDBAllThumbs" cache="tmdb-images-$$8.json">https://api.tmdb.org/3/movie/$$8/images?api_key=ecbc86c92da237cb9faff6d3ddc4be6d</url>" dest="12"> - <expression>en</expression> - </RegExp> - <expression>^$</expression> - </RegExp> - <RegExp input="$INFO[language]" output="<url function="ParseTMDBEnThumbs" cache="tmdb-images-en-$$8.json">https://api.tmdb.org/3/movie/$$8/images?api_key=ecbc86c92da237cb9faff6d3ddc4be6d&amp;language=en</url>" dest="2+"> - <expression>^((?!en).)*$</expression> - </RegExp> - <expression noclean="1">(.+)</expression> - </RegExp> - </ParseTMDBThumbs> - <ParseTMDBLangThumbs clearbuffers="no" dest="5"> - <RegExp input="$$2" output="<details>\1</details>" dest="5"> - <RegExp input="$$1" output="\1" dest="8"> - <expression noclean="1">"id":([0-9]*),</expression> - </RegExp> - <RegExp input="$$1" output="\1" dest="7"> - <expression clear="yes" noclean="1">"posters":\[\{([^\]]*)</expression> - </RegExp> - <RegExp input="$$7" output="<thumb aspect="poster" preview="$$20w500\1">$$20original\1</thumb>" dest="9"> - <expression clear="yes" repeat="yes" noclean="1">"file_path":"([^"]*)</expression> + <RegExp input="$$7" output="<thumb aspect="poster" preview="$$20w500\1">$$20original\1</thumb>" dest="10"> + <expression repeat="yes" clear="yes" noclean="1">"file_path":"([^"]*)[^:]*:[^:]*:null</expression> </RegExp> <RegExp input="$$9" output="$$9" dest="2"> - <expression clear="yes">(.+)</expression> + <expression>(.+)</expression> </RegExp> - <RegExp input="$$9" output="$$12" dest="2+"> - <RegExp input="$INFO[tmdbthumblanguage]" output="<url function="ParseTMDBAllThumbs" cache="tmdb-images-$$8.json">https://api.tmdb.org/3/movie/$$8/images?api_key=ecbc86c92da237cb9faff6d3ddc4be6d</url>" dest="12"> - <expression>en</expression> - </RegExp> + <RegExp input="$$9" output="$$10" dest="2"> <expression>^$</expression> </RegExp> - <RegExp input="$INFO[tmdbthumblanguage]" output="<url function="ParseTMDBEnThumbs" cache="tmdb-images-en-$$8.json">https://api.tmdb.org/3/movie/$$8/images?api_key=ecbc86c92da237cb9faff6d3ddc4be6d&amp;language=en</url>" dest="2+"> - <expression>^((?!en).)*$</expression> - </RegExp> - <expression noclean="1">(.+)</expression> - </RegExp> - </ParseTMDBLangThumbs> - <ParseTMDBEnThumbs clearbuffers="no" dest="5"> - <RegExp input="$$2" output="<details>\1</details>" dest="5"> - <RegExp input="$$1" output="\1" dest="8"> - <expression noclean="1">"id":([0-9]*),</expression> - </RegExp> - <RegExp input="$$1" output="\1" dest="7"> - <expression clear="yes" noclean="1">"posters":\[\{([^\]]*)</expression> - </RegExp> - <RegExp input="$$7" output="<thumb aspect="poster" preview="$$20w500\1">$$20original\1</thumb>" dest="9"> - <expression repeat="yes" noclean="1">"file_path":"([^"]*)</expression> - </RegExp> - <RegExp input="$$9" output="$$9" dest="2"> - <expression clear="yes">(.+)</expression> - </RegExp> - <RegExp input="$$9" output="<url function="ParseTMDBAllThumbs" cache="tmdb-images-$$8.json">https://api.tmdb.org/3/movie/$$8/images?api_key=ecbc86c92da237cb9faff6d3ddc4be6d</url>" dest="2"> + <RegExp input="$$2" output="<url function="ParseFallbackTMDBThumbs">https://api.tmdb.org/3/movie/$$13/images?api_key=45ab4cebe57ae11c2ee50c87005ddfe8</url>" dest="2"> <expression>^$</expression> </RegExp> - <expression noclean="1">(.+)</expression> + <expression noclean="1" /> </RegExp> - </ParseTMDBEnThumbs> - <ParseTMDBAllThumbs dest="5"> + </ParseTMDBThumbs> + + <ParseFallbackTMDBThumbs dest="5"> <RegExp input="$$2" output="<details>\1</details>" dest="5"> <RegExp input="$$1" output="\1" dest="7"> <expression clear="yes" noclean="1">"posters":\[\{([^\]]*)</expression> </RegExp> <RegExp input="$$7" output="<thumb aspect="poster" preview="$$20w500\1">$$20original\1</thumb>" dest="2"> - <expression repeat="yes" noclean="1">"file_path":"([^"]*)</expression> + <expression repeat="yes" noclean="1">"file_path":"([^"]*)[^:]*:[^:]*:"[^"]*</expression> </RegExp> - <expression noclean="1">(.+)</expression> + <expression noclean="1" /> </RegExp> - </ParseTMDBAllThumbs> + </ParseFallbackTMDBThumbs> <ParseTMDBBaseImageURL clearbuffers="no" dest="4"> <RegExp input="$$5" output="<details>$$20</details>" dest="4"> <RegExp input="$$1" output="\1" dest="20"> - <expression>"images":\{"base_url":"([^"]*)"</expression> + <expression>"images":\{"base_url":"([^"]*)"</expression> </RegExp> <expression noclean="1" /> </RegExp> @@ -595,8 +583,17 @@ <GetTMDBPremieredByIdChain dest="4"> <RegExp input="$$5" output="<details>\1</details>" dest="4"> - <RegExp input="$$1" output="<url function="ParseTMDBPremiered" cache="tmdb-$INFO[tmdbtitlelanguage]-\1.json">https://api.tmdb.org/3/movie/\1?api_key=ecbc86c92da237cb9faff6d3ddc4be6d&amp;language=$INFO[tmdbtitlelanguage]</url>" dest="5"> - <expression /> + <RegExp input="$$1" output="\2" dest="16"> + <expression>(.+)::(.+)</expression> + </RegExp> + <RegExp input="$$1" output="<url function="ParseTMDBPremiered" cache="tmdb-\2-\1.json">https://api.tmdb.org/3/movie/\1?api_key=45ab4cebe57ae11c2ee50c87005ddfe8&amp;language=\2</url>" dest="5"> + <expression>(.+)::(.+)</expression> + </RegExp> + <RegExp input="$$16" output="$$2" dest="5"> + <RegExp input="$$1" output="<url function="ParseTMDBPremiered" cache="tmdb-$INFO[tmdbcertcountry]-\1.json">https://api.tmdb.org/3/movie/\1?api_key=45ab4cebe57ae11c2ee50c87005ddfe8&amp;language=$INFO[tmdbcertcountry]</url>" dest="2"> + <expression/> + </RegExp> + <expression>Keep Original</expression> </RegExp> <expression noclean="1" /> </RegExp> diff --git a/addons/metadata.tvdb.com/addon.xml b/addons/metadata.tvdb.com/addon.xml index f8faed97af..b39891ef14 100644 --- a/addons/metadata.tvdb.com/addon.xml +++ b/addons/metadata.tvdb.com/addon.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <addon id="metadata.tvdb.com" name="The TVDB" - version="3.0.7" + version="3.0.9" provider-name="Team Kodi"> <requires> <import addon="xbmc.metadata" version="2.1.0"/> diff --git a/addons/metadata.tvdb.com/changelog.txt b/addons/metadata.tvdb.com/changelog.txt index b7eb058965..7066da2f46 100644 --- a/addons/metadata.tvdb.com/changelog.txt +++ b/addons/metadata.tvdb.com/changelog.txt @@ -1,3 +1,9 @@ +[B]3.0.9[/B] +- Fixed: Character encoding fixes (part 2) + +[B]3.0.8[/B] +- Fixed: Character encoding fixes + [B]3.0.7[/B] - Fixed: Episode list changes diff --git a/addons/metadata.tvdb.com/tvdb.xml b/addons/metadata.tvdb.com/tvdb.xml index acd90c6d71..6fc8144d7d 100644 --- a/addons/metadata.tvdb.com/tvdb.xml +++ b/addons/metadata.tvdb.com/tvdb.xml @@ -145,6 +145,9 @@ </xsl:stylesheet> </XSLT> + <RegExp input="$$6" output="\1" dest="6"> + <expression noclean="1" fixchars="1"/> + </RegExp> </GetSearchResultsAuth> <!-- input : $$1=series html --> @@ -237,7 +240,7 @@ <RegExp input="$$1" output="<episodeguide><url post="yes" cache="auth.json">https://api.thetvdb.com/login?{"apikey":"439DFEBA9D3059C6","id":\1}|Content-Type=application/json</url></episodeguide>" dest="4+"> <expression noclean="1">"id":\s*?(\d+),</expression> </RegExp> - <expression noclean="1"/> + <expression noclean="1" fixchars="1"/> </RegExp> </GetDetails> <GetFallbackDetails dest="3" clearbuffers="no"> @@ -260,7 +263,7 @@ </RegExp> <expression>missingplot</expression> </RegExp> - <expression noclean="1"/> + <expression noclean="1" fixchars="1"/> </RegExp> </GetFallbackDetails> <GetActors dest="3" clearbuffers="no"> @@ -276,7 +279,7 @@ <RegExp input="$$1" output="<actor><name>\1</name><role>\2</role><order>\3</order></actor>" dest="5+"> <expression repeat="yes" fixchars="1,2">"name":\s*?"([^}]+)",\s*?"role":\s*?"([^}]+)",\s*?"sortOrder":\s*?(\d+),\s*?"image":\s*?(?:""|null),</expression> </RegExp> - <expression noclean="1"/> + <expression noclean="1" fixchars="1"/> </RegExp> </ParseActors> <GetArt dest="3" clearbuffers="no"> @@ -443,7 +446,7 @@ <RegExp input="$$2" output="https://api.thetvdb.com/login?{"apikey":"439DFEBA9D3059C6","id":\1}|Content-Type=application/json" dest="2"> <expression>http://(?:www\.)?thetvdb\.com/api/.+/series/(\d+)/all/</expression> </RegExp> - <expression noclean="1"/> + <expression noclean="1" fixchars="1"/> </RegExp> </GetEpisodeList> <GetEpisodeListAuth dest="3" clearbuffers="no"> @@ -483,7 +486,7 @@ </xsl:stylesheet> </XSLT> - <expression noclean="1"/> + <expression noclean="1" fixchars="1"/> </RegExp> </GetEpisodeListAuth> <LoadEpisodeList dest="4" clearbuffers="no"> @@ -771,7 +774,7 @@ </RegExp> <expression>(?!^\Q$INFO[fallbacklanguage]\E$)</expression> </RegExp> - <expression noclean="1"/> + <expression noclean="1" fixchars="1"/> </RegExp> </GetEpisodeDetailsAuth> <GetFallbackEpisodeDetails dest="3" clearbuffers="no"> @@ -797,7 +800,7 @@ <RegExp input="$$10" output="<Episode>\1</Episode>" dest="13+"> <expression noclean="1"/> </RegExp> - <expression noclean="1"/> + <expression noclean="1" fixchars="1"/> </RegExp> </GetFallbackEpisodeDetails> <ParseEpisodeDetails dest="4" clearbuffers="no"> @@ -1099,7 +1102,7 @@ </xsl:stylesheet> </XSLT> - <expression noclean="1"/> + <expression noclean="1" fixchars="1"/> </RegExp> </ParseEpisodeDetails> </scraper> |