دليل:باي ويكي بوت/PAWS

This page is a translated version of the page Manual:Pywikibot/PAWS and the translation is 93% complete.
انظر Wikitech:PAWS لمزيد من التفاصيل.

هذا المستند يوفر نظرة عامة تفاعلية سريعة على باي ويكي بوت باستخدام مفكرة مُستضافة على بيئة معامل ويكيميديا باستخدام PAWS (PAWS: قشرة ويب).

لاحظ أن طرفية PAWS تدعم النسخ واللصق المتصفحات المبنية على كروميوم فقط (جوجل كروم وأوبرا وسفاري مايكروسوفت إيدج الجديد بالغرض.) إن كنت تستخدم متصفحًا مختلفًا، يمكنك تجربة قائمة السياق فقط (انقر بالزر الأيمن) أو ستكون بحاجة إلى كتابة الأوامر يدويًا المذكورة في هذا الشرح التفصيلي. يمكنك أيضًا إنشاء ملف باش يحتوي على الأمر ويستدعي الطرفي باستخدام bash file.sh.
تحذير تحذير: كل المفكرات والطرفيات في PAWS عُرضةً للإنهاء دون ملاحظة. أنت مدعو لتشغيل مهمتك في أماكن أخرى (مثل تولفورج) إن كانت مهمتك ستستمر لأكثر من ساعات.

إنشاء حساب على ويكيميديا

لاتباع هذا الشرح التفصيلي، أنت فقط بحاجة إلى حساب على ويكيبيديا (ويكيميديا). استخدم خاص:أنشئ حسابًا.

بمجرد أنك قد أنشأت حسابًا، من فضلك قم بزيارة https://test.wikipedia.org/ وتفحص إن كان اسم المستخدم الخاص بك يظهر أعلى الركن الأيمن (هذا يعمل حول T120327).

If you are a new user on Wikimedia log in with your account on Meta-Wiki, Wikipedia, Wikidata, and Commons. And in each of them read and delete all pending messages you have (on the top).

سجل دخولك إلى مفكرة

لبدء مفكرة مُستضافة، اذهب إلى https://hub-paws.wmcloud.org/hub

اضغط على "Sign in with MediaWiki"، ثم اضغط على "Allow" عند طلب موافقة "Use OAuth for Authentication". المرة الأولى عند دخولك إلى PAWS، ستحتاج إلى إنشاء خادم. اضغط على زر "Start my Server" الأخضر. من الطبيعي الانتظار بضع دقائق حتى يبدأ الخادم الجديد.

بمجرد انتهائه، ستُحوَّل إلى مسار مثل https://paws.wmflabs.org/paws/user/<username>/tree

بدء طرفية

لبدء طرفية تفاعلية جديدة،

  1. اذهب إلى الصفحة الرئيسية
  2. اضغط على «New» على الجانب الأيمن
  3. اختر «Terminal».
  4. click: File > New > Terminal

هذا سيفتح نافذة جديدة بمسار https://paws.wmflabs.org/paws/user/<username>/terminals/1 برمز لينكس '$'.

هذه الطرفية ليست محاكي. إنها قشرة باش حقيقية، وهي جزء من لينكس مثبت موجود على حاوية دوكر، لذا يمكنك استخدام أي أمر من أوامر الباش، ويمكنك استخدام أي أوامر متاحة على لينكس المثبتة.

لرؤية بعض الأوامر المتاحة، استخدم ls /bin/.

$ ls /bin/
bash         cat            domainname  journalctl  mkdir          pwd         stty                            tar           zcmp
unzip2       chacl          echo        kill        mknod          rbash       su                              tempfile      zdiff
../..
$ ls /usr/bin/
2to3-3.4                 dvipdf                     lcf                         printf               systemd-path                         
X11                      dwp                        ld                          prlimit              systemd-run
../..

To see them all, press TAB twice.


تسجيل الدخول إلى الويكي

هذا سيثبت حسابك على الخادم وسيسمح لك بتسجيل الدخول من سطر الأوامر. ينبغي أن يؤكد الأمر التالي على أنك قد سجلت الدخول إلى testwiki. إنه يستخدم أوث (OAuth)، لذا أنت لست بحاجة لإدخال كلمة مرور.

$ pwb.py login
Logging in to wikipedia:test as <username>
Logged in on wikipedia:test as <username>.

يمكنك توصيل باي ويكي بوت بويكي مختلفة عن طريق إنشاء ملف باسم user-config.py في دليل $HOME (/home/paws) وإضافة متغيري mylang وfamily:

mylang = 'test'
family = 'wikipedia'

You can type vim user-config.py in the terminal, then I to insert text, add the text, then Esc to exist insert mode, then :wq and Enter to finishing editing.


إنشاء صفحة

