انتقل إلى المحتوى

مستخدم:Meno25/معلومات برمجة

من ويكيبيديا، الموسوعة الحرة

رد:SQL[عدل]

أهلًا أخي محمد، استخدم هذا الاستعلام: select user_name from user where ucase (user_name) not like "%BOT%" and user_name not in (select ipb_address from ipblocks where ipb_address = user_name) and user_name not in (select page_title from page where page_title like "نقاش المستخدم:%"); . أرجو إخباري بالنتيجة. تحياتي، ومرحبًا بأي طلب آخر.--ASammour (نقاش) 17:07، 11 أغسطس 2015 (ت ع م)

معذرة يا أخي؛ أنا آسف على الإزعجاج، ولكن الاستعلام الذي كتبته عند تطبيقه على قاعدة بيانات ويكي الجامعة العربية تكون نتائجه غير صحيحة هكذا؛ قمت بتعديل الاستعلام كما يلي:

select user_name from user where ucase (user_name) not like "%BOT%" and  user_name not in (select ipb_address from ipblocks where ipb_address = user_name)
and user_name not in (select page_title from page where page_namespace = 3);

فأصبحت نتائجه هكذا (مازالت غير صحيحة). --Meno25 (نقاش) 03:15، 12 أغسطس 2015 (ت ع م)

أهلًا، لا عليك أخي محمد، أعتقد أن المشكلة الوحيدة هي في أن القائمة تُظهر المستخدمين الذين لديهم صفحة نقاش؟، هل أنا محق؟.--ASammour (نقاش) 05:30، 12 أغسطس 2015 (ت ع م)

يمكنكم تجربة الإستعلامات هنا.--عباس 09:00، 12 أغسطس 2015 (ت ع م)

مرحبًا مجددًا، يبدو أنني نسيت أمرًا هامًا، جرب هذا الاستعلام:

select user_name from user where ucase (user_name) not like ucase ("%BOT") collate utf8_general_ci and user_name not in (select ipb_address from ipblocks where ipb_address = user_name) and user_name not in (select page_title from page where page_namespace =3 and page_title = user_name) ; .ملاحظة، جربت الأمر كما قال أخي عباس في الويكي العبرية والإنجليزية ونجح الأمر (لا يوجد لديهم بوت ترحيب). شكرًا لكما.--ASammour (نقاش) 09:54، 12 أغسطس 2015 (ت ع م)

أهلا مرة أخرى أخي؛ الاستعلام الآن أصبح يعطي نتائج أقل من اللازم؛ هذه هي النتائج لموقع ويكي الجامعة العربي وويكي الاقتباس العربي؛ الموقعان بهما عدد أكبر من المستخدمين الذين يجب أن يظهروا في النتائج. --Meno25 (نقاش) 10:58، 12 أغسطس 2015 (ت ع م)
مرحبًا محمد، للأسف فشلت في أن أجد حلًا، الطريف في الأمر أنني أعرف سبب المشكلة ولكنني لا أعرف كيفية حلها. الاستعلام صحيح، وجربت تعديل طريقة الاستعلام بأكثر من 7 طرق. سبب المشكلة هو اختلاف الترميز (unicode) بين الترميز الافتراضي في قاعدة البيانات (latin1) وبين البيانات المستخرجة ذات الترميز (utf-8)؛ لذا لا تظهر كل النتائج لهذا السبب. دليل ذلك أنك لو جربت الاستعلام في أي ويكي أجنبية (إنجليزي، عبري، فرنسي) ستجد البيانات صحيحة. ولأنني لا أريد أن أخيب ظنك، سأجعل البوت يستخرج القائمة دون استخدام SQL، أخبرني بشكل القائمة الذي تريده؛ وسأفعل ذلك. تحياتي، وأعتذر مرة أخرى.--ASammour (نقاش) 09:20، 13 أغسطس 2015 (ت ع م)

شكرا أخي على مساعدتك الكريمة، وعذرا على إزعاجك؛ هل يمكنك توليد القائمة في الويكيات التالية:

  • arwiki
  • arzwiki
  • arwiktionary
  • arwikibooks
  • arwikiquote
  • arwikisource
  • arwikinews
  • arwikiversity

