|
|
| /* 編集操作 */ | | /* 編集操作 */ |
| 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_args := "(?:\|[^}]*)?"; |
| tp_end := "\}\}"; | | tp_end := "\}\}"; |
|
| |
|
| r_content := rmwhitespace(removed_lines); | | r_content := rmwhitespace(removed_lines); |
| a_content := rmwhitespace(added_lines); | | a_content := rmwhitespace(added_lines); |
|
| |
|
| ( /* {{Copyrights}}が除去されている */ | | ( /* {{Copyrights}}が除去されている */ |
| r_copyrights := tp_start + tp_namespace + "(?:[cC]opy(rights?|vio)|著作権(侵害)?)" + tp_args + tp_end; | | rgx_copyrights := tp_start + tp_namespace + "(?:[cC]opy(rights?|vio)|著作権(侵害)?)" + tp_args + tp_end; |
| r_content rlike r_copyrights | | r_content rlike rgx_copyrights |
| & !a_content rlike r_copyrights | | & !a_content rlike rgx_copyrights |
| ) | | ) |
| | | | | |
| ( /* または{{Sakujo/本体}}が除去されている */ | | ( /* または{{Sakujo/本体}}が除去されている */ |
| /* $1: 日付, $2: サブページ名 */ | | /* $1: 日付, $2: サブページ名 */ |
| r_sakujo := tp_start + tp_namespace + "[sS]akujo\/本体" + tp_arg + tp_arg + tp_args + tp_end; | | rgx_sakujo := tp_start + tp_namespace + "[sS]akujo\/本体" + tp_arg + tp_arg + tp_args + tp_end; |
| r_content rlike r_sakujo | | r_content rlike rgx_sakujo |
| & !a_content rlike r_sakujo | | & !a_content rlike rgx_sakujo |
| & | | & |
| ( /* かつ、{{subst:sakujo}}で貼りかえられていない */ | | ( /* かつ、{{subst:sakujo}}で貼りかえられていない */ |
|
| |
|
| removed := get_matches(r_sakujo, r_content); | | r_matches := get_matches(rgx_sakujo, r_content); |
| r_date := removed[1] | ""; | | r_date := r_matches[1] | ""; |
| r_subpage := removed[2] | page_prefixedtitle; | | r_subpage := r_matches[2] | page_prefixedtitle; |
|
| |
|
| added := get_matches(r_sakujo, rmwhitespace(added_lines_pst)); | | a_matches := get_matches(rgx_sakujo, rmwhitespace(added_lines_pst)); |
| a_body := added[0]; | | a_temp := a_matches[0]; |
| a_date := added[1] | ""; | | a_date := a_matches[1] | ""; |
| a_subpage := added[2] | page_prefixedtitle; | | a_subpage := a_matches[2] | page_prefixedtitle; |
| | | |
| /* 既に評価した条件:added_lines内に{{Sakujo/本体}}がない */ | | /* 既に評価した条件:added_lines内に{{Sakujo/本体}}がない */ |
| /* かつ、added_lines_pst内にもない(={{subst:sakujo}}で貼りかえられてもいない) */ | | /* かつ、added_lines_pst内にもない(={{subst:sakujo}}で貼りかえられてもいない) */ |
| a_body === false | | a_temp === false |
| | | | | |
| /* または、貼りかえられていても日時引数もしくはサブページ引数の値が異なる */ | | /* または、貼りかえられていても日時引数もしくはサブページ引数の値が異なる */ |
| (r_date !== a_date | r_subpage !== a_subpage) | | (r_date !== a_date | r_subpage !== a_subpage) |
| ) | | ) |
| ) | | ) |
| ) | | ) |