لإنشاء صفحة، قم بإدخال الأمر التالي في الطرفية، وضع اسم المستخدم الخاص بك بدلاً من '<username>'، ثم اضغط 'Y' عند الطلب للموافقة على تغييراتك:

$ pwb.py add_text -up -talk -page:"User talk:<username>" -text:"Hello. ~~~~"
Loading User talk:<username>...

>>> User talk:<username> <<<
@@ -0,0 +1 @@
+ Hello. ~~~~

Do you want to accept these changes? ([Y]es, [N]o, [a]ll, open in [b]rowser): Y
Page [[User talk:<username>]] saved

لقدت عدلت الويكي. اعرض تغييراتك عن طريق فتح https://test.wikipedia.org/wiki/User_talk:<username> في متصفحك.

يمكنك القراءة أكثر حول كل نص سطر أوامر باستخدام خيار أمر '-help'.

$ pwb.py add_text -help
...

جلب صفحة

جلب صفحات كثيرة يتحقق باستخدام أمر "listpages".

للحصول على محتويات الصفحة التي أنشئتها في القسم السابق، قم بإدخال الأمر التالي:

$ pwb.py listpages -page:"User talk:<username>" -save
   1 <username>
Saving User talk:<username> to /home/paws/User_talk_<username>
1 page(s) found

الآن إن ذهب إلى [$url قائمة ملفات PAWS]، ينبغي أن تكون الصفحة المحفوظة متواجدة.

مثال نص برمجي حقيقي

عندما يتغير مسار موقع مستخدم على ويكيبيديا، فإن الوصلات على ويكيبيديا تصبح قديمة، ومن الممكن أيضًا أن تصبح وصلات مكسورة إن كان الموقع لا يتحول من المسارات القديمة إلى الجديدة. على سبيل المثال، الموسوعة البريطانية قد غيرت وصلاتها، كنقل الصفحات من http://www.britannica.com/EBchecked/media/ إلى http://www.britannica.com/topic/[اسم الموضوع]/images-videos/*. يمكنك إيجاد قائمة استخدامات المسار القديم على ويكيبيديا الإنجليزية من https://en.wikipedia.org/wiki/Special:LinkSearch/http://www.britannica.com/EBchecked/media . تحديث كل تلك الوصلات يدويًا سيستغرق وقتًا طويلاً. لحسن الحظ أن الموسوعة البريطانية قد أبقت على التحويلات من وصلاتها القديمة إلى الوصلات الجديدة، ولذا هذا ليس بحاجة للإصلاح مباشرةً.

مثال أبسط، ويكيبيديا الإنجليزية تحتوي وصلات إلى http://britannica.com/EBchecked/ بدلاً من http://www.britannica.com/EBchecked/؛ أي أن نطاق "www." الفرعي مفقود في المسار.

يوجد حاليًا 14 حالة على ويكيبيديا الإنجليزية: https://en.wikipedia.org/wiki/Special:LinkSearch/http://britannica.com/EBchecked/

ويكيبيديا باللغات الأخرى لديها أيضًا نفس هذه المشكلة. مثلاً توجد حالة واحدة على ويكيبيديا الألمانية: https://de.wikipedia.org/wiki/Spezial:Weblinksuche/http://britannica.com/EBchecked/

لإصلاح تلك الوصلات، يمكنك استخدام النص البرمجي في باي ويكي بوت replace.py . في هذه الاستعراض سنستخدم وسيط '-simulate' لتفادي الكتابة على الويكي، لأنه توجد قوانين صارمة بشأن التعديل التلقائي على ويكيبيديا الإنجليزية.

أولاً لنقم بإدراج جميع الصفحات التي تصل إلى http://britannica.com/EBchecked/.

$ pwb.py listpages -lang:en -weblink:"britannica.com/EBchecked/"
   1 Bhatner fort
   2 Mohammad Ishaq Khan
   3 Fringe theories/Noticeboard/Archive 7
   4 El Riego phase
   5 Catalonia/Archive 4
   6 Stephen I of Hungary
   7 Stephen I of Hungary/Archive 1
   8 Väinö Tanner
   9 Tokaji
  10 Transylvania/Archive5
  11 Hungarians in Romania
  12 Transylvania
  13 Uttarakhand
  14 Françoise Giroud
14 page(s) found

الآن نفحص إذا ما كانت تلك الصفحات تحتوي المسار في الصفحة؛ أي أنها لا تستخدم قالبًا.

$ pwb.py listpages -lang:en -weblink:"britannica.com/EBchecked/" -grep:"britannica.com\/EBchecked"
   1 Bhatner fort
   2 Mohammad Ishaq Khan
   3 Fringe theories/Noticeboard/Archive 7
   4 El Riego phase
   5 Catalonia/Archive 4
   6 Stephen I of Hungary
   7 Stephen I of Hungary/Archive 1
   8 Väinö Tanner
   9 Tokaji
  10 Transylvania/Archive5
  11 Hungarians in Romania
  12 Transylvania
  13 Uttarakhand
  14 Françoise Giroud