يفضل أن تكون القائمة بصورة ملف نصي .txt على الشكل التالي:

# [[مستخدم:مثال]]
# [[مستخدم:مثال2]]

شكرا مرة أخرى. --Meno25 (نقاش) 10:21، 13 أغسطس 2015 (ت ع م)

مرحبًا، أرسلت لك القوائم المطلوبة بالبريد، أرجو مطالعة بريدك الإلكتروني. لأي خدمة أخرى؛ أنا موجود. تحياتي.--ASammour (نقاش) 12:21، 14 أغسطس 2015 (ت ع م)

رد:مهمة جديدة للبوت[عدل]

صباح النور أخي محمد. عفوًا، لم أفهم المهمة جيدًا. أنصح بأن تضم المهمة لبوت @Majed:؛ حيث أن بوته يملك علمًا في ويكي بيانات، ويقوم بترحيل الوصلات إلى ويكي داتا، ويمكنه المرور على القالب في آن واحد. تحياتي.--ASammour (نقاش) 09:40، 1 سبتمبر 2015 (ت ع م)

لا مشكلة أخي. --Meno25 (نقاش) 12:12، 1 سبتمبر 2015 (ت ع م)
أهلا بك، لا أبدا، سل ما شئت، وانا بالخدمة. ما رأيك أن تقوم بتنفيذ هذا الاستعلام؛ سيعطي نتائج أفضل.

SELECT term_text from wb_terms WHERE term_entity_type = 'item' AND term_language = 'ar' AND term_type = 'label' and term_text like "ملحق:%" . تحياتي، ومرحبا بأي طلب آخر.--ASammour (نقاش) 13:32، 1 سبتمبر 2015 (ت ع م)

شكرا أخي؛ الاستعلام يعطي النتائج التي أريدها لكن ليس بالصورة التي أريدها؛ فالاستعلام يعطي نص الar label في حين أنني أريد رقم الitem الذي يحتوي على الlabel؛ مثلا أول نتائج ظهرت لي هي:
| ملحق: قائمة المدن في ألمانيا حسب عدد السكان |
| ملحق:1 |
| ملحق:1 أبريل |
في حين أن النتائج التي أريدها هي:
| Q4242225 |
| Q23108 |
| Q2510 |
(أرقام الitems المناظرة)
هل يمكنك إصلاح الأمر؟ تحياتي. --Meno25 (نقاش) 14:03، 1 سبتمبر 2015 (ت ع م)
استبدل فقط: SELECT term_text from ب SELECT term_entity_id from وسيعطي النتائج المرغوبة. تحياتي.--ASammour (نقاش) 14:51، 1 سبتمبر 2015 (ت ع م)
أنت عبقري يا أحمد؛ شكرا جزيلا. --Meno25 (نقاش) 15:20، 1 سبتمبر 2015 (ت ع م)
صباح النور. أنا بخير والحمد لله. جرب هذا الاستعلام:

SELECT term_entity_id from wb_terms WHERE term_text like "Category:%" and term_language = 'en' and term_entity_type = 'item' and term_type = 'label' and term_entity_id not in (SELECT term_entity_id from wb_terms WHERE term_text = null and term_language = 'ar' and term_entity_type = 'item' and term_type = 'description') limit 10000; لست متأكدًا 100%؛ لأنني لم أفهم الشرط الأول. لكن جربه وأخبرني بالنتيجة.--ASammour (نقاش) 11:04، 2 سبتمبر 2015 (ت ع م)

100% يا أحمد؛ You're a life saver. شكرا مجددا. --Meno25 (نقاش) 12:12، 2 سبتمبر 2015 (ت ع م)
رائع!. إن احتجت طلبًا آخر؛ أنا موجود. تحياتي.--ASammour (نقاش) 12:55، 2 سبتمبر 2015 (ت ع م)

رد:SQL[عدل]

صباح الورد أخي محمد. جرب هذا الاستعلام. select DISTINCT page_title from page where page_namespace = 6 and page_is_redirect = 0 and (select rev_user from revision where rev_parent_id=0 and rev_page=page_id and rev_user = (select user_id from user where user_name = "The_user_here")); استبدل The_user_here باسم المستخدم الذي تُريد. بدون إضافة (مستخدم:). تحياتي.--ASammour (نقاش) 08:11، 4 سبتمبر 2015 (ت ع م)

