Шаблон:Bots/Документация:версиослэн висъяськемзы

Википедиысь материал
Пушкесэз ӵушемын Пушкесэз ватсамын
Тупатонлэн валэктонэз ӧвӧл
Addbot (вераськон | Ваёсъёс)
ч-п Bot: Migrating interwiki links, now provided by Wikidata on d:q5412844
 
152-тӥ чур: 152-тӥ чур:
[[Категория:Википедия:Administration templates|{{PAGENAME}}]]
[[Категория:Википедия:Administration templates|{{PAGENAME}}]]


[[de:Vorlage:Bots]]
[[en:template:bots]]
[[en:template:bots]]
[[eo:Ŝablono:Bots]]
[[fr:Modèle:Nobots]]
[[fr:Modèle:Nobots]]
[[hu:Sablon:Bots]]
[[it:Template:Bots]]
[[ja:Template:Bots]]
[[nds-nl:Mal:Bots]]
[[nds-nl:Mal:Bots]]
[[nl:sjabloon:Bots]]
[[nl:sjabloon:Bots]]
[[no:Mal:Bots]]
[[no:Mal:Bots]]
[[pl:Szablon:Bots]]
[[ru:Template:Bots]]
</includeonly>
</includeonly>

21:38, 18 Гудырикошконэ 2013-лэн берло версиез

С помощью этого шаблона можно сообщить боту, что он не должен трогать страницу. Это ограничение может распространяться на отдельных ботов.

Будьте осторожны при использовании данного шаблона за пределами своего личного пространства — он может стать препятствием для полезных правок ботов.

Пример[бамлэсь кодзэ тупатоно]

Правка ботами разрешена (по умолчанию)

{{bots|allow=all}}

Запрет правки ботами

{{nobots}}

или

{{bots|allow=none}}

Запрет или разрешение правки отдельными ботами

{{bots|deny=BotName1,BotName2,…}}
{{bots|allow=BotName1,BotName2,…}}

Название AWB указывает на запрет или разрешение правок всем ботам на базе AutoWikiBrowser. Пример:

{{bots|allow=BotName1, BotName2}}
{{bots|deny=AWB}}

Поддержка шаблона[бамлэсь кодзэ тупатоно]

  • Pywikipediabot поддерживает шаблоны {{bots}} и {{nobots}} с версии r4096, но имеет возможность игнорирования блокировки.
  • AutoWikiBrowser полностью поддерживает шаблоны {{bots}} и {{nobots}} с версии 3.2, хотя в настройках можно установить игнорирование этих шаблонов.
  • Желательно, чтобы боты с оригинальным исходным кодом также поддерживали эти шаблоны.

Примеры реализации[бамлэсь кодзэ тупатоно]

PHP[бамлэсь кодзэ тупатоно]

function allowBots( $text ) {
    global $user;
    if (preg_match('/\{\{(nobots|bots\|allow=none|bots\|deny=all|bots\|optout=all|bots\|deny=.*?'.preg_quote($user,'/').'.*?)\}\}/iS',$text)) { return false; }
    return true;
}

Perl[бамлэсь кодзэ тупатоно]

sub allowBots {
    my($text, $user, $opt) = @_;
    return 0 if $text =~ /{{[nN]obots}}/;
    return 1 if $text =~ /{{[bB]ots}}/;
    if($text =~ /{{[bB]ots\s*\|\s*allow\s*=\s*(.*?)\s*}}/s){
        return 1 if $1 eq 'all';
        return 0 if $1 eq 'none';
        my @bots = split(/\s*,\s*/, $1);
        return (grep $_ eq $user, @bots)?1:0;
    }
    if($text =~ /{{[bB]ots\s*\|\s*deny\s*=\s*(.*?)\s*}}/s){
        return 0 if $1 eq 'all';
        return 1 if $1 eq 'none';
        my @bots = split(/\s*,\s*/, $1);
        return (grep $_ eq $user, @bots)?0:1;
    }
    if(defined($opt) && $text =~ /{{[bB]ots\s*\|\s*optout\s*=\s*(.*?)\s*}}/s){
        return 0 if $1 eq 'all';
        my @opt = split(/\s*,\s*/, $1);
        return (grep $_ eq $opt, @opt)?0:1;
    }
    return 1;
}

C#[бамлэсь кодзэ тупатоно]

public static bool AllowBots(string text, string user)
{
    return !Regex.Match(text, @"\{\{(nobots|bots\|(allow=none|deny=.*?" + user.Normalize() + @".*?|optout=all|deny=all))\}\}", RegexOptions.IgnoreCase).Success;
}


VB.NET[бамлэсь кодзэ тупатоно]

Public Shared Function AllowBots(ByVal text As String, ByVal user As String) As Boolean
    Return Not Regex.IsMatch(text, "\{\{(nobots|bots\|(allow=none|deny=(?!none).*(" & user.Normalize() & "|all)|optout=all))\}\}", RegexOptions.IgnoreCase)
End Function

Java[бамлэсь кодзэ тупатоно]

public static boolean allowBots(String text, String user)
{
      return !text.matches("(?si).*\\{\\{(nobots|bots\\|(allow=none|deny=(.*?" + user + ".*?|all)|optout=all))\\}\\}.*");
}

JavaScript[бамлэсь кодзэ тупатоно]

function allowBots(text, user){
  if (!new RegExp("\\{\\{\\s*(nobots|bots[^}]*)\\s*\\}\\}", "i").test(text)) return true;
  return (new RegExp("\\{\\{\\s*bots\\s*\\|\\s*deny\\s*=\\s*([^}]*,\\s*)*"+user+"\\s*(?=[,\\}])[^}]*\\s*\\}\\}", "i").test(text)) ? false : new RegExp("\\{\\{\\s*((?!nobots)|bots(\\s*\\|\\s*allow\\s*=\\s*((?!none)|([^}]*,\\s*)*"+user+"\\s*(?=[,\\}])[^}]*|all))?|bots\\s*\\|\\s*deny\\s*=\\s*(?!all)[^}]*|bots\\s*\\|\\s*optout=(?!all)[^}]*)\\s*\\}\\}", "i").test(text);
}

Python[бамлэсь кодзэ тупатоно]

Шаблон:See also

def Allowbots(text, user):
    if (re.search(r'\{\{(nobots|bots\|(allow=none|deny=.*?' + user + r'.*?|optout=all|deny=all))\}\}', text)):
        return false
    return true

См. также[бамлэсь кодзэ тупатоно]