Skip to content

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):

  1. watermark modülünün çalışma alanı için etkin olup olmadığını kontrol eder.
  2. Sistem filigranını çeker; devre dışıysa çıkar.
  3. Filigranı kaynak görselin genişliğinin size_pct'ine yeniden boyutlandırır.
  4. Alpha blending ile opacity'i ayarlar.
  5. Sharp kullanarak kaynağa position'da composite eder.
  6. İş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.

İlgili