├── LyricsReloaded
├── .gitignore
├── app.config
├── Filters
│ ├── Filter.cs
│ ├── README.md
│ └── FilterCollection.cs
├── Configs
│ ├── musixmatch.com-asian.yml
│ ├── www.hindilyrics.net.yml
│ ├── smriti.com.yml
│ ├── urbanlyrics.com.yml
│ ├── letras.mus.br.yml
│ ├── cuspajz.com.yml
│ ├── lyrics.wikia.com.yml
│ ├── lyrics.wikia.com-gn.yml
│ ├── teksty.org.yml
│ ├── songlyrics.com.yml
│ ├── oldielyrics.com.yml
│ ├── metrolyrics.com.yml
│ ├── azlyrics.com.yml
│ ├── genius.com.yml
│ ├── musixmatch.com.yml
│ └── example.yml
├── Properties
│ ├── Settings.settings
│ ├── Settings.Designer.cs
│ ├── AssemblyInfo.cs
│ ├── Resources.resx
│ └── Resources.Designer.cs
├── packages.config
├── mb_LyricsReloaded.csproj.DotSettings
├── Validation
│ ├── README.md
│ ├── Validator.cs
│ └── ValidationCollection.cs
├── LyricsLoader.cs
├── Provider
│ ├── Loader
│ │ ├── LyricsLoader.cs
│ │ └── StaticLoader.cs
│ ├── Variable.cs
│ ├── RateLimit.cs
│ ├── Provider.cs
│ └── ProviderManager.cs
├── README.md
├── Logger.cs
├── mb_LyricsReloaded.csproj
├── Plugin.cs
├── LyricsReloaded.cs
└── WebClient.cs
├── LyricsTester.exe
├── LyricsReloaded.suo
├── LyricsTester
├── App.config
├── LyricsTester.csproj.DotSettings
├── Properties
│ └── AssemblyInfo.cs
├── LyricsTester.csproj
└── Program.cs
├── LyricsNUnit
├── packages.config
├── Test.cs
├── AzLyricsTests.cs
├── PinkRadioTests.cs
├── RapGeniusTests.cs
├── CuspajzTests.cs
├── TekstyTests.cs
├── HindiLyricsTests.cs
├── SmritiTests.cs
├── SongLyricsTests.cs
├── TekstowoTests.cs
├── UrbanLyricsTests.cs
├── OldiesLyricsTests.cs
├── LetrasMusBrTests.cs
├── LyricsTests.cs
├── MetroLyricsTests.cs
├── LyricWikiTests.cs
└── LyricsNUnit.csproj
├── .travis.yml
├── README.md
├── providers.txt
├── .gitignore
└── LyricsReloaded.sln
/LyricsReloaded/.gitignore:
--------------------------------------------------------------------------------
1 | /bin/
2 | /obj/
3 |
--------------------------------------------------------------------------------
/LyricsTester.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pschichtel/LyricsReloaded/HEAD/LyricsTester.exe
--------------------------------------------------------------------------------
/LyricsReloaded.suo:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pschichtel/LyricsReloaded/HEAD/LyricsReloaded.suo
--------------------------------------------------------------------------------
/LyricsReloaded/app.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/LyricsReloaded/Filters/Filter.cs:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pschichtel/LyricsReloaded/HEAD/LyricsReloaded/Filters/Filter.cs
--------------------------------------------------------------------------------
/LyricsReloaded/Configs/musixmatch.com-asian.yml:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pschichtel/LyricsReloaded/HEAD/LyricsReloaded/Configs/musixmatch.com-asian.yml
--------------------------------------------------------------------------------
/LyricsTester/App.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/LyricsNUnit/packages.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/LyricsNUnit/Test.cs:
--------------------------------------------------------------------------------
1 | using NUnit.Framework;
2 | using System;
3 |
4 | namespace LyricsNUnit
5 | {
6 | [TestFixture ()]
7 | public class Test
8 | {
9 | [Test ()]
10 | public void TestCase ()
11 | {
12 | }
13 | }
14 | }
15 |
16 |
--------------------------------------------------------------------------------
/.travis.yml:
--------------------------------------------------------------------------------
1 | language: csharp
2 | solution: LyricsReloaded.sln
3 | sudo: false
4 | script:
5 | - xbuild /p:Configuration=Release LyricsReloaded.sln
6 | - mono ./packages/NUnit.Console.3.0.0/tools/nunit3-console.exe LyricsNUnit/bin/Release/LyricsNUnit.dll
7 |
--------------------------------------------------------------------------------
/LyricsReloaded/Properties/Settings.settings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/LyricsReloaded/packages.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/LyricsReloaded/Configs/www.hindilyrics.net.yml:
--------------------------------------------------------------------------------
1 | name: Hindi Lyrics
2 |
3 | variables:
4 | title:
5 | type: title
6 | filters:
7 | - urlencode
8 |
9 | config:
10 | url: "http://www.hindilyrics.net/lyrics/of-{title}.html"
11 | pattern: ['(?.*?)', s]
12 |
13 | post-filters:
14 | - trim
15 | - utf8_encode
--------------------------------------------------------------------------------
/LyricsTester/LyricsTester.csproj.DotSettings:
--------------------------------------------------------------------------------
1 |
2 | No
--------------------------------------------------------------------------------
/LyricsReloaded/mb_LyricsReloaded.csproj.DotSettings:
--------------------------------------------------------------------------------
1 |
2 | No
--------------------------------------------------------------------------------
/LyricsReloaded/Configs/smriti.com.yml:
--------------------------------------------------------------------------------
1 | name: Smriti
2 |
3 | variables:
4 | title:
5 | type: title
6 | filters:
7 | - lowercase
8 | - [regex, '[^\sa-z0-9]\s*', ""]
9 | - [strip_nonascii, -]
10 |
11 | config:
12 | url: "http://smriti.com/hindi-songs/{title}"
13 | pattern: ['
(?.*?)
', s]
14 |
15 | post-filters:
16 | - strip_html
17 | - trim
18 | - utf8_encode
--------------------------------------------------------------------------------
/LyricsReloaded/Configs/urbanlyrics.com.yml:
--------------------------------------------------------------------------------
1 | name: Urban Lyrics
2 |
3 | variables:
4 | artist:
5 | type: artist
6 | filters:
7 | - lowercase
8 | - strip_nonascii
9 | title:
10 | type: title
11 | filters: artist
12 |
13 | config:
14 | url: "http://www.urbanlyrics.com/lyrics/{artist}/{title}.html"
15 | pattern: ['(?.+?)', s]
16 |
17 | post-filters:
18 | - strip_html
19 | - utf8_encode
--------------------------------------------------------------------------------
/LyricsReloaded/Configs/letras.mus.br.yml:
--------------------------------------------------------------------------------
1 | name: "Letras de músicas"
2 |
3 | variables:
4 | artist:
5 | type: artist
6 | filters:
7 | - lowercase
8 | - [strip_nonascii, -]
9 | title:
10 | type: title
11 | filters: artist
12 |
13 | config:
14 | url: "http://letras.mus.br/{artist}/{title}/"
15 | pattern: [']*>(?.*?)
', s]
16 |
17 | post-filters:
18 | - p2break
19 | - strip_html
20 | - clean_spaces
21 | - utf8_encode
--------------------------------------------------------------------------------
/LyricsReloaded/Configs/cuspajz.com.yml:
--------------------------------------------------------------------------------
1 | name: "Cušpajz"
2 |
3 | variables:
4 | artist:
5 | type: artist
6 | filters:
7 | - strip_diacritics
8 | - lowercase
9 | - [strip_nonascii, -]
10 | title:
11 | type: title
12 | filters: artist
13 |
14 | config:
15 | url: "http://cuspajz.com/tekstovi-pjesama/pjesma/{artist}/{title}.html"
16 | pattern: ['(?[\s\S]*?)
', s]
17 |
18 | post-filters:
19 | - strip_html
20 | - entity_decode
--------------------------------------------------------------------------------
/LyricsReloaded/Configs/lyrics.wikia.com.yml:
--------------------------------------------------------------------------------
1 | name: LyricWiki Reloaded
2 |
3 | variables:
4 | artist:
5 | type: artist
6 | filters:
7 | - [regex, "\\s+", _]
8 | - urlencode
9 | title:
10 | type: title
11 | filters: artist
12 |
13 | post-filters:
14 | - br2nl
15 | - p2break
16 | - strip_html
17 | - entity_decode
18 | - utf8_encode
19 | - trim
20 |
21 | config:
22 | url: "http://lyrics.wikia.com/{artist}:{title}"
23 | pattern: "'lyricbox'>.*?(?.*?)(?.+?)', s]
19 |
20 | post-filters:
21 | - strip_html
22 | - trim
23 | - utf8_encode
--------------------------------------------------------------------------------
/LyricsReloaded/Validation/README.md:
--------------------------------------------------------------------------------
1 | Validators
2 | ==========
3 |
4 | Validators are meant to verify the loaded lyrics.
5 | An example where this would be necessary:
6 | A website that doesn't return an error 404 when lyrics were not found,
7 | but instead show a page with the exact same format, but a "not found"-message
8 | instead of lyrics.
9 | The result of validators can be inverted by prefixing their name with "not ".
10 |
11 | Examples:
12 | * [contains, lyrics]
13 | * [not contains, not found]
14 |
15 | contains
16 | --------
17 | This validator checks whether the content contains a given string (first argument).
18 |
19 |
20 | matches
21 | -------
22 | This validator checks whether the given regex matches something in the content.
23 | It takes a regular expression (first argument) and options for it (second argument)
24 |
--------------------------------------------------------------------------------
/LyricsReloaded/Configs/genius.com.yml:
--------------------------------------------------------------------------------
1 | name: Genius
2 |
3 | variables:
4 | artist:
5 | type: artist
6 | filters:
7 | - strip_diacritics
8 | - lowercase
9 | - [replace, "!!!", "chk-chik-chick"]
10 | - [regex, '(?<=\W|\s)+(feat.+|ft[\W\s]+|(f\.\s)).+', ""]
11 | - [regex, '\.+|,+|(\W+(?=$))|(^\W+)', ""]
12 | - [regex, "'", ""]
13 | - [regex, '(?<=[a-z0-9%])[^\sa-z0-9%]+(?=[a-z0-9%]+)', "-"]
14 | - [regex, '((?<=\s)([^a-z0-9\s-])+(\s|\W)+)|((?<=\w)([^a-z0-9-])+(\s|\W)+)', " "]
15 | - [strip_nonascii, -]
16 | - [regex, '\s&(?=\s)', " and"]
17 | title:
18 | type: title
19 | filters: artist
20 |
21 | config:
22 | url: "https://genius.com/{artist}-{title}-lyrics"
23 | pattern: ['(?.*)