From a9335f07a3605bd7e0de932cc61d38b051a4d34f Mon Sep 17 00:00:00 2001 From: Marvin Scham Date: Mon, 6 May 2024 02:08:41 +0200 Subject: [PATCH] Touchups + HTML compat --- README.md | 130 ++++++++++++++++++-------------------- readme_updater.py | 65 ++++++++++--------- resources/README.md.jinja | 72 +++++++++++---------- 3 files changed, 137 insertions(+), 130 deletions(-) diff --git a/README.md b/README.md index a9ba3b4..0f55d29 100644 --- a/README.md +++ b/README.md @@ -1,44 +1,40 @@ -
- -

Welcome!

-

-I'm Marvin – M.Sc. student, fullstack developer and creator of Mastery Chart.
-Located in Baden-WΓΌrttemberg, Germany . -

- +
+

Welcome!

+

I'm Marvin – M.Sc. student, fullstack developer and creator of Mastery Chart.
Located in Baden-WΓΌrttemberg, Germany .

-[//]: # "Derived from https://github.com/thmsgbrt/thmsgbrt" -## πŸ›  Tools I use +

πŸ›  Tools I use

+

+PHP +Plausible +Sentry +OpenAI +Obsidian +Sass +Chart.js +Riot API +Ruby +Git +HTML5 +GitLab CI +Cloudflare +D3.js +JavaScript +Bash +NGINX +Weblate +SonarQube +VS Code +Docker +GitHub Actions +Python +MariaDB +Markdown +Ghost +

-![PHP](https://img.shields.io/badge/-PHP-777BB4?style=flat-square&logo=php&logoColor=white) -![Plausible](https://img.shields.io/badge/-Plausible-5850EC?style=flat-square&logo=plausibleanalytics&logoColor=white) -![Sentry](https://img.shields.io/badge/-Sentry-362D59?style=flat-square&logo=sentry&logoColor=white) -![OpenAI](https://img.shields.io/badge/-OpenAI-412991?style=flat-square&logo=openai&logoColor=white) -![Obsidian](https://img.shields.io/badge/-Obsidian-7C3AED?style=flat-square&logo=obsidian&logoColor=white) -![Sass](https://img.shields.io/badge/-Sass-CC6699?style=flat-square&logo=sass&logoColor=white) -![Chart.js](https://img.shields.io/badge/-Chart.js-FF6384?style=flat-square&logo=chartdotjs&logoColor=white) -![Riot API](https://img.shields.io/badge/-Riot_API-EB0029?style=flat-square&logo=riotgames&logoColor=white) -![Ruby](https://img.shields.io/badge/-Ruby-CC342D?style=flat-square&logo=ruby&logoColor=white) -![Git](https://img.shields.io/badge/-Git-F05032?style=flat-square&logo=git&logoColor=white) -![HTML5](https://img.shields.io/badge/-HTML5-E34F26?style=flat-square&logo=html5&logoColor=white) -![GitLab CI](https://img.shields.io/badge/-GitLab_CI-FC6D26?style=flat-square&logo=gitlab&logoColor=white) -![Cloudflare](https://img.shields.io/badge/-Cloudflare-F38020?style=flat-square&logo=cloudflare&logoColor=white) -![D3.js](https://img.shields.io/badge/-D3.js-F9A03C?style=flat-square&logo=d3dotjs&logoColor=white) -![JavaScript](https://img.shields.io/badge/-JavaScript-F7DF1E?style=flat-square&logo=javascript&logoColor=white) -![Bash](https://img.shields.io/badge/-Bash-4EAA25?style=flat-square&logo=gnubash&logoColor=white) -![NGINX](https://img.shields.io/badge/-NGINX-009639?style=flat-square&logo=nginx&logoColor=white) -![Weblate](https://img.shields.io/badge/-Weblate-2ECCAA?style=flat-square&logo=weblate&logoColor=white) -![SonarQube](https://img.shields.io/badge/-SonarQube-4E9BCD?style=flat-square&logo=sonarqube&logoColor=white) -![VS Code](https://img.shields.io/badge/-VS_Code-007ACC?style=flat-square&logo=visual-studio-code&logoColor=white) -![Docker](https://img.shields.io/badge/-Docker-2496ED?style=flat-square&logo=Docker&logoColor=white) -![GitHub Actions](https://img.shields.io/badge/-GitHub_Actions-2496ED?style=flat-square&logo=githubactions&logoColor=white) -![Python](https://img.shields.io/badge/-Python-3776AB?style=flat-square&logo=python&logoColor=white) -![MariaDB](https://img.shields.io/badge/-MariaDB-1F305F?style=flat-square&logo=mariadb&logoColor=white) -![Markdown](https://img.shields.io/badge/-Markdown-000000?style=flat-square&logo=markdown&logoColor=white) -![Ghost](https://img.shields.io/badge/-Ghost-15171A?style=flat-square&logo=ghost&logoColor=white) -## 🎁 Open source +

🎁 Open source

@@ -58,49 +54,49 @@ Located in Baden-WΓΌrttemberg, Germany
+

πŸ“Š 30-day breakdown

-## πŸ“Š 30-day breakdown - -``` -wiha-tool 15:50 β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ------------------------ 42% -masterychart 11:58 β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ---------------------------- 32% -marvinscham 6:21 β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ---------------------------------- 17% +
+wiha-tool      15:52   β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ------------------------   41%
+masterychart   11:58   β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ----------------------------   31%
+marvinscham     6:55   β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ---------------------------------   18%
 disenchanter    1:39   β–ˆ---------------------------------------    4%
-bibtex-oss      1:05   β–ˆ---------------------------------------    2%
-```
+
-``` +
 JavaScript      8:23   β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ--------------------------------   22%
-Python          7:04   β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ---------------------------------   18%
+Python          7:11   β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ---------------------------------   19%
 PHP             5:44   β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ----------------------------------   15%
-YAML            3:50   β–ˆβ–ˆβ–ˆβ–ˆ------------------------------------   10%
+YAML            3:52   β–ˆβ–ˆβ–ˆβ–ˆ------------------------------------   10%
 HTML            3:38   β–ˆβ–ˆβ–ˆ-------------------------------------    9%
-```
+Markdown        2:20   β–ˆβ–ˆ--------------------------------------    6%
+
-## πŸ““ Latest blog posts +

πŸ““ Latest blog posts

+ + +

πŸ¦‰ Duolingo progress

+ -- [![](https://gitlab.ms-ds.org/msds/icons/-/raw/main/icons-small/ghost.png) CSS: Color Filtering SVG](https://blog.marvinscham.de/css-color-filtering-svg/) +

πŸ‘₯ Social

-- [![](https://gitlab.ms-ds.org/msds/icons/-/raw/main/icons-small/ghost.png) Splitting MIDI Controller Input](https://blog.marvinscham.de/splitting-midi/) - -- [![](https://gitlab.ms-ds.org/msds/icons/-/raw/main/icons-small/ghost.png) (DE) DKIM mit Strato SMTP und Cloudflare DNS](https://blog.marvinscham.de/dkim-strato-cloudflare/) - - -## πŸ¦‰ Duolingo progress - -- πŸ”₯ Streak: 911 -- ⚑ 76080 XP -- πŸ‘¨β€πŸŽ“ Currently learning: Esperanto - -## More - -Homepage +

Homepage GitHub LinkedIn Duolingo +

------------- +
-

Last update: Sunday, 5 May 18:20 CEST

\ No newline at end of file +

Last update: Monday, 6 May 02:08 CEST

+

Update README made with β™₯

\ No newline at end of file diff --git a/readme_updater.py b/readme_updater.py index 12ba96b..9189c34 100644 --- a/readme_updater.py +++ b/readme_updater.py @@ -45,14 +45,14 @@ def seconds_to_string(seconds): remaining_seconds = seconds % 86400 hours = remaining_seconds // 3600 remaining_minutes = (remaining_seconds % 3600) // 60 - + time_string = "" if days > 0: time_string += f"{days}:{hours:02}" else: time_string += f"{hours}" time_string += f":{remaining_minutes:02}" - + return time_string @@ -100,46 +100,54 @@ try: headers={'Authorization': f"Basic {waka_token}"} ) waka_info = response.json() - + total_duration = sum(item["total"] for item in waka_info["machines"]) - - project_list = waka_info["projects"][:5] - lang_list = waka_info["languages"][:5] - + + project_list = waka_info["projects"][:4] + lang_list = waka_info["languages"][:6] + max_name_len = max(len(entry["key"]) for entry in project_list) max_lang_len = max(len(entry["key"]) for entry in lang_list) max_key_len = max(max_name_len, max_lang_len) - - max_proj_time_len = max(len(seconds_to_string(entry["total"])) for entry in project_list) - max_lang_time_len = max(len(seconds_to_string(entry["total"])) for entry in lang_list) + + max_proj_time_len = max(len(seconds_to_string( + entry["total"])) for entry in project_list) + max_lang_time_len = max( + len(seconds_to_string(entry["total"])) for entry in lang_list) max_total_len = max(max_proj_time_len, max_lang_time_len) - - waka_projects += "```\n" + + waka_projects += "
\n"
     for project in project_list:
-        filled_length = int((project["total"] / total_duration) * MAX_BAR_LENGTH)
-        progress_bar = BAR_CHAR * filled_length + EMPTY_BAR_CHAR * (MAX_BAR_LENGTH - filled_length)
-        percentage_str = str(int((project["total"] / total_duration * 100))) + "%"
-        
+        filled_length = int(
+            (project["total"] / total_duration) * MAX_BAR_LENGTH)
+        progress_bar = BAR_CHAR * filled_length + \
+            EMPTY_BAR_CHAR * (MAX_BAR_LENGTH - filled_length)
+        percentage_str = str(
+            int((project["total"] / total_duration * 100))) + "%"
+
         waka_projects += f"{project['key']:<{max_key_len}}   "
-        waka_projects += f"{seconds_to_string(project["total"]):>{max_total_len}}   "
+        waka_projects += f"{seconds_to_string(project["total"]):>{
+            max_total_len}}   "
         waka_projects += f"{progress_bar}   "
         waka_projects += f"{percentage_str:>3}\n"
