أرابيكا:بوت/قائمة المستخدمين حسب عدد التعديلات

بيانات کود البوت
الاسمقائمة الويكيبيديين حسب عدد التعديلات
اللغةبايثون
الرخصة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)