<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ar">
	<id>https://3rabica.org/index.php?action=history&amp;feed=atom&amp;title=%D9%82%D8%A7%D9%84%D8%A8%3ABots%2F%D8%B4%D8%B1%D8%AD</id>
	<title>قالب:Bots/شرح - تاريخ المراجعة</title>
	<link rel="self" type="application/atom+xml" href="https://3rabica.org/index.php?action=history&amp;feed=atom&amp;title=%D9%82%D8%A7%D9%84%D8%A8%3ABots%2F%D8%B4%D8%B1%D8%AD"/>
	<link rel="alternate" type="text/html" href="https://3rabica.org/index.php?title=%D9%82%D8%A7%D9%84%D8%A8:Bots/%D8%B4%D8%B1%D8%AD&amp;action=history"/>
	<updated>2026-06-09T23:39:00Z</updated>
	<subtitle>تاريخ التعديل لهذه الصفحة في الويكي</subtitle>
	<generator>MediaWiki 1.43.7</generator>
	<entry>
		<id>https://3rabica.org/index.php?title=%D9%82%D8%A7%D9%84%D8%A8:Bots/%D8%B4%D8%B1%D8%AD&amp;diff=181708&amp;oldid=prev</id>
		<title>عبد العزيز: بوت: تحديث استخدام القالب</title>
		<link rel="alternate" type="text/html" href="https://3rabica.org/index.php?title=%D9%82%D8%A7%D9%84%D8%A8:Bots/%D8%B4%D8%B1%D8%AD&amp;diff=181708&amp;oldid=prev"/>
		<updated>2023-10-20T04:05:09Z</updated>

		<summary type="html">&lt;p&gt;بوت: تحديث استخدام القالب&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ar&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;→ نسخة أقدم&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;نسخة 08:05، 20 أكتوبر 2023&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;4&quot; class=&quot;diff-notice&quot; lang=&quot;ar&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(لا فرق)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;!-- diff cache key arabica_wiki:diff:1.41:old-158267:rev-181708 --&gt;
&lt;/table&gt;</summary>
		<author><name>عبد العزيز</name></author>
	</entry>
	<entry>
		<id>https://3rabica.org/index.php?title=%D9%82%D8%A7%D9%84%D8%A8:Bots/%D8%B4%D8%B1%D8%AD&amp;diff=158267&amp;oldid=prev</id>
		<title>عبد العزيز: بوت: تحديث استخدام القالب</title>
		<link rel="alternate" type="text/html" href="https://3rabica.org/index.php?title=%D9%82%D8%A7%D9%84%D8%A8:Bots/%D8%B4%D8%B1%D8%AD&amp;diff=158267&amp;oldid=prev"/>
		<updated>2023-10-20T04:05:09Z</updated>

		<summary type="html">&lt;p&gt;بوت: تحديث استخدام القالب&lt;/p&gt;
