1
0
Fork 0
mirror of https://github.com/Findus23/matomo-utils.git synced 2024-09-19 15:13:44 +02:00
matomo-utils/localisation/count-changes.py
2021-09-22 13:44:21 +02:00

52 lines
1.6 KiB
Python

import argparse
import requests
from config import token, url
s = requests.Session()
s.headers.update({"Authorization": "Token " + token})
actions = {
# see https://github.com/WeblateOrg/weblate/blob/9033a37fd4df0ffa9d7f5160d9647cb84a872330/weblate/trans/models/change.py#L173
# for all strings
2: "Changed Translations",
3: "Comments",
4: "Suggestion",
7: "Accepted Suggestions",
36: "Approve",
}
def print_count(project, year, month, csv=False):
for action, action_name in actions.items():
params = {
"action": action,
"timestamp_after": f"{year}-{month}-01T00:00:00+00:00",
"timestamp_before": f"{year}-{month + 1}-01T00:00:00+00:00"
}
r = s.get(url + f"projects/{project}/changes/", params=params)
data = r.json()
count = data["count"]
if csv:
print(count)
else:
print(action_name, count)
def main():
parser = argparse.ArgumentParser(description="fetch weblate statistics")
parser.add_argument("year", type=int, help="select year for reports")
parser.add_argument("month", type=int, help="select month for reports")
parser.add_argument("--premium-plugins", action='store_true', help="get reports for premium plugins")
parser.add_argument("--csv", action='store_true', help="only output numbers and put every value in a new line")
args = parser.parse_args()
project = "matomo-premium-plugins" if args.premium_plugins else "matomo"
print(f'fetching data for project "{project}"')
print_count(project, args.year, args.month, args.csv)
if __name__ == '__main__':
main()