示例#1
0
 public void NavigateManager(string url)
 {
     if (url.Contains("{Image}"))
     {
     }
     else if (url.Contains("{Url}"))
     {
         string urlResponse = url.Replace("{Url}", string.Empty);
         ThreadView.GetInstance().SetUpPopupWebview(urlResponse);
     }
     else if (url.Contains("{Url-Quote-"))
     {
         var Id = url.Split('=').LastOrDefault();
         ThreadView.GetInstance().SetContentForPostMessage(Id);
     }
     else if (url.Contains("{Url-MultiQuote-"))
     {
         var Id   = url.Split('=').LastOrDefault();
         var temp = Resource.STR_2C + Id;
         if (appSetting.Cookies_Vbmultiquote.Contains(temp))
         {
             appSetting.Cookies_Vbmultiquote = appSetting.Cookies_Vbmultiquote.Replace(temp, Resource.STR_EMPTY);
             DialogResult.DialogOnlyOk("Removed " + Id.ToString() + " from quote list!");
         }
         else
         {
             appSetting.Cookies_Vbmultiquote += temp;
             DialogResult.DialogOnlyOk("Added " + Id.ToString() + " to quote list!");
         }
     }
     else if (url.Contains("{Url-Quick-"))
     {
         ThreadView.GetInstance().DisplayPopupPostMessage();
     }
 }
示例#2
0
        private void btn_login_Click(object sender, RoutedEventArgs e)
        {
            bool save;

            txtUSERNAME.IsEnabled = false;
            txtPASSWORD.IsEnabled = false;

            if (isSave.IsChecked == true)
            {
                save = true;
            }
            else
            {
                save = false;
            }

            myLogin.LoginMethod(txtUSERNAME.Text, txtPASSWORD.Password, save);
            try
            {
                if (appSetting.Token.Length > 10)
                {
                    DialogResult.DialogOnlyOk(Resource.DIALOG_LOGIN_SUCCESS);
                    btn_logout.IsEnabled = true;

                    MainView.GetInstance().UpdateNameAndStatusBtnAccount(txtUSERNAME.Text);
                }
            }
            catch (Exception ex)
            {
                DialogResult.DialogOnlyOk(Resource.DIALOG_ERROR_LOGIN);
            }
            txtUSERNAME.IsEnabled = true;
            txtPASSWORD.IsEnabled = true;
        }
示例#3
0
        private void BtnStart_Click(object sender, RoutedEventArgs e)
        {
            // Veryfi Input
            var IDThread = tbIdThread.Text;
            var tempFromPage = tbFromPage.Text;
            var tempToPage = tbToPage.Text;
            var FolderSave = tbFolderSave.Text;
            var backgroundFlag = (chbDownLoadBgr.IsChecked == true) ? true : false;
            int FromPage, ToPage;

            if (string.IsNullOrEmpty(IDThread) ||
                !int.TryParse(tempFromPage, out FromPage) ||
                !int.TryParse(tempToPage, out ToPage) ||
                string.IsNullOrEmpty(FolderSave))
            {
                DialogResult.DialogOnlyOk(Resource.DIALOG_VALUE_INPUT_INVALID);
                return;
            }

            // Get Image
            HtmlHelper helper = new HtmlHelper();

            activeDownloads = new List <DownloadOperation>();

            // Set status disable for control UI
            SetStatusControlWhenStartRun();

            Task.Run(() =>
            {
                Run(helper, IDThread, FromPage, ToPage, backgroundFlag);
            });
        }
示例#4
0
        private void BtnDelBox_Click(object sender, RoutedEventArgs e)
        {
            var ID = tbIdBox.Text;

            if (!string.IsNullOrEmpty(ID))
            {
                Helper.RequestDeleteBox(ID);
                DialogResult.DialogOnlyOk(Resource.DIALOG_DONE);
            }
        }