14 page(s) found

الآن قم باستخدام التبديل لإضافة "www." المفقودة.

$ pwb.py replace -lang:en -simulate -weblink:"britannica.com/EBchecked/" -grep:"britannica.com\/EBchecked" "http://britannica.com/EBchecked/" "http://www.britannica.com/EBchecked/"
The summary message for the command line replacements will be something like: Bot: Automated text replacement  (-http://britannica.com/EBchecked/ +http://www.britannica.com/EBchecked/)
Press Enter to use this automatic message, or enter a description of the
changes your bot will make: 
Logging in to wikipedia:en as <username>
Retrieving 14 pages from wikipedia:en.
Retrieving 14 pages from wikipedia:en.


>>> Stephen I of Hungary <<<
@@ -47 +47 @@
- Stephen's birth date is uncertain because it was not recorded in contemporaneous documents.{{sfn|Györffy|1994|p=64}} Hungarian and Polish chronicles written centuries later give three different years: 967, 969 and 975.{{sfn|Kristó|2001|p=15}} The unanimous testimony of his three late 11th-century or early 12th-century [[hagiographies]] and other Hungarian sources, which state that Stephen was "still an adolescent" in 997,<ref>''Hartvic, Life of King Stephen of Hungary'' (ch. 5), p. 381.</ref> substantiate the reliability of the later year (975).{{sfn|Györffy|1994|p=64}}{{sfn|Kristó|2001|p=15}} Stephen's ''[[Life of Saint Stephen, King of Hungary (Vita minor)|Lesser Legend]]'' adds that he was born in [[Esztergom]],{{sfn|Györffy|1994|p=64}}{{sfn|Kristó|2001|p=15}}<ref name=Britannica>{{cite encyclopedia|title=Stephen I|url=http://britannica.com/EBchecked/topic/565415/Stephen-I|encyclopedia=[[Encyclopædia Britannica]]|publisher=Encyclopædia Britannica, Inc.|year=2008|accessdate=2008-07-29}}</ref> which implies that he was born after 972 because his father, [[Géza, Grand Prince of the Hungarians]], chose Esztergom as royal residence around that year.{{sfn|Györffy|1994|p=64}} Géza promoted the spread of Christianity among his subjects by force, but never ceased worshipping pagan gods.{{sfn|Kontler|1999|p=51}}{{sfn|Berend|Laszlovszky|Szakács|2007|p=331}} Both his son's ''[[Life of Saint Stephen, King of Hungary (Vita maior)|Greater Legend]]'' and the nearly contemporaneous [[Thietmar of Merseburg]] described Géza as a cruel monarch, suggesting that he was a despot who mercilessly consolidated his authority over the rebellious Hungarian lords.{{sfn|Berend|Laszlovszky|Szakács|2007|p=331}}{{sfn|Bakay|1999|p=547}}
+ Stephen's birth date is uncertain because it was not recorded in contemporaneous documents.{{sfn|Györffy|1994|p=64}} Hungarian and Polish chronicles written centuries later give three different years: 967, 969 and 975.{{sfn|Kristó|2001|p=15}} The unanimous testimony of his three late 11th-century or early 12th-century [[hagiographies]] and other Hungarian sources, which state that Stephen was "still an adolescent" in 997,<ref>''Hartvic, Life of King Stephen of Hungary'' (ch. 5), p. 381.</ref> substantiate the reliability of the later year (975).{{sfn|Györffy|1994|p=64}}{{sfn|Kristó|2001|p=15}} Stephen's ''[[Life of Saint Stephen, King of Hungary (Vita minor)|Lesser Legend]]'' adds that he was born in [[Esztergom]],{{sfn|Györffy|1994|p=64}}{{sfn|Kristó|2001|p=15}}<ref name=Britannica>{{cite encyclopedia|title=Stephen I|url=http://www.britannica.com/EBchecked/topic/565415/Stephen-I|encyclopedia=[[Encyclopædia Britannica]]|publisher=Encyclopædia Britannica, Inc.|year=2008|accessdate=2008-07-29}}</ref> which implies that he was born after 972 because his father, [[Géza, Grand Prince of the Hungarians]], chose Esztergom as royal residence around that year.{{sfn|Györffy|1994|p=64}} Géza promoted the spread of Christianity among his subjects by force, but never ceased worshipping pagan gods.{{sfn|Kontler|1999|p=51}}{{sfn|Berend|Laszlovszky|Szakács|2007|p=331}} Both his son's ''[[Life of Saint Stephen, King of Hungary (Vita maior)|Greater Legend]]'' and the nearly contemporaneous [[Thietmar of Merseburg]] described Géza as a cruel monarch, suggesting that he was a despot who mercilessly consolidated his authority over the rebellious Hungarian lords.{{sfn|Berend|Laszlovszky|Szakács|2007|p=331}}{{sfn|Bakay|1999|p=547}}

Do you want to accept these changes? ([y]es, [N]o, [e]dit, open in [b]rowser, [a]ll, [q]uit): N

...

في PAWS، وأي طرفية تدعم اللون وفرق التغييرات ستُظهر "www." المضافة بلون أخضر، مسهلاً البحث في التغييرات المقترحة.

بداخل باي ويكي بوت

  تحذير: لا تكتب أي كلمات مرور في ملف الخادم، الملفات علنية!

الخطوة التالية هي أن نستخدم جلسة بايثون PAWS.

  1. اذهب إلى صفحة PAWS الرئيسية
  2. اضغط «New"/» على الجانب الأيمن
  3. اختر «Python 3».

سيفتح هذا نافذة جديدة.

في الصندوق النصي، قم بكتابة الآتي ثم في قائمة Cell اختر "Run" (أو اضغط Shift+Enter للتشغيل).

import pywikibot

صندوق نصي جديد سيظهر في الأسفل. قم بتشغيل الآتي لإنشاء كائن APISite متصل بموقع https://test.wikipedia.org/:

site = pywikibot.Site('test', 'wikipedia')

قم بوصف "site" عن طريق كتابتها في الصندوق النصي الجديد ثم اختيار "Run".

site

ينبغي أن تُظهر

 Out[3]: APISite("test", "wikipedia")

أنشئ كائن صفحة:

page = pywikibot.Page(site, 'test')

افحص إن كانت موجود بتشغيل:

page.exists()

ينبغي أن يظهر

 VERBOSE:pywiki:Found 1 wikipedia:test processes running, including this one.
 Out[5]: True

قم بإظهار النص على الصفحة:

page.text

قم بتغيير نص الصفحة في الكائن:

page.text = 'Hello world'

احفظ الصفحة على الويكي:

page.save()

ينبغي أن يكون الرد:

Page [[Test]] saved
INFO:pywiki:Page [[Test]] saved

مفكرة بايثون 3 التفاعلية تسمح بتشغيل سطور كثيرة معًا. النص أعلاه يمكنه وضعه في صندوق نصي واحد ثم تشغيله

import pywikibot

site = pywikibot.Site('test', 'wikipedia')
page = pywikibot.Page(site, 'test')

page.text = 'Hello world!'
page.save()

سجل جلسة بايثون التفاعلية يمكن حفظ أو تحميله ليكون مرجعًا مستقبليًا.

الوصول إلى توثيق عبر الإنترنت في PAWS

يمكن إيجاد توثيق باي ويكي بوت في https://doc.wikimedia.org/pywikibot/. ومصدره من سلاسل التوثيق، والتي يمكن تحميلها في مفكرة بايثون 3 التفاعلية باستخدام دالة مدمجة في بايثون help().

على سبيل المثال، للبحث عن وسائط دوال الحفظ أعلاه، قم بتشغيل إما:

help(page.save)

أو

help(pywikibot.Page.save)

تعديل نصوص باي ويكي البرمجية

مكتبة باي ويكي بوت والنصوص البرمجية محملة في /srv/paws، وللقراءة فقط. مكتبة باي ويكي بوت المثبتة لا يمكن تعديلها في PAWS.

يمكن تعديل النصوص البرمجية بعد نسخها إلى صفحة PAWS الرئيسية الخاصة بك.

على سبيل المثال، لتشغيل "checkimages.py" معدل:

  1. في الطرفية، قم بإدخال cp /srv/paws/pwb/scripts/checkimages.py ~
  2. في المتصفح، اذهب إلى صفحة PAWS الرئيسية ثم اضغط على الملف checkimages.py.
  3. في المتصفح، يمكنك تعديل الملف. قم بتعديل النص البرمجي -- على سبيل المثال، بعد نص start = time.time() مباشرةً في سطر 1775، قم بإضافة سطر جديد 1776 يقوم بطباعة اسمك: print("MYNAME's version.")
  4. في واجهة التعديل، استخدم قائمة File ثم اضغط Save لحفظ تعديلاتك.
  5. في الطرفية، قم بإدخال pwb.py ~/checkimages.py -simulate (If no '-limit:x' defined, the program would run until all images checked, it may take long time.)

انظر أيضا


لو كنت بحاجة لمساعدة في إعداد بوت Pywikibot الخاص بك، يرجى زيارة قناة #pywikibot على آي آر سي تواصل أو القائمة البريدية pywikibot@.