Skip to content

Commit 44d42ad

Browse files
author
jadepeng
committed
完善提示消息
1 parent 6348f5a commit 44d42ad

File tree

5 files changed

+73
-20
lines changed

5 files changed

+73
-20
lines changed

XMusicDownloader/Form1.cs

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -113,11 +113,9 @@ private void GetList(int page)
113113
resultListView.Items.Clear();
114114
toolStripStatusLabel1.Text = "搜索中...";
115115
List<ListViewItem> listViewItems = new List<ListViewItem>();
116-
117116

118117

119-
120-
var songs = tblSearch.SelectedIndex==0 ? provider.SearchSongs(textBox1.Text, page, 20): provider.SearchSongsList(txtSongListUrl.Text);
118+
var songs = tblSearch.SelectedIndex == 0 ? provider.SearchSongs(textBox1.Text, page, 20) : provider.SearchSongsList(txtSongListUrl.Text);
121119

122120
songs.ForEach(item =>
123121
{
@@ -136,6 +134,11 @@ private void GetList(int page)
136134

137135
UpdateUI(listViewItems);
138136

137+
if(songs.Count == 0)
138+
{
139+
toolStripStatusLabel1.Text = "未找到记录";
140+
}
141+
139142
}
140143

141144
/// <summary>
@@ -251,9 +254,7 @@ private void downBtn_Click(object sender, EventArgs e)
251254

252255
private void timer1_Tick(object sender, EventArgs e)
253256
{
254-
255-
256-
toolStripStatusLabel1.Text = "下载进度:" + (int)(downloader.totalPercent) + "%" + string.Format(",速度{0}", (downloader.totalSpeed / 1024.0 / 1024.0).ToString("F2") + "MB/s");
257+
toolStripStatusLabel1.Text = "当前下载:"+downloader.currentSongName+" 下载进度:" + (int)(downloader.totalPercent) + "%" + string.Format(" 下载速度:{0}", (downloader.totalSpeed / 1024.0 / 1024.0).ToString("F2") + "MB/s 排队数:" + downloader.queqeCount);
257258
toolStripProgressBar1.Value = (int)(downloader.totalPercent);
258259
if (downloader.totalPercent >= 100d)
259260
{

XMusicDownloader/Http/SongDownloader.cs

Lines changed: 42 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,8 @@ public SongDownloader(MusicProviders musicProviders, string target)
2727
MusicProviders musicProviders;
2828
string target;
2929
List<SongItemDownloader> songs = new List<SongItemDownloader>();
30-
30+
Queue<MergedSong> queqes = new Queue<MergedSong>();
31+
int max_downloading_size = 3;
3132

3233
public double totalPercent
3334
{
@@ -52,9 +53,31 @@ public double totalSpeed
5253
}
5354
}
5455

56+
public int queqeCount
57+
{
58+
get
59+
{
60+
return this.queqes.Count;
61+
}
62+
}
63+
64+
public string currentSongName
65+
{
66+
get
67+
{
68+
return string.Join(",", songs.Select(s => s.songName).ToList());
69+
}
70+
}
71+
5572

5673
public void AddDownload(MergedSong song)
5774
{
75+
if (songs.Count >= max_downloading_size)
76+
{
77+
queqes.Enqueue(song);
78+
return;
79+
}
80+
5881
SongItemDownloader downloader = new SongItemDownloader(musicProviders, target, song, rate);
5982
downloader.DownloadFinish += Downloader_DownloadFinish;
6083

@@ -67,6 +90,11 @@ public void AddDownload(MergedSong song)
6790
private void Downloader_DownloadFinish(object sender, SongItemDownloader e)
6891
{
6992
songs.Remove(e);
93+
if (songs.Count < max_downloading_size)
94+
{
95+
MergedSong song = queqes.Dequeue();
96+
AddDownload(song);
97+
}
7098
}
7199

72100

@@ -84,9 +112,18 @@ public class SongItemDownloader
84112
MergedSong song;
85113
string rate = "320";
86114

115+
public string songName
116+
{
117+
get
118+
{
119+
return song.name;
120+
}
121+
}
122+
123+
87124
public event DownloadFinishEvent DownloadFinish;
88125

89-
public SongItemDownloader(MusicProviders musicProviders, string target, MergedSong song,string rate)
126+
public SongItemDownloader(MusicProviders musicProviders, string target, MergedSong song, string rate)
90127
{
91128
this.musicProviders = musicProviders;
92129
this.target = target;
@@ -117,15 +154,15 @@ public void Download()
117154
try
118155
{
119156
client.DownloadFile(musicProviders.getDownloadUrl(item, rate), target + "\\" + item.getFileName());
120-
DownloadFinish?.Invoke(this, this);
121157
break;
122158

123159
}
124-
catch(Exception ex)
160+
catch (Exception ex)
125161
{
126-
Console.WriteLine(ex.Message);
162+
Console.WriteLine(ex.Message);
127163
}
128164
}
165+
DownloadFinish?.Invoke(this, this);
129166

130167
}).Start();
131168
}

XMusicDownloader/Http/WebClient.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -287,7 +287,7 @@ public void DownloadFile(string URL, string fileName)
287287
{
288288
requestHeaders.Add("Connection", "close");
289289
SendRequestData(URL, "GET");
290-
if (URL.ToLower().EndsWith("flac"))
290+
if (URL.ToLower().Contains(".flac"))
291291
{
292292
fileName = fileName.Replace(".mp3", ".flac");
293293
}

XMusicDownloader/Provider/MusicProviders.cs

Lines changed: 23 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -40,18 +40,25 @@ public string getDownloadUrl(Song song)
4040
return type2Provider[song.source].getDownloadUrl(song);
4141
}
4242

43-
public string getDownloadUrl(Song song,string rate)
43+
public string getDownloadUrl(Song song, string rate)
4444
{
45-
return type2Provider[song.source].getDownloadUrl(song.id,rate);
45+
return type2Provider[song.source].getDownloadUrl(song.id, rate);
4646
}
4747

4848
public List<MergedSong> SearchSongs(string keyword, int page, int pageSize)
4949
{
5050
var songs = new List<Song>();
5151
Providers.AsParallel().ForAll(provider =>
5252
{
53-
var currentSongs = provider.SearchSongs(keyword, page, pageSize);
54-
songs.AddRange(currentSongs);
53+
try
54+
{
55+
var currentSongs = provider.SearchSongs(keyword, page, pageSize);
56+
songs.AddRange(currentSongs);
57+
}
58+
catch (Exception e)
59+
{
60+
61+
}
5562
});
5663

5764
// merge
@@ -65,10 +72,18 @@ public List<MergedSong> SearchSongsList(string url)
6572
var songs = new List<Song>();
6673
Providers.AsParallel().ForAll(provider =>
6774
{
68-
if (provider.Support(url)) {
69-
var currentSongs = provider.GetSongList(url);
70-
songs.AddRange(currentSongs);
71-
}
75+
try
76+
{
77+
if (provider.Support(url))
78+
{
79+
var currentSongs = provider.GetSongList(url);
80+
songs.AddRange(currentSongs);
81+
}
82+
}
83+
catch (Exception e)
84+
{
85+
86+
}
7287
});
7388

7489
// merge
0 Bytes
Binary file not shown.

0 commit comments

Comments
 (0)