* fix: fixes long language issue * fix: removed reduant line
This commit is contained in:
parent
c487876563
commit
fd7a6214c1
30
main.py
30
main.py
@ -4,10 +4,10 @@ WakaTime progress visualizer
|
|||||||
|
|
||||||
import re
|
import re
|
||||||
import os
|
import os
|
||||||
|
import sys
|
||||||
import base64
|
import base64
|
||||||
import datetime
|
import datetime
|
||||||
import requests
|
import requests
|
||||||
import sys
|
|
||||||
from github import Github, GithubException
|
from github import Github, GithubException
|
||||||
|
|
||||||
START_COMMENT = '<!--START_SECTION:waka-->'
|
START_COMMENT = '<!--START_SECTION:waka-->'
|
||||||
@ -19,13 +19,15 @@ waka_key = os.getenv('INPUT_WAKATIME_API_KEY')
|
|||||||
ghtoken = os.getenv('INPUT_GH_TOKEN')
|
ghtoken = os.getenv('INPUT_GH_TOKEN')
|
||||||
show_title = os.getenv("INPUT_SHOW_TITLE")
|
show_title = os.getenv("INPUT_SHOW_TITLE")
|
||||||
|
|
||||||
|
|
||||||
def this_week() -> str:
|
def this_week() -> str:
|
||||||
'''Returns a week's streak'''
|
'''Returns a week streak'''
|
||||||
week_end = datetime.datetime.today() - datetime.timedelta(days=1)
|
week_end = datetime.datetime.today() - datetime.timedelta(days=1)
|
||||||
week_start = week_end - datetime.timedelta(days=7)
|
week_start = week_end - datetime.timedelta(days=7)
|
||||||
print("Week's header Created")
|
print("Week header created")
|
||||||
return f"Week: {week_start.strftime('%d %B, %Y')} - {week_end.strftime('%d %B, %Y')}"
|
return f"Week: {week_start.strftime('%d %B, %Y')} - {week_end.strftime('%d %B, %Y')}"
|
||||||
|
|
||||||
|
|
||||||
def make_graph(percent: float) -> str:
|
def make_graph(percent: float) -> str:
|
||||||
'''Make progress graph from API graph'''
|
'''Make progress graph from API graph'''
|
||||||
done_block = '█'
|
done_block = '█'
|
||||||
@ -38,18 +40,22 @@ def get_stats() -> str:
|
|||||||
'''Gets API data and returns markdown progress'''
|
'''Gets API data and returns markdown progress'''
|
||||||
data = requests.get(
|
data = requests.get(
|
||||||
f"https://wakatime.com/api/v1/users/current/stats/last_7_days?api_key={waka_key}").json()
|
f"https://wakatime.com/api/v1/users/current/stats/last_7_days?api_key={waka_key}").json()
|
||||||
|
|
||||||
try:
|
try:
|
||||||
lang_data = data['data']['languages']
|
lang_data = data['data']['languages']
|
||||||
except KeyError:
|
except KeyError:
|
||||||
print("Please Add your Wakatime API Key to the Repository Secrets")
|
print("Please Add your WakaTime API Key to the Repository Secrets")
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
|
|
||||||
data_list = []
|
data_list = []
|
||||||
for l in lang_data[:5]:
|
pad = len(max([l['name'] for l in lang_data[:5]], key=len))
|
||||||
ln = len(l['name'])
|
for lang in lang_data[:5]:
|
||||||
ln_text = len(l['text'])
|
lth = len(lang['name'])
|
||||||
fmt_percent = format(l['percent'], '0.2f').zfill(5) # to provide a neat finish.
|
ln_text = len(lang['text'])
|
||||||
|
# following line provides a neat finish
|
||||||
|
fmt_percent = format(lang['percent'], '0.2f').zfill(5)
|
||||||
data_list.append(
|
data_list.append(
|
||||||
f"{l['name']}{' '*(12-ln)}{l['text']}{' '*(20-ln_text)}{make_graph(l['percent'])} {fmt_percent} %")
|
f"{lang['name']}{' '*(pad + 3 - lth)}{lang['text']}{' '*(16 - ln_text)}{make_graph(lang['percent'])} {fmt_percent} %")
|
||||||
print("Graph Generated")
|
print("Graph Generated")
|
||||||
data = ' \n'.join(data_list)
|
data = ' \n'.join(data_list)
|
||||||
if show_title == 'true':
|
if show_title == 'true':
|
||||||
@ -66,7 +72,7 @@ def decode_readme(data: str) -> str:
|
|||||||
return str(decoded_bytes, 'utf-8')
|
return str(decoded_bytes, 'utf-8')
|
||||||
|
|
||||||
|
|
||||||
def generate_new_readme(stats: str, readme: str) ->str:
|
def generate_new_readme(stats: str, readme: str) -> str:
|
||||||
'''Generate a new Readme.md'''
|
'''Generate a new Readme.md'''
|
||||||
stats_in_readme = f"{START_COMMENT}\n{stats}\n{END_COMMENT}"
|
stats_in_readme = f"{START_COMMENT}\n{stats}\n{END_COMMENT}"
|
||||||
return re.sub(listReg, stats_in_readme, readme)
|
return re.sub(listReg, stats_in_readme, readme)
|
||||||
@ -84,5 +90,5 @@ if __name__ == '__main__':
|
|||||||
rdmd = decode_readme(contents.content)
|
rdmd = decode_readme(contents.content)
|
||||||
new_readme = generate_new_readme(stats=waka_stats, readme=rdmd)
|
new_readme = generate_new_readme(stats=waka_stats, readme=rdmd)
|
||||||
if new_readme != rdmd:
|
if new_readme != rdmd:
|
||||||
repo.update_file(path=contents.path, message='Updated with Dev Metrics', content=new_readme, sha=contents.sha, branch='master')
|
repo.update_file(path=contents.path, message='Updated with Dev Metrics',
|
||||||
|
content=new_readme, sha=contents.sha, branch='master')
|
||||||
|
Loading…
x
Reference in New Issue
Block a user