public void ParseCategoryFile() { string filename = Path.Combine(Path.GetDirectoryName(Application.ExecutablePath), "category.txt"); string str; if (File.Exists(filename)) { str = IJFile.ReadUTF8(filename); } else { throw new FileNotFoundException("category.txt が存在しません。nicorank.exe を起動して category.txt を作成してください。"); } string[] lines = IJStringUtil.SplitWithCRLF(str); for (int i = 1; i < lines.Length; ++i) { string[] ar = lines[i].Split('\t'); CategoryItem item = new CategoryItem(); item.id = ar[0]; item.short_name = ar[1]; item.name = ar[2]; int[] page = new int[5]; for (int j = 0; j < page.Length; ++j) { page[j] = int.Parse(ar[3 + j]); } item.page = page; category_item_dic_.Add(item.name, item); } }
/// <summary> /// 指定された検索チケットの検索条件を取得する。 /// </summary> /// <param name="ticket_id">検索条件を取得する検索チケットのID。</param> /// <returns>指定された検索チケットの検索条件。</returns> public static SearchingTagOption GetOption(string ticket_id) { string ticket_option_file = GetTicketOptionFile(ticket_id); string option_text = IJFile.ReadUTF8(ticket_option_file); return(DeserializeSearchingOption(ticket_id, option_text)); }
private void MakeUserFile() { string str = IJStringUtil.EncryptString(textBoxUser.Text, "dailyvocaran") + "\t" + IJStringUtil.EncryptString(textBoxPassword.Text, "dailyvocaran"); IJFile.Write(userdat_filename, str); }
public static List <Video> ParseRanking(string dir_name, DateTime getting_dt, ParseRankingKind kind) { string[] files = System.IO.Directory.GetFiles(dir_name); List <Video> video_list = new List <Video>(); Dictionary <string, Video> video_dic = new Dictionary <string, Video>(); for (int i = 0; i < files.Length; ++i) { int t = System.Environment.TickCount; string html = IJFile.ReadUTF8(files[i]); if (html.StartsWith("<?xml")) { ParsePointRss(html, getting_dt, video_list, kind == ParseRankingKind.TotalPoint, false); } else { switch (kind) { case ParseRankingKind.TermPoint: ParseRankingTermPointHtml(html, getting_dt, video_list, video_dic); break; case ParseRankingKind.TotalPoint: throw new InvalidOperationException("ランキングHTMLは全ポイント解析できません。"); } } System.Diagnostics.Debug.Write((System.Environment.TickCount - t).ToString() + ", "); } return(video_list); }
private bool CheckFileWrite() { string filename = ""; string test_text = "testtest"; try { filename = IJFile.GetTemporaryFileName(Directory.GetCurrentDirectory(), "txt"); IJFile.Write(filename, test_text); string content = IJFile.Read(filename); return(content == test_text); } catch (Exception) { return(false); } finally { try { if (filename != "") { File.Delete(filename); } } catch (Exception) { } } }
public void GetDetailInfoTest1() { string temp_directory_path = TestUtility.TestData[TestUtility.KEY_TEMP_DIRECTORY]; string video_id = TestUtility.TestData[TestUtility.KEY_VIDEO_ID]; string video_title = TestUtility.TestData[TestUtility.KEY_VIDEO_TITLE]; TestUtility.EnsureLogin(network_); DirectoryInfo temp_directory = new DirectoryInfo(temp_directory_path); Assert.That(TestUtility.InitDirectory(temp_directory), Is.True, "GetDetailInfoTest1-1"); string rank_file_path = Path.Combine(temp_directory_path, "rank.txt"); string rank_file_text = string.Format("{0}\r\n{1}\r\n", "sm9", video_id); IJFile.WriteVer2(rank_file_path, rank_file_text, IJFile.EncodingPriority.UTF8); RankFileCustomFormat custom_format = new RankFileCustomFormat(); InputOutputOption iooption = new InputOutputOption(rank_file_path, rank_file_path, custom_format); RankingMethod ranking_method = new RankingMethod(HoseiKind.Nothing, SortKind.Nothing, 0); List <string> id_list = new List <string>(new string[] { video_id, "sm1097445" }); network_manager_.GetDetailInfo(id_list, iooption, true, ranking_method, "1"); RankFile rank_file = new RankFile(rank_file_path, custom_format); List <Video> video_list = rank_file.GetVideoList(); Assert.That(video_list.Count, Is.EqualTo(3), "GetDetailInfoTest1-2"); Assert.That(video_list[1].title, Is.EqualTo(video_title), "GetDetailInfoTest1-3"); }
/// <summary> /// 「手順ファイル」から AviSynth 用のスクリプトを生成する。 /// </summary> /// <param name="tejun_path">「手順ファイル」のファイル名</param> /// <param name="rank_file_path">「ランクファイル」のファイル名</param> /// <returns></returns> public string GenerateScriptWithPath(string tejun_path, string rank_file_path) { string tejun_str = IJFile.Read(tejun_path); string rank_file_str = IJFile.Read(rank_file_path); return(GenerateScript(tejun_str, rank_file_str)); }
private static string WriteAndReadText(string file_path, string original_text, Encoding file_encoding, IJFile.EncodingPriority read_encoding) { string text; using (Stream output = File.Open(file_path, FileMode.Create, FileAccess.Write, FileShare.None)) using (TextWriter writer = new StreamWriter(output, file_encoding)) { writer.Write(original_text); } text = IJFile.ReadVer2(file_path, read_encoding); return(text); }
private void buttonLayoutSave_Click(object sender, EventArgs e) { DialogResult result = DialogResult.Yes; if (System.IO.File.Exists(selectFileBoxLayout.FileName)) { result = MessageBox.Show(this, "レイアウトファイルを上書きしますか?", "確認", MessageBoxButtons.YesNo); } if (result == DialogResult.Yes) { IJFile.Write(selectFileBoxLayout.FileName, textBoxLayout.Text); is_changed = false; } }
public void Save(string rank_filename, HoseiKind hosei_kind, int mylist_rate, IFilterManager filter) { StringBuilder buff_notfiltered = new StringBuilder(); StringBuilder buff_filtered = new StringBuilder(); int rank_notfiltered = 1; int rank_filtered = 1; for (int i = 0; i < video_list_.Count; ++i) { filter.DoEffect(video_list_[i]); if (filter.IsThrough(video_list_[i])) { if (custom_format_.IsUsingCustomFormat()) { buff_notfiltered.Append(custom_format_.VideoToString(video_list_[i], rank_notfiltered)); } else { buff_notfiltered.Append(video_list_[i].ToStringWithRank(rank_notfiltered, hosei_kind, mylist_rate)); } ++rank_notfiltered; buff_notfiltered.Append("\r\n"); } else { if (custom_format_.IsUsingCustomFormat()) { buff_filtered.Append(custom_format_.VideoToString(video_list_[i], rank_filtered)); } else { buff_filtered.Append(video_list_[i].ToStringWithRank(rank_filtered, hosei_kind, mylist_rate)); } ++rank_filtered; buff_filtered.Append("\r\n"); } } IJFile.Write(rank_filename, buff_notfiltered.ToString()); if (filter.IsOutputFilteredVideo()) { string rank_str = buff_filtered.ToString(); if (rank_str != "") { IJFile.Write(Path.GetDirectoryName(rank_filename) + "\\" + Path.GetFileNameWithoutExtension(rank_filename) + "_filter" + Path.GetExtension(rank_filename), rank_str); } } }
public virtual string GetRawText() { if (is_input_from_file_) { if (!File.Exists(input_path_)) { throw new FileNotFoundException("入力ランクファイルが存在しません。"); } return(IJFile.Read(input_path_)); } else { return(input_text_); } }
public IFilterManager GetFilter() { IFilterManager filter; if (is_using_filter && filter_filename != "" && File.Exists(filter_filename)) { try { string first_line = IJFile.ReadFirstLineUTF8(filter_filename); // フィルター書式のバージョンを調べる(ファイルの最初の行が「version=2」であるかどうか) bool is_version2 = IJStringUtil.CompareString(first_line, RootFilter.version_indicator); string str; if (is_version2) { // 新フィルターはUTF-8で読み込む string str_with_version = IJFile.ReadUTF8(filter_filename); // 先頭の「version=2」を削除する int start_index = str_with_version.IndexOfAny(new char[] { '\r', '\n' }, 0); if (start_index + 1 <= str_with_version.Length - 1) { str = str_with_version.Substring(start_index + 1); } else { str = string.Empty; } filter = GetFilter2(str); } else { str = IJFile.Read(filter_filename); filter = GetFilter1(str); } } catch (Exception) { throw new FormatException("フィルターの書式が間違えています。"); } return(filter); } return(new Filter(is_output_filtered_video)); }
/// <summary> /// 新しい検索チケットを作成する。 /// </summary> /// <param name="ticket_id">作成する検索チケットのID。</param> /// <param name="option">検索条件。</param> /// <returns>検索チケットを作成した場合はtrue、指定されたチケットIDを持つ検索チケットが既にある場合はfalse。</returns> public static bool CreateNewTicket(string ticket_id, SearchingTagOption option) { string ticket_directory = GetTicketDirectory(ticket_id); if (Directory.Exists(ticket_directory)) { return(false); } string option_file = GetTicketOptionFile(ticket_id); Directory.CreateDirectory(ticket_directory); string option_text = SerializeSearchingOption(option); IJFile.WriteUTF8(option_file, option_text); return(true); }
private void UpdateCutList(string video_id, string start_time_str, string end_time_str) { if (start_time_str == "") { MessageBox.Show("開始時間を設定してください。"); return; } if (end_time_str == "") { MessageBox.Show("終了時間を設定してください。"); return; } if (textBoxCutListPath.Text == "") { MessageBox.Show("カットリストのファイル名を設定してください。"); return; } StringBuilder buff = new StringBuilder(); if (File.Exists(textBoxCutListPath.Text)) { string str = IJFile.Read(textBoxCutListPath.Text); int index = str.IndexOf(video_id); if (index >= 0) { int end = str.IndexOf('\n', index) + 1; buff.Append(str.Substring(0, index)); buff.Append(video_id + "\t" + start_time_str + "\t" + end_time_str + "\r\n"); buff.Append(str.Substring(end)); } else { buff.Append(str); buff.Append(video_id + "\t" + start_time_str + "\t" + end_time_str + "\r\n"); } } else { buff.Append(video_id + "\t" + start_time_str + "\t" + end_time_str + "\r\n"); } IJFile.Write(textBoxCutListPath.Text, buff.ToString()); labelInfo.Text = "書き込みました"; }
public static List <Video> ParseRankingNicoChart(string dir_name, DateTime start_date, DateTime end_date) { if (dir_name[dir_name.Length - 1] != '\\') { dir_name += '\\'; } List <Video> video_list = new List <Video>(); for (DateTime dt = end_date; dt >= start_date; dt = dt.AddDays(-1.0)) { string[] files = System.IO.Directory.GetFiles(dir_name + dt.ToString("yyyyMMdd")); for (int i = 0; i < files.Length; ++i) { string html = IJFile.Read(files[i]); ParseRankingNicoChartOnePage(html, video_list); } } return(video_list); }
private void buttonLayoutLoad_Click(object sender, EventArgs e) { if (System.IO.File.Exists(selectFileBoxLayout.FileName)) { DialogResult result = DialogResult.Yes; if (textBoxLayout.Text != "") { result = MessageBox.Show(this, "レイアウトファイルを読み込みますか?", "確認", MessageBoxButtons.YesNo); } if (result == DialogResult.Yes) { textBoxLayout.Text = IJFile.Read(selectFileBoxLayout.FileName); is_changed = false; } } else { MessageBox.Show(this, "レイアウトファイルが存在しません。", "確認"); } }
public void LoadForSpecial(string rank_file_path) { string str = ""; try { str = IJFile.Read(rank_file_path); } catch (System.IO.FileNotFoundException) { return; } string[] line = IJStringUtil.SplitWithCRLF(str); if (video_list_ == null) { video_list_ = new List <Video>(); } for (int i = 0; i < line.Length; ++i) { string[] s_array = line[i].Split('\t'); if (RankFile.SearchVideo(video_list_, s_array[0]) < 0) // 存在しないなら { Video video = new Video(); video.video_id = s_array[0]; try { video.point.view = IJStringUtil.ToIntFromCommaValue(s_array[3]); video.point.res = IJStringUtil.ToIntFromCommaValue(s_array[4]); video.point.mylist = IJStringUtil.ToIntFromCommaValue(s_array[5]); video.title = s_array[6]; video.submit_date = NicoUtil.StringToDate(s_array[7]); video.tag_set.ParseBlank(s_array[14]); } catch (System.IndexOutOfRangeException) { } video_list_.Add(video); } } }
// タグリストから P名を推定する public static string GetPname(TagSet tag_set, out int index) { if (pname_list_ == null) // 初回にリストをロードする { if (File.Exists("pnamelist.txt")) { pname_list_ = IJStringUtil.SplitWithCRLF(IJFile.Read("pnamelist.txt")); } else { pname_list_ = new string[0]; } } for (int i = 0; i < tag_set.tag_list_.Count; ++i) { for (int j = 0; j < pname_list_.Length; ++j) { if (IJStringUtil.CompareString(tag_set.tag_list_[i].GetRawTag(), pname_list_[j])) { index = i; return(pname_list_[j]); } } } // リストから見つからない場合は後ろにPのついたタグを探す for (int i = 0; i < tag_set.tag_list_.Count; ++i) { if (tag_set.tag_list_[i].GetRawTag().EndsWith("P", StringComparison.InvariantCultureIgnoreCase) || tag_set.tag_list_[i].GetRawTag().EndsWith("P", StringComparison.InvariantCultureIgnoreCase)) { index = i; return(tag_set.tag_list_[i].GetRawTag()); } } index = -1; return(""); // それでも見つからないときは空文字を返す }
private void FormLayout_FormClosing(object sender, FormClosingEventArgs e) { if (is_changed) { DialogResult result; if (System.IO.File.Exists(selectFileBoxLayout.FileName)) { result = MessageBox.Show(this, "レイアウトファイルを上書き保存しますか?", "確認", MessageBoxButtons.YesNoCancel); } else { result = MessageBox.Show(this, "レイアウトファイルを保存しますか?", "確認", MessageBoxButtons.YesNoCancel); } if (result == DialogResult.Yes) { IJFile.Write(selectFileBoxLayout.FileName, textBoxLayout.Text); } else if (result == DialogResult.Cancel) { e.Cancel = true; } } }
/// <summary> /// 指定されたディレクトリに含まれているファイルがランキングHTML /// かどうかを判定する。 /// </summary> /// <param name="ranking_dir_name">ダウンロードしたランキングファイルが含まれるディレクトリ</param> /// <returns>ダウンロードしたランキングがHTMLの場合はtrue、その他の場合はfalse。</returns> private bool IsRankingHtml(string ranking_dir_name) { bool is_html = false; if (Directory.Exists(ranking_dir_name)) { foreach (string ranking_file in Directory.GetFiles(ranking_dir_name)) { string first_line = IJFile.ReadFirstLineUTF8(ranking_file); if (!first_line.StartsWith("<?xml")) { is_html = true; break; } // 最初の1ファイルだけで判断する break; } } return(is_html); }
public void ParsePointRssTest2() { int wait_milliseconds = int.Parse(TestUtility.TestData[TestUtility.KEY_ACCESS_WAIT_MILLISECONDS]); DirectoryInfo temp_dir = new DirectoryInfo(TestUtility.TestData[TestUtility.KEY_TEMP_DIRECTORY]); string video_title = "【初音ミク】みくみくにしてあげる♪【してやんよ】"; Assert.That(TestUtility.InitDirectory(temp_dir), Is.True, "parsePointRssTest2-1"); TestUtility.EnsureLogin(network_); DownloadKind download_kind = new DownloadKind(); download_kind.SetFormatRss(); download_kind.SetTarget(true, false, false); download_kind.SetDuration(true, false, false, false, false); download_kind.CategoryList = new List<CategoryItem>(); CategoryItem category_item = new CategoryItem(); category_item.id = "music"; category_item.name = "音楽"; category_item.page = new int[] { 3, 1, 1, 0 }; category_item.short_name = "mus"; download_kind.CategoryList.Add(category_item); network_.DownloadRanking(temp_dir.FullName, download_kind, wait_milliseconds); FileInfo rss_file = Array.Find(temp_dir.GetFiles(), delegate(FileInfo fi) { return fi.Name.StartsWith("tot_mus_vie_1_"); }); Assert.That(rss_file, Is.Not.Null, "ParsePointRssTest2-2"); string rss = IJFile.ReadVer2(rss_file.FullName, IJFile.EncodingPriority.Auto); List<Video> video_list = new List<Video>(); NicoListManager.ParsePointRss(rss, DateTime.Now, video_list, true, false); Assert.That(video_list.Count, Is.GreaterThanOrEqualTo(1), "ParsePointRssTest2-3"); Assert.That(video_list[0].title, Is.EqualTo(video_title), "ParsePointRssTest2-4"); }
public void PreviewMylistDescription(string text, string rank_file_path) { string[] line = IJStringUtil.SplitWithCRLF(IJFile.Read(rank_file_path)); List <string> add_list = new List <string>(); List <string> description_list = new List <string>(); for (int i = 0; i < line.Length; ++i) { string[] s_array = line[i].Split('\t'); add_list.Add(s_array[0]); description_list.Add(NicoUtil.GetReplacedString(text, s_array)); } StringBuilder buff = new StringBuilder(); for (int i = 0; i < add_list.Count; ++i) { buff.Append(add_list[i]); buff.Append("\r\n---------\r\n"); buff.Append(description_list[i]); buff.Append("\r\n--------------------------------------------------------\r\n"); } msgout_.Write(buff.ToString()); }
private TranslatingOption GetFFmpegOption() { if (form_trans_option_ != null) { trans_detail_option_ = form_trans_option_.GetAppOption(); } TranslatingOption translating_option = new TranslatingOption(); switch (comboBoxTransFileKind.SelectedIndex) { case 0: translating_option.trans_file_kind = TranslatingOption.TransFileKind.RankFile; break; case 1: translating_option.trans_file_kind = TranslatingOption.TransFileKind.Directory; break; case 2: translating_option.trans_file_kind = TranslatingOption.TransFileKind.File; break; } translating_option.is_flv_to_avi = checkBoxIsFlvToAvi.Checked; translating_option.is_avi_include_audio = radioButtonIncludeAudio.Checked; translating_option.trans_avi_kind = trans_detail_option_.trans_avi_kind; translating_option.is_flv_to_wav = checkBoxIsFlvToWav.Checked; translating_option.is_flv_to_mp3 = checkBoxIsFlvToMp3.Checked; translating_option.is_flv_to_png = checkBoxIsFlvToPng.Checked; translating_option.is_flv_to_detail = checkBoxIsFlvToDetail.Checked; translating_option.fadein = (checkBoxTransIsFadeIn.Checked) ? IJStringUtil.ToDoubleWithDef(textBoxTransFadeIn.Text, -1.0) : -1.0; translating_option.fadeout = (checkBoxTransIsFadeOut.Checked) ? IJStringUtil.ToDoubleWithDef(textBoxTransFadeOut.Text, -1.0) : -1.0; translating_option.is_normalize = checkBoxTransIsNormalize.Checked; int width = trans_detail_option_.change_width; int height = trans_detail_option_.change_height; if (trans_detail_option_.is_change_size && width > 0 && height > 0) { translating_option.changing_width = width; translating_option.changing_height = height; translating_option.is_fix_aspect = trans_detail_option_.is_fix_aspect; } else { trans_detail_option_.change_width = 0; trans_detail_option_.change_height = 0; } translating_option.is_framerate_change = trans_detail_option_.is_framerate_change; translating_option.frame_rate = trans_detail_option_.frame_rate; translating_option.cut_start = (checkBoxTransIsCut.Checked ? IJStringUtil.ToDoubleWithDef(textBoxTransCutStart.Text, -1.0) : -1.0); translating_option.cut_end = (checkBoxTransIsCut.Checked ? IJStringUtil.ToDoubleWithDef(textBoxTransCutEnd.Text, -1.0) : -1.0); translating_option.cut_list_name = (checkBoxIsUsingCutList.Checked ? IJFile.GetAbsolutePath(textBoxCutListPath.Text) : ""); translating_option.is_only_sm = trans_detail_option_.is_only_sm; translating_option.is_only_nm = trans_detail_option_.is_only_nm; translating_option.is_window_show = trans_detail_option_.is_show_window; translating_option.is_overwrite = checkBoxIsOverwrite.Checked; //ffmpeg_option.trans_detail_option = textBoxTransDetailOption.Text; translating_option.trans_before_file_or_dir = textBoxTransBeforeFileOrDir.Text; translating_option.trans_after_file_or_dir = textBoxTransAfterFileOrDir.Text; translating_option.app_path = new FFmpegAppPath(IJFile.GetAbsolutePath(textBoxFFmpegPath.Text), IJFile.GetAbsolutePath(textBoxWavfltPath.Text)); translating_option.iooption = GetInputOutputOption(); return(translating_option); }
private void LoadConfig(string filename) { if (System.IO.File.Exists(filename)) { bool is_old_rankfile = false; string is_old_rankfile_path = ""; string str = IJFile.Read(filename); int version = 0; string[] sArray = str.Split(new string[] { "\r\n" }, StringSplitOptions.RemoveEmptyEntries); if (!sArray[0].StartsWith("version")) { throw new FormatException(); } foreach (string s in sArray) { if (s.StartsWith("TransDetailOption.")) { trans_detail_option_.SetDataFromLine(s); continue; } string[] sa = s.Split('\t'); if (sa[0] == "version") { version = int.Parse(sa[1]); if (version <= 1560) { MessageBox.Show("動画変換のオプションの一部が変更になりました。\r\n" + "動画変換を行う場合は再設定してください。", "お知らせ"); } } if (sa[0] == "dlrank_category") { category_manager_.SetString(sa[1]); } if (sa.Length < 3 || sa[1] == "") { continue; } if (sa[1] == "textBoxBaseDir") { if (sa[2] != Application.StartupPath && sa[2] != Application.StartupPath + "\\" && sa[2] != "") { MessageBox.Show("「相対指定のときの基準ディレクトリ」は廃止になりました。\r\n" + "基準ディレクトリはプログラムの存在するディレクトリになります。", "お知らせ"); } } if (sa[1] == "textBoxRankFilePath" && sa[2] != "") { is_old_rankfile = true; is_old_rankfile_path = sa[2]; } if (sa[1] == "textBoxMylistRate" && sa[2] != "") { try { numericUpDownMylistRate.Value = decimal.Parse(sa[2]); } catch (FormatException) { } } if (sa[1] == "textBoxConditionMylistNew" && sa[2] != "") { try { numericUpDownConditionMylistNew.Value = decimal.Parse(sa[2]); } catch (FormatException) { } } Control[] c = this.Controls.Find(sa[1], true); if (c.Length > 0) { switch (sa[0]) { case "text": if (version <= 1640) // 過去の互換性のため { if (((TextBox)c[0]).Multiline) { sa[2] = sa[2].Replace("\\n", "\r\n").Replace("(doll-n-nicorank)", "\\n"); } c[0].Text = sa[2]; } else { c[0].Text = IJStringUtil.UnescapeForConfig(sa[2]); } break; case "radio": if (version <= 1930) // 過去の互換性のため { if (sa[1] == "radioButtonBrowserIE6" || sa[1] == "radioButtonBrowserIE7") { radioButtonBrowserIE.Checked = true; } } ((RadioButton)c[0]).Checked = bool.Parse(sa[2]); break; case "checkBox": ((CheckBox)c[0]).Checked = bool.Parse(sa[2]); break; case "listBox": ((ListBox)c[0]).SelectedIndex = int.Parse(sa[2]); break; case "dateTimePicker": ((DateTimePicker)c[0]).Value = NicoUtil.StringToDate(sa[2]); break; case "comboBox": ((ComboBox)c[0]).SelectedIndex = int.Parse(sa[2]); break; case "numericUpDown": ((NumericUpDown)c[0]).Value = decimal.Parse(sa[2]); break; } } } if (is_old_rankfile) { textBoxInputRankFilePath.Text = is_old_rankfile_path; checkBoxIsSameToInput.Checked = true; } } }
private void SaveConfig(string filename) { StringBuilder buff = new StringBuilder(); List <Control> control_list = new List <Control>(); GetAllControl(this, ref control_list); buff.Append("version\t" + program_version_.ToString() + "\r\n"); for (int i = 0; i < control_list.Count; ++i) { if (control_list[i] is TextBox) { TextBox c = (TextBox)control_list[i]; if (c.Name == "textBoxUploadText" || c.Name == "textBoxUser" || c.Name == "textBoxPassword" || c.Name == "textBoxInfo" || c.Name == "textBoxEditRankFile" || c.Name == "textBoxEditExclusionList" || c.Name == "textBoxMencWatching" ) { continue; } if (c.Name == "") { continue; } buff.Append("text"); buff.Append('\t'); buff.Append(c.Name); buff.Append('\t'); buff.Append(IJStringUtil.EscapeForConfig(c.Text)); buff.Append("\r\n"); } else if (control_list[i] is RadioButton) { RadioButton c = (RadioButton)control_list[i]; buff.Append("radio"); buff.Append('\t'); buff.Append(c.Name); buff.Append('\t'); buff.Append(c.Checked.ToString()); buff.Append("\r\n"); } else if (control_list[i] is CheckBox) { CheckBox c = (CheckBox)control_list[i]; if (c.Name == "checkBoxTimer1" || c.Name == "checkBoxTimer2" || c.Name == "checkBoxDailyTimer" || c.Name == "checkBoxTimerNews") { continue; } buff.Append("checkBox"); buff.Append('\t'); buff.Append(c.Name); buff.Append('\t'); buff.Append(c.Checked.ToString()); buff.Append("\r\n"); } else if (control_list[i] is ListBox && !(control_list[i] is CheckedListBox)) { ListBox c = (ListBox)control_list[i]; buff.Append("listBox"); buff.Append('\t'); buff.Append(c.Name); buff.Append('\t'); buff.Append(c.SelectedIndex.ToString()); buff.Append("\r\n"); } else if (control_list[i] is DateTimePicker) { DateTimePicker c = (DateTimePicker)control_list[i]; buff.Append("dateTimePicker"); buff.Append('\t'); buff.Append(c.Name); buff.Append('\t'); buff.Append(NicoUtil.DateToString(c.Value)); buff.Append("\r\n"); } else if (control_list[i] is ComboBox) { ComboBox c = (ComboBox)control_list[i]; buff.Append("comboBox"); buff.Append('\t'); buff.Append(c.Name); buff.Append('\t'); buff.Append(c.SelectedIndex.ToString()); buff.Append("\r\n"); } else if (control_list[i] is NumericUpDown) { NumericUpDown c = (NumericUpDown)control_list[i]; buff.Append("numericUpDown"); buff.Append('\t'); buff.Append(c.Name); buff.Append('\t'); buff.Append(c.Value.ToString()); buff.Append("\r\n"); } } if (form_trans_option_ != null) { trans_detail_option_ = form_trans_option_.GetAppOption(); } buff.Append(trans_detail_option_.SaveData()); buff.Append("dlrank_category\t").Append(category_manager_.GetSaveString()).Append("\r\n"); IJFile.Write(filename, buff.ToString()); }
static void Main(string[] args) { try { if (args.Length <= 1) { ShowUsage(); System.Environment.Exit(1); } Receiver receiver = new Receiver(); CancelObject cancel_object = new CancelObject(); NicoNetwork network = new NicoNetwork(); NicoNetworkManager network_mgr = new NicoNetworkManager(network, receiver, cancel_object); NicoMylist nico_mylist = new NicoMylist(network, receiver, cancel_object); for (int i = 2; i < args.Length; ++i) { switch (args[i]) { case "-i": if (i < args.Length - 1) { input_rank_file_ = Dequote(args[i + 1]); if (!File.Exists(input_rank_file_)) { System.Console.WriteLine("入力ランクファイルが存在しません。"); System.Environment.Exit(1); } ++i; } else { System.Console.WriteLine("入力ランクファイルを指定してください。"); System.Environment.Exit(1); } break; case "-o": if (i < args.Length - 1) { output_rank_file_ = Dequote(args[i + 1]); ++i; } break; case "-c": if (i < args.Length - 1) { config_file_ = Dequote(args[i + 1]); ++i; } break; } } if (string.IsNullOrEmpty(config_file_)) // config ファイル指定なしの場合 { config_file_ = Path.Combine(Path.GetDirectoryName(System.Reflection.Assembly.GetEntryAssembly().Location), "config.txt"); if (!File.Exists(config_file_)) { System.Console.WriteLine("最初に nicorank.exe を起動してオプションを指定してください。"); System.Environment.Exit(1); } } else { if (!File.Exists(config_file_)) { System.Console.WriteLine("config ファイルが見つかりません。"); System.Environment.Exit(1); } } ParseConfig(IJFile.Read(config_file_)); InputOutputOption iooption = new InputOutputOption(!string.IsNullOrEmpty(input_rank_file_), !string.IsNullOrEmpty(output_rank_file_)); if (string.IsNullOrEmpty(input_rank_file_)) // 標準入力から { iooption.SetInputFromStdin(); } else { iooption.SetInputPath(input_rank_file_); } if (string.IsNullOrEmpty(output_rank_file_)) // 標準出力へ { iooption.SetOutputRankFileDelegate(delegate(string s) { System.Console.Write(s); }); } else { iooption.SetOutputPath(output_rank_file_); } switch (args[0]) { case "download": switch (args[1]) { case "ranking": CategoryManager category_manager = new CategoryManager(); category_manager.SetString(option_["dlrank_category"]); category_manager.ParseCategoryFile(); network_mgr.DownloadRanking(GetDownloadKind(category_manager), option_["textBoxRankDlDir"]); break; case "video": LoadCookie(network); network_mgr.DownloadFlv(iooption, option_["textBoxDlInterval"], MakeDirectoryPath(option_["textBoxFlvDlDir"]), bool.Parse(option_["checkBoxIsFixFlvDlExtension"])); break; default: ShowInvalidAndUsage(args[1]); System.Environment.Exit(1); break; } break; case "list": switch (args[1]) { case "searchtag": network_mgr.MakeListAndWriteBySearchTag(iooption, MakeSearchingTagOption(), MakeRankingMethod()); break; default: ShowInvalidAndUsage(args[1]); System.Environment.Exit(1); break; } break; case "mylist": switch (args[1]) { case "add": LoadCookie(network); nico_mylist.AddMylist(iooption, option_["textBoxMylistId"]); break; default: ShowInvalidAndUsage(args[1]); System.Environment.Exit(1); break; } break; default: ShowInvalidAndUsage(args[0]); System.Environment.Exit(1); break; } } catch (KeyNotFoundException e) { System.Console.WriteLine("エラーが発生しました。"); System.Console.WriteLine("キーが存在しません: " + e.Data.ToString()); } catch (Exception e) { System.Console.WriteLine("エラーが発生しました。"); System.Console.WriteLine("エラー\r\n---メッセージ\r\n" + e.Message + "\r\n---ソース\r\n" + e.Source + "\r\n---スタックトレース\r\n" + e.StackTrace + "\r\n---ターゲット\r\n" + e.TargetSite + "\r\n---文字列\r\n" + e.ToString()); } }
public void ParseCategoryFile2(Form form) { string filename = Path.Combine(Path.GetDirectoryName(Application.ExecutablePath), "category.txt"); string str; if (File.Exists(filename)) { str = IJFile.ReadUTF8(filename); if (!str.StartsWith("version")) // 昔のバージョンの category.txt なら { if (str != Properties.Resources.category204) // ユーザによって改変されているなら { File.Move(filename, Path.Combine(Path.GetDirectoryName(Application.ExecutablePath), "category_old1.txt")); // 念のためバックアップを取る if (form != null) { MessageBox.Show(form, "category.txt を category_old1.txt にリネームしました。", "ニコニコランキングメーカー", MessageBoxButtons.OK, MessageBoxIcon.Information); } else // for console { System.Console.WriteLine("category.txt を category_old1.txt にリネームしました。"); } } else { File.Delete(filename); } str = Properties.Resources.category; IJFile.WriteUTF8(filename, str); } } else { str = Properties.Resources.category; IJFile.WriteUTF8(filename, str); } string[] lines = IJStringUtil.SplitWithCRLF(str); for (int i = 1; i < lines.Length; ++i) { string[] ar = lines[i].Split('\t'); CategoryItem item = new CategoryItem(); item.id = ar[0]; item.short_name = ar[1]; item.name = ar[2]; int[] page = new int[5]; for (int j = 0; j < page.Length; ++j) { page[j] = int.Parse(ar[3 + j]); } item.page = page; category_item_dic_.Add(item.name, item); clistbox_.Items.Add(item.name, Array.IndexOf(category_config_, item.id) >= 0); } }
public void Load(string rank_file_path) { string str = IJFile.Read(rank_file_path); Parse(str); }