ويكيبيديا:بوت/قائمة الويكيبيديين حسب عدد التعديلات
المظهر
الاسم | قائمة الويكيبيديين حسب عدد التعديلات |
---|---|
اللغة | بايثون |
الرخصة | CC-BY-SA 3.0 |
تجريب | نعم |
قدرات | تحديث قائمة الويكيبيديين حسب عدد التعديلات |
الصانع | عباس |
المستخدم | ZkBot |
المتغيرات | لا يحتاج لأي متغيير |
النتيجة | قائمة مكونة من اسم 500 مستخدم وعدد تعديلاتهم |
نموذج تحریر | نموذج |
التحميل | [ من هنا] |
يتم تحديث قائمة الويكيبيديين حسب عدد التعديلات كل أسبوع بواسطة ZkBot
الكود
[عدل]#!/usr/bin/python
# -*- coding: utf-8 -*-
# Abbas (Ar:User:Elph), 2012
# update: 2015
import catlib ,pagegenerators
import wikipedia,urllib,gzip,codecs,re
import MySQLdb as mysqldb
import config
pagetop=u'{{إحصاء}}\n'
pagetop+=u'<div style="background: #E5E4E2; padding: 0.5em; font-family: Traditional Arabic; font-size: 130%; -moz-border-radius: 0.3em; border-radius: 0.3em;">'
pagetop+=u'\n<center>\n'
pagetop+=u'\nتعرض هذه الصفحة قائمة الـ500 [[ويكيبيديا:ويكيبيديون|ويكيبيدي]] الأوائل حسب عدد التعديلات (بدون احتساب [[ويكيبيديا:بوت|البوتات]]).\n'
pagetop+=u'\nانظر أيضا: [[ويكيبيديا:قائمة الويكيبيديين حسب عدد التعديلات (متضمنة البوتات)|قائمة الويكيبيديين حسب عدد التعديلات (متضمنة البوتات)]]\n'
pagetop+=u"\n'''قام [[مستخدم:{{نسخ:Currentuser}}|{{نسخ:Currentuser}}]] بتحديث هذه القائمة في :''''' ~~~~~ '''"
pagetop+=u'\n</div>'
pagetop+=u'\n<center>\n'
pagetop+=u'<div style="background: #E5E4E2; padding: 0.5em; -moz-border-radius: 0.3em; border-radius: 0.3em;">'
pagetop+=u'\n{| class="wikitable sortable"\n'
pagetop+=u'!style="background-color:#808080" align="center"|الرقم!!style="background-color:#808080" align="center"|المستخدم!!style="background-color:#808080" align="center"|عدد المساهمات\n|-\n'
pagedown=u'\n|}'
pagedown+=u'\n</center>'
pagedown+=u'\n</div>'
pagedown+=u'\n[[تصنيف:إحصاءات ويكيبيديا]] [[تصنيف:ويكيبيديا قائمة الويكيبيديين حسب عدد التعديلات]]'
pagedown+=u'\n</div>'
adress=u"ويكيبيديا:قائمة الويكيبيديين حسب عدد التعديلات"
message=u"تحديث"
count=0
rowi,rowfia,rowfi,mytime,text,rowfa,line_items=' ',' ',' ',' ',' ',' ',' '
#---------------------------------------------- sql part--------------
site = wikipedia.getSite("ar")
query = '''SELECT user_name, user_editcount FROM user
WHERE user_name NOT IN
(SELECT user_name FROM user_groups
INNER JOIN user ON user_id = ug_user WHERE ug_group = 'bot')
AND user_name NOT IN
(Select pl_title from pagelinks where pl_from = 3002292)
ORDER BY user_editcount DESC LIMIT 500;'''
wikipedia.output(u'Executing query:\n%s' % query)
conn = mysqldb.connect("arwiki.labsdb", db = site.dbName(),
user = config.db_username,
passwd = config.db_password)
cursor = conn.cursor()
query = query.encode(site.encoding())
cursor.execute(query)
results = cursor.fetchall()
#---------------------------------------------- end of sql part---------
count=0
for row in results:
count+=1
rowi=unicode(str(row[0]),'UTF-8')
rowi2=unicode(str(row[1]),'UTF-8')
rowfa+=u'\n|bgcolor="#808080"|'+str(count)+u'||bgcolor="#D3D3D3"|[[مستخدم:'+rowi+u'|'+rowi+u']]||'
rowfa+=u'bgcolor="#DCDCDC"|[[خاص:مساهمات/{{نسخ:formatnum:'+rowi+u'}}|{{نسخ:formatnum:'+rowi2+u'}}]]'
rowfa+='\n|-\n'
text=rowfa.strip()
text=pagetop+text+pagedown
page = wikipedia.Page(site,adress)
page.put(text,message)