44 lines
1.4 KiB
Python
44 lines
1.4 KiB
Python
import csv
|
|
import os
|
|
import requests
|
|
from markdownify import markdownify as md
|
|
|
|
CSV_PATH = "C:/projects/forth/bootslop/references/TimothyLottesBlog.csv"
|
|
OUT_DIR = "C:/projects/forth/bootslop/references/TimothyLottesBlog"
|
|
|
|
os.makedirs(OUT_DIR, exist_ok=True)
|
|
|
|
with open(CSV_PATH, "r", encoding="utf-8") as f:
|
|
reader = csv.reader(f)
|
|
for row in reader:
|
|
if len(row) < 2:
|
|
continue
|
|
title = row[0].strip()
|
|
url = row[1].strip()
|
|
|
|
# Clean up title for filename
|
|
filename = "".join(c for c in title if c.isalnum() or c in (' ', '-', '_')).strip()
|
|
filename = filename.replace(' ', '_') + ".md"
|
|
out_path = os.path.join(OUT_DIR, filename)
|
|
|
|
if os.path.exists(out_path):
|
|
print(f"Already exists: {filename}")
|
|
continue
|
|
|
|
print(f"Fetching: {title}")
|
|
try:
|
|
response = requests.get(url)
|
|
response.raise_for_status()
|
|
|
|
# Convert HTML to markdown
|
|
markdown_text = md(response.text, heading_style="ATX")
|
|
|
|
with open(out_path, "w", encoding="utf-8") as out_f:
|
|
out_f.write(f"# {title}\n\n")
|
|
out_f.write(f"**Source:** {url}\n\n")
|
|
out_f.write(markdown_text)
|
|
|
|
print(f"Saved: {filename}")
|
|
except Exception as e:
|
|
print(f"Failed to fetch {title}: {e}")
|