-    waka_projects += "```"
-    
-    waka_langs += "```\n"
+    waka_projects += "
" + + waka_langs += "
\n"
     for lang in lang_list:
         filled_length = int((lang["total"] / total_duration) * MAX_BAR_LENGTH)
-        progress_bar = BAR_CHAR * filled_length + EMPTY_BAR_CHAR * (MAX_BAR_LENGTH - filled_length)
+        progress_bar = BAR_CHAR * filled_length + \
+            EMPTY_BAR_CHAR * (MAX_BAR_LENGTH - filled_length)
         percentage_str = str(int((lang["total"] / total_duration * 100))) + "%"
-        
+
         waka_langs += f"{lang['key']:<{max_key_len}}   "
         waka_langs += f"{seconds_to_string(lang["total"]):>{max_total_len}}   "
         waka_langs += f"{progress_bar}   "
         waka_langs += f"{percentage_str:>3}\n"
-    waka_langs += "```"
+    waka_langs += "
" + + waka_stats = waka_projects + "\n\n" + waka_langs except Exception as e: - waka_projects = "" - waka_langs = "" + waka_stats = "" print(e) pass @@ -147,11 +155,11 @@ duolingo_stats = {} try: response = requests.get(os.getenv("DUOLINGO_URL")) duolingo_stats = response.json() - + for lang in duolingo_stats["lang_data"]: if duolingo_stats["lang_data"][lang]["learningLanguage"] == duolingo_stats["learning_language"]: current_lang = duolingo_stats["lang_data"][lang]["learningLanguageFull"] - + duolingo_stats["current_lang"] = current_lang except Exception as e: print(e) @@ -166,8 +174,7 @@ data = { "technologies": technologies, "projects": projects, "blog_entries": blog_entries, - "waka_projects": waka_projects, - "waka_langs": waka_langs, + "waka_stats": waka_stats, "duolingo_stats": duolingo_stats, "socials": socials, "last_update": last_update diff --git a/resources/README.md.jinja b/resources/README.md.jinja index 66b0228..9c3e338 100644 --- a/resources/README.md.jinja +++ b/resources/README.md.jinja @@ -1,22 +1,17 @@ -
- -