示例#5
0
        private async void Loader()
        {
            pre_btn.IsEnabled            = false;
            next_btn.IsEnabled           = false;
            pgbarLoading.IsIndeterminate = true;
            pgbarLoading.Visibility      = Visibility.Visible;
            tbMessage.Text = string.Empty;
            StatusButton();
            string contentHtml = Resource.STR_EMPTY;

            url = Resource.URL_THREAD.Replace("{rpIdThread}", idThread).Replace("{rpIDPage}", CurrentPage.ToString());
            try
            {
                await Task.Run(() => threadController.GetContent(url, ref contentHtml));

                if (!string.IsNullOrEmpty(contentHtml) && contentHtml != Resource.DIALOG_ERROR)
                {
                    appSetting.Token = AccountHelper.GetToken(contentHtml);

                    helper.GetMessagePrivate(contentHtml);

                    ThreadModelData threadModelData = new ThreadModelData(contentHtml);

                    // Title
                    TitleThread.Text = threadModelData.TitleThread();
                    if (TitleThread.Text == Resource.STR_VB_MSG)
                    {
                        DialogResult.DialogOnlyOk(Resource.DIALOG_THREAD_DELETED);
                        return;
                    }

                    // Get max page
                    var CurrentPagePeerMaxPage = threadModelData.GetMaxPage();
                    fl_page_btnflyout.DataContext = CurrentPagePeerMaxPage;
                    MaxPage = CurrentPagePeerMaxPage.Split('/').LastOrDefault();

                    // Display Content
                    myWebview.NavigateToString(helper.FullPageThreadHtml(threadModelData.GetThreadData()));

                    pre_btn.IsEnabled  = true;
                    next_btn.IsEnabled = true;
                }
                else if (contentHtml == Resource.DIALOG_ERROR)
                {
                    TitleThread.Text = Resource.DIALOG_ERROR;
                }
            }
            catch (Exception)
            {
                TitleThread.Text = Resource.DIALOG_ERROR;
            }
            pgbarLoading.IsIndeterminate = false;
            pgbarLoading.Visibility      = Visibility.Collapsed;
        }
示例#6
0
 private void BtnSaveDefaultBox_Click(object sender, RoutedEventArgs e)
 {
     if (Helper.SetDefaultBox(tbBoxDefault.Text))
     {
         DialogResult.DialogOnlyOk(Resource.DIALOG_DONE);
     }
     else
     {
         DialogResult.DialogOnlyOk(Resource.DIALOG_ERROR);
     }
 }
示例#7
0
 private void Update()
 {
     try
     {
         //await FileIO.WriteLinesAsync(DataBox, BoxContent);
         DialogResult.DialogOnlyOk(Resource.DIALOG_DONE);
     }
     catch (Exception ex)
     {
         DialogResult.DialogOnlyOk(Resource.DIALOG_ERROR);
     }
 }
示例#8
0
        private void BtnAddBox_Click(object sender, RoutedEventArgs e)
        {
            var ID = tbIdBox.Text;

            if (!string.IsNullOrEmpty(ID))
            {
                var AddResult = Helper.RequestAddNamebox(ID);
                if (AddResult == Resource.DIALOG_DONE)
                {
                    DialogResult.DialogOnlyOk(Resource.DIALOG_DONE);
                }
            }
        }
示例#9
0
        private void SaveBtn_Click(object sender, RoutedEventArgs e)
        {
            string device = tbDeviceName.Text;

            if (device.Length < 4)
            {
                DialogResult.DialogOnlyOk("Min Length = 4");
            }
            else
            {
                appSetting.DeviceName = device;
                DialogResult.DialogOnlyOk("Done");
            }
        }
示例#10
0
        public void Add(string ID, string Title, string Page)
        {
            var Key = ID + "_" + Page;
            var xxx = DataAccess.GetDataBookmark();

            if (xxx.ContainsKey(Key))
            {
                DialogResult.DialogOnlyOk(Resource.DIALOG_CONTENT_EXIST);
            }
            else
            {
                DataAccess.AddDataBookmark(ID, Title, Page);
                DialogResult.DialogOnlyOk(Resource.DIALOG_DONE);
            }
        }
示例#11
0
 private void btn_logout_Click(object sender, RoutedEventArgs e)
 {
     appSetting.Password           = Resource.STR_EMPTY;
     appSetting.UserName           = Resource.STR_EMPTY;
     appSetting.Token              = Resource.STR_EMPTY;
     appSetting.Cookies_Vfpassword = Resource.STR_EMPTY;
     appSetting.Cookies_Vfuserid   = Resource.STR_EMPTY;
     appSetting.isSaveLogin        = false;
     DialogResult.DialogOnlyOk("Đăng xuất thành công");
     txtUSERNAME.Text     = Resource.STR_EMPTY;
     txtPASSWORD.Password = Resource.STR_EMPTY;
     btn_logout.IsEnabled = false;
     MainView.GetInstance().UpdateNameAndStatusBtnAccount("Khách");
     Frame.NavigateAsync(typeof(ListThreadView), 26);
     Frame.ClearBackStack();
 }
示例#12
0
        private async void Run(HtmlHelper helper, string IDThread, int FromPage, int ToPage, bool backgroundFlag)
        {
            ResetProgressBar();
            TotalPage = ToPage - FromPage + 1;
            bool WaitNextPageFlag = false;

            for (int i = FromPage; i <= ToPage; i++)
            {
                while (WaitNextPageFlag && !backgroundFlag)
                {
                    continue;
                }

                WaitNextPageFlag = true;
                List <string> ListImage = null;
                ListImage = helper.DownLoadImage(IDThread, i);
                if (ListImage != null)
                {
                    int count = 0;
                    foreach (var ImageURL in ListImage)
                    {
                        var FileName = IDThread + "_Page_" + i.ToString() + "_" + count.ToString() + "_" + DateTime.Now.ToString("yyyy_MM_dd_HH_mm_ss");
                        if (backgroundFlag)
                        {
                            await StartDownload(BackgroundTransferPriority.High, ImageURL, FileName);
                        }
                        else
                        {
                            var checkTaskDone = StartDownload(BackgroundTransferPriority.High, ImageURL, FileName);
                            while (!checkTaskDone.Result)
                            {
                                // Continue wait for task done
                                continue;
                            }
                            WaitNextPageFlag = false;
                        }
                        count++;
                    }
                    UpdateProgressBar();
                }
            }

            SetStatusControlWhenDone();
            DialogResult.DialogOnlyOk(Resource.DIALOG_DONE);
        }
