User:UKBot/source

From Wikimedia Commons, the free media repository
Jump to: navigation, search

This file might be outdated. The latest version is always available at github.

#encoding=utf-8
# run twice a day, at 12.30 and 00.30
 
from __future__ import unicode_literals
 
import sys, os, datetime
import mwclient
import locale
locale.setlocale(locale.LC_TIME, 'no_NO.utf-8'.encode('utf-8'))
 
now = datetime.datetime.now()
 
# If we run at midnight, then upload the results of last day
if now.hour == 0:
    now -= datetime.timedelta(hours=1)
 
year, week, day = now.isocalendar()
weekstart = now - datetime.timedelta(days = day-1)
 
filename = 'Nowp Ukens konkurranse %s.svg' % now.strftime('%Y-%W')
 
if not os.path.isfile(filename):
    sys.stderr.write('File "%s" was not found\n' % filename)
    sys.exit(1)
 
pagetext = """== {{int:filedesc}} ==
{{Information
|Description    ={{no|1=Resultater for [[:no:Wikipedia:Ukens konkurranse/Ukens konkurranse %(yearweek)s|Ukens konkurranse uke %(week)s, %(year)s]]}}{{en|1=Results from the weekly article writing challenge at Norwegian Bokmål/Nynorsk Wikipedia [[:no:Wikipedia:Ukens konkurranse/Ukens konkurranse %(yearweek)s|week %(week)s, %(year)s]]}}
|Source         ={{own}}
|Date           =%(weekstart)s
|Author         =[[User:UKBot|UKBot]]
}}
 
== {{int:license-header}} ==
{{PD-self}}
 
[[Category:Ukens konkurranse]]""" % { 'yearweek': now.strftime('%Y-%W'), 'week': now.strftime('%W'), 'year': now.strftime('%Y'), 'weekstart' : weekstart.strftime('%F') }
 
from wp_private import ukbotlogin
commons = mwclient.Site('commons.wikimedia.org')
commons.login(*ukbotlogin)
 
f = open(filename, 'rb')
forcenew = False
if forcenew or (day == 0 and now.hour == 12):
    commons.upload(f, filename, comment = 'Bot: Uploading new "Ukens konkurranse" plot at week-start', description = pagetext)
else:
    commons.upload(f, filename, comment = 'Bot: Updating plot', ignore = True)
f.close()