&lt;p&gt;&lt;b&gt;صفحة جديدة&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{صفحة توثيق فرعية}}&lt;br /&gt;
{{استخدام واسع|{{Bots/شرح/عداد}}}}&lt;br /&gt;
{{Lua|Module:String}}&lt;br /&gt;
{{ميز|قالب:بوت}}&lt;br /&gt;
هذا القالب يوضح [[أرابيكا:بوت|للبوت]] أو أي أداة تحرير آلية أنه يجب ألا يقوم بتحرير الصفحة التي تحتوي هذا القالب. يُستخدم القالب لمنع مُعظم البوتات (كل البوتات التي تستخدم هذه الخاصية) أو تمنع بوتات محددة بالاسم أو تمنع وظيفة محددة. على سبيل المثال، يمكن استخدامه للسماح أو لمنع رسائل البوت أو لجعل بوتات الصيانة تتخطى صفحةٍ ما. هذا القالب يجب استخدامه بعناية خارج صفحات المستخدمين لكي لا نفقد تعديدلات مهمة للبوتات.&lt;br /&gt;
&lt;br /&gt;
القوالب &amp;quot;البوت&amp;quot; و &amp;quot;غير البوت&amp;quot; تُخبر وأدوات التحرير الآلي والنصوص التي إما يجب أو لا يجب أن تحرر صفحة تحمل هذه القالب. يمكن استخدام هذه القوالب لحظر معظم البوتات (جميع البوتات التي نفذت هذه الوظيفة) أو بوتات محددة بالاسم أو الوظيفة. على سبيل المثال، يمكن استخدامها للمشاركة أو عدم المشاركة في رسائل البوت على صفحة نقاش المستخدم أو لجعل بوتات الصيانة تتجنب بعض الصفحات. يجب استخدام هذه القوالب بحذر خارج مساحة المستخدمين لتجنب حجب التعديلات المفيدة للبوت.&lt;br /&gt;
&lt;br /&gt;
== ملاحظات مهمة ==&lt;br /&gt;
&lt;br /&gt;
معظم البوتات لن تفهم هذه القوالب عندما يتم تضمينها بشكل غير مباشر.&lt;br /&gt;
&lt;br /&gt;
معظم البوتات لن تتجاهل القالب إذا كان داخل علامات &amp;#039;&amp;#039;&amp;#039;&amp;lt;nowiki&amp;gt;&amp;lt;now&amp;lt;/nowiki&amp;gt;&amp;lt;nowiki&amp;gt;iki&amp;gt; ... &amp;lt;/now&amp;lt;/nowiki&amp;gt;&amp;lt;nowiki&amp;gt;iki&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;#039;&amp;#039;&amp;#039;. على سبيل المثال، إذا كنت تناقش القوالب مع محرر آخر، يُرجى استخدام القالب {{قا|قا}}، مثل &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{قا|Bots}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;، الذي سيعرض {{قا|Bots}}، بدلاً من &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;no&amp;lt;/nowiki&amp;gt;&amp;lt;nowiki&amp;gt;wiki&amp;gt;{{Bots}}&amp;lt;/now&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;nowiki&amp;gt;iki&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;، الذي قد يُعامل على أنه محاولة لحظر البوتات من الصفحة.&lt;br /&gt;
&lt;br /&gt;
== استخدام القالب ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! الاستخدام !! النتيجة&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;&amp;lt;nowiki&amp;gt;{{nobots}}&amp;lt;/nowiki&amp;gt;&amp;#039;&amp;#039;&amp;#039; || منع جميع البوتات (اختصار)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;&amp;lt;nowiki&amp;gt;{{bots}}&amp;lt;/nowiki&amp;gt;&amp;#039;&amp;#039;&amp;#039; || السماح لجميع البوتات (اختصار)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! الاستخدام !! النتيجة&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;{{نص يسار}}&amp;lt;nowiki&amp;gt;{{bots|allow=&amp;lt;botlist&amp;gt;}}&amp;lt;/nowiki&amp;gt;&amp;#039;&amp;#039;&amp;#039; || منع جميع البوتات غير الموجودة في القائمة&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;{{نص يسار}}&amp;lt;nowiki&amp;gt;{{bots|deny=&amp;lt;botlist&amp;gt;}}&amp;lt;/nowiki&amp;gt;&amp;#039;&amp;#039;&amp;#039; || منع جميع البوتات الموجودة في القائمة&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
يتم فصل أسماء البوتات في بفاصلة &amp;lt;botlist&amp;gt; مثل:&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;&amp;lt;nowiki&amp;gt;{{bots|allow=HagermanBot,Werdnabot}}&amp;lt;/nowiki&amp;gt;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;&amp;lt;nowiki&amp;gt;{{bots|deny=AWB}}&amp;lt;/nowiki&amp;gt;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;lt;botlist&amp;gt; يكون أيضًا أن تكون قيمة الوسيط &amp;quot;none&amp;quot; أو &amp;quot;all&amp;quot; كما في الأمثلة التالية:&amp;#039;&amp;#039;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! الاستخدام !! النتيجة&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;&amp;lt;nowiki&amp;gt;{{bots|allow=all}}&amp;lt;/nowiki&amp;gt;&amp;#039;&amp;#039;&amp;#039; || السماح لجميع البوتات &lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;&amp;lt;nowiki&amp;gt;{{bots|allow=none}}&amp;lt;/nowiki&amp;gt;&amp;#039;&amp;#039;&amp;#039; || منع جميع البوتات&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;&amp;lt;nowiki&amp;gt;{{bots|deny=all}}&amp;lt;/nowiki&amp;gt;&amp;#039;&amp;#039;&amp;#039; || منع جميع البوتات&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;&amp;lt;nowiki&amp;gt;{{bots|deny=none}}&amp;lt;/nowiki&amp;gt;&amp;#039;&amp;#039;&amp;#039; || السماح لجميع البوتات&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
البوتات غير ملزمة بمراعاة قالب &amp;quot;nobots&amp;quot;؛ سيعتمد ذلك على وظيفتها ومالكيها وشروط موافقتها. البوتات التي تدعم حالياً استبعاد القوالب مدرجة في [[:تصنيف:بوتات أرابيكا تقبل الاستثناء|بوتات يمكن استبعادها]].&lt;br /&gt;
&lt;br /&gt;
== صيغة غير صحيحة ==&lt;br /&gt;
&lt;br /&gt;
تبدو هذه الصيغة صحيحة، ولكن قد لا تكون لها التأثير المقصود تبعًا للبوت الفردي. قد تمنع هذه البيانات كل من بوت1 وبوت2، أو قد تمنع أحد البوتين فقط، أو تمنع كلا البوتين كما هو المقصود.&lt;br /&gt;
&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;&amp;lt;nowiki&amp;gt;{{Bots|deny=Bot1|deny=Bot2}}&amp;lt;/nowiki&amp;gt;&amp;#039;&amp;#039;&amp;#039; خاطئ&lt;br /&gt;
&lt;br /&gt;
بدلاً من ذلك، اكتب:&lt;br /&gt;
&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;&amp;lt;nowiki&amp;gt;{{Bots|deny=Bot1,Bot2}}&amp;lt;/nowiki&amp;gt;&amp;#039;&amp;#039;&amp;#039;      صحيح&lt;br /&gt;
&lt;br /&gt;
== الاختيار بعدم الإشعار بالرسائل ==&lt;br /&gt;
{{صندوق رسالة أخرى| النص = نظام الرسائل هذا غير مُستخدم حاليًا في أرابيكا العربية!}}&lt;br /&gt;
خيار آخر هو الاختيار بعدم الاشعار بأنواع محددة من الرسائل للمستخدمين الذين يرغبون في التلقي إشعارات ببعض المشكلات ولكن ليس كلها. يجب على المستخدمين أن يكونوا على علم بأنه من خلال عدم التوجيه لرسائل الإشعار الخاصة، فإنهم لن يتلقوا إشعارات بالأمور المتعلقة بالمواد التي قاموا بتحريرها أو تحميلها، والتي تم وسمها وفقًا للسياسة. يمكن تنفيذ أعمال (مثل الحذف) دون أن تتلقى إشعارًا نتيجة لذلك. من خلال تطبيق هذا على صفحة نقاش المستخدم الخاصة بك، فإنك توافق على هذا العواقب. سيتم اعتبار تطبيق هذا على صفحة نقاش مستخدم آخر بخرق للقوانين. يشجع على جميع البوتات والنصوص التي تترك رسائل على صفحة نقاش المستخدم على إضافة هذه القدرة.&lt;br /&gt;
&lt;br /&gt;
بإضافة هذا إلى صفحة نقاش المستخدم، ما زال بإمكان المستخدم استقبال هذه الرسائل من قبل البوتات أو النصوص غير المتوافقة أو من الأشخاص الذين يقومون يدويًا بإضافة الوسم.&lt;br /&gt;
&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;&amp;lt;nowiki&amp;gt;{{Bots|optout=all}}&amp;lt;/nowiki&amp;gt;&amp;#039;&amp;#039;&amp;#039;            الاختيار بعدم الاشعار بجميع الرسائل (انظر القيود أدناه).&lt;br /&gt;
&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;&amp;lt;nowiki&amp;gt;{{Bots|optout=nosource}}&amp;lt;/nowiki&amp;gt;&amp;#039;&amp;#039;&amp;#039;       اختيار عدم استلام رسائل [[قالب:مصدر الملف|عدم وجود مصدر]].&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;&amp;lt;nowiki&amp;gt;{{Bots|optout=nolicense}}&amp;lt;/nowiki&amp;gt;&amp;#039;&amp;#039;&amp;#039;      اختيار عدم استلام رسائل [[قالب:حقوق الصورة|عدم وجود ترخيص]].&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;&amp;lt;nowiki&amp;gt;{{Bots|optout=orfud}}&amp;lt;/nowiki&amp;gt;&amp;#039;&amp;#039;&amp;#039;          اختيار عدم استلام رسائل [[قالب:Di-orphaned fair use-notice|صور غير مألوفة يتيمة]].&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;&amp;lt;nowiki&amp;gt;{{Bots|optout=npd}}&amp;lt;/nowiki&amp;gt;&amp;#039;&amp;#039;&amp;#039;            اختيار عدم استلام رسائل [[قالب:Di-no permission-notice|بدون إذن]].&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;&amp;lt;nowiki&amp;gt;{{Bots|optout=norationale}}&amp;lt;/nowiki&amp;gt;&amp;#039;&amp;#039;&amp;#039;    اختيار عدم استلام رسائل {{Ill-WD2|بدون تفسير|id=Q10994777}}.&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;&amp;lt;nowiki&amp;gt;{{Bots|optout=replaceable}}&amp;lt;/nowiki&amp;gt;&amp;#039;&amp;#039;&amp;#039;    اختيار عدم استلام رسائل [[قالب:Di-replaceable fair use-notice|صور قابلة للاستبدال]].&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;&amp;lt;nowiki&amp;gt;{{Bots|optout=bettersource}}&amp;lt;/nowiki&amp;gt;&amp;#039;&amp;#039;&amp;#039;   اختيار عدم استلام رسائل {{Ill-WD2|طلبات الحصول على مصدر أفضل|id=Q14090247}}.&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;&amp;lt;nowiki&amp;gt;{{Bots|optout=afd}}&amp;lt;/nowiki&amp;gt;&amp;#039;&amp;#039;&amp;#039;            اختيار عدم استلام رسائل [[قالب:تنبيه حذف|مقالات للحذف]] أو [[قالب:تنبيه حذف|أشكال]] [[قالب:تنبيه حذف|بديلة]].&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;&amp;lt;nowiki&amp;gt;{{Bots|optout=ifd}}&amp;lt;/nowiki&amp;gt;&amp;#039;&amp;#039;&amp;#039;            اختيار عدم استلام رسائل {{Ill-WD2|صور للحذف|id=Q10819381}} أو [[قالب:Idw-multi|بدائلها]].&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;&amp;lt;nowiki&amp;gt;{{Bots|optout=prod}}&amp;lt;/nowiki&amp;gt;&amp;#039;&amp;#039;&amp;#039;           اختيار عدم استلام رسائل {{Ill-WD2|تحذيرات الحذف السريع|id=Q7926194}}.&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;&amp;lt;nowiki&amp;gt;{{Bots|optout=MassMessage}}&amp;lt;/nowiki&amp;gt;&amp;#039;&amp;#039;&amp;#039;    اختيار عدم استلام رسائل {{Ill-WD2|الرسائل الجماعية|id=Q22975870}}.&lt;br /&gt;
&lt;br /&gt;
يمكن دمج الخيارات عن طريق وضع فاصلة بينها&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;&amp;lt;nowiki&amp;gt;{{Bots|optout=nosource,nolicense}}&amp;lt;/nowiki&amp;gt;&amp;#039;&amp;#039;&amp;#039; الاختيار بعدم الاشعار برسائل عدم وجود مصدر وعدم وجود ترخيص.&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;&amp;lt;nowiki&amp;gt;{{Bots|optout=orfud,norationale,replaceable}}&amp;lt;/nowiki&amp;gt;&amp;#039;&amp;#039;&amp;#039; الاختيار بعدم الاشعار برسائل استخدام عدم الترخيص للمحتوى المعني.&lt;br /&gt;
&lt;br /&gt;
=== قيود الرسائل التي يمكن اختيار عدم استلامها ===&lt;br /&gt;
بعض إشعارات الرسائل غير مسموح بها أن تختار عدم استلامها. تشمل هذه:&lt;br /&gt;
# إشعارات انتهاك حقوق النشر&lt;br /&gt;
# تحذيرات التخريب (وغيرها)&lt;br /&gt;
# إشعارات [[مستخدم:SineBot|SineBot]] بشأن عدم توقيع المشاركات&lt;br /&gt;
# أي علامة رسالة غير مدرجة كوسيلة للاختيار عدم استلامها أعلاه. (هل هناك واحدة يجب تضمينها؟ اترك رسالة على صفحة النقاش.)&lt;br /&gt;
# الرسائل الجماعية لا يمكن اختيار عدم استلامها باستخدام &amp;lt;nowiki&amp;gt;{{Bots|optout=all}}&amp;lt;/nowiki&amp;gt;; يجب على المستخدمين اختيار عدم استلامها بشكل صريح باستخدام &amp;lt;nowiki&amp;gt;{{Bots|optout=MassMessage}}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== التنفيذ ==&lt;br /&gt;
*[[mw:Pywikibot|باي ويكي بوت]] يدعم القالب، ويمكن تجاهل القالب من الخيارات!.&lt;br /&gt;
*منذ الإصدار 3.2.0.0 [[أرابيكا:أوتوويكي براوزر|أوتوويكي براوزر]] يدعم بشكل كامل &amp;lt;nowiki&amp;gt;{{bots}} و {{nobots}}&amp;lt;/nowiki&amp;gt;. بالإضافة إلى ذلك، يمكن تحديد اسم مستخدم زائف &amp;quot;AWB&amp;quot; ({{وسيط|bots|deny|AWB}}) لحظر جميع الروبوتات المعتمدة على AWB من الصفحة. ومع ذلك، يحتوي AWB على خيار لتجاهل هذه القوالب.&lt;br /&gt;
&lt;br /&gt;
=== أمثلة على التنفيذ ===&lt;br /&gt;
&lt;br /&gt;
==== PHP ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
function allowBots( $text, $user ) {&lt;br /&gt;
    if (preg_match(&amp;#039;/\{\{(nobots|bots\|allow=none|bots\|deny=all|bots\|optout=all|bots\|deny=.*?&amp;#039;.preg_quote($user,&amp;#039;/&amp;#039;).&amp;#039;.*?)}}/iS&amp;#039;,$text))&lt;br /&gt;
        return false;&lt;br /&gt;
    if (preg_match(&amp;#039;/\{\{(bots\|allow=all|bots\|allow=.*?&amp;#039;.preg_quote($user,&amp;#039;/&amp;#039;).&amp;#039;.*?)}}/iS&amp;#039;, $text))&lt;br /&gt;
        return true;&lt;br /&gt;
    if (preg_match(&amp;#039;/\{\{(bots\|allow=.*?)}}/iS&amp;#039;, $text))&lt;br /&gt;
        return false;&lt;br /&gt;
    return true;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Perl ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;perl&amp;quot;&amp;gt;&lt;br /&gt;
sub allow_bots {&lt;br /&gt;
    my($text, $user, $opt) = @_;&lt;br /&gt;
    return 0 if $text =~ /{{[nN]obots}}/;&lt;br /&gt;
    return 1 if $text =~ /{{[bB]ots}}/;&lt;br /&gt;
    if($text =~ /\{\{[bB]ots\s*\|\s*allow\s*=\s*(.*?)\s*}}/s){&lt;br /&gt;
        return 1 if $1 eq &amp;#039;all&amp;#039;;&lt;br /&gt;
        return 0 if $1 eq &amp;#039;none&amp;#039;;&lt;br /&gt;
        my @bots = split(/\s*,\s*/, $1);&lt;br /&gt;
        return (grep $_ eq $user, @bots) ? 1 : 0;&lt;br /&gt;
    }&lt;br /&gt;
    if($text =~ /\{\{[bB]ots\s*\|\s*deny\s*=\s*(.*?)\s*}}/s){&lt;br /&gt;
        return 0 if $1 eq &amp;#039;all&amp;#039;;&lt;br /&gt;
        return 1 if $1 eq &amp;#039;none&amp;#039;;&lt;br /&gt;
        my @bots = split(/\s*,\s*/, $1);&lt;br /&gt;
        return (grep $_ eq $user, @bots) ? 0 : 1;&lt;br /&gt;
    }&lt;br /&gt;
    if(defined($opt) &amp;amp;&amp;amp; $text =~ /\{\{[bB]ots\s*\|\s*optout\s*=\s*(.*?)\s*}}/s){&lt;br /&gt;
        return 0 if $1 eq &amp;#039;all&amp;#039;;&lt;br /&gt;
        my @opt = split(/\s*,\s*/, $1);&lt;br /&gt;
        return (grep $_ eq $opt, @opt) ? 0 : 1;&lt;br /&gt;
    }&lt;br /&gt;
    return 1;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== VB.NET ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;vbnet&amp;quot;&amp;gt;&lt;br /&gt;
Public Shared Function AllowBots(ByVal text As String, ByVal user As String) As Boolean&lt;br /&gt;
    Return Not Regex.IsMatch(text, &amp;quot;\{\{(nobots|bots\|(allow=none|deny=(?!none).*(&amp;quot; &amp;amp; user.Normalize() &amp;amp; &amp;quot;|all)|optout=all))\}\}&amp;quot;, RegexOptions.IgnoreCase)&lt;br /&gt;
End Function&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== C# ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
public static bool AllowBots(string text, string user)&lt;br /&gt;
{&lt;br /&gt;
    return !Regex.IsMatch(text, @&amp;quot;\{\{(nobots|bots\|(allow=none|deny=(?!none).*(&amp;quot; + user.Normalize() + @&amp;quot;.*|all)|optout=all))\}\}&amp;quot;, RegexOptions.IgnoreCase);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Java ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public static boolean allowBots(String text, String user)&lt;br /&gt;
{&lt;br /&gt;
      return !text.matches(&amp;quot;(?si).*\\{\\{(nobots|bots\\|(allow=none|deny=([^\\}]*?&amp;quot; + user + &amp;quot;[^\\}]*?|all)|optout=all))\\}\\}.*&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== JavaScript ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
function allowBots(text, user){&lt;br /&gt;
  if (!new RegExp(&amp;quot;\\{\\{\\s*(nobots|bots[^}]*)\\s*\\}\\}&amp;quot;, &amp;quot;i&amp;quot;).test(text)) return true;&lt;br /&gt;
  return (new RegExp(&amp;quot;\\{\\{\\s*bots\\s*\\|\\s*deny\\s*=\\s*([^}]*,\\s*)*&amp;quot; + user.replace(/([\(\)\*\+\?\.\-\:\!\=\/\^\$])/g, &amp;quot;\\$1&amp;quot;) + &amp;quot;\\s*(?=[,\\}])[^}]*\\s*\\}\\}&amp;quot;, &amp;quot;i&amp;quot;).test(text)) ? false : new RegExp(&amp;quot;\\{\\{\\s*((?!nobots)|bots(\\s*\\|\\s*allow\\s*=\\s*((?!none)|([^}]*,\\s*)*&amp;quot; + user.replace(/([\(\)\*\+\?\.\-\:\!\=\/\^\$])/g, &amp;quot;\\$1&amp;quot;) + &amp;quot;\\s*(?=[,\\}])[^}]*|all))?|bots\\s*\\|\\s*deny\\s*=\\s*(?!all)[^}]*|bots\\s*\\|\\s*optout=(?!all)[^}]*)\\s*\\}\\}&amp;quot;, &amp;quot;i&amp;quot;).test(text);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Python ====&lt;br /&gt;
يفترض هذا الكود أن مكتبة [http://pypi.python.org/pypi/mwparserfromhell/ mwparserfromhell] مُثبتة ومستوردة في البرنامج النصي.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def allow_bots(text, user):&lt;br /&gt;
	user = user.lower().strip()&lt;br /&gt;
	text = mwparserfromhell.parse(text)&lt;br /&gt;
	for tl in text.filter_templates():&lt;br /&gt;
		if tl.name.matches([&amp;#039;bots&amp;#039;, &amp;#039;nobots&amp;#039;]):&lt;br /&gt;
			break&lt;br /&gt;
	else:&lt;br /&gt;
		return True&lt;br /&gt;
	for param in tl.params:&lt;br /&gt;
		bots = [x.lower().strip() for x in param.value.split(&amp;quot;,&amp;quot;)]&lt;br /&gt;
		if param.name == &amp;#039;allow&amp;#039;:&lt;br /&gt;
			if &amp;#039;&amp;#039;.join(bots) == &amp;#039;none&amp;#039;: return False&lt;br /&gt;
			for bot in bots:&lt;br /&gt;
				if bot in (user, &amp;#039;all&amp;#039;):&lt;br /&gt;
					return True&lt;br /&gt;
		elif param.name == &amp;#039;deny&amp;#039;:&lt;br /&gt;
			if &amp;#039;&amp;#039;.join(bots) == &amp;#039;none&amp;#039;: return True&lt;br /&gt;
			for bot in bots:&lt;br /&gt;
				if bot in (user, &amp;#039;all&amp;#039;):&lt;br /&gt;
					return False&lt;br /&gt;
	if (tl.name.matches(&amp;#039;nobots&amp;#039;) and len(tl.params) == 0):&lt;br /&gt;
		return False&lt;br /&gt;
	return True&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== انظر أيضًا ==&lt;br /&gt;
* {{قا|بوت}}&lt;br /&gt;
* [[m:Template:Bots|Template:Bots]] في Meta-Wiki&lt;br /&gt;
&lt;br /&gt;
&amp;lt;includeonly&amp;gt;{{ملعب آخر||&lt;br /&gt;
&amp;lt;!-- ADD CATEGORIES BELOW THIS LINE --&amp;gt;&lt;br /&gt;
[[تصنيف:قوالب مفيدة في أرابيكا]]&lt;br /&gt;
[[تصنيف:قوالب أرابيكا تتعلق بالبوتات]]&lt;br /&gt;
[[تصنيف:قوالب بأسماء أجنبية]]&lt;br /&gt;
}}&amp;lt;/includeonly&amp;gt;&lt;/div&gt;</summary>
		<author><name>عبد العزيز</name></author>
	</entry>
</feed>