private RankingMethod GetRankingMethod() { HoseiKind hosei_kind = HoseiKind.Nothing; if (radioButtonHoseiVocaran.Checked) { hosei_kind = HoseiKind.Vocaran; } else if (radioButtonHoseiNicoran.Checked) { hosei_kind = HoseiKind.Nicoran; } SortKind sort_kind = SortKind.Nothing; if (radioButtonSortMylist.Checked) { sort_kind = SortKind.Mylist; } else if (radioButtonSortPoint.Checked) { sort_kind = SortKind.Point; } if (checkBoxFilter.Checked) { return(new RankingMethod(hosei_kind, sort_kind, (int)numericUpDownMylistRate.Value, true, nicorank_mgr_.GetPathMgr().GetFullPath(textBoxFilterPath.Text), checkBoxIsOutputFilteredVideo.Checked)); } else { return(new RankingMethod(hosei_kind, sort_kind, (int)numericUpDownMylistRate.Value)); } }
public RankingMethod(HoseiKind hosei_kind_a, SortKind sort_kind_a, int mylist_rate_a) { hosei_kind = hosei_kind_a; sort_kind = sort_kind_a; mylist_rate = mylist_rate_a; is_using_filter = false; filter_filename = ""; }
public RankingMethod(HoseiKind hosei_kind_a, SortKind sort_kind_a, int mylist_rate_a, bool is_using_filter_a, string filter_filename_a, bool is_output_filtered_video_a) { hosei_kind = hosei_kind_a; sort_kind = sort_kind_a; mylist_rate = mylist_rate_a; is_using_filter = is_using_filter_a; filter_filename = filter_filename_a; is_output_filtered_video = is_output_filtered_video_a; }
// 補正値を文字列にしたもの(小数第2位まで)を取得 public string GetHoseiString(HoseiKind hosei_kind, int mylist_rate, int ketasuu, bool is_ceil) { double hosei = GetHosei(hosei_kind, mylist_rate); hosei = (double)((int)(hosei * Math.Pow(10, ketasuu) + (is_ceil ? 0.999999 : 0))) / Math.Pow(10, ketasuu); string format = "{0:0."; for (int i = 0; i < ketasuu; ++i) { format += "0"; } format += "}"; return(String.Format(format, hosei)); }
// 補正値を取得 public double GetHosei(HoseiKind hosei_kind, int mylist_rate) { switch (hosei_kind) { case HoseiKind.Vocaran: if (view + mylist == 0) { return(0.01); } else if (view + res + mylist == 0) { return(0.00); } else { return((double)(view + mylist) / (view + res + mylist)); } case HoseiKind.Nicoran: if (view + mylist == 0) { return(0.1); } else if (view >= res) { return(1.0); } else if (view + res + mylist * mylist_rate == 0) { return(0.0); } else { double value = (double)(view + view + mylist * mylist_rate) / (view + res + mylist * mylist_rate); if (value < 0.1) { return(0.1); } else { return(value); } } case HoseiKind.DailyVocaran: case HoseiKind.Nothing: return(1.0); } return(0.0); }
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 string ToStringWithRank(int rank, HoseiKind hosei_kind, int mylist_rate) { if (status_ == Status.DELETED) { return(video_id + "\tDELETED"); } else if (status_ == Status.NOT_FOUND) { return(video_id + "\tDELETED"); } else if (status_ == Status.OTHER) { return(video_id + ""); } else { StringBuilder buff = new StringBuilder(); buff.Append(video_id); buff.Append("\t"); buff.Append(rank.ToString()); buff.Append("\t"); buff.Append(IJStringUtil.ToStringWithComma(point.view)); buff.Append("\t"); buff.Append(IJStringUtil.ToStringWithComma(point.res)); buff.Append("\t"); buff.Append(IJStringUtil.ToStringWithComma(point.mylist)); buff.Append("\t"); buff.Append(point.GetHoseiString(hosei_kind, mylist_rate, 2, hosei_kind == HoseiKind.Nicoran)); buff.Append("\t"); buff.Append(point.GetMylistRateString()); buff.Append("\t"); buff.Append(IJStringUtil.ToStringWithComma(point.CalcScore(hosei_kind, mylist_rate))); buff.Append("\t"); buff.Append(title); buff.Append("\t"); buff.Append(NicoUtil.DateToString(submit_date)); buff.Append("\t"); buff.Append(video_id + ".png"); buff.Append("\t"); buff.Append(pname); buff.Append("\t"); buff.Append(tag_set.ToString()); return(buff.ToString()); } }
// 総ポイント数を取得 public int CalcScore(HoseiKind hosei_kind, int mylist_rate) { switch (hosei_kind) { case HoseiKind.Vocaran: // 補正値は小数第3位切り捨て return(view + res * (int)(GetHosei(hosei_kind, mylist_rate) * 100.0) / 100 + mylist * mylist_rate); case HoseiKind.Nicoran: // 補正値は小数第3位切り上げ return(view + res * (int)(GetHosei(hosei_kind, mylist_rate) * 100.0 + 0.999999) / 100 + mylist * mylist_rate); //// 補正値は小数第7位切り捨て(過去) //return view + (int)((long)res * (long)(GetHosei(hosei_kind, mylist_rate) * 1000000.0) / 1000000) + mylist * mylist_rate; case HoseiKind.DailyVocaran: // 場当たり的対応。将来的には計算式をユーザがカスタマイズできるようにする return(view + Math.Min(res * 3, view) + mylist * mylist_rate); case HoseiKind.Nothing: return(view + res + mylist * mylist_rate); } return(-1); }
public string ToString(HoseiKind hosei_kind, int mylist_rate, IFilterManager filter) { StringBuilder buff_notfiltered = new StringBuilder(); int rank_notfiltered = 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"); } } return(buff_notfiltered.ToString()); }
public VideoScoreComparer(HoseiKind hosei_kind, int mylist_rate) { hosei_kind_ = hosei_kind; mylist_rate_ = mylist_rate; }