i love chatgpt
This commit is contained in:
parent
1f864b0e0e
commit
26603c215c
16
index.json
16
index.json
|
@ -2,25 +2,25 @@
|
|||
{
|
||||
"title": "blog humble beginnings",
|
||||
"url": "https://git.xargana.tr/glitchy/blog/src/branch/main/blog_init.md",
|
||||
"last_commit": "index auto gen",
|
||||
"commit_date": "2025-05-22T16:39:18Z"
|
||||
"last_commit": "index auto gen v2",
|
||||
"commit_date": "2025-05-22T16:41:20Z"
|
||||
},
|
||||
{
|
||||
"title": "security is annoying",
|
||||
"url": "https://git.xargana.tr/glitchy/blog/src/branch/main/security_is_annoying.md",
|
||||
"last_commit": "index auto gen",
|
||||
"commit_date": "2025-05-22T16:39:18Z"
|
||||
"last_commit": "index auto gen v2",
|
||||
"commit_date": "2025-05-22T16:41:20Z"
|
||||
},
|
||||
{
|
||||
"title": "i dont really like school",
|
||||
"url": "https://git.xargana.tr/glitchy/blog/src/branch/main/school_shit.md",
|
||||
"last_commit": "index auto gen",
|
||||
"commit_date": "2025-05-22T16:39:18Z"
|
||||
"last_commit": "index auto gen v2",
|
||||
"commit_date": "2025-05-22T16:41:20Z"
|
||||
},
|
||||
{
|
||||
"title": "twitter with an identity crisis",
|
||||
"url": "https://git.xargana.tr/glitchy/blog/src/branch/main/mastodon_yap.md",
|
||||
"last_commit": "index auto gen",
|
||||
"commit_date": "2025-05-22T16:39:18Z"
|
||||
"last_commit": "index auto gen v2",
|
||||
"commit_date": "2025-05-22T16:41:20Z"
|
||||
}
|
||||
]
|
41
index_gen.py
41
index_gen.py
|
@ -1,17 +1,37 @@
|
|||
import re
|
||||
import json
|
||||
import subprocess
|
||||
from urllib.parse import urlparse
|
||||
|
||||
def get_last_commit_info():
|
||||
# Format: subject%n%ISO 8601 date
|
||||
def get_local_path_from_url(url):
|
||||
"""
|
||||
Extracts the relative file path from the blog URL.
|
||||
Assumes the file structure matches URLs.
|
||||
"""
|
||||
# e.g., https://git.xargana.tr/glitchy/blog/src/branch/main/blog_init.md
|
||||
# -> blog/blog_init.md
|
||||
path = urlparse(url).path # /glitchy/blog/src/branch/main/blog_init.md
|
||||
parts = path.strip("/").split("/")
|
||||
|
||||
try:
|
||||
idx = parts.index("main")
|
||||
relpath = "/".join(parts[idx + 1:])
|
||||
return f"blog/{relpath}"
|
||||
except ValueError:
|
||||
return None
|
||||
|
||||
def get_commit_info(filepath):
|
||||
try:
|
||||
result = subprocess.run(
|
||||
["git", "log", "-1", "--pretty=%s%n%cI"],
|
||||
["git", "log", "-1", "--pretty=%s%n%cI", "--", filepath],
|
||||
stdout=subprocess.PIPE,
|
||||
text=True,
|
||||
check=True
|
||||
)
|
||||
message, date = result.stdout.strip().split("\n", 1)
|
||||
return message, date
|
||||
msg, date = result.stdout.strip().split("\n", 1)
|
||||
return msg, date
|
||||
except subprocess.CalledProcessError:
|
||||
return "No commit info", "unknown"
|
||||
|
||||
def parse_blog_links(md_text):
|
||||
pattern = re.compile(r"- \[(.*?)\]\((.*?)\)")
|
||||
|
@ -22,11 +42,16 @@ def main():
|
|||
md_content = f.read()
|
||||
|
||||
blog_entries = parse_blog_links(md_content)
|
||||
last_commit_msg, commit_date = get_last_commit_info()
|
||||
|
||||
for entry in blog_entries:
|
||||
entry["last_commit"] = last_commit_msg
|
||||
entry["commit_date"] = commit_date
|
||||
local_path = get_local_path_from_url(entry["url"])
|
||||
if local_path:
|
||||
msg, date = get_commit_info(local_path)
|
||||
entry["last_commit"] = msg
|
||||
entry["commit_date"] = date
|
||||
else:
|
||||
entry["last_commit"] = "unknown"
|
||||
entry["commit_date"] = "unknown"
|
||||
|
||||
with open("index.json", "w", encoding="utf-8") as f:
|
||||
json.dump(blog_entries, f, indent=2)
|
||||
|
|
Loading…
Reference in a new issue