Page Menu
Home
Phabricator
Search
Configure Global Search
Log In
Paste
P16
User:Zhuyifei1999/poty/new poty setup.py
Active
Public
Actions
Authored by
revi
on Jan 2 2021, 05:45.
Edit Paste
Archive Paste
View Raw File
Subscribe
Mute Notifications
Award Token
Flag For Later
Tags
Wikimedia
Referenced Files
F740: User:Zhuyifei1999/poty/new poty setup.py
Jan 2 2021, 05:45
2021-01-02 05:45:50 (UTC+9)
Subscribers
None
#! /usr/bin/python
# -*- coding: utf-8 -*-
# LICENSE: WTFPL <http://www.wtfpl.net/txt/copying/>
# Script is really ugly and hacky; please don't [[:zh:吐槽]] ;)
from
__future__
import
absolute_import
,
unicode_literals
import
datetime
import
traceback
import
pywikibot
from
pywikibot.comms
import
http
from
pywikibot.pagegenerators
import
PrefixingPageGenerator
try
:
input
=
raw_input
except
NameError
:
pass
YEAR
=
datetime
.
datetime
.
now
()
.
year
-
1
LAST
=
YEAR
-
1
SITE
=
pywikibot
.
Site
()
def
is_translation
(
page
):
url
=
"
%s
/index.php?title=
%s
"
%
(
SITE
.
scriptpath
(),
page
.
title
(
asUrl
=
True
))
return
'"wgTranslatePageTranslation":"translation"'
in
http
.
request
(
SITE
,
url
)
def
setup
(
src
):
# print(src)
target
=
pywikibot
.
Page
(
SITE
,
src
.
title
()
.
replace
(
str
(
YEAR
),
str
(
YEAR
+
1
))
.
replace
(
str
(
LAST
),
str
(
YEAR
))
)
# if target.exists(): return
if
is_translation
(
src
):
return
text_o
=
target
.
text
target
.
text
=
src
.
text
.
replace
(
str
(
YEAR
),
str
(
YEAR
+
1
))
.
replace
(
str
(
LAST
),
str
(
YEAR
))
if
target
.
text
==
text_o
:
return
pywikibot
.
output
(
'>>>
%s
<<<'
%
target
.
title
())
pywikibot
.
showDiff
(
text_o
,
target
.
text
)
while
True
:
r
=
input
(
'Save? [y/n] '
)
.
lower
()
.
strip
()
if
r
==
'n'
:
return
elif
r
==
'y'
:
try
:
target
.
save
(
'POTY
%d
'
%
YEAR
)
except
Exception
:
traceback
.
print_exc
()
return
prefixes
=
[
'Template:POTY'
,
'Module:POTY'
,
'Commons:Picture of the Year'
,
'Commons talk:Picture of the Year'
,
'Commons:POTY'
,
'Category:POTY'
,
'Category:Pictures of the Year'
,
]
forcepages
=
[
'MediaWiki:Gadget-EnhancedPOTY.js'
,
'MediaWiki:Gadget-POTYEnhancements.js'
,
'MediaWiki:Gadget-POTYEnhancements.core.css'
'Help:Picture of the Year'
,
'MediaWiki:Abusefilter-warning-potycontact'
# 'MediaWiki:Titleblacklist',
# 'Special:AbuseFilter/77',
# 'Special:AbuseFilter/96',
# 'Special:AbuseFilter/129',
]
for
prefix
in
prefixes
:
for
page
in
PrefixingPageGenerator
(
prefix
,
includeredirects
=
True
,
site
=
SITE
):
if
not
str
(
LAST
)
in
page
.
title
():
continue
# 'candidates'
if
any
(
kw
in
page
.
title
()
.
lower
()
for
kw
in
[
'results'
,
'transparency'
,
'/v/'
]):
continue
setup
(
page
)
for
page
in
forcepages
:
page
=
pywikibot
.
Page
(
SITE
,
page
)
setup
(
page
)
# FIXME:
# Template:POTY%d/state to 'weAreWorking'
# Commons:Picture_of_the_Year/%s ordinal (first/second/third/etc.) & comments
# Commons:POTY/%d/VOTE
# Commons:Picture of the Year/%d/Galleries
# Commons:Picture of the Year/%d/Rules/Time/data
# Commons talk:Picture of the Year/%d
# MediaWiki:Gadget-POTYEnhancements.core.js
# Commons:Picture of the Year/%d/Candidates/Sets
# Template:POTY%d/eligibilityLink
# Commons:Picture_of_the_Year/%s/Share ordinal (first/second/third/etc.)
# FIXME: Translation setup
Event Timeline
revi
created this paste.
Jan 2 2021, 05:45
2021-01-02 05:45:50 (UTC+9)
revi
created this object with visibility "Public (No Login Required)".
Log In to Comment