Changeset e2c3d09 in Klonkt for src/routes/admin-playlists.js


Ignore:
Timestamp:
07/31/2026 12:33:18 PM (6 weeks ago)
Author:
Robin <roboburr@…>
Branches:
main
Children:
2dd1dc4
Parents:
859b1707
Message:

Media-submappen volgen nu MEDIA_PATH

De submappen voor avatars, post-images, reply-media, hero en audio-covers hadden
elk hun eigen env-variabele met een fallback naar <app>/storage/media/<sub>.
Daardoor negeerden ze MEDIA_PATH: wie zijn data buiten de checkout zette kreeg
alsnog een storage/-map in de work-tree, en uploads landden naast de code. Een
opruimstap bij een volgende deploy kan die vervolgens weggooien.

Nu leiden ze allemaal af van MEDIA_PATH via een gedeelde helper. Een eigen
override per submap wint nog steeds, dus bestaande installaties merken niets.
Dit maakt de scheiding van gebruikersdata en programmadata mogelijk met drie
regels in .env in plaats van acht.

Changed files:
src/routes/account.js

  • AVATAR_DIR via mediaDir(); dode dirname en fileURLToPath-import weg

src/routes/posts.js

  • POST_IMAGES_DIR en REPLY_MEDIA_DIR via mediaDir(); dode declaraties weg

src/routes/admin-media.js

  • POST_IMAGES_DIR en REPLY_MEDIA_DIR via mediaDir(); dode declaraties weg

src/routes/admin-settings.js

  • HERO_DIR via mediaDir(); dode declaraties weg

src/routes/admin-playlists.js

  • COVER_DIR via mediaDir(); dode dirname weg

src/routes/admin-audio.js

  • COVER_DIR via mediaDir(); AUDIO_DIR ongewijzigd (eigen wortel)

src/routes/admin-sites.js

  • PHOTO_DIR via mediaDir(), deelt bewust de avatars-map

src/routes/activitypub.js

  • AP_MEDIA_DIR via mediaDir(); ongebruikte fileURLToPath-import weg

New file:
src/config/paths.js

  • MEDIA_ROOT afgeleid van MEDIA_PATH
  • mediaDir(envVar, sub) voor submappen, met behoud van per-map overrides

DATABASE_PATH en AUDIO_PATH zijn eigen wortels en bewust ongemoeid gelaten.
Geverifieerd: 356 tests groen, en een server met externe MEDIA_PATH maakt al
zijn mappen buiten de checkout aan zonder de work-tree te raken.

-robo
Co-Authored-By: Claude Opus 5 <noreply@…>

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/routes/admin-playlists.js

    r859b1707 re2c3d09  
    2323import { requireGod } from '../middleware/auth.js';
    2424import PlaylistService from '../services/PlaylistService.js';
     25import { mediaDir } from '../config/paths.js';
    2526
    2627// Cover storage — same convention as track covers so a single physical
    2728// directory holds all album/track artwork. Existing covers in the DB
    2829// already point at /media/audio-covers/<filename> so we reuse the path.
    29 const __dirname = path.dirname(new URL(import.meta.url).pathname);
    30 const COVER_DIR = path.resolve(
    31   process.env.COVER_PATH || path.join(__dirname, '..', '..', 'storage', 'media', 'audio-covers')
    32 );
     30const COVER_DIR = mediaDir('COVER_PATH', 'audio-covers');
    3331fs.mkdirSync(COVER_DIR, { recursive: true });
    3432
Note: See TracChangeset for help on using the changeset viewer.