Example #1
0
        // http://potato.2ch.net/smartphone/ のような板URL
        async Task ScrapeBoard(string boardUrl, string boardName)
        {
            // 設定テキスト読み込み -> settings
            Dictionary <string, string> settings = new Dictionary <string, string>();
            string settingUrl  = boardUrl + "SETTING.TXT";
            string settingText = await HtmlGetter.GetHtml(settingUrl, "shift_jis");

            settingText = settingText.Replace("\r\n", "\n");
            var lines = settingText.Split('\n');

            foreach (var line in lines)
            {
                var kv = line.Split('=');
                if (kv.Length < 2)
                {
                    continue;
                }
                settings[kv[0]] = kv[1];
            }

            // オブジェクト構築
            var boardInfo = new Models.BoardInfo
            {
                url  = boardUrl,
                name = boardName
            };

            if (settings.ContainsKey("BBS_UNICODE") && settings["BBS_UNICODE"] == "pass")
            {
                boardInfo.unicode = "SUPPORTED";
            }
            m_boards[boardUrl] = boardInfo;
        }
Example #2
0
        // 全巡回
        public async Task DoAll()
        {
            string menuUrl  = "http://menu.2ch.net/bbsmenu.html";
            string menuHtml = await HtmlGetter.GetHtml(menuUrl, "shift_jis");

            new CQ(menuHtml).Find("a").Each(_a =>
            {
                var a    = new CQ(_a);
                var url  = a.Attr("href");
                var name = a.Text().Trim();
                if (Regex.IsMatch(url, "^http://[^/]+/[^/]+/$"))
                {
                    Console.WriteLine("-----------");
                    Console.WriteLine(url);
                    Console.WriteLine(name);
                    Task.Run(async() =>
                    {
                        await ScrapeBoard(url, name);
                    }).Wait();
                }
            });

            // JSON出力
            OutputJson();
        }
Example #3
0
        private async Task <bool> LoadHtmlDocumentAsync()
        {
            try
            {
                Exception ex = null;

                try
                {
                    string response = await HtmlGetter.GetResponseTextAsync(WebPage);

                    htmlDoc = new HtmlDocument();
                    htmlDoc.LoadHtml(response);
                }
                catch (Exception ex2)
                {
                    ex = ex2;
                }
                if (ex != null)
                {
                    throw ex;
                }
            }
            catch (Exception ex)
            {
                progressDialog.Close();
                if (await dialog.ShowYesNoAsync(FindResource("error_getHtmlFailed") as string + Environment.NewLine + ex.ToString(), FindResource("error_title_getHtmlFailed") as string))
                {
                    grd.Children.Remove(tree);
                    grd.ColumnDefinitions[0].Width = grd.ColumnDefinitions[1].Width = new GridLength(0);
                }
        private async void ForceGetButton_Click(object sender, RoutedEventArgs e)
        {
            MainWindow.progressDialog.Show();
            try
            {
                byte[] content = await HtmlGetter.GetResponseBinaryAsync(Item);

                MainWindow.progressDialog.Close();
                if (Item.Response_Type == ResponseType.Binary)
                {
                    bool yes = await MainWindow.dialog.ShowYesNoAsync(FindResource("label_binaryTypePreview") as string, FindResource("label_binaryTypePreviewTitle") as string);

                    if (yes)
                    {
                        string defaultName = "";
                        string url         = Item.Url.TrimEnd('/');
                        int    index       = url.LastIndexOf('/') + 1;
                        if (index > 0 && index < Item.Url.Length)
                        {
                            defaultName = url.Substring(index);
                        }
                        string path = FzLib.UI.Dialog.FileSystemDialog.GetSaveFile(null, false, false, defaultName);
                        if (path != null)
                        {
                            File.WriteAllBytes(path, content);
                        }
                    }

                    return;
                }
                if (content.Length == 0)
                {
                    await MainWindow.dialog.ShowInfomationAsync(FindResource("label_responseIsEmpty") as string, FindResource("error_forceGet") as string);
                }
                else
                {
                    PreviewWindow win = new PreviewWindow(content.ToEncodedString(), Item.Response_Type)
                    {
                        Owner = MainWindow
                    };
                    win.ShowDialog();
                }
            }
            catch (Exception ex)
            {
                MainWindow.progressDialog.Close();
                await MainWindow.dialog.ShowErrorAsync(ex.ToString(), FindResource("error_forceGet") as string);
            }
        }
Example #5
0
 public string GetHtmlFilterCars(string tag, string dostupnost, string reiting, int?min, int?max)
 {
     return(HtmlGetter.GetFilteredString(tag, dostupnost, reiting, min, max));
 }
Example #6
0
 public string GetHtmlWithId(string tag, string guid)
 {
     return(HtmlGetter.getStringWithId(tag, guid));
 }
Example #7
0
 public string getStringVladelec(string tag)
 {
     return(HtmlGetter.getStringVladelec(tag, Users.UserByCid(cid)._User));
 }
Example #8
0
 public string GetHtml(string tag)
 {
     return(HtmlGetter.getString(tag));
 }