From 85570c024b19e6f8f15bcc5ed6adbbc00eb54abd Mon Sep 17 00:00:00 2001 From: periodicbrake Date: Fri, 19 Jun 2026 12:03:14 +0200 Subject: [PATCH] nigga --- Dockerfile | 42 ++++++++++++++++++++---------------------- generate_readme.py | 36 ++++++++++++++++++++++++++++++++++++ 2 files changed, 56 insertions(+), 22 deletions(-) create mode 100644 generate_readme.py diff --git a/Dockerfile b/Dockerfile index 7f357a8..80a4caa 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,34 +1,32 @@ -# Build -FROM rust:1.75-slim AS builder - -# Dependencies -RUN apt-get update && apt-get install -y \ - cmake \ - nasm \ - clang \ - pkg-config \ - libssl-dev \ - && rm -rf /var/lib/apt/lists/* - +# Utilise Ubuntu 24.04 pour avoir des bibliothèques systèmes à jour +FROM rust:latest AS builder +# (Rust 1.78 est très récent et gère parfaitement le format lock v4) +RUN apt-get update && apt-get install -y cmake nasm clang libssl-dev pkg-config WORKDIR /app COPY . . - -# Compile for prod RUN cargo build --release --bin scrape -# Lightweight image -FROM debian:bookworm-slim - -# Runtime libs +FROM ubuntu:24.04 +# Installation des dépendances nécessaires RUN apt-get update && apt-get install -y \ ca-certificates \ libssl3 \ + python3 \ + git \ + ssh \ && rm -rf /var/lib/apt/lists/* WORKDIR /app - -# Copy binary to bin folder COPY --from=builder /app/target/release/scrape /usr/local/bin/scrape +COPY generate_readme.py /app/generate_readme.py -# Run scraping -CMD ["scrape"] \ No newline at end of file +RUN echo '#!/bin/sh\n\ +git config --global user.email "bot@periodicbrake.fr"\n\ +git config --global user.name "Wallpaper Bot"\n\ +/usr/local/bin/scrape\n\ +python3 /app/generate_readme.py\n\ +git add README*.md assets/*.json\n\ +git diff --exit-code > /dev/null || (git commit -m "chore: auto-update" && git push)\n\ +' > /app/run.sh && chmod +x /app/run.sh + +CMD ["/app/run.sh"] diff --git a/generate_readme.py b/generate_readme.py new file mode 100644 index 0000000..ce30518 --- /dev/null +++ b/generate_readme.py @@ -0,0 +1,36 @@ +import os +import json +import glob + +# Your Nginx domain +CDN_BASE = "https://colorwall-repo.periodicbrake.fr" + +header = "# Wallpaper Archive\n\nAutomated archive of wallpapers.\n\n## Gallery\n\n| Preview | Title | Tags |\n| --- | --- | --- |\n" +rows = [] + +# Scans the mapped /app/assets folder +for json_file in sorted(glob.glob("assets/*.json")): + try: + with open(json_file, "r", encoding="utf-8") as f: + item = json.load(f) + + item_id = item.get("id", "unknown") + title = item.get("title", "Wallpaper") + tags = ", ".join(item.get("tags", [])) + + # Assuming files are named .png or .jpg in the same folder + ext = "png" if ".png" in item.get("download_url", "").lower() else "jpg" + filename = f"{item_id}.{ext}" + cdn_url = f"{CDN_BASE}/{filename}" + + row = f'| | **{title}**
[Download]({cdn_url}) | {tags} |\n' + rows.append((item_id, row)) + except Exception as e: + print(f"Skipping {json_file}: {e}") + +with open("README.md", "w", encoding="utf-8") as f: + f.write(header) + for _, row in rows: + f.write(row) + +print("README.md has been successfully generated.")