-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Description
Create a python script that runs every hour using cron
python script should
- generate songlist
- extract banners
Extract Songlist
songlist should have following format
@dataclass(kw_only=True, frozen=True)
class Chart:
difficulty: str
meter: int
credit: str | None
@dataclass(kw_only=True, frozen=True)
class Song:
title: str
artist: str | None
credit: str | None
charts: list[Chart]
@dataclass(kw_only=True, frozen=True)
class Pack:
name: str
songs: list[Song]
Songlist = list[Pack]Extract banners
save all banner images in /home/remy/banners
no separation between pack images and song images is needed
generate image file name like
from dataclasses import dataclass
from uuid import uuid5
NAMESPACE_SONG = "772c3614-0fa4-40c7-b654-af81d7a1b197"
NAMESPACE_PACK = "8d7a2f09-452f-4e64-ab80-2320998f4595"
def generate_song_banner_uuid(pack: Pack, song: Song) -> str:
return str(uuid5(NAMESPACE_SONG, f"{pack.name}/{song.title}"))
def generate_pack_banner_uuid(pack: Pack) -> str:
return str(uuid5(NAMESPACE_PACK, pack.name))Python script should return list of image file paths, do not copy files in python
you can just print list of files
Copy over files using bash
copy like cp $(python discover_banners.py) /home/remy/banners/
Convert image format
use mogrify to batch convert images to webp from banners folder to banners-webp folder
create a bash script to run above tasks
#!/bin/bash
cp $(python extract_songs.py) /home/remy/banners
mogrify ...Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels