|
|
| /* 編集操作 */ | | /* 編集操作 */ |
| action === "edit" | | action === "edit" |
|
| |
|
| /* 拡張承認されておらず、100編集未満 */ | | /* 拡張承認されておらず、100編集未満 */ |
| & !contains_any(user_groups, "bot", "extendedconfirmed", "sysop", "eliminator") | | & !contains_any(user_groups, "bot", "extendedconfirmed", "sysop", "eliminator") |
| & user_editcount < 100 | | & user_editcount < 100 |
|
| |
|
| & /* 除去判定 */ | | & /* 除去判定 */ |
| ( | | ( |
| tp_start := "\{\{"; | | tp_start := "\{\{"; |
| tp_namespace := "(?i::?template:|:?テンプレート:)?"; | | tp_namespace := "(?i::?template:|:?テンプレート:)?"; |
| tp_arg := "(?:\|([^|]*))?"; /* +1 capturing group */ | | tp_arg := "(?:\|([^|\}]*))?"; /* +1 capturing group */ |
| | tp_args := "(?:\|[^\}]*)?"; |
| tp_end := "\}\}"; | | tp_end := "\}\}"; |
|
| |
|
| /* $1: 日付, $2: サブページ名 */ | | /* $1: 日付, $2: サブページ名 */ |
| rSakujo := tp_start + tp_namespace + "[sS]akujo\/本体" + tp_arg + tp_arg + tp_end; | | r_sakujo := tp_start + tp_namespace + "[sS]akujo\/本体" + tp_arg + tp_arg + tp_end; |
| | |
| | r_copyrights := tp_start + tp_namespace + "(?:[cC]opy(rights?|vio)|著作権(侵害)?)" + tp_args + tp_end; |
| | |
| | r_content := rmwhitespace(removed_lines); |
| | a_content := rmwhitespace(added_lines); |
|
| |
|
| rmwhitespace(removed_lines) rlike rSakujo | | ( |
| & (
| | /* {{Copyrights}}が除去されている */ |
| /* 削除依頼テンプレートが除去されている */ | | r_content rlike r_copyrights |
| !rmwhitespace(added_lines) rlike rSakujo | | & !a_content rlike r_copyrights |
| | | ) |
| /** | | | |
| * 以下、{{subst:sakujo}}へ{{Sakujo/本体}}が貼りかえられた場合を除外する条件だが未完成
| | ( |
| * 1. "#### ####" 部分にtimestampのパーザーコードが必要
| | /* または{{Sakujo/本体}}が除去されている */ |
| * 2. "* *" 部はコメント
| | r_content rlike r_sakujo |
| */
| | & !a_content rlike r_sakujo |
| /*& | | & |
| ( * かつ、{{subst:sakujo}}に貼り替えられていない * | | ( /* かつ、{{subst:sakujo}}で貼りかえられていない */ |
| | |
| tp_subst := "(?:[sS][uU][bB][sS][tT]:)";
| |
|
| |
|
| * $1: 日付, $2: サブページ名 *
| | removed := get_matches(r_sakujo, r_content); |
| rSubstSakujo := tp_start + tp_subst + tp_namespace + "(?:[sS]akujoS?|削除(?:依頼)?|[vV]fd2?)" + tp_arg + tp_arg + tp_end;
| |
|
| |
| removed := get_matches(rSakujo, rmwhitespace(removed_lines)); | |
| r_date := removed[1] | ""; | | r_date := removed[1] | ""; |
| r_subpage := removed[2] | page_prefixedtitle; | | r_subpage := removed[2] | page_prefixedtitle; |
|
| | |
| added := get_matches(rSubstSakujo, rmwhitespace(added_lines)); | | added := get_matches(r_sakujo, rmwhitespace(added_lines_pst)); |
| a_body := added[0]; | | a_body := added[0]; |
| a_date := added[1] | (######## timestampを"Y年M月D日"に変換したものをここで代入 ########); | | a_date := added[1] | ""; |
| a_subpage := added[2] | page_prefixedtitle; | | a_subpage := added[2] | page_prefixedtitle; |
| | | |
| * 追加された文字列内に{{subst:sakujo}}がない * | | /* 既に評価した条件:added_lines内に{{Sakujo/本体}}がない */ |
| a_body === false | | /* かつ、added_lines_pst内にもない(={{subst:sakujo}}で貼りかえられてもいない) */ |
| | a_body === false |
| | | | | |
| * または、あっても日付とサブページ名のどちらかが異なる * | | /* または、貼りかえられていても日時引数もしくはサブページ引数の値が異なる */ |
| !(r_date === a_date & r_subpage === a_subpage) | | (r_date !== a_date | r_subpage !== a_subpage) |
| )*/ | | ) |
| | |
| ) | | ) |
| ) | | ) |
|
| |
| /* 30byte以上減少 */
| |
| & edit_delta <= -30
| |