Services/Music/KGMusicService.cs
(开头部分) 3KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
using LisMusic.Common;
using LisMusic.Models;
using Microsoft.Extensions.Configuration;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net.Http;
using System.Threading.Tasks;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System.IO;
namespace LisMusic.Services
{
public class KGMusicService : MusicHttpClient, IALLMusicService
{
private readonly MusicSource _musicSource = MusicSource.KG;
private readonly string KgMid;
private readonly string KgDFID;
//参数:<<KeyWord>>
const string urlGetMusicList = "https://songsearch.kugou.com/song_search_v2?&keyword={0}&platform=WebFilter";
//参数:<<FileHash>> <<kgDFID>> <<KgMid>>
const string urlGetMusicDownloadUrl = "https://wwwapi.kugou.com/yy/index.php?r=play/getdata&hash={0}&dfid={1}&mid={2}";
public KGMusicService(HttpClient httpClient, IConfiguration configuration) : base(httpClient)
{
//httpClient.BaseAddress = new Uri("https://songsearch.kugou.com");
KgMid = configuration.GetValue<string>("MusicSettings:Kg:mid");
KgDFID = configuration.GetValue<string>("MusicSettings:Kg:dfid");
}
public MusicSource MusicSource => _musicSource;
public async Task<List<MusicInfo>> GetMusicListAsync(string keyWord)
{
List<MusicInfo> musicInfos = new List<MusicInfo>();
try
{
string url = string.Format(urlGetMusicList, keyWord);
string str = await base.GetAsync(url);
JObject jo = JObject.Parse(str);
for (int i = 0; i < jo["data"]["lists"].Count(); i++)
{
bool bolCanDownload = true;
if (jo["data"]["lists"][i]["trans_param"]["musicpack_advance"].ToString() == "1") //该字段为1,则为收费,不可下载
bolCanDownload = false;
MusicInfo musicInfo = new MusicInfo() { Name = jo["data"]["lists"][i]["SongName"].ToString(), Singer = jo["data"]["lists"][i]["SingerName"].ToString(), Album = jo["data"]["lists"][i]["AlbumName"].ToString(), DownloadInfo = jo["data"]["lists"][i]["FileHash"].ToString(), CanDownload = bolCanDownload, MusicSource = MusicSource.KG };
musicInfos.Add(musicInfo);
}
}
catch { }
return musicInfos;
}
后面还有 40 行代码,解锁后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明
AI 解读 AI
登录后可用,每次 10 算力,解读结果公开显示在下面。
还没有人解读过这个文件。