مرحبا يمكن تسريع الاستعلام بالتخلص من القسم الاخير منه أي جزء استعلام اسم المستخدم. انا اقترح الاستعلام التالي--عباس 09:23، 4 سبتمبر 2015 (ت ع م)

SELECT /*SLOW OK */ page_title
FROM revision
INNER JOIN page ON rev_page = page_id
WHERE page_namespace = 6
    AND rev_user_text = 'Elph'
    AND rev_parent_id = 0
    AND page.page_is_redirect = 0
ORDER BY page_title;
@Elph: أنا جربت الاستعلام الذي أعطيتني إياه والاستعلام الذي أعطاني إياه عباس هنا على ويكيميديا لابز لمدة 15 دقيقة ولم يعط نتائج، يبدو أن الاستعلام مكلف جدا على قاعدة البيانات؛ هل يمكنك أنت أو عباس تجربة الاستعلام في Quarry على حسابي في كومنز وإرسال النتائج في صورة ملف نصي txt إلى بريدي؟ شكرا مقدما. --Meno25 (نقاش) 10:55، 4 سبتمبر 2015 (ت ع م)
مرحبًا، كنت قد جربت الأمر في quarry، أعتقد أنه سيعمل بإضافة حد أقصى من الملفات، أضف limit 20 مثلًا إلى نهاية الاستعلام. إذا لم يعمل أخبرني؛ وسأجهز قائمة بدون sql. هل هناك مستخدمين معينين تريد استخراج القائمة لهم؟.--ASammour (نقاش) 11:05، 4 سبتمبر 2015 (ت ع م)
مرحبا مرة أخرى؛ الاستعلام الخاص بك مع إضافة limit على ويكيميديا لابز لم ينجح لأنه استغرق وقتا طويلا؛ الاستعلام الخاص بعباس على Quarry لم ينجح على كومنز (قاعدة بيانات كبيرة) لكنه نجح على ويكيبيديا العربية (قاعدة بيانات صغيرة)؛ لذا لم يبق هناك حل سوى أن تجهز قائمة بدون SQL وترسلها لي بالبريد؛ تذكر أني أريد القائمة لحسابي في كومنز؛ شكرا جزيلا، أتعبتك معي. --Meno25 (نقاش) 14:30، 4 سبتمبر 2015 (ت ع م)
مرحبًا مجددًا. أرسلت القائمة بالبريد. أرجو مطالعة بريدك الإلكتروني. ملاحظة: عمل الاستعلام عندما حددت حدًا أقصى من الصفحات. واستغرق وقتًا طويًلا طبعًا؛ لحجم الملفات الكبير. تحياتي.--ASammour (نقاش) 15:20، 4 سبتمبر 2015 (ت ع م)

رد:المستبدلات[عدل]

صباح النور أخي محمد. حددت مكان الأخطاء.
الأول ← <Typo word="آ.." find="\b(ال)?[أآا](راء|دم|خرين|حاد|سيا|خر|لة|لاف|داب|لات)\b" replace="$1آ$2" />

الثاني ← <Typo word="(بداية مغلقة)...[ةه]" find="\b(اسم|توج)[ةه]\b" replace="$1ه" />
الثالث ← <Typo word="أ...نهاية مسدودة" find="\b(ال)?[اأإ](ئمة|تاح|خص|لواح|مر|يرلندا|هل|راد|و|رض|مة|ضاف|لعاب|حد|حمد)\b" replace="$1أ$2" />
الرابع ← <Typo word="...[ةه]" find="(هندس|واضح|هزيم|مبارا|قافل|فتر|بطول|سلحغا|مساهم|كبير|محكم|أشع|دردش|بطل|بقع|إجاز|أسام)[ةه]\b" replace="$1ة" />
يمكنك إصلاح الأمر بنفسك، أو يمكن ل@Kuwaity26: أن يصلحها. لو لم ينجح الأمر؛ أخبرني. تحياتي.--ASammour (نقاش) 07:21، 15 سبتمبر 2015 (ت ع م)

