listservs/report/listsreport.py
2019-12-31 17:52:52 +01:00

81 lines
1.8 KiB
Python

import mysql.connector as mariadb
'''
contributors
'''
CONTRIBUTORS_QUERY = ("SELECT DISTINCT(from_) FROM {} ")
CONTRIBUTORS_CNT_PER_YEAR_QUERY = ("SELECT YEAR(date_) theyear, COUNT(DISTINCT(from_)) FROM {} GROUP BY theyear")
'''
contributions
'''
CONTRIBUTIONS_QUERY = ("SELECT COUNT(*) FROM {}")
CONTRIBUTIONS_PER_YEAR_QUERY = ("SELECT YEAR(date_) theyear, COUNT(*) FROM {} GROUP BY theyear")
'''
size text
'''
SIZE_TEXT_QUERY = ("SELECT SUM(LENGTH(content_)) FROM {}")
SIZE_TEXT_PER_YEAR_QUERY = ("SELECT YEAR(date_) theyear, SUM(LENGTH(content_)) FROM {} GROUP BY theyear")
'''
nbr words
'''
SIZE_TEXT_QUERY = ("SELECT SUM(LENGTH(content_)) FROM {}")
SIZE_TEXT_PER_YEAR_QUERY = ("SELECT YEAR(date_) theyear, SUM(LENGTH(content_)) FROM {} GROUP BY theyear")
def contributors(li, cursor, per_year=False):
if per_year:
cursor.execute(CONTRIBUTORS_CNT_PER_YEAR_QUERY.format(li))
else:
cursor.execute(CONTRIBUTORS_QUERY.format(li))
results = []
if per_year:
for (year, val) in cursor:
results.append({'year' : str(year), 'val': str(val)})
else:
for c in cursor:
results += c
return results
def contributions(li, cursor, per_year=False):
if per_year:
cursor.execute(CONTRIBUTIONS_PER_YEAR_QUERY.format(li))
else:
cursor.execute(CONTRIBUTIONS_QUERY.format(li))
results = []
if per_year:
for (year, val) in cursor:
results.append({'year' : str(year), 'val': str(val)})
else:
for c in cursor:
return str(c[0])
return results
def text_size(li, cursor, per_year=False):
if per_year:
cursor.execute(SIZE_TEXT_PER_YEAR_QUERY.format(li))
else:
cursor.execute(SIZE_TEXT_QUERY.format(li))
results = []
if per_year:
for (year, val) in cursor:
results.append({'year' : str(year), 'val': str(val)})
else:
for c in cursor:
return str(c[0])
return results