پرش به محتوا

ویکی‌پدیا:درخواست‌های ربات/افزودن الگو یوتیوب

از ویکی‌پدیا، دانشنامهٔ آزاد

این کد برای افزودن {{یوتیوب}} به مقالات کاربرد دارد.مزیت الگو:یوتیوب نسبت به پیوندهای عادی در این است

  • افزودن رده:صفحه‌های حاوی ویدئو
  • مشخص بودن پیوندهای ویدئویی یوتیوب
  • امکان نظارت بیشتر بر پیوندهای بیرون

این ربات به صورت خودکار کار می‌کند ونیازی به هیچ نغییر یا آرگومانی ندارد.نمونه

<syntaxhighlight lang="python">

  1. !/usr/bin/python
  2. -*- coding: utf-8 -*-
  3. Reza(User:reza1615), 2012
  4. Distributed under the terms of the CC-BY-SA 3.0 .

import wikipedia, re, pagegenerators import MySQLdb as mysqldb import config, urllib,simplejson from urllib import urlencode wikipedia.config.put_throttle = 0 wikipedia.put_throttle.setDelay() site = wikipedia.getSite('fa','wikipedia')

  1. sql part

query='SELECT page_title, el_to FROM page JOIN externallinks ON el_from=page_id WHERE page_namespace=0 AND el_to LIKE "%www.youtube.%"'; conn = mysqldb.connect('fawiki-p.db.toolserver.org', db = site.dbName(),

                      user = config.db_username,
                      passwd = config.db_password)

cursor = conn.cursor()

wikipedia.output(u'Executing query:\n%s' % query) query = query.encode(site.encoding()) cursor.execute(query) count=0 while True:

   try:
       pageTitle, pagelink = cursor.fetchone()
   except TypeError:
       # Limit reached or no more results
       break
   try:
       if pageTitle:
           pageTitle = unicode(pageTitle, site.encoding())
           pageTitle = re.sub(ur"_",u" ",pageTitle)
           pageTitle = re.sub(ur"(^\"|\"$)",u"",pageTitle)
           pageTitle = re.sub(ur"(^\s*|\s$)",u"",pageTitle)
           pagelink=unicode(pagelink, site.encoding())    
           if pagelink.find(u'watch?v=')==-1:
                continue
           page=wikipedia.Page(site,pageTitle)
           text=page.get()
           part2=pagelink+text.split(u'['+pagelink)[1].split(u']')[0]
           part3=text.split(u'['+pagelink)[1].split(u']')[0]
           part1=pagelink.split(u'watch?v=')[1].split(u'&')[0].strip()
           text_old=text
           linkyou=u'['+part2+u'] '
           text=text.replace(linkyou,u''+part3.strip()+u' در یوتیوب')
           linkyou=u'['+part2+u']' 
           text=text.replace(linkyou,u''+part3.strip()+u' در یوتیوب')
           if text==text_old:
              continue
           else:
              page.put(text,u'ربات:اصلاح الگوی یوتیوب',)
   except:
       continue