قمت بإصلاح المستبدل الرابع فقط، فأنا لا أرى مكان الخطأ في الأكواد من الأول إلى الثالث (ربما لأن معرفتي محدودة بصياغة الـRegex). بالنسبة للأول والثالث فلم أستطع تحديد المستبدل الذي يقوم بالتحويل الذي ذكره الأخ مينو، أم الثاني، فالشكوى أن الأوب يقوم بتحويل التوجه إلى التوجة بينما هذا المستبدل يقوم بالعكس ، أعتذر عن عدم قدرتي على إصلاح المشكلة. -- عَبدُ العَزيزِ نقاش 07:41، 15 سبتمبر 2015 (ت ع م)
معذرة يا أحمد ولكن كويتي26 لم يعرف كيف يصلح المشكلة وأنا معرفتي بالريجيكس محدودة؛ هل يمكنك أن تقوم بتصحيح الأخطاء بنفسك؟ عذرا على الإزعاج. --Meno25 (نقاش) 07:47، 15 سبتمبر 2015 (ت ع م)
 تم، أرجو تجربة التعديل في بعض المقالات التي تحتوي الكلمات. تحياتي.--ASammour (نقاش) 08:11، 15 سبتمبر 2015 (ت ع م)
مرحبا مجددا؛ الآن التدقيق الإملائي لا يعمل في الأوب؛ عند محاولة تفعيله يعطيني الخطأ:

RegexTypoFix error

Duplicate typo rule '\b'[ةه](اسم)\b' found.

هل يمكنك إصلاح الخطأ؟ شكرا مقدما. --Meno25 (نقاش) 09:14، 15 سبتمبر 2015 (ت ع م)
 أُصلح، أعتقد أنه سيعمل الآن.--ASammour (نقاش) 10:46، 15 سبتمبر 2015 (ت ع م)
كلا للأسف؛ مازال لا يعمل؛ انظر v:خاص:فرق/49354 و n:خاص:فرق/61691. --Meno25 (نقاش) 11:03، 15 سبتمبر 2015 (ت ع م)
آسف لذلك. أزلت مستبدلا يشبه تماما الحالة التي ذكرت. أرجو إخباري بالنتيجة. تحياتي.--ASammour (نقاش) 11:43، 15 سبتمبر 2015 (ت ع م)
مازالت المشكلة موجودة يا أحمد؛ انظر v:خاص:فرق/49356 و n:خاص:فرق/61697؛ تحياتي. --Meno25 (نقاش) 12:05، 15 سبتمبر 2015 (ت ع م)
الآن لا بد أن يعمل. أرجو التجربة هنا، وليس في المشاريع الشقيقة؛ لأن المستبدلات تختلف من مشروع لآخر.--ASammour (نقاش) 13:21، 15 سبتمبر 2015 (ت ع م)
تمام يا أحمد؛ نجح الأمر أخيرا؛ شكرا لك ومعذرة على الإزعاج. --Meno25 (نقاش) 15:16، 15 سبتمبر 2015 (ت ع م)

──────────────────────────────────────────────────────────────────────────────────────────────────── الحمد لله. أنا جاهز لأي خدمة أخرى. بالمناسبة، هل هناك مهام تحتاج لبوت في المشاريع الشقيقة؟. ويكي أخبار مثلا.--ASammour (نقاش) 15:47، 15 سبتمبر 2015 (ت ع م)

