package cn.qylk.QianQianLyrics;
import java.io.IOException;
import java.util.List;
import cn.qylk.app.TrackInfo;
import cn.qylk.utils.WebUtils;
public class QianQianLyrics {
private static String DownloadUrl = "http://ttlrcct2.qianqian.com/dll/lyricsvr.dll?dl?Id=%s&Code=%s";
private static String SearchUrl = "http://ttlrcct2.qianqian.com/dll/lyricsvr.dll?sh?Artist=%s&Title=%s&Flags=0";
private QianQianEncoding coding;
public QianQianLyrics() {
coding = new QianQianEncoding();
}
/**
* 千千静听歌词下载
*
* @param entry
* @param lrcid
* @return
*/
public String fetch(TrackInfo entry, int lrcid) {
try {
return WebUtils.GetContent(getDownloadUrl(entry, lrcid), "UTF-8");
} catch (IOException e) {
return null;
}
}
/**
* 根据歌词id获取下载地址
*
* @param entry
* @param lrcid
* @return
*/
private String getDownloadUrl(TrackInfo entry, int lrcid) {
String code = coding.CreateQianQianCode(entry.artist, entry.title,
lrcid);
return String.format(DownloadUrl, lrcid, code);
}
/**
* 千千静听歌词搜索
*
* @param artist
* @param track
* @return maybe null
*/
public List<LyricResults> getList(TrackInfo entry) {
try {
return QianQianParser.parseXml(search(entry));
} catch (IOException e) {
return null;
}
}
private String getSearchUrl(TrackInfo entry) {
return String.format(SearchUrl,
coding.str2HexStr(entry.artist, "UTF-16LE"),
coding.str2HexStr(entry.title, "UTF-16LE"));
}
public String search(TrackInfo entry) throws IOException {
return WebUtils.GetContent(getSearchUrl(entry), "UTF-8");
}
}