diff options
author | Martijn Kaijser <mcm.kaijser@gmail.com> | 2012-07-08 12:54:29 +0200 |
---|---|---|
committer | Martijn Kaijser <mcm.kaijser@gmail.com> | 2012-07-08 12:55:07 +0200 |
commit | 4c4ccf0e898d8ad1636a9fec5d22c4b1195ca520 (patch) | |
tree | 87889ab28e364ad6bb395c7af7ce339e96a6c320 /addons/metadata.common.allmusic.com | |
parent | f8ef1ccfc32335af2608236dba4fd85084a94fee (diff) |
update common scraper modules
Diffstat (limited to 'addons/metadata.common.allmusic.com')
-rw-r--r-- | addons/metadata.common.allmusic.com/addon.xml | 2 | ||||
-rw-r--r-- | addons/metadata.common.allmusic.com/allmusic.xml | 523 | ||||
-rw-r--r-- | addons/metadata.common.allmusic.com/icon.png | bin | 0 -> 12584 bytes |
3 files changed, 442 insertions, 83 deletions
diff --git a/addons/metadata.common.allmusic.com/addon.xml b/addons/metadata.common.allmusic.com/addon.xml index 0fc8372ba7..8a990a9a1e 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"?> <addon id="metadata.common.allmusic.com" name="AllMusic" - version="1.9.0" + version="2.4.3" provider-name="Team XBMC"> <requires> <import addon="xbmc.metadata" version="1.0"/> diff --git a/addons/metadata.common.allmusic.com/allmusic.xml b/addons/metadata.common.allmusic.com/allmusic.xml index dec39599cd..fa593d6167 100644 --- a/addons/metadata.common.allmusic.com/allmusic.xml +++ b/addons/metadata.common.allmusic.com/allmusic.xml @@ -1,147 +1,506 @@ <scraperfunctions> - <GetAMGDiscography dest="5"> - <RegExp input="$$2$$3" output="<details>\1</details>" dest="5"> - <RegExp input="$$1" output="<album><year>\1</year><title>\2</title><label>\3</label></album>" dest="2"> - <expression repeat="yes" clear="yes" noclean="1,3,4"><td class="sorted cell">([^<]*)</td>.*?<td class="cell"><a href="[^>]*>([^<]*)<.*?<td class="cell">([^<]*)<</expression> + <GetAMGDiscographyByAMGID dest="5" clearbuffers="no"> + <RegExp input="$$1" output="<details><url cache="am-\1-artist.html" function="ParseAMGDiscography">http://www.allmusic.com/artist/\1</url></details>" dest="5"> + <expression clear="yes" noclean="1"/> + </RegExp> + </GetAMGDiscographyByAMGID> + <ParseAMGDiscography dest="5" clearbuffers="no"> + <RegExp input="$$3" output="<details>\1</details>" dest="5"> + <RegExp input="" output="" dest="3"> + <expression /> + </RegExp> + <RegExp input="$$1" output="<album><year>\1</year><title>\2</title><label>\3</label></album>" dest="3"> + <expression repeat="yes" clear="yes" trim="1"><td class="year[^"]*"(?:\stitle="[^"]*")*\s*data-sort-value="[^>]*>([^<]*)</td>[^<]*<td class=".*?title="([^"]*)</expression> + </RegExp> + <expression noclean="1" /> + </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="$$2" output="\1&amp;\2" dest="3"> - <expression repeat="yes" noclean="1,2">(.*?)&(.+)</expression> + <RegExp input="$$1" output="\1" dest="11"> + <expression clear="yes">" itemprop="description">(.*?)div class="advertisement leaderboard"></expression> </RegExp> - <RegExp input="$$3" output="" dest="2"> + <RegExp input="$$11" output="$$12" dest="2"> + <RegExp input="$INFO[biogfbsource]" output="<chain function="GetLastFMFallbackBiographyByMBID">$$8</chain>" dest="12"> + <expression>last.fm</expression> + </RegExp> + <expression>^$</expression> + </RegExp> + <RegExp input="$$11" output="<biography>\1</biography>" dest="2"> <expression>(.+)</expression> </RegExp> - <expression noclean="1" /> + <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> - </GetAMGDiscography> - <GetAMGBiography dest="5"> + </GetAMGFallbackBiographyByAMGID> + <ParseAMGFallbackBiography dest="5" clearbuffers="no"> <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 clear="yes">Biography</h2>.*?</p>(.*?)</p></expression> + <RegExp input="" output="" dest="2"> + <expression /> + </RegExp> + <RegExp input="$$1" output="\1" dest="2"> + <expression clear="yes">" itemprop="description">(.*?)div class="advertisement leaderboard"></expression> </RegExp> <expression noclean="1"/> </RegExp> - </GetAMGBiography> - <GetAMGReview dest="5"> + </ParseAMGFallbackBiography> + + <GetAMGArtistNameByAMGID dest="5"> + <RegExp input="$$1" output="<details><url cache="am-\1-artist.html" function="ParseAMGArtistName">http://www.allmusic.com/artist/\1</url></details>" dest="5"> + <expression noclean="1"/> + </RegExp> + </GetAMGArtistNameByAMGID> + <ParseAMGArtistName 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><h2 class="title">Review</h2>.*?</p>(.*?)</p></expression> + <RegExp input="$$1" output="<name>\1</name>" dest="2"> + <expression noclean="1">http://schema.org/MusicGroup">[^<]*<span itemprop="name">([^<]*)</span></expression> </RegExp> - <expression noclean="1" /> + <expression noclean="1"/> </RegExp> - </GetAMGReview> - <ParseAMGArtist dest="3"> - <RegExp input="$$5" output="<details>\1</details>" dest="3"> - <RegExp input="$$1" output="<name>\1</name>" dest="5"> - <expression noclean="1"><meta name="title" content="([^"]*)</expression> + </ParseAMGArtistName> + + <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"> + <expression noclean="1"/> + </RegExp> + </GetAMGArtistLifeSpanByAMGID> + <ParseAMGArtistLifeSpan dest="5" clearbuffers="no"> + <RegExp input="$$2" output="<details>\1</details>" dest="5"> + <RegExp input="" output="" dest="2"> + <expression /> + </RegExp> + <RegExp input="" output="" dest="11"> + <expression /> + </RegExp> + <RegExp input="$$1" output="<born>\1 \2</born>" dest="11+"> + <expression trim="1,2"><dt>\s*Born[^>]*>[^>]*>[^>]*>(.*?\d{4})\s*([^<]*)?</expression> + </RegExp> + <RegExp input="$$1" output="<died>\1 \2</died>" dest="11+"> + <expression trim="1,2"><dt>\s*Died[^>]*>[^>]*>[^>]*>(.*?\d{4})\s*([^<]*)?</expression> + </RegExp> + <RegExp input="$$1" output="<formed>\1</formed>" dest="11+"> + <expression trim="1,2"><dt>\s*Formed[^>]*>[^>]*>[^>]*>(.*?\d{4})\s*([^<]*)?</expression> + </RegExp> + <RegExp input="$$1" output="<disbanded>\1</disbanded>" dest="11+"> + <expression trim="1,2"><dt>\s*Disbanded[^>]*>[^>]*>[^>]*>(.*?\d{4})\s*([^<]*)?</expression> + </RegExp> + <RegExp input="$$11" output="$$12" dest="2"> + <RegExp input="$INFO[lifespanfbsource]" output="<chain function="GetMBFallbackLafeSpanByMBID">$$8</chain>" dest="12"> + <expression>MusicBrainz</expression> + </RegExp> + <expression>^$</expression> + </RegExp> + <RegExp input="$$11" output="$$11" dest="2"> + <expression noclean="1"><(?:born|formed)*>(.+)</(?:born|formed)*></expression> </RegExp> - <RegExp input="$$1" output="<born>\1</born>" dest="5+"> - <expression><h3>Born[^>]*>[^>]*>(.*?)</p></expression> + <expression noclean="1"/> + </RegExp> + </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"> + <expression noclean="1"/> + </RegExp> + </GetAMGFallbackArtistLifeSpanByAMGID> + <ParseAMGFallbackArtistLifeSpan dest="5" clearbuffers="no"> + <RegExp input="$$2" output="<details>\1</details>" dest="5"> + <RegExp input="" output="" dest="2"> + <expression /> </RegExp> - <RegExp input="$$1" output="<born>\1</born>" dest="5+"> - <expression><h3>Birth[^>]*>[^>]*>(.*?)</p></expression> + <RegExp input="$$1" output="<born>\1 \2</born>" dest="2"> + <expression trim="1,2"><dt>\s*Born[^>]*>[^>]*>[^>]*>(.*?\d{4})\s*([^<]*)?</expression> + </RegExp> + <RegExp input="$$1" output="<died>\1 \2</died>" dest="2+"> + <expression trim="1,2"><dt>\s*Died[^>]*>[^>]*>[^>]*>(.*?\d{4})\s*([^<]*)?</expression> + </RegExp> + <RegExp input="$$1" output="<formed>\1</formed>" dest="2"> + <expression trim="1,2"><dt>\s*Formed[^>]*>[^>]*>[^>]*>(.*?\d{4})\s*([^<]*)?</expression> + </RegExp> + <RegExp input="$$1" output="<disbanded>\1</disbanded>" dest="2+"> + <expression trim="1,2"><dt>\s*Disbanded[^>]*>[^>]*>[^>]*>(.*?\d{4})\s*([^<]*)?</expression> + </RegExp> + <expression noclean="1"/> + </RegExp> + </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"> + <expression noclean="1"/> + </RegExp> + </GetAMGArtistYearsActiveByAMGID> + <ParseAMGArtistYearsActive dest="5" clearbuffers="no"> + <RegExp input="$$2" output="<details>\1</details>" dest="5"> + <RegExp input="" output="" dest="2"> + <expression /> </RegExp> - <RegExp input="$$1" output="<died>\1</died>" dest="5+"> - <expression><h3>Died[^>]*>[^>]*>(.*?)</p></expression> + <RegExp input="$$1" output="<yearsactive>\1</yearsactive>" dest="2"> + <expression trim="1" noclean="1"><dd class="active">([^<]*)<</expression> </RegExp> - <RegExp input="$$1" output="<formed>\1</formed>" dest="5+"> - <expression><h3>Formed[^>]*>[^>]*>(.*?)</p></expression> + <expression noclean="1" /> + </RegExp> + </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"> + <expression noclean="1"/> + </RegExp> + </GetAMGArtistGenresByAMGID> + <ParseAMGArtistGenres dest="5" clearbuffers="no"> + <RegExp input="$$2" output="<details>\1</details>" dest="5"> + <RegExp input="" output="" dest="2"> + <expression /> </RegExp> - <RegExp input="$$1" output="<disbanded>\1</disbanded>" dest="5+"> - <expression><h3>Disbanded[^>]*>[^>]*>(.*?)</p></expression> + <RegExp input="" output="" dest="6"> + <expression /> </RegExp> <RegExp input="$$1" output="\1" dest="6"> - <expression noclean="1"><h3>Years Active</h3>(.*?)</p></expression> + <expression noclean="1"><dt>Genres</dt>(.*?)</dd></expression> + </RegExp> + <RegExp input="$$6" output="<genre>\2</genre>" dest="11"> + <expression repeat="yes" noclean="1"><li><a href="/genre/[^"]*">(<strong>)?([^<]*)</expression> </RegExp> - <RegExp input="$$6" output="\1's/" dest="7+"> - <expression repeat="yes"><span class="active">([0-9]+)</span></expression> + <RegExp input="$$11" output="$$12" dest="2"> + <RegExp input="$INFO[genresfbsource]" output="<chain function="GetLastFMFallbackArtistGenresByMBID">$$8</chain>" dest="12"> + <expression>last.fm</expression> + </RegExp> + <expression><genre></genre></expression> </RegExp> - <RegExp input="$$7" output="<yearsactive>\1</yearsactive>" dest="5+"> - <expression noclean="1">(.+)/</expression> + <RegExp input="$$11" output="$$11" dest="2"> + <expression><genre>(.+)</genre></expression> + </RegExp> + <expression noclean="1" /> + </RegExp> + </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"> + <expression noclean="1"/> + </RegExp> + </GetAMGFallbackArtistGenresByAMGID> + <ParseAMGFallbackArtistGenres dest="5" clearbuffers="no"> + <RegExp input="$$2" output="<details>\1</details>" 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"><h3>Genres</h3>(.*?)</div></expression> + <expression noclean="1"><dt>Genres</dt>(.*?)</dd></expression> + </RegExp> + <RegExp input="$$6" output="<genre>\2</genre>" dest="2"> + <expression repeat="yes" noclean="1"><li><a href="/genre/[^"]*">(<strong>)?([^<]*)</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"> + <expression noclean="1"/> + </RegExp> + </GetAMGArtistStylesByAMGID> + <ParseAMGArtistStyles dest="5" clearbuffers="no"> + <RegExp input="$$2" output="<details>\1</details>" dest="5"> + <RegExp input="" output="" dest="2"> + <expression /> </RegExp> - <RegExp input="$$6" output="<genre>\2</genre>" dest="5+"> - <expression repeat="yes" noclean="1"><a href="/explore/genre/[^>]*>(<strong>)?([^<]*)</expression> + <RegExp input="" output="" dest="7"> + <expression /> </RegExp> <RegExp input="$$1" output="\1" dest="7"> - <expression noclean="1"><h3>Styles</h3>(.*?)</div></expression> + <expression noclean="1"><dt>Styles</dt>(.*?)</dd></expression> </RegExp> - <RegExp input="$$7" output="<style>\1</style>" dest="5+"> - <expression repeat="yes" noclean="1"><li>[^>]*>([^<]*)</a></li></expression> + <RegExp input="$$7" output="<style>\1</style>" dest="11"> + <expression repeat="yes" noclean="1"><li><a href="/style/[^"]*">([^<]*)</expression> + </RegExp> + <RegExp input="$$11" output="$$12" dest="2"> + <RegExp input="$INFO[stylesfbsource]" output="<chain function="GetLastFMFallbackArtistStylesByMBID">$$8</chain>" dest="12"> + <expression>last.fm</expression> + </RegExp> + <expression><style></style></expression> + </RegExp> + <RegExp input="$$11" output="$$11" dest="2"> + <expression><style>(.+)</style></expression> + </RegExp> + <expression noclean="1" /> + </RegExp> + </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"> + <expression noclean="1"/> + </RegExp> + </GetAMGFallbackArtistStylesByAMGID> + <ParseAMGFallbackArtistStyles dest="5" clearbuffers="no"> + <RegExp input="$$2" output="<details>\1</details>" 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"><dt>Styles</dt>(.*?)</dd></expression> + </RegExp> + <RegExp input="$$7" output="<style>\1</style>" dest="2"> + <expression repeat="yes" noclean="1"><li><a href="/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"> + <expression noclean="1"/> + </RegExp> + </GetAMGArtistMoodsByAMGID> + <ParseAMGArtistMoods 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="8"> - <expression noclean="1"><h3>Moods</h3>(.*?)</div></expression> + <expression noclean="1"><h4>artist moods</h4>(.*?)</ul></expression> </RegExp> - <RegExp input="$$8" output="<mood>\1</mood>" dest="5+"> + <RegExp input="$$8" output="<mood>\1</mood>" dest="2"> <expression repeat="yes" noclean="1"><li>[^>]*>([^<]*)</a></li></expression> </RegExp> + <expression noclean="1" /> + </RegExp> + </ParseAMGArtistMoods> + + <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="$$1" output="\1" dest="9"> - <expression noclean="1"><h3>Instruments</h3>(.*?)</div></expression> + <expression noclean="1"><h4>photo gallery</h4>(.*?)<h4></expression> </RegExp> - <RegExp input="$$9" output="<instruments>\1</instruments>" dest="5+"> - <expression repeat="yes" noclean="1"><li>[^>]*>([^<]*)</a></li></expression> + <RegExp input="$$9" 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> - <RegExp conditional="allmusicartistthumbs" input="$$1" output="<thumb>\1</thumb>" dest="5+"> - <expression noclean="1"><img id="artist_image" src="([^"]*)"</expression> + <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> - </ParseAMGArtist> - <ParseAMGAlbum dest="3"> - <RegExp input="$$5" output="<details>\1</details>" dest="3"> - <RegExp input="$$1" output="<title>\1</title>" dest="5"> - <expression trim="1" noclean="1"><meta name="title" content="([^-]*)-[^<]*" /></expression> - </RegExp> - <RegExp input="$$1" output="<artist>\1</artist>" dest="5+"> - <expression noclean="1"><meta name="title" content="[^-]*- ([^<]*)" /></expression> - </RegExp> - <RegExp input="$$1" output="<rating>\1</rating>" dest="5+"> - <expression noclean="1"><h3>Rating</h3>[^_]*_r([0-9^]*)</expression> + </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> - <RegExp input="$$1" output="<label>\1</label>" dest="5+"> - <expression noclean="1"><h3>Label</h3>[^>]*>([^<]*)</expression> + <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> - <RegExp input="$$1" output="<type>\1</type>" dest="5+"> - <expression noclean="1"><h3>Type</h3>[^>]*>([^<]*)</expression> + <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"> + <expression noclean="1"/> + </RegExp> + </GetAMGAlbumRatingByAMGID> + <ParseAMGAlbumRating dest="5"> + <RegExp input="$$2" output="<details>\1</details>" dest="5"> + <RegExp input="$$1" output="<rating max="5.0">\1</rating>" dest="2"> + <expression noclean="1">itemprop="rating">([0-9^]*)</expression> </RegExp> - <RegExp input="$$1" output="<releasedate>\1</releasedate>" dest="5+"> - <expression noclean="1"><h3>Release Date</h3>[^>]*>([^<]*)</expression> + <expression noclean="1" /> + </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>\1</year>" dest="5+"> - <expression noclean="1"><span>Release Date.*?([0-9]+)</</expression> + <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"> + <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"><h3>Genre[s]?</h3>(.*?)</div></expression> + <expression noclean="1"><dd class="genres">(.*?)</dd></expression> </RegExp> - <RegExp input="$$6" output="<genre>\1</genre>" dest="5+"> + <RegExp input="$$6" output="<genre>\1</genre>" dest="2"> <expression repeat="yes" trim="1" noclean="1"><li>[^>]*>([^<]*)</a></li></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"> + <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"><h3>Style[s]?</h3>(.*?)</div></expression> + <expression noclean="1"><dd class="styles">(.*?)</dd></expression> </RegExp> - <RegExp input="$$7" output="<style>\1</style>" dest="5+"> + <RegExp input="$$7" output="<style>\1</style>" dest="2"> <expression repeat="yes" trim="1" noclean="1"><li>[^>]*>([^<]*)</a></li></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"> + <expression noclean="1"/> + </RegExp> + </GetAMGAlbumMoodsByAMGID> + <ParseAMGAlbumMoods dest="5"> + <RegExp input="$$2" output="<details>\1</details>" dest="5"> <RegExp input="$$1" output="\1" dest="8"> - <expression trim="1" noclean="1"><h3>Mood[s]?</h3>(.*?)</div></expression> + <expression trim="1" noclean="1">>\s*<h4>album moods</h4>(.*?)</ul></expression> </RegExp> - <RegExp input="$$8" output="<mood>\1</mood>" dest="5+"> + <RegExp input="$$8" output="<mood>\1</mood>" dest="2"> <expression repeat="yes" noclean="1"><li>[^>]*>([^<]*)</a></li></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"> + <expression noclean="1"/> + </RegExp> + </GetAMGAlbumThemesByAMGID> + <ParseAMGAlbumThemes dest="5"> + <RegExp input="$$2" output="<details>\1</details>" dest="5"> <RegExp input="$$1" output="\1" dest="9"> - <expression noclean="1"><h3>Theme[s]?</h3>(.*?)</div></expression> + <expression noclean="1"><h4>album themes</h4>(.*?)</ul></expression> </RegExp> - <RegExp input="$$9" output="<theme>\1</theme>" dest="5+"> + <RegExp input="$$9" output="<theme>\1</theme>" dest="2"> <expression repeat="yes" noclean="1"><li>[^>]*>([^<]*)</a></li></expression> </RegExp> - <RegExp input="$$1" output="<track><position>\1</position><title>\2</title><duration>\3</duration></track>" dest="5+"> - <expression repeat="yes" noclean="1,2,3">"cell">([0-9]+)<.*?<td class="cell">[^>]*>([^<]*)</a></td>.*?<td class="cell">([0-9]*:[0-9]*)</td></expression> + <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> - <RegExp conditional="allmusicalbumthumbs" input="$$1" output="<thumb>http://image.allmusic.com/\1</thumb>" dest="5+"> - <expression noclean="1">http://image.allmusic.com/([^"]*)"</expression> + <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"> + <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"><meta property="og:image" content="http://cps-static.rovicorp.com/3/JPG_[^/]*/([^"]*)</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> - </ParseAMGAlbum> + </ParseAMGFakeAlbumReview> + </scraperfunctions> diff --git a/addons/metadata.common.allmusic.com/icon.png b/addons/metadata.common.allmusic.com/icon.png Binary files differnew file mode 100644 index 0000000000..9c18e20111 --- /dev/null +++ b/addons/metadata.common.allmusic.com/icon.png |