ليس على حد علمي؛ لكن كنت أحتاجك لمهمة حاسمة أخرى تحتاج لخبرتك التقنية؛ حاليا هناك خطان fonts مستخدمان في ويكيبيديا العربية: الخط الأول هو المستخدم في الصفحات العادية والثاني هو المستخدم في خاص:تفضيلات كما أنه مستخدم في ويكي الاخبار العربي؛ تخميني لسبب ذلك هو أنه أحد الإداريين في ويكيبيديا العربية قام بعمل override للفونت الافتراضي المستخدم هنا؛ الذي أريد أن أفعله هو أن أجعل الفونت الثاني هو الافتراضي في كل صفحات ويكيبيديا العربية؛ وذلك لأن الفونت الثاني أكثر وضوحا بكثير في القراءة؛ هل يمكنك إرشادي لكيفية عمل ذلك؟ يمكنك مطالعة ميدياويكي:Common.css؛ تحياتي. --Meno25 (نقاش) 16:00، 15 سبتمبر 2015 (ت ع م)
مرحبًا. حقيقة أنا أتحفظ على تغيير الفونت؛ وذلك لأن الفونت الذي ذكرته ربما لا يكون مدعومًا في أنظمة تشغيل أخرى (لينيكس، ماك)، أو على الجوال. أفضل شيء هو إضافة الخط إلى إضافة تحسينات المظهر؛ والتي هي مفعلة افتراضيًا لكل المستخدمين. كل ما عليك فعله هو استبدال arial ب Tahoma في هذه الصفحة. تحياتي.--ASammour (نقاش) 17:45، 15 سبتمبر 2015 (ت ع م)
شكرا أخي؛ خط الموسوعة الآن أفضل كثيرا؛ عموما لا تقلق، لو كانت هناك اعتراضات من المستخدمين الآخرين فسأسترجع تعديلي؛ تحياتي. --Meno25 (نقاش) 09:16، 16 سبتمبر 2015 (ت ع م)

استفسار..[عدل]

السلام عليكم.. مرحبًا محمد، هل من طريقة لاستبدال كل محتوى الصفحة باستخدام التعابير النمطية؟ أي إفراغ الصفحة ووضع نص آخر، باستخدام Regex.. --شبيب السبيعي..ناقشني 01:54، 6 أكتوبر 2015 (ت ع م)

أنا أيضا كنت أريد معرفة هذا. --Meno25 (نقاش) 05:38، 6 أكتوبر 2015 (ت ع م)
وعليكم السلام ورحمة الله وبركاته. إذا كنت تقصد الاستبدال بواسطة أوب؛ فالجواب هو نعم. ولكن الاستبدال سيكون بأي نص؟. أرجو توضيح الفكرة بعض الشيء.--ASammour (نقاش) 08:09، 6 أكتوبر 2015 (ت ع م)
مثلًا اسبتدال محتويات تصنيف:مقالات بحاجة لمصادر أكثر منذ أكتوبر 2015 بقالب {{تصنيف صيانة شهري}}.. --شبيب السبيعي..ناقشني 08:15، 6 أكتوبر 2015 (ت ع م)
@Meno25 وShbib Al-Subaie: مرحبًا مجددًا. هناك طريقة ملتوية لفعل مثل هذه المهمة، وهي كالتالي:
1. نختار Advanced setting من Find and replace.
2. بعد إنشاء rule جديدة، نضع في المربع الأول (Find) الريجيكس التالي: .{1,}.
3. في المربع الثاني (Replace with) نضع النص الذي نريد استبداله.
4.نعلّم على خيار single line، وخيار Regular expression.
5. انتهينا. تحياتي.--ASammour (نقاش) 11:31، 6 أكتوبر 2015 (ت ع م)
شكرا أخي. --Meno25 (نقاش) 11:34، 6 أكتوبر 2015 (ت ع م)
بارك الله فيك أحمد.. انتبهت للتو أنني دائمًا ما أُناديك محمد .. --شبيب السبيعي..ناقشني 11:46، 6 أكتوبر 2015 (ت ع م)

Remained lang links at local-wikis[عدل]

Hi, there are many lang-links (interwikis) at local wikis which aren't removed. for finding them you should type insource:/\[\[xxx:/ (xxx is langlink like en,fr, de, fa,...) at local wiki search box like below:

At en.wikipedia

...

At fr.wikipedia

most of these local pages have interwiki-conflict and should be solved by human.

for bot

if you have bot at local wiki, you can run this code to remove interwikis of without-conflict pages (you should bot-permission at wikidata and localwiki):

#This command will check and remove interwikis from en.wikipedia's pages which have fr: links
python pywikibot/pwb.py interwikidata -clean -langs:en -lang:en "-search:insource:/\[\[fr:/"
#Only categories
python pywikibot/pwb.py interwikidata -clean -langs:en -lang:en "-search:category:insource:/\[\[fr:/"

Yamaha5 (talk) 06:33, 17 March 2016 (UTC)

سؤال بخصوص الكرون[عدل]

