دليل:باي ويكي بوت/touch.py
مستودع جت لويكيميديا به هذا الملف: scripts/touch.py |
touch.py هو نص برمجي يُستخدم في باي ويكي بوت لمراجعة عدة صحفات من الويكي، وتعديلها بدون تغييرات.
هذا على سبيل المثال يُستخدم للحصول على وصلات التصنيفات الصالحة في القوالب.
حين تحتاج صفحة لأن تتغير حتى تقوم بتحديث جميع أنواع العلاقات، touch.py يمكنه فعل ذلك. هذا النص البرمجي يقوم بتحديث سجل دون إحداث أي تغييرات. تقنيًا، ما يفعله هو أخذ كل صفحة وحفظها، دون إجراء أي تغييرات (تعديل فارغ)، وبالتالي إنعاش العلاقات بالتصنيفات والعلاقات الأخرى. This usually doesn’t appear in the page history, however in rare cases it may result in a page history entry (usually due to misbehaving extensions, or when the previous editor managed to leave something in the page which is Pre-save transformed in the bot’s edit).
سيناريو 1
عند إضافة تصنيف لقالب كثير الاستخدام، تشغيل touch.py سيقوم بإضافة الصفحات الموجودة إلى التصنيف.
الوسائط
بشكل أساسي touch.py يفهم مثل replace.py وكذلك الوسائط العامة .
المولدات والمرشحات متاحة
الوسيط | الوصف |
---|---|
-cat |
يعمل على كل الصفحات التي توجد في تصنيف محدد. الوسيط يمكن أن يكون أيضًا معطى بصيغة «-cat:categoryname» أو «-cat:categoryname|fromtitle» (استخدام # بدلاً من | مسموح به أيضًا في هذا الوسيط والتالي) |
-catr |
مثل -cat، ولكن يتضمن الصفحات المتكررة أيضًا في التصنيفات الفرعية، والفرعية منها إلخ... من التصنيف المعطى. الوسيط يمكن أن يكون أيضًا معطى بصيغة «-catr:categoryname» أو «-catr:categoryname|fromtitle». |
-subcats |
يعمل على كل التصنيفات الفرعية من تصنيف معين. الوسيط يمكن أن يكون أيضًا معطى بصيغة «-subcats:categoryname» أو «|:categoryname|fromtitle». |
-subcatsr |
مثل -subcats، ولكن يتضمن تصنيفات فرعية من التصنيفات الفرعية إلخ... من التصنيف المعطى. الوسيط يمكن أن يكون أيضًا معطى بصيغة «-subcatsr:categoryname» أو «-subcatsr:categoryname|fromtitle». |
-uncat |
يعمل على كل الصفحات غير المصنفة. |
-uncatcat |
يعمل على كل التصنيفات غير المصنفة. |
-uncatfiles |
يعمل على كل الملفات غير المصنفة. |
-file |
يقرأ قائمة صفحات ليتعامل من الملف النصي المسمى. عناوين الصفحات في الملف قد تكون محاطة بأقواس (مثال: [[Page]] )، أو مفصولة عن بعضها البعض بسطور جديدة. الوسيط يمكن أن يكون أيضًا معطى بصيغة «-file:filename». |
-filelinks |
يعمل على كل الصفحات التي تستخدم ملف صورة أو ملف وسائط معين. الوسيط يمكن أن يكون أيضًا معطى بصيغة «-filelinks:filename». |
-search |
يعمل على كل الصفحات الموجودة في بحث ميدياويكي عبر كل النطاقات . |
-logevents |
يعمل على المقالات الموجودة على خاص:سجل معين. القيمة قد تكون قائمة مفصولة عن بعضها بفاصلة من هذه القيم:
logevent,username,start,end أو بالنسبة للتوافقية الخلفية: logevent,username,total لاستخدام القيمة الافتراضية، استخدم نصًا فارغًا. لديك خيارات لكل نوع من السجلات المعطاة من وسيط حدث السجل الذي قد يكون الآتي: spamblacklist, titleblacklist, gblblock, renameuser, globalauth, gblrights, gblrename, abusefilter, massmessage, thanks, usermerge, block, protect, rights, delete, upload, move, import, patrol, merge, suppress, tag, managetags, contentmodel, review, stable, timedmediahandler, newusers يستخدم رقم الصفحات الافتراضي 10. أمثلة: -logevents:move gives pages from move log (usually redirects) -logevents:delete,,20 gives 20 pages from deletion log -logevents:protect,Usr gives pages from protect by user Usr -logevents:patrol,Usr,20 gives 20 patroled pages by Usr -logevents:upload,,20121231,20100101 gives upload pages in the 2010s, 2011s, and 2012s -logevents:review,,20121231 gives review pages since the beginning till the 31 Dec 2012 -logevents:review,Usr,20121231 gives review pages by user Usr since the beginning till the 31 Dec 2012في بعض الحالات يجب أن يكون معطى بصيغة -logevents:"move,Usr,20" |
-interwiki |
يعمل على الصفحة المعطاة وكل الصفحات المناظرة باللغات الأخرى. يمكن استخدام - على سبيل المثال - هذا لقتال المواقع المتعددة غير المرغوبة. انتباه: سيتسبب هذا بتعديل البوت للصفحات على عدة مواقع ويكي، وهذا غير مُختبَر بدقة، لذا تفحص تعديلاتك! |
-links |
يعمل على كل الصفحات المتصلة بصفحة معينة. الوسيط يمكن أن يكون أيضًا معطى بصيغة «-links:linkingpagetitle». |
-liverecentchanges |
يعمل على صفحات من أحدث التغييرات المباشرة. إن كان يُستخدَم بصيغة -liverecentchanges:x، فإنه يعمل على أحدث التغييرات x. |
-imagesused |
يعمل على كل الصور الموجودة بصفحة معينة. الوسيط يمكن أن يكون أيضًا معطى بصيغة «-imagesused:linkingpagetitle». |
-newimages |
يعمل على أحدث الصور. If given as -newimages:x, will work on x newest images. |
-newpages |
يعمل على أحدث الصفحات. إن كان يُستخدَم بصيغة -newpages:x، فإنه سيعمل على أحدث الصفحات x. |
-recentchanges |
يعمل على الصفحات بأحدث التغييرات. إن كان معطى بصيغة -recentchanges:x ، فإنه سيعمل على أحدث تغييرات صفحات x. إن كان معطى بصيغة -recentchanges:offset,duration فإنه سيعمل على الصفحات المتغيرة للفترة الزمنية من دقائق الإزاحة 'offset' لدقائق 'duration'.
أيضًا: |
-unconnectedpages |
يعمل على أحدث الصفحات غير المتصلة بمستودع قاعدة ويكي. إن كان معطى بصيغة -unconnectedpages:x، فإنه سيعمل أحدث صفحات x غير متصلة. |
-ref |
يعمل على كل الصفحات المتصلة بصفحة معينة. الوسيط يمكن أن يكون أيضًا معطى بصيغة «-ref:referredpagetitle». |
-start |
يحدد إذا ما كان ينبغي على الروبوت أن يفحص كل الصفحات على الويكي الأصل أبجديًا، ابتداءً من الصفحة المسماة. الوسيط يمكن أن يكون أيضًا معطى بصيغة «-start:pagetitle». يمكنك أيضًا تضمين نطاق. على سبيل المثال، «-start:Template:!» سيجعل البوت يعمل على كل الصفحات في نطاق القالب. القيمة الافتراضي هي start:! |
-prefixindex |
يعمل على الصفحات التي تبدأ ببادئة مشتركة. |
-transcludes |
يعمل على كل الصفحات التي تستخدم قالب معين. الوسيط يمكن أن يكون أيضًا معطى بصيغة «-transcludes:Title». |
-unusedfiles |
يعمل على كل صفحات الوصف لملفات الصور والوسائط التي ليست مستخدمة في أي مكان. الوسيط يمكن أن يكون أيضًا معطى بصيغة «-unusedfiles:n» حيث أن n هو أقصى عدد للمقالات. |
-lonelypages |
يعمل على كل المقالات التي لا تصل إليها أي مقالة أخرى. الوسيط يمكن أن يكون أيضًا معطى بصيغة «-lonelypages:n» حيث أن n هو أقصى عدد للمقالات. |
-unwatched |
يعمل على كل المقالات التي لا يراقبها أي أحد. الوسيط يمكن أن يكون أيضًا معطى بصيغة «-unwatched:n» حيث أن n هو أقصى عدد للمقالات. |
-property:name |
يعمل على كل الصفحات باسم خاصية معطاة من خاص:صفحات بخاصية |
-usercontribs |
يعمل على كل المقالات التي قام بتعديلها مستخدم معين. (مثال: -usercontribs:DumZiBoT) |
-weblink |
يعمل على كل المقالات التي تحتوي أي وصلة خارجية لمسار معطى؛ قد يكون معطى بصيغة «-weblink:url» |
-withoutinterwiki |
يعمل على كل الصفحات التي لا تحتوي على وصلات لغات. الوسيط يمكن أن يكون أيضًا معطى بصيغة «-withoutinterwiki:n» حيث أن n هو العدد الكلي لجلب الصفحات. |
-mysqlquery |
يأخذ نص استعلام ماي إس كيو إل مثل "SELECT page_namespace, page_title, FROM page WHERE page_namespace = 0" ويعمل على الصفحات الناتجة. انظر دليل:باي ويكي بوت/ماي إس كيو إل . |
-sparql |
يأخذ نص استعلام SPARQL SELECT متضمنًا ?item ويعمل على الصفحات الناتجة. |
-sparqlendpoint |
يخصص نقطة نهاية SPARQL للمسار (اختياري). (مثال: -sparqlendpoint:http://myserver.com/sparql) |
-searchitem |
يأخذ نص بحث ويعمل صفحات قاعدة ويكي التي تحتوي عليه. الوسيط يمكن أن يكون أيضًا معطى بصيغة «-searchitem:text»، حيث أن text هو النص المبحوث عنه، أو «-searchitem:lang:text»، حيث أن lang هي اللغة التي سيبحث بها عن العناصر. |
-random |
يعمل على صفحات عشوائية تجلبها خاص:صفحة عشوائية. يمكن أن يكون أيضًا معطى بصيغة «-random:n» حيث n هو عدد الصفحات التي ستُجلَب. |
-randomredirect |
يعمل على صفحات تحويل عشوائية تجلبها خاص:تحويلة عشوائية. يمكن أن يكون أيضًا معطى بصيغة «-randomredirect:n» حيث n هو عدد الصفحات التي ستُجلَب. |
-google |
يعمل على كل الصفحات المعثور عليها في بحث غوغل. أنت بحاجة مفتاح ترخيص واجهة برمجة التطبيقات (API) لغوغل ويب. لاحظ أن غوغل لم تعد تمنح مفاتيح ترخيص. انظر google_key في config.py لأجل التعليمات. الوسيط يمكن أن يكون أيضًا معطى بصيغة «-google:searchstring». |
-yahoo |
يعمل على كل الصفحات المعثور عليها في بحث ياهو. Depends on python module pYsearch. See yahoo_appid in config.py for instructions. |
-page |
يعمل على صفحة وحيدة. الوسيط يمكن أن يكون أيضًا معطى بصيغة «-page:pagetitle»، ومزود عدة مرات لعدة صفحات. |
-pageid |
يعمل على معرف صفحة وحيدة. Argument can also be given as "-pageid:pageid1,pageid2,." or "-pageid:'pageid1|pageid2|..'" and supplied multiple times for multiple pages. |
-linter |
يعمل على الصفحات التي تحتوي أخطاء ألياف. Extension Linter must be available on the site. -linter select all categories. -linter:high, -linter:medium or -linter:low select all categories for that prio. Single categories can be selected with commas as in -linter:cat1,cat2,cat3 Adding '/int' identifies Lint ID to start querying from: e.g. -linter:high/10000 -linter:show just shows available categories. |
الوسيط | الوصف |
---|---|
-catfilter |
يرشح مولد الصفحات إلى الصفحات العائدة في التصنيف المحدد. انظر مولد -cat لصيغة الوسيط. |
-grep |
تعبير نمطي يحتاج لمطابقة المقالة وإلا فإن الصفحة لن يرجع بها. العديد من -grep:regexpr يمكن توفيرها وسيرجع بالصفحة إن كان المحتوى مطابقًا لأي regexpr متوفر. التعابير النمطية غير الحساسة لحالة الأحرف ستُستخدم وستطابق أي حرف، من ضمنها الأسطر الجديدة. |
-grepnot |
Like -grep, but return the page only if the regular expression does not match. |
-intersect |
يعمل على تقاطع كل المولدات المتوفرة. |
-limit |
عندمام يُستخدم مع أي وسيط آخر فإن -limit:n يحدد مجموعة من الصفحات، ولا يعمل على أكثر من عدد إجمالي n من الصفحات. |
-namespaces -namespace -ns |
يرشح مولد الصفحات إلى الصفحات الراجعة من النطاق المحددة. يفصل أرقام أو أسماء عدة نطاقات بفاصلة.
أمثلة: -ns:0,2,4 -ns:Help,MediaWiki يمكنك استخدام البادئة «not» لاستثناء النطاق. أمثلة: -ns:not:2,3 -ns:not:Help,File If used with -newpages/-random/-randomredirect/-linter generators, -namespace/-ns must be provided before -newpages/-random/-randomredirect/-linter. If used with -recentchanges generator, efficiency is improved if -namespace is provided before -recentchanges. If used with -start generator, -namespace/-ns shall contain only one value. |
-onlyif |
ادعاء تحتاجه الصفحة للاحتواء، وإلا فلن ترجع. The format is property=value,qualifier=value. Multiple (or none) qualifiers can be passed, separated by commas.
Examples: -onlyif:expression ". |
-onlyifnot |
ادعاء يجب ألا تحتويه الصفحة، وإلا فإن العنصر لا يرجع. للاستخدام والأمثلة، انظر -onlyif بالأعلى. |
-ql |
يرشح الصفحات بناءً على جودة الصفحة. هذا قابل للتطبيق فقط إن كان contentmodel يساوي 'proofread-page'، وإلا فلن يكون له آثار. القيم الصالحة في مدى 0-4. يمكن فصل القيم المتعددة بفاصلة. |
-subpage |
-subpage:n يرشح الصفحات إلى صفحات تحتوي على عمق n أي أن عمق 0 يرشح كل الصفحات الفرعية، وعمق 1 يرشح كل الصفحات الفرعية المتصلة بصفحات فرعية أخرى. |
-titleregex |
تعبير نمطي يحتاج لمطابقة المقالة وإلا فإن الصفحة لن يرجع بها. العديد من -titleregex:regexpr يمكن توفيرها وسيرجع بالصفحة إن كان المحتوى مطابقًا لأي regexpr متوفر. التعابير النمطية غير الحساسة لحالة الأحرف ستُستخدم وستطابق أي حرف، من ضمنها الأسطر الجديدة. |
-titleregexnot |
مثل -titleregex ، ولكن يرجع بالصفحة إن كان التعبير النمطي غير متطابق. |
بالإضافة إلى ذلك الوسيط purge مدعوم والذي يقوم بعملية التحديث بدلاً من التعديل الفارغ للملفات المحددة.
يفهم النص البرمجي أيضًا بعض وسائط سطر الأوامر المتعددة الإضافية:
الوسيط | الوصف |
---|---|
-botflag |
يقوم بإجبار علم البوت في حالة تعديلات بتغييرات |
-converttitles |
(وسيط تحديث) يقوم بتحويل العناوين إلى متغيرات أخرى عند الحاجة |
-forcelinkupdate |
(وسيط تحديث) يقوم بتحديث جداول الوصلات |
-forcerecursivelinkupdate |
(وسيط تحديث) يقوم بتحديث جداول الوصلات، ويقوم بتحديث جداول الوصلات لأي صفحة تستخدم هذه الصفحة قالبًا |
-redirects |
(وسيط تحديث) يقوم بإصلاح التحويلات تلقائيًا |
أمثلة
$ python3 touch.py -start:!
$ python3 touch.py -lang:fr -family:wiktionary -cat:anglais
$ python3 touch.py -lang:fr -family:wiktionary -transcludes:"pron-rég" -purge
الخيارات العامة متاحة
هذه الصفحة متقادمة. |
هذه الخيارات ستتجاوز ملف الإعداد في إعدادات user-config.py .
المتغير | الوصف | متغير الإعداد |
---|---|---|
-dir:المسار |
يقرأ بيانات الإعداد للبوت من المجلد المعطى من المسار، بدلاً من المجلد الافتراضي. | |
-config:file |
The user config filename. Default is user-config.py. | user-config.py |
-lang:xx |
يضبط لغة الويكي التي تريد العمل عليها، متجاوزًا الإعداد في user-config.py. ينبغي أن تكون xx هي رمز اللغة. | mylang |
-family:xyz |
يضبط عائلة الويكي التي تريد العمل عليها، مثل ويكيبيديا أو ويكاموس ويكي الرحلات... هذا سيتجاوز الإعدادات في user-config.py. | family |
-user:xyz |
سجل دخولك بمستخدم xyz بدلاً من المستخدم الافتراضي. | usernames |
-daemonize:xyz |
يُعيد السيطرة فورًا إلى الطرفية ويعيد تحويل stdout وstderr إلى الملف xyz. (تستخدم فقط للبوتات التي لا تتطلب دخلاً من stdin). | |
-help |
إظهار نص المساعدة. | |
-log |
تفعيل ملف السجل، باستخدام سجلات اسم الملف الافتراضي 'script_name-bot.log' وستُخزن في مجلد السجلات الفرعي. | log |
-log:xyz |
تفعيل ملف السجل، مع تسمية الملف باسم 'xyz'. | logfilename |
-nolog |
تعطيل ملف السجل (إن كان مُفعَّلاً افتراضيًا). | |
-maxlag |
يضبط متغير تأخير أقصى جديد بعدد من الثواني. تأجيل تعديلات البوت أثناء فترات التأخير لخادم قاعدة البيانات. القيمة الافتراضية مضبوطة بملف config.py | maxlag |
-putthrottle:n -pt:n -put_throttle:n |
يضبط أقل وقت (بالثواني) سينتظره البوت بين حفظ صفحتين. | put_throttle |
-debug:item -debug |
تفعيل ملف السجل وتضمين بيانات معالجة شاملة للمكون "item" (لجميع المكونات إن كان الشكل الثاني مستخدمًا). | debug_log |
-verbose -v |
جعل البوت يوفر خرج إضافي من وحدة التحكم قد يكون مفيدًا في المعالجة. | verbose_output |
-cosmeticchanges -cc |
ترجيح إعداد cosmetic_changes المحرر في config.py أو user-config.py إلى معكوسه وإلغائه. جميع الإعدادات الأخرى والقيود تبقى كما هي. | cosmetic_changes |
-simulate |
تعطيل الكتابة إلى الخادم. مفيد للاختبار والمعالجة للنص البرمجي الجديد (إن كان معطى، فإنه لا يقوم بأي تغيير حقيقي، ولكنه يعرض ما كان سيتغير). | simulate |
-<متغير إعداد>:n |
قد تستخدم كل متغيرات الإعداد العددية المعطاة على أنها خيارات وتعدلها بأمر سطري. |