For faster navigation, this Iframe is preloading the Wikiwand page for User:Sz-iwbot/autovfd.py.

User:Sz-iwbot/autovfd.py

#!/usr/bin/python
# -*- coding: utf-8  -*-
"""
autovfd.py v1.00 by [[zh:user:Shizhao]]

license: GPL

"""
import os
import sys, time, datetime
import wikipedia, config,catlib
site=wikipedia.getSite()

def vfdm():
    """
    过期月份,应该提交删除
    """
    if int(time.strftime("%m",time.gmtime()))==1:
        vfdm=12
    else:
        vfdm=int(time.strftime("%m",time.gmtime()))-1
    vfdm=str(vfdm)
    return vfdm  


def templatetime(timestamp):
    """
    格式化页面放置模板的时间
    """
    t=time.strptime(timestamp, '%Y-%m-%dT%H:%M:%SZ')
    y=time.strftime("%Y",t)
    m=time.strftime("%m",t)
    d=time.strftime("%d",t)
    h=time.strftime("%H",t)
    min=time.strftime("%M",t)
    s=time.strftime("%S",t)
    temptime=datetime.datetime(int(y),int(m),int(d),int(h),int(min),int(s))	
    return temptime	

def vfd(category, templates):

#得到过期条目列表


    """
    得到某个分类下没有提交删除的条目,根据设置一个测试页面的链入,判断是否已经提交删除
    """
    n=0
    vfdlist=[]
    cat=catlib.Category(site, category)
    listOfArticles = cat.articlesList()

    test=wikipedia.Page(site,u'User:Sz-iwbot/vfdall')

    pagelist = [page for page in listOfArticles if page.namespace()==0 and test not in page.getReferences()]

    for page in pagelist:

        temptime = None
#查找加上模板的日期, 并将过期的条目写入列表 

        notime=True
        for (id, timestamp, user, content) in page.fullVersionHistory():
        
            for template in templates:
                if template in (id, timestamp, user, content)[3] and datetime.datetime.utcnow() - templatetime(timestamp) > datetime.timedelta(days=30) and notime:
                    wikipedia.output(u'In [[%s]] Fond [[%s]], submit VFD' % (category, page.title()))
                    title=page.title()
                    title=u'\n==== [['+title+u']] ====\n'
                    vfdlist.append(page.title())
                    n=n+1
                    notime=False
#        wikipedia.output(u'[[%s]] Not more 30 days, KEEP' % ( page.title()))

    wikipedia.output(u'In [[%s]] Fond vfd totlal: %s' % (category, n))
    return vfdlist


def submitvfd(vfdlist,reson):
    """
	提交删除
    """
    todayvfd=u'Wikipedia:删除投票和请求/%s%s%s日' % (datetime.datetime.utcnow().year, datetime.datetime.utcnow().month, datetime.datetime.utcnow().day)
#    todayvfd=u'User:Shizhao/3'
    botc=u'Bot提交过期%s条目' % reson 
    vfdpage=wikipedia.Page(site,todayvfd)
    svfdlist=''.join(vfdlist) 
    if vfdpage.exists():
        text=vfdpage.get()
        text=text+u'\n=== 过期'+reson+u'条目 ===\n'+svfdlist+u'----\n超过30天仍然挂有((tl|'+reson+u'))模板的条目,由[[WP:BOT|]]自动提交。—~~~~'
        vfdpage.put(text, botc,  minorEdit=False )
    else:
        hear=u'((subst:DRHead))'
        text=hear+u'\n=== 过期'+reson+u'条目 ===\n'+svfdlist+u'----\n超过30天仍然挂有((tl|'+reson+u'))模板的条目,由[[WP:BOT|]]自动提交。—~~~~'
        vfdpage.put(text, botc+u'并建立删除请求页面', minorEdit=False )
    wikipedia.output(u'submit pages to VFD page: [[%s]] ' % todayvfd)

def vfdnotice(vfdlist, pagereson):
    """
    在提交删除的条目上挂删除模板
    """
    for title in vfdlist:
        page=wikipedia.Page(site,title)
        t=page.get()
        reson=u'((Vfd|过期%s))\n'% pagereson
        t=reson+t
        page.put(t, pagereson, minorEdit=True)	
        wikipedia.output(pagereson + u':Bot提交删除')

def sleep(s):
    wikipedia.output(u'\nSleeping %s s' % s)	
    time.sleep(s)    
	
def substub():
    """
    过期小小作品提交删除
    """
    category=u'Category:%s月小小作品' % vfdm()
    templates=['((Substub', '((小小作品', '((substub']
    reson=u'小小作品'

    vfdlist=vfd(category, templates)
    if len(vfdlist) >0:
        vfdnotice(vfdlist, reson)
        submitvfd(vfdlist,reson)
    else:
        wikipedia.output(u'Today Not Vfd!')
    sleep(60)


def Notability():
    """
    过期主题知名度不足条目
    """
    category=u'Category:%s月主題知名度不足的條目' % vfdm()
    templates=['((知名度', '((知名度不足', '((fame', '((Fame', '((Notability', '((notability']
    reson=u'知名度不足'

    vfdlist=vfd(category, templates)
    if len(vfdlist) >0:
        vfdnotice(vfdlist, reson)
        submitvfd(vfdlist,reson)
    else:
        wikipedia.output(u':Today Not Vfd!')
    sleep(60)

def Importance():
    """
    过期重要性不足条目
    """
    category=u'Category:%s月重要性不明的條目' % vfdm()
    templates=['((Importance', '((importance', '((重要性']
    reson=u'重要性不足'

    vfdlist=vfd(category, templates)
    if len(vfdlist) >0:
        vfdnotice(vfdlist, reson)
        submitvfd(vfdlist,reson)
    else:
        wikipedia.output(u':Today Not Vfd!')
    sleep(60)

substub()
Notability()
Importance()
wikipedia.stopme()
{{bottomLinkPreText}} {{bottomLinkText}}
User:Sz-iwbot/autovfd.py
Listen to this article

This browser is not supported by Wikiwand :(
Wikiwand requires a browser with modern capabilities in order to provide you with the best reading experience.
Please download and use one of the following browsers:

This article was just edited, click to reload
This article has been deleted on Wikipedia (Why?)

Back to homepage

Please click Add in the dialog above
Please click Allow in the top-left corner,
then click Install Now in the dialog
Please click Open in the download dialog,
then click Install
Please click the "Downloads" icon in the Safari toolbar, open the first download in the list,
then click Install
{{::$root.activation.text}}

Install Wikiwand

Install on Chrome Install on Firefox
Don't forget to rate us

Tell your friends about Wikiwand!

Gmail Facebook Twitter Link

Enjoying Wikiwand?

Tell your friends and spread the love:
Share on Gmail Share on Facebook Share on Twitter Share on Buffer

Our magic isn't perfect

You can help our automatic cover photo selection by reporting an unsuitable photo.

This photo is visually disturbing This photo is not a good choice

Thank you for helping!


Your input will affect cover photo selection, along with input from other users.

X

Get ready for Wikiwand 2.0 🎉! the new version arrives on September 1st! Don't want to wait?