مرحبًا زاهر. أحتاج مساعدتك في موضوع الCrons في التوللابز. هل لديك فكرة عن كيفية تشغيل أكثر من بوت في نفس الوقت؟. حاليًا، إذا قمتُ بهذه العملية يعمل فقط بوت واحد، والآخر لا. تحياتي.--ASammour (نقاش) 20:19، 22 أكتوبر 2016 (ت ع م)

@ASammour: أهلاً أحمد، نعم يمكنك تشغيلهم، مثلاً في المجلد الرئيسي للأداة أنشئ ملفين بلاحقة sh وفي كل ملف التالي

الأول bot1.sh

#!/bin/bash
python pywikibot-core/pwb.py code1

والثاني bot2.sh

#!/bin/bash
python pywikibot-core/pwb.py code2

وادخل إلى الكرون وأضف سطرين لتشغيل كل منهم في الوقت الذي تريده. مثال

10 2 * * * jsub bot1.sh >/dev/null 2>&1
20 2 * * * jsub bot2.sh >/dev/null 2>&1

سيعمل الأول كل يوم في الساعة 2:10 والثاني كل يوم في الساعة 2:20. تحياتي --زاهر نقاش 09:11، 23 أكتوبر 2016 (ت ع م)

شكرًا لك أخي زاهر. أخيرًا نجح الأمر معي. لا غنى لنا عن خبراتك التقنية. أطيب الأماني.--ASammour (نقاش) 12:02، 25 أكتوبر 2016 (ت ع م)

Private use area[عدل]

السلام عليكم أخي أحمد؛ هذا هو ميعادنا للتحديث نصف الشهري (مرتين كل شهر) لرموز يونيكود؛ القائمة الجديدة قصيرة وتحتوي فقط على 3 صفحات؛ الرجاء إزالة الحروف من uE000-uF8FF منها؛ تحياتي؛ القائمة هي:

  1. قالب:IPAsym
  2. مضادات مستقبل الهيستامين الأول
  3. وحدة:IPA symbol/data

--Meno25 (نقاشمساهمات) 16:10، 4 يناير 2019 (ت ع م)

@Meno25: وعليكم السلام ورحمة الله وبركاته.  تم. ولكن للتاريخ؛ قمتُ بكتابة هذا السكربت الصغير ليقوم بنفس العملية التي يقوم بها البوت تمامًا.
$("#wpSave").click (function (){
    var content = $("#wpTextbox1").val();
    content = content.replace (/([\uE000-\uF8FF])/g, '');
    $("#wpTextbox1").val(content);    
});
كل ما عليك فعله هو وضع السكريبت في صفحة الفكتور الخاصة بك، وكلما وجدت صفحة بهذا الشكل؛ قم بفتح الصفحة، واضغط على زر نشر التغييرات، وسيقوم السكريبت بالاستبدال المطلوب مباشرة، دون الحاجة لتشغيل بوت. أو بإمكاني وضع السكربت في صفحة Common.js ليعمل لجميع المستخدمين. ما رأيك؟. أطيب التحيات.--ASammour (نقاش) 16:59، 4 يناير 2019 (ت ع م)
ألف شكر أخي؛ هذا السكريبت هو الحل الجذري للمشكلة فعلا، الحقيقة أفضل أن نقوم باستخدام السكريبت يدويا (بدلا من إضافته لCommon.js)؛ وذلك للتأكد من عدم وجود أخطاء عند استخدام السكريبت؛ وشكرا لمجهودك مرة أخرى أخي. --Meno25 (نقاشمساهمات) 17:09، 4 يناير 2019 (ت ع م)

استفسار[عدل]

مرحبًا أخي مينو. حسب إحصائية بسيطة؛ يوجد هناك أكثر من 6 آلاف تحويلة تحتوي على عنصر ويكي بيانات. سؤالي هو هل ارتباط التحويلة بعنصر بيانات صحيح؟. إذا كان غير صحيح فأنا أفكر بكتابة استعلام جديد لربط هدف التحويلة بعنصر البيانات الخاص بالتحويلة، بدلًا من ربط التحويلة نفسها بعنصر البيانات؛ وبذلك نستغل هذا الربط في خفض عدد المقالات بدون إنترويكي. ثم ما يتبقى من ذلك يُرشح للحذف. هل هذا السيناريو دقيق؟. أطيب التحيات.--ASammour (نقاش) 18:20، 15 مارس 2019 (ت ع م)

