Initial commit — AllMusicGuide scraper and music metadata tagger

This commit is contained in:
2026-05-10 02:49:16 +00:00
commit 4a541ca04b
194 changed files with 46364 additions and 0 deletions
+118
View File
@@ -0,0 +1,118 @@
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
<section name="MusicMetaTagger.Client.AllMusicGuide.Properties.SongScraper" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
<section name="MusicMetaTagger.Client.AllMusicGuide.Properties.ArtistScaper" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
<section name="MusicMetaTagger.Client.AllMusicGuide.Properties.ArtistDiscographyPageScraper" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
<section name="MusicMetaTagger.Client.AllMusicGuide.Properties.SongResultPageScraper" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
<section name="MusicMetaTagger.Client.AllMusicGuide.Properties.ArtistResultPageScraper" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
<section name="MusicMetaTagger.Client.AllMusicGuide.Properties.AlbumResultPageScraper" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</sectionGroup>
<sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
<section name="MusicMetaTagger.Client.AllMusicGuide.Properties.SongResultPageScraper" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
</sectionGroup>
</configSections>
<applicationSettings>
<MusicMetaTagger.Client.AllMusicGuide.Properties.SongScraper>
<setting name="SongTitleXpath" serializeAs="String">
<value>//*[@class='song-title']</value>
</setting>
<setting name="SongUrlIdRegex" serializeAs="String">
<value>[a-zA-Z]{2}[0-9]+(?=$)</value>
</setting>
<setting name="ArtistUrlXpath" serializeAs="String">
<value>//*[@class='song-artist']/a/@href</value>
</setting>
<setting name="ArtistUrIdRegex" serializeAs="String">
<value>[a-zA-Z]{2}[0-9]+(?=$)</value>
</setting>
<setting name="SongUrlIdXpath" serializeAs="String">
<value>//link[@rel='canonical']/@href</value>
</setting>
<setting name="ArtistXpath" serializeAs="String">
<value>//*[@class='song-artist']/a</value>
</setting>
<setting name="SongUrl" serializeAs="String">
<value>http://www.allmusic.com/song/{0}</value>
</setting>
<setting name="AlbumXpath" serializeAs="String">
<value>//*[@id='appearances']//tbody/tr</value>
</setting>
</MusicMetaTagger.Client.AllMusicGuide.Properties.SongScraper>
<MusicMetaTagger.Client.AllMusicGuide.Properties.ArtistScaper>
<setting name="ArtistUrl" serializeAs="String">
<value>http://www.allmusic.com/artist/{0}</value>
</setting>
<setting name="DiscographyAlbumUrl" serializeAs="String">
<value>http://www.allmusic.com/artist/{0}/overview/main</value>
</setting>
<setting name="ArtistIdXpath" serializeAs="String">
<value>//*[@class='id-details']//*[contains(.,'Rovi Music ID')]/following-sibling::*[1]</value>
</setting>
<setting name="GenreXpath" serializeAs="String">
<value>//*[@class='genres']//a</value>
</setting>
<setting name="StylesXpath" serializeAs="String">
<value>//*[@class='styles']//a</value>
</setting>
<setting name="ArtistXpath" serializeAs="String">
<value>//*[@class='artist-name']/text()</value>
</setting>
</MusicMetaTagger.Client.AllMusicGuide.Properties.ArtistScaper>
<MusicMetaTagger.Client.AllMusicGuide.Properties.ArtistDiscographyPageScraper>
<setting name="DiscographyXpath" serializeAs="String">
<value>//table[contains(@class,'album-table')]/tbody/tr</value>
</setting>
<setting name="DiscographyAlbumUrl" serializeAs="String">
<value>http://www.allmusic.com/artist/{0}/overview/main</value>
</setting>
<setting name="DiscographyEpSinglesUrl" serializeAs="String">
<value>http://www.allmusic.com/artist/{0}/overview/singles</value>
</setting>
<setting name="DiscographyCompilationUrl" serializeAs="String">
<value>http://www.allmusic.com/artist/{0}/overview/compilations</value>
</setting>
<setting name="ReleaseTypeXpath" serializeAs="String">
<value>//*[@id="discography"]//ul[@class='sub-tabs']/li[contains(@class,'active')]/@class</value>
</setting>
<setting name="ReleaseTypeRegex" serializeAs="String">
<value>.*(?=\sactive)</value>
</setting>
<setting name="ArtistXpath" serializeAs="String">
<value>//*[@class='artist-name']/text()</value>
</setting>
<setting name="ArtistIdXpath" serializeAs="String">
<value>//*[@class='id-details']//*[contains(.,'Rovi Music ID')]/following-sibling::*[1]</value>
</setting>
</MusicMetaTagger.Client.AllMusicGuide.Properties.ArtistDiscographyPageScraper>
<MusicMetaTagger.Client.AllMusicGuide.Properties.SongResultPageScraper>
<setting name="SongResultUrl" serializeAs="String">
<value>http://www.allmusic.com/search/ajax_results/songs/{0}</value>
</setting>
</MusicMetaTagger.Client.AllMusicGuide.Properties.SongResultPageScraper>
<MusicMetaTagger.Client.AllMusicGuide.Properties.ArtistResultPageScraper>
<setting name="ArtistResultUrl" serializeAs="String">
<value>http://www.allmusic.com/search/ajax_results/artists/{0}</value>
</setting>
<setting name="ArtistXpath" serializeAs="String">
<value>//*[contains(@class,'right-of-image')]</value>
</setting>
</MusicMetaTagger.Client.AllMusicGuide.Properties.ArtistResultPageScraper>
<MusicMetaTagger.Client.AllMusicGuide.Properties.AlbumResultPageScraper>
<setting name="AlbumXpath" serializeAs="String">
<value>//*[contains(@class,'right-of-image')]</value>
</setting>
<setting name="AlbumResultUrl" serializeAs="String">
<value>http://www.allmusic.com/search/ajax_results/albums/{0}</value>
</setting>
</MusicMetaTagger.Client.AllMusicGuide.Properties.AlbumResultPageScraper>
</applicationSettings>
<userSettings>
<MusicMetaTagger.Client.AllMusicGuide.Properties.SongResultPageScraper>
<setting name="SongXpath" serializeAs="String">
<value>//*[contains(@class,'right-of-image')]</value>
</setting>
</MusicMetaTagger.Client.AllMusicGuide.Properties.SongResultPageScraper>
</userSettings>
</configuration>