Filigranlar
Filigran, her yüklenen görsele transparan bir PNG (logon veya handle'ın) katmanlar. Sosyabot filigranları yayın anında değil, yükleme anında uygular, böylece işlenmiş dosya zaten markalanmış olarak Kütüphane'ye iner.
Endpoint'ler
Sistem geneli filigran (yalnızca admin):
GET /api/v1/watermarks/system— mevcut sistem filigranını al.PUT /api/v1/watermarks/system— upsert (admin izni gerekli).
Kullanıcı-başı veya kanal-başı filigran yoktur; çalışma alanının bugün paylaşılan tek bir sistem filigranı vardır.
Filigran modeli
typescript
{
team_id: ObjectId | null, // null = sistem geneli
image_url: string, // transparanlık ile PNG
position: "top-left" | "top-right" | "bottom-left" | "bottom-right" | "center",
opacity: number, // 0–100
size_pct: number, // 1–100, görsel genişliğinin %'si
enabled: boolean,
}Varsayılanlar: position: "bottom-right", opacity: 60, size_pct: 20.
Filigran ne zaman uygulanır
applyWatermarkIfEnabled() servisi medya yükleme sırasında çalışır (backend/src/services/watermarks.service.ts):
watermarkmodülünün çalışma alanı için etkin olup olmadığını kontrol eder.- Sistem filigranını çeker; devre dışıysa çıkar.
- Filigranı kaynak görselin genişliğinin
size_pct'ine yeniden boyutlandırır. - Alpha blending ile opacity'i ayarlar.
- Sharp kullanarak kaynağa
position'da composite eder. - İşlenmiş buffer'ı döner (veya herhangi bir adım başarısız olursa orijinal buffer'ı — tasarım gereği fail-open).
Filigranlama yükleme anında olduğu için orijinal (filigran-uygulanmamış) bytes saklanmaz. Markasız sürüme ihtiyacın varsa temiz bir kopyayı yeniden yükle.