summaryrefslogtreecommitdiffstats
path: root/addons/metadata.common.allmusic.com/allmusic.xml
diff options
context:
space:
mode:
Diffstat (limited to 'addons/metadata.common.allmusic.com/allmusic.xml')
-rw-r--r--addons/metadata.common.allmusic.com/allmusic.xml372
1 files changed, 372 insertions, 0 deletions
diff --git a/addons/metadata.common.allmusic.com/allmusic.xml b/addons/metadata.common.allmusic.com/allmusic.xml
new file mode 100644
index 0000000..0493875
--- /dev/null
+++ b/addons/metadata.common.allmusic.com/allmusic.xml
@@ -0,0 +1,372 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<scraperfunctions>
+ <GetAMGDiscographyByAMGID dest="5" clearbuffers="no">
+ <RegExp input="$$1" output="&lt;details&gt;&lt;url cache=&quot;am-\1-artist-discography.html&quot; function=&quot;ParseAMGDiscography&quot;&gt;https://www.allmusic.com/artist/\1/discography&lt;/url&gt;&lt;/details&gt;" dest="5">
+ <expression clear="yes" noclean="1"/>
+ </RegExp>
+ </GetAMGDiscographyByAMGID>
+ <ParseAMGDiscography dest="5" clearbuffers="no">
+ <RegExp input="$$3" output="&lt;details&gt;\1&lt;/details&gt;" dest="5">
+ <RegExp input="" output="" dest="3">
+ <expression />
+ </RegExp>
+ <RegExp input="$$1" output="&lt;album&gt;&lt;year&gt;\1&lt;/year&gt;&lt;title&gt;\2&lt;/title&gt;&lt;label&gt;\3&lt;/label&gt;&lt;/album&gt;" dest="3">
+ <expression repeat="yes" clear="yes" trim="1">&lt;td\sclass=&quot;year[^&quot;]*&quot;(?:\stitle=&quot;[^&quot;]*&quot;)*\s*data-sort-value=&quot;[^&gt;]*&gt;\s*([^&lt;]*)&lt;/td&gt;[^&lt;]*&lt;td\sclass=&quot;.*?title=&quot;([^&quot;]*)</expression>
+ </RegExp>
+ <expression noclean="1" />
+ </RegExp>
+ </ParseAMGDiscography>
+
+ <GetAMGArtistLifeSpanByAMGID dest="5" clearbuffers="no">
+ <RegExp input="$$1" output="&lt;details&gt;&lt;url cache=&quot;am-\1-artist.html&quot; function=&quot;ParseAMGArtistLifeSpan&quot;&gt;https://www.allmusic.com/artist/\1&lt;/url&gt;&lt;/details&gt;" dest="5">
+ <expression noclean="1"/>
+ </RegExp>
+ </GetAMGArtistLifeSpanByAMGID>
+ <ParseAMGArtistLifeSpan dest="5" clearbuffers="no">
+ <RegExp input="$$2" output="&lt;details&gt;\1&lt;/details&gt;" dest="5">
+ <RegExp input="" output="" dest="2">
+ <expression />
+ </RegExp>
+ <RegExp input="" output="" dest="11">
+ <expression />
+ </RegExp>
+ <RegExp input="$$1" output="&lt;born&gt;\1 \3&lt;/born&gt;" dest="11+">
+ <expression trim="1,2">&lt;h4&gt;\s.+Born.*?birthdate/[^&quot;]+&quot;&gt;([^&lt;]*)(.*?"/birthplace/[^&quot;]+&quot;&gt;([^&lt;]*))?</expression>
+ </RegExp>
+ <RegExp input="$$1" output="&lt;died&gt;\1 \3&lt;/died&gt;" dest="11+">
+ <expression trim="1,2">&lt;h4&gt;\s.+Died.*?deathdate/[^&quot;]+&quot;&gt;([^&lt;]*)(.*?&quot;/deathplace/[^&quot;]+&quot;&gt;([^&lt;]*))?</expression>
+ </RegExp>
+ <RegExp input="$$1" output="&lt;formed&gt;\1&lt;/formed&gt;" dest="11+">
+ <expression trim="1,2">&lt;h4&gt;\s.+Formed.*?birthdate/[^&quot;]+&quot;&gt;([^&lt;]*)</expression>
+ </RegExp>
+ <RegExp input="$$1" output="&lt;disbanded&gt;\1&lt;/disbanded&gt;" dest="11+">
+ <expression trim="1,2">&lt;h4&gt;\s.+Disbanded.*?deathdate/[^&quot;]+[^&quot;]+&quot;&gt;([^&lt;]*)</expression>
+ </RegExp>
+ <RegExp input="$$11" output="$$12" dest="2">
+ <RegExp input="$INFO[lifespanfbsource]" output="&lt;chain function=&quot;GetMBFallbackLafeSpanByMBID&quot;&gt;$$8&lt;/chain&gt;" dest="12">
+ <expression>MusicBrainz</expression>
+ </RegExp>
+ <RegExp input="$INFO[lifespanfbsource]" output="&lt;chain function=&quot;GetTADBFallbackLifeSpanByMBID&quot;&gt;$$8&lt;/chain&gt;" dest="12">
+ <expression>TheAudioDb.com</expression>
+ </RegExp>
+ <expression>^$</expression>
+ </RegExp>
+ <RegExp input="$$11" output="$$11" dest="2">
+ <expression noclean="1">&lt;(?:born|formed)*&gt;(.+)&lt;/(?:born|formed)*&gt;</expression>
+ </RegExp>
+ <expression noclean="1"/>
+ </RegExp>
+ </ParseAMGArtistLifeSpan>
+
+ <GetAMGFallbackArtistLifeSpanByAMGID dest="5" clearbuffers="no">
+ <RegExp input="$$1" output="&lt;details&gt;&lt;url cache=&quot;am-\1-artist.html&quot; function=&quot;ParseAMGFallbackArtistLifeSpan&quot;&gt;https://www.allmusic.com/artist/\1&lt;/url&gt;&lt;/details&gt;" dest="5">
+ <expression noclean="1"/>
+ </RegExp>
+ </GetAMGFallbackArtistLifeSpanByAMGID>
+ <ParseAMGFallbackArtistLifeSpan dest="5" clearbuffers="no">
+ <RegExp input="$$2" output="&lt;details&gt;\1&lt;/details&gt;" dest="5">
+ <RegExp input="" output="" dest="2">
+ <expression />
+ </RegExp>
+ <RegExp input="$$1" output="&lt;born&gt;\1 \3&lt;/born&gt;" dest="2">
+ <expression trim="1,2">&lt;h4&gt;\s.+Born.*?birthdate/[^&quot;]+&quot;&gt;([^&lt;]*)(.*?"/birthplace/[^&quot;]+&quot;&gt;([^&lt;]*))?</expression>
+ </RegExp>
+ <RegExp input="$$1" output="&lt;died&gt;\1 \3&lt;/died&gt;" dest="2+">
+ <expression trim="1,2">&lt;h4&gt;\s.+Died.*?deathdate/[^&quot;]+&quot;&gt;([^&lt;]*)(.*?&quot;/deathplace/[^&quot;]+&quot;&gt;([^&lt;]*))?</expression>
+ </RegExp>
+ <RegExp input="$$1" output="&lt;formed&gt;\1&lt;/formed&gt;" dest="2">
+ <expression trim="1,2">&lt;h4&gt;\s.+Formed.*?birthdate/[^&quot;]+&quot;&gt;([^&lt;]*)</expression>
+ </RegExp>
+ <RegExp input="$$1" output="&lt;disbanded&gt;\1&lt;/disbanded&gt;" dest="2+">
+ <expression trim="1,2">&lt;h4&gt;\s.+Disbanded.*?deathdate/[^&quot;]+[^&quot;]+&quot;&gt;([^&lt;]*)</expression>
+ </RegExp>
+ <expression noclean="1"/>
+ </RegExp>
+ </ParseAMGFallbackArtistLifeSpan>
+
+ <GetAMGArtistYearsActiveByAMGID dest="5" clearbuffers="no">
+ <RegExp input="$$1" output="&lt;details&gt;&lt;url cache=&quot;am-\1-artist.html&quot; function=&quot;ParseAMGArtistYearsActive&quot;&gt;https://www.allmusic.com/artist/\1&lt;/url&gt;&lt;/details&gt;" dest="5">
+ <expression noclean="1"/>
+ </RegExp>
+ </GetAMGArtistYearsActiveByAMGID>
+ <ParseAMGArtistYearsActive dest="5" clearbuffers="no">
+ <RegExp input="$$2" output="&lt;details&gt;\1&lt;/details&gt;" dest="5">
+ <RegExp input="" output="" dest="2">
+ <expression />
+ </RegExp>
+ <RegExp input="$$1" output="&lt;yearsactive&gt;\1&lt;/yearsactive&gt;" dest="2">
+ <expression trim="1" noclean="1">&lt;h\d&gt;Active&lt;/h\d&gt;[^&gt;]*&gt;([^&lt;]*)&lt;</expression>
+ </RegExp>
+ <expression noclean="1" />
+ </RegExp>
+ </ParseAMGArtistYearsActive>
+
+ <GetAMGArtistGenresByAMGID dest="5" clearbuffers="no">
+ <RegExp input="$$1" output="&lt;details&gt;&lt;url cache=&quot;am-\1-artist.html&quot; function=&quot;ParseAMGArtistGenres&quot;&gt;https://www.allmusic.com/artist/\1&lt;/url&gt;&lt;/details&gt;" dest="5">
+ <expression noclean="1"/>
+ </RegExp>
+ </GetAMGArtistGenresByAMGID>
+ <ParseAMGArtistGenres dest="5" clearbuffers="no">
+ <RegExp input="$$2" output="&lt;details&gt;\1&lt;/details&gt;" dest="5">
+ <RegExp input="" output="" dest="2">
+ <expression />
+ </RegExp>
+ <RegExp input="" output="" dest="6">
+ <expression />
+ </RegExp>
+ <RegExp input="$$1" output="\1" dest="6">
+ <expression noclean="1">&lt;h4&gt;Genre&lt;/h4&gt;\s*&lt;div&gt;(.*?)&lt;/div&gt;</expression>
+ </RegExp>
+ <RegExp input="$$6" output="&lt;genre&gt;\1&lt;/genre&gt;" dest="11">
+ <expression repeat="yes" noclean="1">&lt;a\shref=&quot;https://www.allmusic.com/genre/[^&quot;]*&quot;&gt;([^&lt;]*)</expression>
+ </RegExp>
+ <RegExp input="$$11" output="$$12" dest="2">
+ <RegExp input="$INFO[genresfbsource]" output="&lt;chain function=&quot;GetLastFMFallbackArtistGenresByMBID&quot;&gt;$$8&lt;/chain&gt;" dest="12">
+ <expression>last.fm</expression>
+ </RegExp>
+ <RegExp input="$INFO[genresfbsource]" output="&lt;chain function=&quot;GetTADBFallbackArtistGenresByMBID&quot;&gt;$$8&lt;/chain&gt;" dest="12">
+ <expression>TheAudioDb.com</expression>
+ </RegExp>
+ <expression>&lt;genre&gt;&lt;/genre&gt;</expression>
+ </RegExp>
+ <RegExp input="$$11" output="$$11" dest="2">
+ <expression>&lt;genre&gt;(.+)&lt;/genre&gt;</expression>
+ </RegExp>
+ <expression noclean="1" />
+ </RegExp>
+ </ParseAMGArtistGenres>
+
+ <GetAMGFallbackArtistGenresByAMGID dest="5" clearbuffers="no">
+ <RegExp input="$$1" output="&lt;details&gt;&lt;url cache=&quot;am-\1-artist.html&quot; function=&quot;ParseAMGFallbackArtistGenres&quot;&gt;https://www.allmusic.com/artist/\1&lt;/url&gt;&lt;/details&gt;" dest="5">
+ <expression noclean="1"/>
+ </RegExp>
+ </GetAMGFallbackArtistGenresByAMGID>
+ <ParseAMGFallbackArtistGenres dest="5" clearbuffers="no">
+ <RegExp input="$$2" output="&lt;details&gt;\1&lt;/details&gt;" dest="5">
+ <RegExp input="" output="" dest="2">
+ <expression />
+ </RegExp>
+ <RegExp input="" output="" dest="6">
+ <expression />
+ </RegExp>
+ <RegExp input="$$1" output="\1" dest="6">
+ <expression noclean="1">&lt;h4&gt;Genre&lt;/h4&gt;\s*&lt;div&gt;(.*?)&lt;/div&gt;</expression>
+ </RegExp>
+ <RegExp input="$$6" output="&lt;genre&gt;\1&lt;/genre&gt;" dest="2">
+ <expression repeat="yes" noclean="1">&lt;a\shref=&quot;https://www.allmusic.com/genre/[^&quot;]*&quot;&gt;([^&lt;]*)</expression>
+ </RegExp>
+ <expression noclean="1" />
+ </RegExp>
+ </ParseAMGFallbackArtistGenres>
+
+ <GetAMGArtistStylesByAMGID dest="5" clearbuffers="no">
+ <RegExp input="$$1" output="&lt;details&gt;&lt;url cache=&quot;am-\1-artist.html&quot; function=&quot;ParseAMGArtistStyles&quot;&gt;https://www.allmusic.com/artist/\1&lt;/url&gt;&lt;/details&gt;" dest="5">
+ <expression noclean="1"/>
+ </RegExp>
+ </GetAMGArtistStylesByAMGID>
+ <ParseAMGArtistStyles dest="5" clearbuffers="no">
+ <RegExp input="$$2" output="&lt;details&gt;\1&lt;/details&gt;" dest="5">
+ <RegExp input="" output="" dest="2">
+ <expression />
+ </RegExp>
+ <RegExp input="" output="" dest="7">
+ <expression />
+ </RegExp>
+ <RegExp input="$$1" output="\1" dest="7">
+ <expression noclean="1">&lt;h4&gt;Styles&lt;/h4&gt;\s*&lt;div&gt;(.*?)&lt;/div&gt;</expression>
+ </RegExp>
+ <RegExp input="$$7" output="&lt;style&gt;\1&lt;/style&gt;" dest="11">
+ <expression repeat="yes" noclean="1">&lt;a\shref=&quot;https://www.allmusic.com/style/[^&quot;]*&quot;&gt;([^&lt;]*)</expression>
+ </RegExp>
+ <RegExp input="$$11" output="$$12" dest="2">
+ <RegExp input="$INFO[stylesfbsource]" output="&lt;chain function=&quot;GetLastFMFallbackArtistStylesByMBID&quot;&gt;$$8&lt;/chain&gt;" dest="12">
+ <expression>last.fm</expression>
+ </RegExp>
+ <RegExp input="$INFO[stylesfbsource]" output="&lt;chain function=&quot;GetTADBFallbackArtistStylesByMBID&quot;&gt;$$8&lt;/chain&gt;" dest="12">
+ <expression>TheAudioDb.com</expression>
+ </RegExp>
+ <expression>&lt;style&gt;&lt;/style&gt;</expression>
+ </RegExp>
+ <RegExp input="$$11" output="$$11" dest="2">
+ <expression>&lt;style&gt;(.+)&lt;/style&gt;</expression>
+ </RegExp>
+ <expression noclean="1" />
+ </RegExp>
+ </ParseAMGArtistStyles>
+
+ <GetAMGFallbackArtistStylesByAMGID dest="5" clearbuffers="no">
+ <RegExp input="$$1" output="&lt;details&gt;&lt;url cache=&quot;am-\1-artist.html&quot; function=&quot;ParseAMGFallbackArtistStyles&quot;&gt;https://www.allmusic.com/artist/\1&lt;/url&gt;&lt;/details&gt;" dest="5">
+ <expression noclean="1"/>
+ </RegExp>
+ </GetAMGFallbackArtistStylesByAMGID>
+ <ParseAMGFallbackArtistStyles dest="5" clearbuffers="no">
+ <RegExp input="$$2" output="&lt;details&gt;\1&lt;/details&gt;" dest="5">
+ <RegExp input="" output="" dest="2">
+ <expression />
+ </RegExp>
+ <RegExp input="" output="" dest="7">
+ <expression />
+ </RegExp>
+ <RegExp input="$$1" output="\1" dest="7">
+ <expression noclean="1">&lt;h4&gt;Styles&lt;/h4&gt;\s*&lt;div&gt;(.*?)&lt;/div&gt;</expression>
+ </RegExp>
+ <RegExp input="$$7" output="&lt;style&gt;\1&lt;/style&gt;" dest="2">
+ <expression repeat="yes" noclean="1">&lt;a\shref=&quot;https://www.allmusic.com/style/[^&quot;]*&quot;&gt;([^&lt;]*)</expression>
+ </RegExp>
+ <expression noclean="1" />
+ </RegExp>
+ </ParseAMGFallbackArtistStyles>
+
+ <GetAMGArtistMoodsByAMGID dest="5" clearbuffers="no">
+ <RegExp input="$$1" output="&lt;details&gt;&lt;url cache=&quot;am-\1-artist.html&quot; function=&quot;ParseAMGArtistMoods&quot;&gt;https://www.allmusic.com/artist/\1&lt;/url&gt;&lt;/details&gt;" dest="5">
+ <expression noclean="1"/>
+ </RegExp>
+ </GetAMGArtistMoodsByAMGID>
+ <ParseAMGArtistMoods dest="5" clearbuffers="no">
+ <RegExp input="$$2" output="&lt;details&gt;\1&lt;/details&gt;" dest="5">
+ <RegExp input="" output="" dest="2">
+ <expression />
+ </RegExp>
+ <RegExp input="" output="" dest="10">
+ <expression />
+ </RegExp>
+ <RegExp input="$$1" output="\1" dest="10">
+ <expression noclean="1">&gt;Artists\sMoods&lt;/h\d*&gt;(.*?)&lt;/ul&gt;</expression>
+ </RegExp>
+ <RegExp input="$$10" output="&lt;mood&gt;\1&lt;/mood&gt;" dest="11">
+ <expression repeat="yes" noclean="1">&lt;li&gt;[^&gt;]*&gt;([^&lt;]*)&lt;/a&gt;\s*&lt;/li&gt;</expression>
+ </RegExp>
+ <RegExp input="$$11" output="$$12" dest="2">
+ <RegExp input="$INFO[moodsfbsource]" output="&lt;chain function=&quot;GetTADBFallbackArtistMoodsByMBID&quot;&gt;$$8&lt;/chain&gt;" dest="12">
+ <expression>TheAudioDb.com</expression>
+ </RegExp>
+ <expression>&lt;mood&gt;&lt;/mood&gt;</expression>
+ </RegExp>
+ <RegExp input="$$11" output="$$11" dest="2">
+ <expression>&lt;mood&gt;(.+)&lt;/mood&gt;</expression>
+ </RegExp>
+ <expression noclean="1" />
+ </RegExp>
+ </ParseAMGArtistMoods>
+
+ <GetAMGFallbackArtistMoodsByAMGID dest="5" clearbuffers="no">
+ <RegExp input="$$1" output="&lt;details&gt;&lt;url cache=&quot;am-\1-artist.html&quot; function=&quot;ParseAMGFallbackArtistMoods&quot;&gt;https://www.allmusic.com/artist/\1&lt;/url&gt;&lt;/details&gt;" dest="5">
+ <expression noclean="1"/>
+ </RegExp>
+ </GetAMGFallbackArtistMoodsByAMGID>
+ <ParseAMGFallbackArtistMoods dest="5" clearbuffers="no">
+ <RegExp input="$$2" output="&lt;details&gt;\1&lt;/details&gt;" dest="5">
+ <RegExp input="" output="" dest="2">
+ <expression />
+ </RegExp>
+ <RegExp input="" output="" dest="10">
+ <expression />
+ </RegExp>
+ <RegExp input="$$1" output="\1" dest="10">
+ <expression noclean="1">&gt;Artists\sMoods&lt;/h\d*&gt;(.*?)&lt;/ul&gt;</expression>
+ </RegExp>
+ <RegExp input="$$10" output="&lt;mood&gt;\1&lt;/mood&gt;" dest="2">
+ <expression repeat="yes" noclean="1">&lt;li&gt;[^&gt;]*&gt;([^&lt;]*)&lt;/a&gt;\s*&lt;/li&gt;</expression>
+ </RegExp>
+ <expression noclean="1" />
+ </RegExp>
+ </ParseAMGFallbackArtistMoods>
+
+
+ <GetAMGAlbumRatingByAMGID dest="5">
+ <RegExp input="$$1" output="&lt;details&gt;&lt;url cache=&quot;am-\1-album.html&quot; function=&quot;ParseAMGAlbumRating&quot;&gt;https://www.allmusic.com/album/\1&lt;/url&gt;&lt;/details&gt;" dest="5">
+ <expression noclean="1"/>
+ </RegExp>
+ </GetAMGAlbumRatingByAMGID>
+ <ParseAMGAlbumRating dest="5">
+ <RegExp input="$$2" output="&lt;details&gt;\1&lt;/details&gt;" dest="5">
+ <RegExp input="$$1" output="&lt;rating max=&quot;10.0&quot;&gt;\1&lt;/rating&gt;" dest="2">
+ <expression noclean="1">rating-allmusic-([0-9^]*)</expression>
+ </RegExp>
+ <expression noclean="1" />
+ </RegExp>
+ </ParseAMGAlbumRating>
+
+ <GetAMGAlbumGenresByAMGID dest="5">
+ <RegExp input="$$1" output="&lt;details&gt;&lt;url cache=&quot;am-\1-album.html&quot; function=&quot;ParseAMGAlbumGenres&quot;&gt;https://www.allmusic.com/album/\1&lt;/url&gt;&lt;/details&gt;" dest="5">
+ <expression noclean="1"/>
+ </RegExp>
+ </GetAMGAlbumGenresByAMGID>
+ <ParseAMGAlbumGenres dest="5">
+ <RegExp input="$$2" output="&lt;details&gt;\1&lt;/details&gt;" dest="5">
+ <RegExp input="$$1" output="\1" dest="6">
+ <expression noclean="1">class=&quot;genre&quot;&gt;(.*?)&lt;/div&gt;</expression>
+ </RegExp>
+ <RegExp input="$$6" output="&lt;genre&gt;\1&lt;/genre&gt;" dest="2">
+ <expression repeat="yes" noclean="1">&lt;a\shref=&quot;https://www.allmusic.com/genre/[^&quot;]*&quot;&gt;([^&lt;]*)</expression>
+ </RegExp>
+ <expression noclean="1" />
+ </RegExp>
+ </ParseAMGAlbumGenres>
+
+ <GetAMGAlbumStylesByAMGID dest="5">
+ <RegExp input="$$1" output="&lt;details&gt;&lt;url cache=&quot;am-\1-album.html&quot; function=&quot;ParseAMGAlbumStyles&quot;&gt;https://www.allmusic.com/album/\1&lt;/url&gt;&lt;/details&gt;" dest="5">
+ <expression noclean="1"/>
+ </RegExp>
+ </GetAMGAlbumStylesByAMGID>
+ <ParseAMGAlbumStyles dest="5">
+ <RegExp input="$$2" output="&lt;details&gt;\1&lt;/details&gt;" dest="5">
+ <RegExp input="$$1" output="\1" dest="7">
+ <expression noclean="1">class=&quot;styles&quot;&gt;(.*?)&lt;/div&gt;</expression>
+ </RegExp>
+ <RegExp input="$$7" output="&lt;style&gt;\1&lt;/style&gt;" dest="2">
+ <expression repeat="yes" noclean="1">&lt;a\shref=&quot;https://www.allmusic.com/style/[^&quot;]*&quot;&gt;([^&lt;]*)</expression>
+ </RegExp>
+ <expression noclean="1" />
+ </RegExp>
+ </ParseAMGAlbumStyles>
+
+ <GetAMGAlbumMoodsByAMGID dest="5">
+ <RegExp input="$$1" output="&lt;details&gt;&lt;url cache=&quot;am-\1-album.html&quot; function=&quot;ParseAMGAlbumMoods&quot;&gt;https://www.allmusic.com/album/\1&lt;/url&gt;&lt;/details&gt;" dest="5">
+ <expression noclean="1"/>
+ </RegExp>
+ </GetAMGAlbumMoodsByAMGID>
+ <ParseAMGAlbumMoods dest="5">
+ <RegExp input="$$2" output="&lt;details&gt;\1&lt;/details&gt;" dest="5">
+ <RegExp input="$$1" output="\1" dest="8">
+ <expression trim="1" noclean="1">&gt;\s*&lt;h4&gt;Album\sMoods&lt;/h4&gt;(.*?)&lt;/section&gt;</expression>
+ </RegExp>
+ <RegExp input="$$8" output="&lt;mood&gt;\1&lt;/mood&gt;" dest="2">
+ <expression repeat="yes" noclean="1">&lt;a\shref=&quot;https://www.allmusic.com/mood/[^&quot;]*&quot;&gt;([^&lt;]*)</expression>
+ </RegExp>
+ <expression noclean="1" />
+ </RegExp>
+ </ParseAMGAlbumMoods>
+
+ <GetAMGAlbumThemesByAMGID dest="5">
+ <RegExp input="$$1" output="&lt;details&gt;&lt;url cache=&quot;am-\1-album.html&quot; function=&quot;ParseAMGAlbumThemes&quot;&gt;https://www.allmusic.com/album/\1&lt;/url&gt;&lt;/details&gt;" dest="5">
+ <expression noclean="1"/>
+ </RegExp>
+ </GetAMGAlbumThemesByAMGID>
+ <ParseAMGAlbumThemes dest="5">
+ <RegExp input="$$2" output="&lt;details&gt;\1&lt;/details&gt;" dest="5">
+ <RegExp input="$$1" output="\1" dest="4">
+ <expression trim="1" noclean="1">&lt;section\sclass=&quot;themes&quot;&gt;(.*?)&lt;/section&gt;</expression>
+ </RegExp>
+ <RegExp input="$$4" output="&lt;theme&gt;\1&lt;/theme&gt;" dest="2">
+ <expression repeat="yes" noclean="1">&lt;a\shref=&quot;https://www.allmusic.com/theme/[^&quot;]*&quot;&gt;([^&lt;]*)</expression>
+ </RegExp>
+ <expression noclean="1" />
+ </RegExp>
+ </ParseAMGAlbumThemes>
+
+ <GetAMGAlbumThumbsByAMGID dest="5">
+ <RegExp input="$$1" output="&lt;details&gt;&lt;url cache=&quot;am-\1-album.html&quot; function=&quot;ParseAMGAlbumThumbs&quot;&gt;https://www.allmusic.com/album/\1&lt;/url&gt;&lt;/details&gt;" dest="5">
+ <expression noclean="1"/>
+ </RegExp>
+ </GetAMGAlbumThumbsByAMGID>
+ <ParseAMGAlbumThumbs dest="5">
+ <RegExp input="$$2" output="&lt;details&gt;\1&lt;/details&gt;" dest="5">
+ <RegExp input="$$1" output="&lt;thumb aspect=&quot;thumb&quot;&gt;https://cdn-s3.allmusic.com/release-covers/500/\1&lt;/thumb&gt;" dest="2">
+ <expression noclean="1">&lt;img src=&quot;https://cdn-s3.allmusic.com/release-covers/500/([^&quot;]*)</expression>
+ </RegExp>
+ <expression noclean="1" />
+ </RegExp>
+ </ParseAMGAlbumThumbs>
+
+</scraperfunctions>