위키백과:데이터베이스 보고서/사용되지 않는 템플릿/구성

Wikipedia:

미사용템플릿파이를 치다

#! /usr/bin/env python # 공용 도메인; bjweeks, MZMcBride; 2011, 2018  수입하다 datetime 수입하다 수학 수입하다 운영자  수입하다 피미스ql 수입하다 위키풀스  수입하다 설정  report_properties = 설정.루트 페이지 + '사용되지 않은 템플릿/%i'  report_properties = u'''\ 사용되지 않는 템플릿(필터링됨); <만 포함>~~</만 포함> 기준 데이터.  {class="유형 정렬 가능한 일반 링크" 스타일="폭:100"%%; 여백:자동;" - style="white-space:nowrap;" 안돼! ! 템플릿 ! 첫 번째 편집 ! 최근 편집 ! 독특한 작가들 ! 수정사항 - %s } '''  행_per_page = 5000  위키 = 위키풀스.위키(설정.apiurl.) 위키.로그 인.(설정.사용자 이름, 설정.암호)  반항하다 get_buffer_buffer.(커서):     템플릿 = []     커서.처형하다(''' /* unusedtemplates.py */ 선택 page_page, 시작 페이지 JOIN 범주 링크 ON page_id = cl_from Where cl_to IN ( '위키피디아_대체_템플리트', 'Wikipedia_translusionless_templates', '사용되지 않음_templates_kept_for_historical_reasons', '비활성_project_pages', 'Parameter_shared_content_templates', 'Administrative_service_award_templates', 'Computer_language_user_templates', Language_user_templates, 'Level-zero_userbox_templates', 'Wikipedia_administrator_statistics', 'Subtemplates_of_'템플릿_러시아어드민크레프', 'Subtemplates_of_'템플릿_러시아BasicLawRef', '새_페이지_피드_템플릿' ) AND page_namespace = 10; ''')     을 위해 배를 젓다  커서.팔뚝을 박다():         page_page, = 유니코드(배를 젓다[0].대체하다('_', ' '), 'utf-8')         템플릿.덧셈을(page_page,)     돌아오다 템플릿  반항하다 get_buffer_buffer.(커서, page_id):     수정 사항 = 세트()     작가들 = 세트()     타임스탬프 = 세트()     커서.처형하다(''' /* unusedtemplates.py */ 선택 rev_id, actor_name, rev_revs. FROM revision_user 인덱스 조인 배우 ON actor_id = rev_actor Where rev_page =%s; ''' , (page_id,))     을 위해 배를 젓다  커서.팔뚝을 박다():         수정 사항.덧셈을(인트로(배를 젓다[0]))         작가들.덧셈을(배를 젓다[1])         타임스탬프.덧셈을(인트로(배를 젓다[2]))     min_min = datetime.datetime.스트립타임을 알리다(         발을 동동 구르다((타임스탬프)),         '%Y%m%d%H%M%S'     ).사시사철('%Y-%m-'%d%H:%M:%S')     max_max = datetime.datetime.스트립타임을 알리다(         발을 동동 구르다(맥스.(타임스탬프)),         '%Y%m%d%H%M%S'     ).사시사철('%Y-%m-'%d%H:%M:%S')     돌아오다 [min_min, max_max, (작가들), (수정 사항)]  코너를 돌다 = 피미스ql.연결하다(사회를 보다=설정.사회를 보다,                        db=설정.dbname,                        read_default_file='~/.my.cnf',                        차르셋='utf8mb4',) 커서 = 코너를 돌다.커서() placified_messages = get_buffer_buffer.(커서)  커서.처형하다(''' /* unusedtemplates.py SLOW_OK */ 선택 page_id page_is_properties, page_page, 시작 페이지 왼쪽 조인 템플릿 링크 ON 페이지_namespace = tl_namespace AND page_title = tl_title Where page_namespace = 10 IS NULL의 AND tl_l; ''')  i = 1 비_non_s = [] 뭉툭한 것 = [] 을 위해 배를 젓다  커서.팔뚝을 박다():     page_id = 인트로(배를 젓다[0])     page_is_properties, = 바가지 긁다(배를 젓다[1])     page_page, = u'%s' % 유니코드(배를 젓다[2].대체하다('_', ' '), 'utf-8')     full_page_messages = u'[템플릿:%s %s]]' % (page_page,, page_page,)     만일 page_is_properties,:         full_page_messages = u''%s</i> % (full_page_messages)     만일 (아닌 page_page,.으로 끝나다('/테스트 케이스') 그리고         아닌 page_page,.으로 끝나다('/message') 그리고         아닌 page_page,.으로 끝나다('/rater-data.js') 그리고         아닌 page_page,.로부터 시작하다('Adminstats/') 그리고         아닌 page_page,.로부터 시작하다('첨부 KML/') 그리고         아닌 page_page,.로부터 시작하다('시테도이/') 그리고         아닌 page_page,.로부터 시작하다('시이트 pmid/') 그리고         아닌 page_page,.로부터 시작하다('공천된 후보들을 알고 있었나/') 그리고         아닌 page_page,.로부터 시작하다('편집/') 그리고         아닌 page_page,.로부터 시작하다('PBB/') 그리고         아닌 page_page,.로부터 시작하다('POTD 캡션/') 그리고         아닌 page_page,.로부터 시작하다('POTD 크레딧/') 그리고         아닌 page_page,.로부터 시작하다('POTD 보호됨/') 그리고         아닌 page_page,.로부터 시작하다('템플릿스타일 샌드박스/') 그리고         아닌 page_page,.로부터 시작하다('TFA 타이틀/') 그리고         page_page, 아닌  placified_messages):             만일 page_page,.찾아내다('stub') != -1:                 뭉툭한 것.덧셈을([page_id, page_is_properties,, full_page_messages])             다른:                 비_non_s.덧셈을([page_id, page_is_properties,, full_page_messages])             i += 1  stubs_svs_last = 분류된(뭉툭한 것, 핵심을=운영자.아이템 게이터(1)) non_svs_svs_last = 분류된(비_non_s, 핵심을=운영자.아이템 게이터(1)) 생산량 = [] all_message = non_svs_svs_last + stubs_svs_last 을 위해 i  열거하다(all_message, 출발하다=1):     revs_revs. = get_buffer_buffer.(커서, i[1][0])     table_row = u'''\   %d   %s   %s   %s   %d   %d -''' % (i[0], i[1][2], revs_revs.[0], revs_revs.[1], revs_revs.[2], revs_revs.[3])     생산량.덧셈을(table_row)  종지부를 찍다 = 행_per_page 페이지를 매기다 = 1 을 위해 출발하다  범위(0, (생산량), 행_per_page):     신고하다 = 위키풀스.페이지(위키, report_properties % 페이지를 매기다)     report_text = report_properties % ('\n'.합류하다(생산량[출발하다:종지부를 찍다]))     report_text = report_text.인코딩하다('utf-8')     신고하다.편집하다(report_text, 요약=설정.편집 사항, 봇을 만들다=1)     페이지를 매기다 += 1     종지부를 찍다 += 행_per_page  페이지를 매기다 = 수학.천장을 치다((생산량) / 둥둥 뜨다(행_per_page)) + 1 하는 동안에 1:     신고하다 = 위키풀스.페이지(위키, report_properties % 페이지를 매기다)     만일 아닌 신고하다.존재한다:         부숴뜨리다     report_text = 설정.빈칸의 내용     report_text = report_text.인코딩하다('utf-8')     신고하다.편집하다(report_text, 요약=설정.백섬, 봇을 만들다=1)     페이지를 매기다 += 1  커서.가까운.() 코너를 돌다.가까운.() 

크론탑

0 6 * * * * 1 * /usr/bin/jsub -N tools.mzmcbride-4 -e $HOME/logs -Once -o $HOME/logs -quiet python $HOME/scripts/enwiki/usedtemplate.파이를 치다