| 1 | # -*- coding: utf-8 -*- |
|---|
| 2 | #### |
|---|
| 3 | # Written by Vinicius de Figueiredo Silva <viniciusfs@gmail.com> |
|---|
| 4 | #### |
|---|
| 5 | |
|---|
| 6 | import urllib |
|---|
| 7 | import string |
|---|
| 8 | import re |
|---|
| 9 | |
|---|
| 10 | from plugins.lyrics import LyricsPlugin |
|---|
| 11 | |
|---|
| 12 | class LyrikiPlugin(LyricsPlugin): |
|---|
| 13 | PLUGIN_NAME = "letras.mus.br" |
|---|
| 14 | PLUGIN_DESC = "Add support of letras.mus.br website to provide lyrics" |
|---|
| 15 | PLUGIN_VERSION = "1.0" |
|---|
| 16 | server_name = "letras.mus.br" |
|---|
| 17 | PLUGIN_AUTHOR = "Vinicius de Figueiredo Silva <viniciusfs@gmail.com>" |
|---|
| 18 | PLUGIN_WEBSITE = "http://vinicius.oitobits.net" |
|---|
| 19 | |
|---|
| 20 | def process_lyrics(self,artist,album,title,song): |
|---|
| 21 | url = "http://letras.mus.br/winamp.php?musica=%s&artista=%s"%( |
|---|
| 22 | urllib.quote(title.encode('utf-8')), |
|---|
| 23 | urllib.quote(artist.encode('utf-8'))) |
|---|
| 24 | |
|---|
| 25 | self.download_data(url,self.fetch_lyrics_terra,song) |
|---|
| 26 | |
|---|
| 27 | def fetch_lyrics_terra(self,html_buffer,song): |
|---|
| 28 | content = html_buffer.read() |
|---|
| 29 | error_msg = re.search('\<h3\>(?P<msg>.*)\<\/h3\>', content) |
|---|
| 30 | |
|---|
| 31 | if error_msg is not None: |
|---|
| 32 | self.render(_("Lyrics not found.")) |
|---|
| 33 | else: |
|---|
| 34 | start = "</p><p>" |
|---|
| 35 | end = "</p></div>" |
|---|
| 36 | lyric = content[content.find(start)+len(start):content.find(end)] |
|---|
| 37 | lyric = lyric.replace("<br/>","<br />") |
|---|
| 38 | self.render(lyric,song,True) |
|---|