Format daily
This commit is contained in:
parent
6d3615cdda
commit
1d75b5a3fa
1 changed files with 52 additions and 2 deletions
54
daily.py
54
daily.py
|
@ -1,15 +1,23 @@
|
||||||
#!/usr/bin/env python3
|
#!/usr/bin/env python3
|
||||||
|
|
||||||
|
import re
|
||||||
import sys
|
import sys
|
||||||
import time
|
import time
|
||||||
import json
|
import json
|
||||||
|
import jinja2
|
||||||
import requests
|
import requests
|
||||||
import argparse
|
import argparse
|
||||||
import subprocess
|
import subprocess
|
||||||
|
|
||||||
|
from textwrap import wrap
|
||||||
|
|
||||||
#from requests.packages.urllib3.exceptions import InsecureRequestWarning
|
#from requests.packages.urllib3.exceptions import InsecureRequestWarning
|
||||||
#requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
|
#requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
|
||||||
|
|
||||||
|
weekdays = ["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"]
|
||||||
|
|
||||||
|
session = requests.Session()
|
||||||
|
|
||||||
parser = argparse.ArgumentParser()
|
parser = argparse.ArgumentParser()
|
||||||
parser.add_argument('-b', '--base-url', required=True)
|
parser.add_argument('-b', '--base-url', required=True)
|
||||||
parser.add_argument('-d', '--date', default="today")
|
parser.add_argument('-d', '--date', default="today")
|
||||||
|
@ -18,10 +26,52 @@ args = parser.parse_args()
|
||||||
date = subprocess.check_output(['date','-d',args.date,'+%s'])
|
date = subprocess.check_output(['date','-d',args.date,'+%s'])
|
||||||
date = float(date)
|
date = float(date)
|
||||||
date = time.localtime(date)
|
date = time.localtime(date)
|
||||||
|
weekday = weekdays[date.tm_wday]
|
||||||
date = time.strftime(r'%Y-%m-%d', date)
|
date = time.strftime(r'%Y-%m-%d', date)
|
||||||
|
|
||||||
url_template = 'https://{base_url}/rest/tempo-timesheets/3/worklogs?dateFrom={date}&dateTo={date}&expand=issue.status'
|
url_template = 'https://{base_url}/rest/tempo-timesheets/3/worklogs?dateFrom={date}&dateTo={date}&expand=issue.status'
|
||||||
url = url_template.format(base_url=args.base_url, date=date)
|
url = url_template.format(base_url=args.base_url, date=date)
|
||||||
|
|
||||||
resp = requests.get(url, verify=False)
|
resp = session.get(url, verify=False)
|
||||||
print(json.dumps(resp.json()))
|
worklogs = resp.json()
|
||||||
|
|
||||||
|
|
||||||
|
print("\nHi,\n\n{}:\n".format(weekday))
|
||||||
|
|
||||||
|
for worklog in worklogs:
|
||||||
|
comment = worklog['comment']
|
||||||
|
issue_key = worklog['issue']['key']
|
||||||
|
issue = worklog['issue']['self']
|
||||||
|
seconds = worklog['timeSpentSeconds']
|
||||||
|
|
||||||
|
r = session.get(issue, verify=False)
|
||||||
|
j = r.json()
|
||||||
|
summary = j['fields']['summary']
|
||||||
|
status = j['fields']['status']['name']
|
||||||
|
|
||||||
|
seconds = int(seconds)
|
||||||
|
hours = seconds // 3600
|
||||||
|
mins = (seconds % 3600) // 60
|
||||||
|
time = ("{}h ".format(hours) if hours > 0 else "")
|
||||||
|
time += "{}m".format(mins)
|
||||||
|
time = time.strip()
|
||||||
|
|
||||||
|
title = "{} {}".format(issue_key, summary)
|
||||||
|
line = "-" * len(title)
|
||||||
|
title += " ({})".format(time)
|
||||||
|
|
||||||
|
print(" ", title)
|
||||||
|
print(" ", line)
|
||||||
|
|
||||||
|
comment_points = re.findall(r'(?:^|\n)-\s+.*', comment)
|
||||||
|
comment_points = [re.sub('^\s*-\s+','',x) for x in comment_points]
|
||||||
|
for point in comment_points:
|
||||||
|
for i, line in enumerate(wrap(point, 40)):
|
||||||
|
if i == 0:
|
||||||
|
print(" -", line)
|
||||||
|
else:
|
||||||
|
print(" ", line)
|
||||||
|
|
||||||
|
#print(re.split(r'(^-\s+|\n-\s+)',comment))
|
||||||
|
print(" [{}]".format(status))
|
||||||
|
print()
|
||||||
|
|
Loading…
Reference in a new issue