Ejemplo n.º 1
0
        private void LoadSettingsTab()
        {
            if (SettingsHelper.GetAppSetting("style") == null)
            {
                SettingsHelper.SetAppSetting("style", "blue");
            }
            metroComboBoxSettingsStyle.Text = SettingsHelper.GetAppSetting("style");


            if (SettingsHelper.GetAppSetting("formatPdf") == null)
            {
                SettingsHelper.SetAppSetting("formatPdf", "FALSE");
                SettingsHelper.SetAppSetting("formatDocx", "TRUE");
            }
            metroToggleFormatDocx.Checked = Convert.ToBoolean(SettingsHelper.GetAppSetting("formatDocx"));
            metroToggleFormatPdf.Checked  = Convert.ToBoolean(SettingsHelper.GetAppSetting("formatPdf"));

            if (SettingsHelper.GetAppSetting("AIO") == null)
            {
                SettingsHelper.SetAppSetting("AIO", "FALSE");
            }
            metroToggleConvertAIO.Checked = Convert.ToBoolean(SettingsHelper.GetAppSetting("AIO"));

            if (SettingsHelper.GetAppSetting("proxy-use") == null)
            {
                SettingsHelper.SetAppSetting("proxy-use", "FALSE");
                SettingsHelper.SetAppSetting("proxy-server", "proxy.example.com");
                SettingsHelper.SetAppSetting("proxy-port", "8080");
            }
            metroToggleSettingsProxy.Checked   = Convert.ToBoolean(SettingsHelper.GetAppSetting("proxy-use"));
            metroTextBoxSettingsProxyPort.Text = SettingsHelper.GetAppSetting("proxy-port");
            metroTextBoxSettingsProxy.Text     = SettingsHelper.GetAppSetting("proxy-server");
        }
Ejemplo n.º 2
0
 private void LoadLanguage()
 {
     if (SettingsHelper.GetAppSetting("lang") == null)
     {
         SettingsHelper.SetAppSetting("lang", "en");
     }
     loc = new Localization(Application.StartupPath + "\\local", SettingsHelper.GetAppSetting("lang"));
 }
Ejemplo n.º 3
0
        private void metroTileConvert_Click(object sender, EventArgs e)
        {
            if (metroTileConvert.TileCount == 0)
            {
                ShowMessage(loc.C_dlgNoArticleChosen);
                return;
            }
            FolderBrowserDialog fbd = new FolderBrowserDialog();

            fbd.ShowNewFolderButton = true;
            fbd.Description         = loc.C_fbdDescription;
            if (SettingsHelper.GetAppSetting("lastSavePath") != null && Directory.Exists(SettingsHelper.GetAppSetting("lastSavePath")))
            {
                fbd.SelectedPath = SettingsHelper.GetAppSetting("lastSavePath");
            }
            if (fbd.ShowDialog() != System.Windows.Forms.DialogResult.OK)
            {
                return;
            }

            metroToggleFormatDocx.Enabled = false;
            metroToggleFormatPdf.Enabled  = false;
            metroToggleConvertAIO.Enabled = false;
            metroTileConvert.Enabled      = false;

            metroTabControlContainer.TabPages.Remove(metroTabPageLoad);
            metroTabControlContainer.TabPages.Remove(metroTabPageChoose);

            metroProgressSpinner1.Visible   = true;
            progressBarStatus.Visible       = true;
            metroLabelConvertStatus.Text    = "";
            metroLabelConvertStatus.Visible = true;

            if (!Directory.Exists(fbd.SelectedPath))
            {
                Directory.CreateDirectory(fbd.SelectedPath);
            }
            SettingsHelper.SetAppSetting("lastSavePath", fbd.SelectedPath);

            var choosenArticles = dataGridViewArticles.Rows.Cast <DataGridViewRow>().Where(x => (bool)x.Cells[0].Value).Select(x => x.Tag.ToString()).ToList();
            var articles        = xDoc.Root.Descendants("item").Where(x => choosenArticles.Contains(x.Descendants("link").First().Value)).ToList();

            progressBarStatus.Maximum = articles.Count;
            progressBarStatus.Value   = 0;

            BackgroundWorker bgw = new BackgroundWorker();

            bgw.DoWork               += bgw_DoWork;
            bgw.ProgressChanged      += bgw_ProgressChanged;
            bgw.RunWorkerCompleted   += bgw_RunWorkerCompleted;
            bgw.WorkerReportsProgress = true;
            bgw.RunWorkerAsync(new object[] { articles, fbd.SelectedPath, metroToggleFormatDocx.Checked, metroToggleFormatPdf.Checked, metroToggleConvertAIO.Checked });
        }
