Ejemplo n.º 1
0
        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();
        }
Ejemplo n.º 2
0
 private void Button_ReloadAdvance(object sender, EventArgs e)
 {
     listBoxResult.Items.Clear();
     Define._ini_Coning();
     ReloadNoticeLabels();
     _ini_listResult();
 }
Ejemplo n.º 3
0
        /// <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);
        }
Ejemplo n.º 4
0
        /// <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);
        }
Ejemplo n.º 5
0
 private void Button_OpenDownloadPath_Click(object sender, EventArgs e)
 {
     if (!Directory.Exists(Define.GetFileSavePath()))
     {
         Directory.CreateDirectory(Define.GetFileSavePath());
     }
     Process.Start("Explorer.exe", Define.GetFileSavePath());
 }
Ejemplo n.º 6
0
 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)));
 }
Ejemplo n.º 7
0
        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);
        }
Ejemplo n.º 8
0
 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;
 }
Ejemplo n.º 9
0
        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;
        }
Ejemplo n.º 10
0
        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());
            }
        }
Ejemplo n.º 11
0
        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);
            }
        }
Ejemplo n.º 12
0
        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}");
            }
        }
Ejemplo n.º 13
0
 /// <summary>
 ///     Initialize default the list will show into the listbox.
 /// </summary>
 public void _ini_listResult()
 {
     _listResult = Define.GetDefaultNameList();
     ShowlistResult(Define.GetDefaultNameList(), Define.DefaultShowCount);
 }
Ejemplo n.º 14
0
 private void Button_LoadConfing_Click(object sender, EventArgs e)
 {
     Define.JsonParse.DownloadConfings.Clear();
     Define.JsonParse.LoadConfing(Define.GetAdvanceConfingPath());
     Define._ini_Coning();
 }
Ejemplo n.º 15
0
 private void Button_LoadToNewIndex_Click(object sender, EventArgs e)
 {
     Define.JsonParse.FileUrls.Clear();
     Define.JsonParse.LoadUrlIndex(Define.GetAdvanceIndexPath());
 }
Ejemplo n.º 16
0
 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)));
 }
Ejemplo n.º 17
0
        /// <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);
            }
        }