Skip to content
This repository has been archived by the owner on Aug 28, 2023. It is now read-only.

Commit

Permalink
(1)为延迟加入单位,(2)如果可用,则返回具体的错误信息,(3)修复一个 bug
Browse files Browse the repository at this point in the history
  • Loading branch information
lslqtz committed Jan 10, 2018
1 parent e84e87f commit 45fbfd8
Showing 1 changed file with 24 additions and 9 deletions.
33 changes: 24 additions & 9 deletions osu-download/Program.cs
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ static void Main(string[] args)
{
string Author = "asd";
string ProgramTitle = "osu! 镜像下载客户端";
string CurDLClientVer = "b20180109.2";
string CurDLClientVer = "b20180110.1";
string InstallPath = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData) + @"\osu!";
Console.Title = ProgramTitle;
Console.WriteLine(string.Format("欢迎使用由 {0} 提供的 {1}!", Author, ProgramTitle));
Expand Down Expand Up @@ -89,7 +89,8 @@ static void Main(string[] args)
if (tmp.StartsWith("OfficialMirror:"))
{
OfficialMirror = tmp.Replace("OfficialMirror:", "");
} else if (tmp.StartsWith("Mirror:"))
}
else if (tmp.StartsWith("Mirror:"))
{
string[] MirrorSplit = tmp.Replace("Mirror:", "").Split('|');
MirrorDictionary.Add(Ping(new Uri(MirrorSplit[0]).Host), MirrorSplit);
Expand All @@ -103,7 +104,7 @@ static void Main(string[] args)
OfficialMirrorURL = OfficialMirrorSplit[0];
string OfficialMirrorName = OfficialMirrorSplit[1];
short OfficialPingDelay = Ping(new Uri(OfficialMirrorURL).Host);
string OfficialMirrorTitle = string.Format("{0}.{1} (延迟:{2})", count++, OfficialMirrorName, OfficialPingDelay);
string OfficialMirrorTitle = string.Format("{0}.{1} (延迟:{2}ms)", count++, OfficialMirrorName, OfficialPingDelay);
if (OfficialMirrorSplit.Length > 2)
{
OfficialMirrorTitle += string.Format(" [{0}]", OfficialMirrorSplit[2]);
Expand All @@ -113,7 +114,7 @@ static void Main(string[] args)
List<string> MirrorList = new List<string>();
foreach (var tmp in MirrorDictionary)
{
string MirrorTitle = string.Format("{0} (延迟:{1})", tmp.Value[1], tmp.Key);
string MirrorTitle = string.Format("{0} (延迟:{1}ms)", tmp.Value[1], tmp.Key);
if (tmp.Value.Length > 2)
{
MirrorTitle += string.Format(" [{0}]", tmp.Value[2]);
Expand All @@ -137,10 +138,15 @@ static void Main(string[] args)
if (OfficialMirrorURL != null && SelectedMirror == 1)
{
CurMirror = OfficialMirrorURL;
} else
}
else
{
SelectedMirror -= 2;
CurMirror = MirrorList[SelectedMirror] ;
SelectedMirror--;
if (OfficialMirrorURL != null)
{
SelectedMirror--;
}
CurMirror = MirrorList[SelectedMirror];
}
Console.WriteLine("正在检查选定的分支...如果检查时间过久,可能是因为正在镜像该分支。");
HttpWebRequest CheckRequest = WebRequest.Create(string.Format("https://www.userpage.me/osu-update.php?s={0}&v={1}", ver, CurDLClientVer)) as HttpWebRequest;
Expand Down Expand Up @@ -197,9 +203,18 @@ static void Main(string[] args)
}
}
Console.WriteLine("全部文件已下载/更新完成!");
} catch (Exception e)
}
catch (Exception e)
{
Console.WriteLine("下载失败!" + e.Message);
string ErrorMessage = e.Message;
if (e is WebException we)
{
if (we.Status == WebExceptionStatus.ProtocolError)
{
ErrorMessage = "返回错误信息:" + new StreamReader((we.Response as HttpWebResponse).GetResponseStream(), Encoding.UTF8).ReadToEnd();
}
}
Console.WriteLine("下载失败!" + ErrorMessage);
}
Console.WriteLine("请按任意键继续...");
Console.ReadKey(true);
Expand Down

0 comments on commit 45fbfd8

Please sign in to comment.