@ASammour: السلام عليكم أخي أحمد؛ متعك الله بالصحة والعافية؛ الحقيقة أخي كنت أود مراجعة التحويلات المربوطة بويكي داتا منذ فترة طويلة لكن لم يكن لدي وقت؛ تطوعك للمساهمة في الموضوع ستسهل الأمر كثيرا إن شاء الله؛ ارتباط التحويلة بعنصر ويكي داتا بحد ذاته ليس خطئا (سيتم تعديل الsoftware في المستقبل ليسمح بربط التحويلات بعناصر ويكي داتا مباشرة؛ حاليا التحويلات الموجودة في ويكي داتا هي نتيجة مقالات في ويكيبيديا تم دمجها دون تحديث وصلة اللغة أو أخطاء برمجية)؛ لشرح ما نحتاج لعمله سأفترض أن عنصر ويكي داتا Q10 مربوط بتحويلة في ويكيبيديا العربية (sitelink: arwiki) اسمها "صفحة تحويل" والعنصر Q20 مربوط بالمقالة المحول إليها في ويكيبيديا التي اسمها "مقالة محول إليها"؛ "و" هنا تعني AND relation؛ الاحتمالات هنا هي:
  1. الحالة 1: التحويلة في ويكيبيديا العربية مربوطة بعنصر ويكي داتا والمقالة المحول إليها غير مربوطة بويكي داتا (Q10 exits and Q20 doesn't exist): في هذه الحالة يتم تحديث وصلة اللغة في Q10 فقط لتشير للمقالة المحول إليها مع عدم إنشاء أي عنصر جديد.
  2. الحالة 2: التحويلة والمقالة كلاهما مربوطان بويكي داتا والخاصية P1889 different from غير مستخدمة في أي عنصر منهما والعنصر المربوط بالمقالة يحتوي على وصلة موقع واحدة هي الوصلة لويكيبيديا العربية (Q10 and Q20 both exits and they both don't have P1889 as a statement and number of sitelinks on Q20 is 1): في هذه الحالة يتم: 1-تحديث وصلة اللغة في Q10 لتشير إلى المقالة المحول إليها مع 2-دمج merge العنصرين (merge Q10 and Q20).
  3. الحالة 3: نفس الحالة السابقة لكن معكوسة؛ هنا العنصر المربوط بالتحويلة (وليس العنصر المربوط بالمقالة) هو الذي يحتوي على وصلة موقع واحدة: في هذه الحالة يبقى الحال على ما هو عليه (لا تغيير).
  4. الحالة 4: كل من العنصرين يحتوي على أكثر من وصلة موقع واحدة (both Q10 and Q20 have more than 1 sitelink): في هذه الحالة لا تفعل شيئا (لضمان عدم الوقوع في أخطاء).
ملاحظة

الحالات السابقة متشددة قليلا لأنها تفترض تشغيل البوت أوتوماتيكيا لتعديل الوصلات؛ المراجعة اليدوية أفضل طبعا (الحالة 4 تحديدا تحتاج لمراجعة يدوية)؛ لكني أريد توفير وقتك. لا تتردد في سؤالي أخي لو كان لديك أي أسئلة أخرى؛ تحياتي وشكرا أخي. --Meno25 (نقاشمساهمات) 09:52، 16 مارس 2019 (ت ع م)

ألف شكر لك أخي على التوضيح. ظننتُ الأمر أبسط من ذلك. سأقوم الليلة بكتابة استعلام جديد بناءً على المعلومات المفيدة التي ذكرتَها أعلاه. شكرًا جزيلًا مجددًا. أطيب التحيات.--ASammour (نقاش) 15:03، 16 مارس 2019 (ت ع م)
مرحبًا من جديد أخي مينو. عذرًا على التأخر في الرد. هذا الاستعلام يحقق النقطة الأولى (يوجد وصلة لغات للتحويلة ">0"، والهدف لا يحتوي على أي وصلات لغات "=0"). أما هذا الاستعلام فهو يحقق النقطة الثانية (الهدف يحتوي وصلات لغات ">0"، والتحويلة لا تحتوي على أي وصلات لغات "=0"). أما بالنسبة للحالتين الثالثة، والرابعة فمن الصعب كتابة استعلام لهما؛ لأن نسبة الخطأ كبيرة. لأي أمر آخر أنا موجود. وشكرًا جزيلًا لك على الملاحظات الهامة التي تزود الموسوعة بها. أطيب التحيات.--ASammour (نقاش) 19:25، 22 مارس 2019 (ت ع م)
@ASammour: شكرا أخي؛ حفظك الله ذخرا للموسوعة؛ حقا لا غنى لنا عن خدماتك؛ تحياتي. --Meno25 (نقاشمساهمات) 19:37، 22 مارس 2019 (ت ع م)

تنفيذ استعلام على كل ويكيات ويكيميديا[عدل]

السلام عليكم أخي العزيز أحمد؛ متعك الله بالصحة والعافية؛ هناك سؤال أود سؤالك عنه، وهو كيف يمكن باستخدام Quarry تنفيذ استعلام على كل ويكيات ويكيميديا مرة واحدة؟ يعني لنفترض أني أريد الحصول على الuser_id المحلي الخاص بحسابي (وهو مختلف طبعا عن الuser_id العالمي الخاص بالدخول الموحد SUL) في كل ويكيات ويكيميديا، فسيكون الاستعلام كالتالي (طبعا هذا الاستعلام ليس هو المقصود، ولكنه للتجربة فقط):

use arwiki_p;
select user_id from user where user_name = 'Meno25';

المشكلة هنا أني سأضطر لتنفيذ الاستعلام مئات المرات على كل الويكيات، فكنت أود سؤالك هل تعرف طريقة مختصرة لتنفيذ الاستعلام مرة واحدة على كل الويكيات؟ خالص التحيات أخي. --Meno25 (نقاشمساهمات) 19:49، 3 مايو 2019 (ت ع م)

@Meno25: وعليكم السلام ورحمة الله وبركاته أخي مينو. نفس الأمر بالضبط كنتُ قد وقعتُ فيه قبل أسبوع. بعد بحث طويل، وجدتُ أن مطور أداة Quarry يمنع استخدام الأداة في الاستعلامات العالمية. والسبب طبعًا منطقي لأنه يحرم المستخدمين الآخرين من تنفيذ استعلاماتهم؛ حيث تستهلك مثل هذه الاستعلامات الموارد. ولكنني وجدتُ حلًا ملتويًا للأمر كالآتي:
  • تنفيذ هذا الاستعلام أولًا باستخدام MariaDB. عن طريق Putty. أو إذا كنتَ تستخدم أداة Workbench، فيُمكنك تنفيذ هذا الاستعلام من خلاله:
SELECT CONCAT('select ', schema_name,'\.user\.user_id from ',schema_name, '\.user where ',schema_name,'\.user\.user_name = "ASammour";')
FROM information_schema.schemata
WHERE schema_name NOT IN ('information_schema','mysql','performance_schema','test');
  • ستظهر لك نتائج الاستعلام مكونة من 899 صفًا تقريبًا، وهي عبارة عن نفس الاستعلام مكررًا لجميع نسخ ويكيميديا (كلٌ حسب اسم قاعدة البيانات). كل ما عليك فعله هو نسخ هذه الصفوف، وتنفيذها مرة أخرى باستخدام MariaDB. بالطبع سيأخذ ذلك وقتًا طويلًا للتنفيذ. فيُرجى الانتباه إلى تشغيل استعلامات خفيفة؛ حتى لا تستغرق وقتًا طويلًا.
لاحظ أن الاستعلام أعلاه قمتُ بكتابته ليُناسب المثال الذي قمتَ بوضعه أعلاه. كل ما عليك فعله هو تغيير أسماء الجداول، والأعمدة، وسيعمل كل شيء على ما يرام. إذا واجهتك أي مشكلة في تنفيذ الاستعلام؛ أرجو ألا تتردد في سؤالي. أطيب التحيات.--ASammour (نقاش) 19:14، 4 مايو 2019 (ت ع م)
أنت مبهر يا أحمد؛ حقيقة رائع؛ كنت أبحث عن الطريقة منذ سنين؛ شكرا أخي. --Meno25 (نقاشمساهمات) 19:57، 4 مايو 2019 (ت ع م)