#!/usr/bin/python
# -*- coding: utf-8 -*-

#For debugging purposes only
#import cgitb
#cgitb.enable()

import MySQLdb, sys, urllib2

#Aux function for normalizing timestamps
def timestamp(ts):
if not ts: return "×"
else: return "%s/%s/%s %s:%s:%s" % (ts[:4], ts[4:6], ts[6:8], ts[8:10], ts[10:12], ts[12:])

#Needs to send these headers
print "Content-Type: text/html; charset=UTF-8"

#DBdata
file=open('/data/project/rightstool/replica.my.cnf', 'r')
lista=[l.strip("\n") for l in file.readlines()[1:]]
file.close()
SQLuser=lista[0].split("=")[1].strip("'")
SQLpasswd=lista[1].split("=")[1].strip("'")

#Generate some html
print """
Stewards activity statistics
Stewards activity statistics
Lists times of the last log actions per steward
"""

#Executing the query
db = MySQLdb.connect(db='metawiki_p', host="metawiki.labsdb", user=SQLuser, passwd=SQLpasswd)
cursor = db.cursor()
#cursor.execute("select A.Username, rights, gblrights, globalauth, gblblock from (select distinct user_name as Username, max(log_timestamp) as rights from logging join user on log_user=user_id join user_groups on ug_user=user_id where ug_group='steward' and log_type='rights' group by Username) as A left join (select distinct user_name as Username, max(log_timestamp) as gblrights from logging join user on log_user=user_id join user_groups on ug_user=user_id where ug_group='steward' and log_type='gblrights' group by Username) as B on A.Username=B.Username left join (select distinct user_name as Username, max(log_timestamp) as globalauth from logging join user on log_user=user_id join user_groups on ug_user=user_id where ug_group='steward' and log_type='globalauth' group by Username) as C on A.Username=C.Username left join (select distinct user_name as Username, max(log_timestamp) as gblblock from logging join user on log_user=user_id join user_groups on ug_user=user_id where ug_group='steward' and log_type='gblblock' group by Username) as D on A.Username=D.Username order by A.Username;")
cursor.execute('select user_name as Username, rights, gblrights, globalauth, gblblock from (select distinct log_user, max(log_timestamp) as rights from logging join user_groups on ug_user=log_user where ug_group="steward" and log_type="rights" group by log_user) as A left join (select distinct log_user, max(log_timestamp) as gblrights from logging join user_groups on ug_user=log_user where ug_group="steward" and log_type="gblrights" group by log_user) as B on A.log_user=B.log_user left join (select distinct log_user, max(log_timestamp) as globalauth from logging join user_groups on ug_user=log_user where ug_group="steward" and log_type="globalauth" group by log_user) as C on A.log_user=C.log_user left join (select distinct log_user, max(log_timestamp) as gblblock from logging join user_groups on ug_user=log_user where ug_group="steward" and log_type="gblblock" group by log_user) as D on A.log_user=D.log_user join user on user_id=A.log_user order by Username;')
stats=cursor.fetchall()

#Printing the data
print """
User
User rights
Global rights
GlobalAuth
Global block
"""
for i in stats:
print """
%s
%s
%s
%s
%s
""" % (urllib2.quote(i[0]), i[0], urllib2.quote(i[0]), timestamp(i[1]), urllib2.quote(i[0]), timestamp(i[2]), urllib2.quote(i[0]), timestamp(i[3]), urllib2.quote(i[0]), timestamp(i[4]))
print """
"""