77import littleimage
88import userpass
99import bot
10+
1011sys .path .append ("/data/project/datbot/Tasks/NonFreeImageResizer" )
1112
1213# CC-BY-SA Theopolisme, DatGuy
1314# Task 3 DatBot
1415
15- logger = logging .getLogger (' resizer_auto' )
16- hdlr = logging .FileHandler (' resizer_auto.log' )
17- formatter = logging .Formatter (' %(asctime)s %(levelname)s %(message)s' )
16+ logger = logging .getLogger (" resizer_auto" )
17+ hdlr = logging .FileHandler (" resizer_auto.log" )
18+ formatter = logging .Formatter (" %(asctime)s %(levelname)s %(message)s" )
1819hdlr .setFormatter (formatter )
1920logger .addHandler (hdlr )
2021logger .setLevel (logging .WARNING )
2122
22- regexList = [r'\{\{[Nn]on.?free-?\s*[Rr]educe.*?\}\}' , r'\{\{[Rr]educe.*?\}\}' ,
23- r'\{\{[Cc]omic-ovrsize-img.*?\}\}' ,
24- r'\{\{[Ff]air.?[Uu]se.?[Rr]educe.*?\}\}' ,
25- r'\{\{[Ii]mage-toobig.*?\}\}' , r'\{\{[Nn]fr.*?\}\}' ,
26- r'\{\{[Ss]maller image.*?\}\}' ]
23+ regexList = [
24+ r"\{\{[Nn]on.?free-?\s*[Rr]educe.*?\}\}" ,
25+ r"\{\{[Rr]educe.*?\}\}" ,
26+ r"\{\{[Cc]omic-ovrsize-img.*?\}\}" ,
27+ r"\{\{[Ff]air.?[Uu]se.?[Rr]educe.*?\}\}" ,
28+ r"\{\{[Ii]mage-toobig.*?\}\}" ,
29+ r"\{\{[Nn]fr.*?\}\}" ,
30+ r"\{\{[Ss]maller image.*?\}\}" ,
31+ ]
32+
33+ suffixStr = " ([[WP:BOT|BOT]] - [[User:DatBot/NonFreeImageResizer/Run|disable]])"
2734
2835
2936def checkFinished (filesDone ):
@@ -33,7 +40,6 @@ def checkFinished(filesDone):
3340 return True
3441 else :
3542 return False
36-
3743 return True
3844
3945
@@ -50,7 +56,6 @@ def fileExists(imageTitle):
5056 for regexPhrase in regexList :
5157 if re .search (regexPhrase , pageText ) is not None :
5258 return True
53-
5459 return False
5560
5661
@@ -76,50 +81,68 @@ def imageRoutine(imageList):
7681 print ("Decompression bomb warning" )
7782 errorPage = site .Pages ["User:DatBot/pageerror" ]
7883 errorText = errorPage .text ()
79- errorText += "\n \n [[:File:{0}]] is probably a decompression bomb. Skipping." .format (imageName )
80- errorPage .save (errorText , summary = "Reporting decompresion bomb ([[WP:BOT|BOT]] - [[User:DatBot/NonFreeImageResizer/Run|disable]])" )
84+ errorText += "\n \n [[:File:{0}]] is probably a "
85+ "decompression bomb. Skipping." .format (imageName )
86+
87+ errorPage .save (
88+ errorText ,
89+ summary = "Reporting decompression bomb" + suffixStr ,
90+ )
8191
8292 page = site .Pages ["File:{0}" .format (imageName )]
8393 text = page .text ()
8494 for regexPhrase in regexList :
85- text = re .sub (regexPhrase , '{{Non-free manual reduce}}' , text )
86-
87- page .save (text , summary = "Changing template to Non-free manual reduce, too many pixels for automatic resizing ([[WP:BOT|BOT]] - [[User:DatBot/NonFreeImageResizer/Run|disable]])" )
95+ text = re .sub (regexPhrase , "{{Non-free manual reduce}}" , text )
8896
97+ page .save (
98+ text ,
99+ summary = "Changing template to Non-free manual reduce, "
100+ "too many pixels for automatic resizing" + suffixStr
101+ )
89102 elif fileResult == "SKIP" :
90103 print ("Skipping GIF." )
91104 logger .error ("Skipped gif: {0}" .format (imageName ))
92-
93105 elif fileResult == "PIXEL" :
94- print ("Removing tag... already reduced.. ." )
106+ print ("Removing tag, already reduced." )
95107
96108 page = site .Pages [fullImageName ]
97109 text = page .text ()
98110 for regexPhrase in regexList :
99- text = re .sub (regexPhrase , '' , text )
100-
101- page . save ( text , summary = "Removing {{[[Template:Non-free reduce|Non-free reduce]]}} since file "
102- "is already adequately reduced ([[WP:BOT|BOT]] - "
103- "[[User:DatBot/NonFreeImageResizer/Run|disable]])" )
104-
111+ text = re .sub (regexPhrase , "" , text )
112+ page . save (
113+ text ,
114+ summary = "Removing {{[[Template:Non-free reduce|Non-free reduce]]}} "
115+ " since file is already adequately reduced" + suffixStr
116+ )
105117 elif fileResult == "ERROR" :
106118 print ("Image skipped." )
107119 logger .error ("Skipped {0}" + imageName )
108120 bot .deleteFile (randomName )
109121 else :
110122 try :
111- site .upload (open (fileResult , 'rb' ), imageName , "Reduce size of non-free image ([[WP:BOT|BOT]] - [[User:DatBot/NonFreeImageResizer/Run|disable]])" , ignore = True )
123+ site .upload (
124+ open (fileResult , "rb" ),
125+ imageName ,
126+ "Reduce size of non-free image" + suffixStr ,
127+ ignore = True ,
128+ )
112129
113130 print ("Uploaded!" )
114131 bot .deleteFile (randomName )
115132
116133 page = site .Pages [fullImageName ]
117134 text = page .text ()
118135 for regexPhrase in regexList :
119- text = re .sub (regexPhrase , '{{Orphaned non-free revisions|date=~~~~~}}' , text )
136+ text = re .sub (
137+ regexPhrase ,
138+ "{{Orphaned non-free revisions|date=~~~~~}}" ,
139+ text ,
140+ )
120141
121- page .save (text , summary = "Tagging with {{[[Template:Orphaned non-free revisions|Orphaned non-free revisions]]}}"
122- " ([[WP:BOT|BOT]] - [[User:DatBot/NonFreeImageResizer/Run|disable]])" )
142+ page .save (
143+ text ,
144+ summary = "Tagging with {{[[Template:Orphaned non-free revisions|Orphaned non-free revisions]]}}" + suffixStr
145+ )
123146
124147 print ("Tagged!" )
125148 except Exception as e :
@@ -144,10 +167,12 @@ def main():
144167 Then it runs image_routine() on this selection.
145168 """
146169 global site
147- site = mwclient .Site (' en.wikipedia.org' )
170+ site = mwclient .Site (" en.wikipedia.org" )
148171 site .login (userpass .username , userpass .password )
149172
150- sizeReductionCategory = mwclient .listing .Category (site , "Category:Wikipedia non-free file size reduction requests" )
173+ sizeReductionCategory = mwclient .listing .Category (
174+ site , "Category:Wikipedia non-free file size reduction requests"
175+ )
151176 sizeReductionRequests = sizeReductionCategory .members ()
152177 cleanImageList = []
153178 for image in sizeReductionRequests :
@@ -159,5 +184,5 @@ def main():
159184 print ("We're DONE!" )
160185
161186
162- if __name__ == ' __main__' :
187+ if __name__ == " __main__" :
163188 main ()
0 commit comments