Ejemplo n.º 4
0
        private void LoadLanguageSettings()
        {
            if (SettingsHelper.GetAppSetting("lang") == null)
            {
                SettingsHelper.SetAppSetting("lang", "en");
            }
            metroComboBoxSettingsLanguage.Items.Clear();
            var availableLangs = loc.GetAvailableLanguages();

            metroComboBoxSettingsLanguage.Items.AddRange(availableLangs.Select(x => x.Value).ToArray());
            metroComboBoxSettingsLanguage.Text = availableLangs[SettingsHelper.GetAppSetting("lang")];
        }
Ejemplo n.º 5
0
        void bgw_DoWork(object sender, DoWorkEventArgs e)
        {
            try
            {
                string masterBody = string.Empty;

                (((object[])e.Argument)[0] as List <XElement>).ForEach(item =>
                {
                    var contentBody = item.Descendants(nsContent + "encoded").First().Value.Replace("\n", "<br />");

                    //Metadata
                    var creator = item.Descendants(nsDc + "creator").First().Value;
                    DateTime pubDate;
                    var categories = new List <WpCategory>();
                    var title      = item.Descendants("title").First().Value;
                    foreach (var cat in item.Descendants("category"))
                    {
                        try
                        {
                            categories.Add(new WpCategory()
                            {
                                Domain   = cat.Attribute("domain").Value,
                                Name     = cat.Value,
                                NiceName = cat.Attribute("nicename").Value
                            });
                        }
                        catch
                        {
                            //Ignore if category tag hasn't needed attributes
                        }
                    }

                    //Create metadata html
                    var headerLineTemplate = SettingsHelper.GetAppSetting("headerTemplate");

                    var dtFormat   = Regex.Match(headerLineTemplate, "{{date:(?<dtformat>[^}]*?)}}").Groups["dtformat"];
                    var catStr     = string.Join(", ", categories.Select(x => $"{x.Domain}: {x.NiceName}"));
                    var pubDateStr = string.Empty;
                    if (DateTime.TryParse(item.Descendants("pubDate").First().Value, out pubDate))
                    {
                        pubDateStr = string.Format("{0:" + dtFormat + "}", pubDate);
                    }
                    else
                    {
                        pubDateStr = $"({loc.C_txtUnpublished})";
                    }
                    var headerLineHtml = Regex.Replace(headerLineTemplate, "{{date:(?<dtformat>[^}]*?)}}", pubDateStr);
                    headerLineHtml     = headerLineHtml.Replace("{{creator}}", creator);
                    headerLineHtml     = headerLineHtml.Replace("{{title}}", title);
                    headerLineHtml     = headerLineHtml.Replace("{{categories}}", catStr);


                    //Clean BB-Code images
                    Regex re           = new Regex(@"\[imag.*?src=""(.*?)"".*?\]\[\/image\]", RegexOptions.Multiline | RegexOptions.Singleline);
                    MatchCollection mc = re.Matches(contentBody);
                    foreach (Match m in mc)
                    {
                        try
                        {
                            contentBody = contentBody.Replace(m.Value, "<img src=\"" + m.Groups[1].Value + "\">");
                        }
                        catch { }
                    }

                    if (!(bool)((object[])e.Argument)[4]) // != AllInOne
                    {
                        var fNameBase = string.Concat((string)((object[])e.Argument)[1], "\\", CleanFileName(item.Descendants("title").First().Value));
                        var fNameDocx = string.Concat(fNameBase, ".docx");
                        var fNamePdf  = string.Concat(fNameBase, ".pdf");

                        if ((bool)((object[])e.Argument)[2])
                        {
                            SaveHtmlAsDocx(fNameDocx, $"{headerLineHtml}{contentBody}");
                        }

                        if ((bool)((object[])e.Argument)[3])
                        {
                            SaveHtmlAsPdf(fNamePdf, $"{headerLineHtml}{contentBody}");
                        }
                    }
                    else
                    {
                        masterBody += $"<article>{headerLineHtml}{contentBody}</article><br/><br/><br/>";
                    }

                    (sender as BackgroundWorker).ReportProgress(0);
                });

                if ((bool)((object[])e.Argument)[4]) // == AllInOne
                {
                    if ((bool)((object[])e.Argument)[2])
                    {
                        SaveHtmlAsDocx(((object[])e.Argument)[1] + "\\wordpress2doc-export_" + DateTime.Now.ToFileTimeUtc().ToString() + ".docx", masterBody);
                    }

                    if ((bool)((object[])e.Argument)[3])
                    {
                        SaveHtmlAsPdf(((object[])e.Argument)[1] + "\\wordpress2doc-export_" + DateTime.Now.ToFileTimeUtc().ToString() + ".pdf", masterBody);
                    }
                }
            }
            catch (Exception ee)
            {
                ShowMessage(string.Concat(loc.C_dlgErrorInExport, "\n\n", ee.Message));
            }
        }