示例#13
0
        public bool LoginMethod(string userName, string passWord, bool save)
        {
            try
            {
                string contentHtml = string.Empty;
                Server.Login(userName, passWord, ref contentHtml);
                if (contentHtml == Resource.DIALOG_ERROR)
                {
                    DialogResult.DialogOnlyOk(Resource.DIALOG_ERROR);
                    return(false);
                }

                helper.GetMessagePrivate(contentHtml);

                HtmlDocument doc = new HtmlDocument();
                doc.LoadHtml(contentHtml);

                appSetting.isSaveLogin = save;
                appSetting.UserName    = userName;
                appSetting.Password    = passWord;
                appSetting.Token       = GetToken(doc.DocumentNode.OuterHtml);
                helper.GetPosts();

                if (appSetting.Token == Resource.STR_GUEST)
                {
                    appSetting.UserName           = Resource.STR_EMPTY;
                    appSetting.Password           = Resource.STR_EMPTY;
                    appSetting.isSaveLogin        = false;
                    appSetting.Cookies_Vfpassword = Resource.STR_EMPTY;
                    appSetting.Cookies_Vfuserid   = Resource.STR_EMPTY;
                    appSetting.TotalPosts         = 0;

                    DialogResult.DialogOnlyOk(Resource.DIALOG_ERROR);
                    return(false);
                }
                return(true);
            }
            catch (Exception e)
            {
                DialogResult.DialogOnlyOk(Resource.DIALOG_ERROR);
                return(false);
            }
        }
示例#14
0
        public async void SetContentForPostMessage(string Id)
        {
            pgbarLoading.IsIndeterminate = true;
            pgbarLoading.Visibility      = Visibility.Visible;
            string multiquote = appSetting.Cookies_Vbmultiquote;

            if (!string.IsNullOrEmpty(multiquote))
            {
                appSetting.Cookies_Vbmultiquote = multiquote.Remove(0, 3);
            }
            string urlQuote    = Resource.URL_GET_CONTENT_MESSAGE.Replace("{rpID}", Id.ToString());
            string contentHTML = string.Empty;

            try
            {
                await Task.Run(() =>
                {
                    threadController.GetContent(urlQuote, ref contentHTML);
                });

                if (!string.IsNullOrEmpty(contentHTML) && contentHTML != Resource.DIALOG_ERROR)
                {
                    tbMessage.Text = helper.GetContenFromQuote(contentHTML);
                    appSetting.Cookies_Vbmultiquote = Resource.STR_EMPTY;
                    DisplayPopupPostMessage();
                }
                else if (contentHTML == Resource.DIALOG_ERROR)
                {
                    //pgbarLoading.IsIndeterminate = false;
                    //pgbarLoading.Visibility = Visibility.Collapsed;
                }
            }
            catch (Exception)
            {
                DialogResult.DialogOnlyOk(Resource.DIALOG_ERROR_NETWORK);
            }
            pgbarLoading.IsIndeterminate = false;
            pgbarLoading.Visibility      = Visibility.Collapsed;
        }
示例#15
0
        public void Get(string url, ref string outContent)
        {
            try
            {
                HttpClient client = new HttpClient(handler);
                cookies.Add(new Uri(url), new Cookie(Resource.COOKIES_VFPASSWORD, appSetting.Cookies_Vfpassword));
                cookies.Add(new Uri(url), new Cookie(Resource.COOKIES_VFUSERID, appSetting.Cookies_Vfuserid));
                cookies.Add(new Uri(url), new Cookie(Resource.COOKIES_VBULLETIN_MULTIQUOTE, appSetting.Cookies_Vbmultiquote));

                client.DefaultRequestHeaders.Add(Resource.USER_AGENT, Resource.USER_AGENT_VALUE);
                using (HttpResponseMessage response = client.GetAsync(url).Result)
                {
                    using (HttpContent content = response.Content)
                    {
                        outContent = content.ReadAsStringAsync().Result;
                    }
                }
            }
            catch (Exception ex)
            {
                outContent = Resource.DIALOG_ERROR;
                DialogResult.DialogOnlyOk(Resource.DIALOG_ERROR_NETWORK);
            }
        }