private void Main_Load(object sender, EventArgs e) { _setNewVersion.Start(); _request.HttpClientTest(_downloadProcessMessageHandler); if (File.Exists(Define.GetIndexPath())) { Define.JsonParse.LoadUrlIndex(Define.GetIndexPath()); _ini_listResult(); button_LoadAllResult.Enabled = true; if (File.Exists(Define.GetConfingPath())) { Define.JsonParse.LoadConfing(Define.GetConfingPath()); Define._ini_Coning(); } else { Define.NOW_STAUTUS = NOW_STAUTUS.NoneConing; Define.NOW_STAUTUS = NOW_STAUTUS.First; } } else { button_ReloadAdvance.Enabled = false; Define.NOW_STAUTUS = NOW_STAUTUS.NoneIndex; Define.NOW_STAUTUS = NOW_STAUTUS.First; } TestNew(); ReloadNoticeLabels(); }
private void Button_ReloadAdvance(object sender, EventArgs e) { listBoxResult.Items.Clear(); Define._ini_Coning(); ReloadNoticeLabels(); _ini_listResult(); }
/// <summary> /// Main post method /// </summary> /// <param name="index"></param> /// <param name="update"></param> private async Task <UPDATE_STATUS> StartPost(bool index = false, bool update = false) { SetNoticesText("正在获取新版本数据 ...请稍等...", downloadNotice); var jsonParse = new JsonParse(); _postProcessMessageHandler.HttpSendProgress += (senders, es) => { var num = es.ProgressPercentage; SetProgressInt(num); }; if (!index) { return(await jsonParse.SaveDlConfing( _request.MakePostRequest(Define.Id, Define.GetApiName(Define.APINAME_TYPE.result)), true)); } if (update) { if (await _request.MakeUpdatePostRequest(Define.Id, Define.GetApiName(Define.APINAME_TYPE.result)) == 0) { Define.JsonParse.UpdateUrlIndex(Define.JsonParse, true); } } else { jsonParse.SaveUrlIndex( _request.MakePostRequest(Define.Id, Define.GetApiName(Define.APINAME_TYPE.result)), true); } return(UPDATE_STATUS.Ok); }
/// <summary> /// Main Download method /// </summary> /// <param name="fileName"></param> /// <param name="fileNameIndex"></param> /// <param name="totalCount"></param> /// <param name="AUTO_DECRYPT"></param> /// <returns></returns> private async Task DownloadFiles(string fileName, int fileNameIndex, int totalCount, AUTO_DECRYPT AUTO_DECRYPT) { SetNoticesText("正在下载 ... " + _downloadDoneList.Count + " / " + totalCount, downloadNotice); if (IsSeveralFiles) { _downloadProcessMessageHandler.HttpReceiveProgress += (senders, es) => { var num = es.ProgressPercentage; SetProgressInt(num); } } ; _downloadDoneList.Add(await _request.MakeGetRequest(Define.GetUrl(fileName), Define.GetFileSavePath(), fileName)); SetNoticesText("正在下载 ... " + _downloadDoneList.Count + " / " + totalCount, downloadNotice); if (!IsSeveralFiles) { ReloadProcess(totalCount); } if (AUTO_DECRYPT == AUTO_DECRYPT.Auto) { if (Save.GetFileType(fileName) != ENC_TYPE.ERROR) { DecryptFiles.DecryptFile(Define.GetFileSavePath() + fileName, Crypt.Crypt.IdentifyEncVersion(fileName)); } } OnDownloadDone(totalCount); }
private void Button_OpenDownloadPath_Click(object sender, EventArgs e) { if (!Directory.Exists(Define.GetFileSavePath())) { Directory.CreateDirectory(Define.GetFileSavePath()); } Process.Start("Explorer.exe", Define.GetFileSavePath()); }
private void Button_GetConfing_Click(object sender, EventArgs e) { Define.Rev = Define.UserRev = Define.NOW_STAUTUS == NOW_STAUTUS.First ? (Convert.ToInt32(Define.NowRev) + 296).ToString() : (Convert.ToInt32(Define.NowRev) - 3).ToString(); new JsonParse().SaveDlConfing( new MakeRequest().MakePostRequest(Define.Id, Define.GetApiName(Define.APINAME_TYPE.result))); }
private void Button_GetAllIndex_Click(object sender, EventArgs e) { Define.Rev = "001"; Define.UserRev = "001"; var a = new MakeRequest().RawMakePostRequest(Define.BaseUrl + Define.GetApiName(Define.APINAME_TYPE.result), Define.Id, Define.GetApiName(Define.APINAME_TYPE.result)); new JsonParse().SaveUrlIndex(a); }
private void Button_LoadAllResult_Click(object sender, EventArgs e) { if (_listResult == null) { _listResult = Define.GetDefaultNameList(); } ShowlistResult(_listResult, Define.DefaultShowCount, _listResult.Length); button_LoadAllResult.Enabled = false; }
private async void TextBox_SearchFiles_TextChanged(object sender, EventArgs e) { await Task.Delay(1); listBoxResult.Items.Clear(); _listResult = Define.GetListResult(textBox_SeachFiles.Text); ShowlistResult(_listResult, !(_listResult.Length > Define.DefaultShowCount) ? _listResult.Length : Define.DefaultShowCount); button_LoadAllResult.Enabled = true; }
public Main_Test() { InitializeComponent(); //StreamReader JsonStream = MakeRequest.MakePostRequest(Define.BaseUrl + Define.GetApiName(Define.APINAME_TYPE.result), Define.Id, Define.GetApiName(Define.APINAME_TYPE.result)); //new JsonParse().SaveDLConfing(@"C:\Users\Sagilio\Desktop\18.json"); //new JsonParse().LoadUrlIndex(@"C:\Users\Sagilio\source\repos\NanasGadgets\T7s Asset Downloader\bin\Debug\Asset\Index\Index.json"); //new MakeRequest().MkaeGetRequest(); if (File.Exists(Define.GetIndexPath())) { Define.JsonParse.LoadUrlIndex(Define.GetIndexPath()); } if (File.Exists(Define.GetConfingPath())) { Define.JsonParse.LoadConfing(Define.GetConfingPath()); } }
private void Button2_Click(object sender, EventArgs e) { try { var cardIdFrom = int.Parse(TextBox_CardFrom.Text); var cardIdTo = int.Parse(TextBox_CardTo.Text); for (var cardId = cardIdFrom; cardId < cardIdTo; cardId++) { _getCard.SaveFileAndDecrypt(cardId, Define.GetExtensionsSavePath()); } MessageBox.Show(@"下载完成!"); } catch (Exception exception) { MessageBox.Show(exception.Message); } }
private async void TestNew() { try { SetNoticesText(">> ... 正在查询游戏最新版本信息", downloadNotice); await _setNewVersion; _request._ini_PostClient(); if (Define.NOW_STAUTUS == NOW_STAUTUS.First) { if (MessageBox.Show(@" 需要获取一次完整索引文件,可能下载较长时间,是否现在下载 " , @"Notice" , MessageBoxButtons.OKCancel) != DialogResult.OK) { SetNoticesText(">> 需要获取一次完整索引文件,请点击获取最新版本", downloadNotice); return; } } SetNoticesText(">> ... 正在自动检测数据最新版本 , 请稍等 ", downloadNotice); var updateStatus = await Task.Run(async() => { Define.Rev = Define.UserRev = Define.NowRev; if (await _request.MakeUpdatePostRequest(Define.Id, Define.GetApiName(Define.APINAME_TYPE.result)) == 0) { return(await Define.JsonParse.TestUpdateStatusAsync()); } return(UPDATE_STATUS.Error); }); switch (updateStatus) { case UPDATE_STATUS.Error: SetNoticesText(">> Error : 游戏服务器可能在维护中,请稍后重试", downloadNotice); return; case UPDATE_STATUS.NoNecessary: SetNoticesText(">> 已经是最新版本 ", downloadNotice); return; case UPDATE_STATUS.Ok: if (MessageBox.Show(@" 检测到最新版本 , 请问是否要现在更新 " , @"Notice" , MessageBoxButtons.OKCancel) == DialogResult.OK) { Define.JsonParse.UpdateUrlIndex(Define.JsonParse, true); await Task.Run(() => { while (Define.IsGetNewComplete == false) { } Define.NOW_STAUTUS = NOW_STAUTUS.Normal; SetNoticesText(">> 就绪 ...", downloadNotice); ReloadNoticeLabels(); SetButtomEnabled(true, button_GetNew); SetButtomEnabled(true, button_ReloadAdvance); _ini_listResult(); }); } else { SetNoticesText(">> 就绪 , 有新版本可以更新 ", downloadNotice); } break; default: throw new ArgumentOutOfRangeException(); } } catch (Exception e) { MessageBox.Show($@"请检测网络 : {e.Message}"); } }
/// <summary> /// Initialize default the list will show into the listbox. /// </summary> public void _ini_listResult() { _listResult = Define.GetDefaultNameList(); ShowlistResult(Define.GetDefaultNameList(), Define.DefaultShowCount); }
private void Button_LoadConfing_Click(object sender, EventArgs e) { Define.JsonParse.DownloadConfings.Clear(); Define.JsonParse.LoadConfing(Define.GetAdvanceConfingPath()); Define._ini_Coning(); }
private void Button_LoadToNewIndex_Click(object sender, EventArgs e) { Define.JsonParse.FileUrls.Clear(); Define.JsonParse.LoadUrlIndex(Define.GetAdvanceIndexPath()); }
private void Button_GetToNewIndex_Click(object sender, EventArgs e) { Define.Rev = Define.UserRev = textBox_InputRev.Text; new JsonParse().SaveUrlIndex( new MakeRequest().MakePostRequest(Define.Id, Define.GetApiName(Define.APINAME_TYPE.result))); }
/// <summary> /// Main control download method. /// </summary> /// <param name="downloadType">下载类型:少量下载或大量下载</param> private async void StartDownload(DOWNLOAD_TYPE downloadType) { if (!Directory.Exists(Define.GetFileSavePath())) { Directory.CreateDirectory(Define.GetFileSavePath()); } //Initialize the UI about download SetProgressInt(0); button_DownloadCancel.Visible = true; string[] willDownloadList; int totalCount; var nowFileIndex = 0; switch (downloadType) { case DOWNLOAD_TYPE.AllFiles: totalCount = _listResult.Length; willDownloadList = _listResult; break; case DOWNLOAD_TYPE.SeletFiles: totalCount = listBoxResult.SelectedItems.Count; if (totalCount < 1) { MessageBox.Show(@"未选择要下载的文件,请点击选择某项或多项文件,再开始下载。", "Notice"); button_DownloadCancel.Visible = false; return; } var checkedNameList = new string[totalCount]; for (var i = 0; i < totalCount; i++) { checkedNameList[i] = listBoxResult.SelectedItems[i].ToString(); } willDownloadList = checkedNameList; break; default: totalCount = _listResult.Length; willDownloadList = _listResult; break; } //Start Downlaod try { var cancelToken = CancelSource.Token; var scheduler = new LimitedConcurrencyLevelTaskScheduler(Define.MaxDownloadTasks); var downloadTaskFactory = new TaskFactory(scheduler); if (totalCount <= 15) { IsSeveralFiles = true; foreach (var fileName in willDownloadList) { await downloadTaskFactory.StartNew(async nowFileName => { nowFileIndex++; await DownloadFiles(fileName, nowFileIndex, totalCount, AUTO_DECRYPT.Auto); }, fileName); } } else { IsSeveralFiles = false; Define.DownloadTaskSleep = totalCount < 200 ? 100 : totalCount > 1000 ? 500 : totalCount / 3; foreach (var fileName in willDownloadList) { await downloadTaskFactory.StartNew(async nowFileName => { nowFileIndex++; Thread.Sleep(nowFileIndex % 25 == 0 ? 500 : Define.DownloadTaskSleep); await DownloadFiles(nowFileName.ToString(), nowFileIndex, totalCount, AUTO_DECRYPT.Auto); }, fileName, cancelToken); } } cancelToken.ThrowIfCancellationRequested(); } catch (Exception e) { MessageBox.Show(e.Message); } }