Welcome!

+
+

Welcome!

+

I'm Marvin – M.Sc. student, fullstack developer and creator of Mastery Chart.
Located in Baden-WΓΌrttemberg, Germany .

+
+{# Derived from https://github.com/thmsgbrt/thmsgbrt #} + +

πŸ›  Tools I use

-I'm Marvin – M.Sc. student, fullstack developer and creator of Mastery Chart.
-Located in Baden-WΓΌrttemberg, Germany . +{% for item in technologies -%} +{{ item['name'] }} +{% endfor -%}

-
- -[//]: # "Derived from https://github.com/thmsgbrt/thmsgbrt" - -## πŸ›  Tools I use - -{% for item in technologies -%} -![{{ item['name'] }}](https://img.shields.io/badge/-{{ item["name"] | replace(" ", "_") }}-{{ item['color'] | replace("#", "") }}?style=flat-square&logo={{ item['logo'] or item['name'] | replace(" ", "_") }}&logoColor=white) -{% endfor -%} - -## 🎁 Open source +

🎁 Open source

@@ -31,30 +26,39 @@ Located in Baden-WΓΌrttemberg, Germany {{ entry["title"] }} +{%- endfor %} + +{% endif %} -## πŸ““ Latest blog posts +{%- if duolingo_stats["lang_data"]|length > 1 %} +

πŸ¦‰ Duolingo progress

+ +{% endif %} -{% for entry in blog_entries %} -- [![](https://gitlab.ms-ds.org/msds/icons/-/raw/main/icons-small/ghost.png) {{ entry['title'] }}]({{ entry['url'] }}) -{% endfor %} +

πŸ‘₯ Social

-## πŸ¦‰ Duolingo progress - -- πŸ”₯ Streak: {{ "%d"|format(duolingo_stats["streak"]|float) }} -- ⚑ {{ "%d"|format(duolingo_stats["xp"]|float) }} XP -- πŸ‘¨β€πŸŽ“ Currently learning: {{ duolingo_stats['current_lang'] }} - -## More - -{% for social in socials -%} +

+{%- for social in socials -%} {{ social['name'] }} {% endfor %} +

------------- +
-

Last update: {{ last_update }}

+

Last update: {{ last_update }}

+

Update README made with β™₯