Zum Hauptinhalt springen

Services Übersicht

Postbox nutzt eine Service-basierte Architektur. Business-Logik wird konsequent aus Livewire-Components, Jobs und Commands in dedizierte Services ausgelagert. Die Services liegen unter app/Services/ und sind nach Domänen in Unterverzeichnisse aufgeteilt.

AI Services

ServiceNamespaceBeschreibungWichtigste Methoden
ChannelLanguageDetectorApp\Services\AISprach-/Land-/Kategorie-Erkennung via Google Geminidetect(), detectWithLogging(), detectAndSave()
TagConsolidatorApp\Services\AIAI-gesteuerte Tag-Zusammenführung via GeminiconsolidateChunk()
TagMergerApp\Services\AITag-Merge- und Suppress-Aktionen ausführenexecuteMerge(), executeSuppress(), executeBatch()

Collector Services

ServiceNamespaceBeschreibungWichtigste Methoden
CollectorJobDispatcherApp\Services\CollectorCollector-Jobs erstellen und dispatchendispatch()
InstagramDailyScrapeProcessorApp\Services\CollectorErgebnisse von Instagram Daily Scrapes verarbeitenhandleCompletion(), handleFailure()
InstagramWatcherImportProcessorApp\Services\CollectorErgebnisse von Instagram Watcher-Imports verarbeitenhandleCompletion(), handleFailure()

Dashboard Services

ServiceNamespaceBeschreibungWichtigste Methoden
LeaderboardPriorityServiceApp\Services\DashboardPriority-Profile für tägliches Scraping bestimmengetLeaderProfileIds(), getCandidateProfileIds(), getPriorityProfileIds()

Explore Services

ServiceNamespaceBeschreibungWichtigste Methoden
ExploreMetricsCalculatorApp\Services\ExploreTägliche Growth-Metriken und Trending-ScorescalculateDailyMetrics(), calculateTrendingScores(), updateTrendingFlags()
ExploreTrendingVideosCalculatorApp\Services\ExploreTrending-Videos basierend auf View-Growth/VelocitycalculateTrendingVideos(), getTopTrending()
ExploreCategoryDetectorApp\Services\ExploreKategorie-Erkennung per Keywords und YouTube-Category-IDsdetectCategories(), detectCategoryForProfile(), extractTags()

Favorites Services

ServiceNamespaceBeschreibungWichtigste Methoden
FavoriteManagerApp\Services\FavoritesFavoriten-Workspace verwalten, Toggle-LogikgetOrCreateFavoritesWorkspace(), isFavorite(), favorite(), unfavorite()

GoogleApiUsage Services

ServiceNamespaceBeschreibungWichtigste Methoden
GoogleApiUsageServiceApp\Services\GoogleApiUsageGoogle Cloud Monitoring API abfragenfetchQuotaUsage(), fetchQuotaLimits()
GoogleApiUsageRepositoryApp\Services\GoogleApiUsageQuota-Limits und Usage in DB persistierenupsertLimits(), upsertUsages()
GoogleApiUsageExceptionApp\Services\GoogleApiUsageCustom Exception für API-Fehler--

Images Services

ServiceNamespaceBeschreibungWichtigste Methoden
ProfileImageProcessorApp\Services\ImagesProfilbild-Varianten erzeugen (Resize, WebP/AVIF, LQIP)generateVariants(), generateVideoThumbnailVariants(), regenerateFromDisk(), deleteVariants()

Health Services

ServiceNamespaceBeschreibungWichtigste Methoden
SystemHealthServiceApp\Services\HealthSystem-Health-Checks (DB, Cache, Reverb, Queue, API)runAllChecks(), checkDatabase(), checkCache(), checkReverb(), checkQueueWorkers()

Instagram Services

ServiceNamespaceBeschreibungWichtigste Methoden
ProfileKeywordExtractorApp\Services\InstagramKeywords aus Bio, Handle und Username extrahierenextractAndStore(), extract(), extractFromText(), extractFromHandle()

Mail Services

ServiceNamespaceBeschreibungWichtigste Methoden
MailFloodGuardApp\Services\MailCircuit Breaker für E-Mail-VersandisPaused(), recordAndCheck(), pause(), resume(), getStatus(), log()

Notifications Services

ServiceNamespaceBeschreibungWichtigste Methoden
NotificationServiceApp\Services\NotificationsNotifications/Announcements erstellen und verwaltenannounceToUser(), announceToWorkspace(), announceToAll(), getForUser(), markAsRead()
NotificationPreferenceServiceApp\Services\NotificationsBenachrichtigungs-Präferenzen auflösen (App/Email/Quiet Hours)resolve(), shouldSendApp(), shouldSendEmail(), isInQuietHours()
ServiceNamespaceBeschreibungWichtigste Methoden
CrossPlatformRelatedCalculatorApp\Services\RelatedCross-Platform Matching (YouTube ↔ Instagram)findInstagramForYouTube(), findYouTubeForInstagram()

Search Services

ServiceNamespaceBeschreibungWichtigste Methoden
ProfileSearchServiceApp\Services\SearchProfil-Suche mit Multi-Strategie-Ranking (Meilisearch / PostgreSQL FTS / SQLite Fallback)search()

Scoring Services

ServiceNamespaceBeschreibungWichtigste Methoden
ProfileScoreCalculatorApp\Services\ScoringProfil-Score 0-100, tier-normalisiertcalculate(), determineTier(), getDataPointsInfo()
VideoScoreCalculatorApp\Services\ScoringVideo-Performance-Score 0-100calculate(), hasShortDuration()

Social Services

ServiceNamespaceBeschreibungWichtigste Methoden
YouTubeProfileScraperApp\Services\Social\ScrapersYouTube-Kanal via Data API scrapenscrape()
InstagramProfileScraperApp\Services\Social\ScrapersInstagram-Profil via Collector scrapenscrape()
ScrapedProfileApp\Services\Social\ScrapersReadonly DTO für gescrapte Profil-Daten--
ScraperFactoryApp\Services\SocialScraper-Instanz für Plattform erstellenscrape()
ProfileDescriptionParserApp\Services\SocialProfil-Bio parsen (Links, Handles, Emails)parseAndStore(), parse()
SocialProfileLinkSyncerApp\Services\Socialparsed_links JSONB in social_profile_links Tabelle synchronisierensync()
ProfileImageUpdaterApp\Services\SocialProfil-Bilder herunterladen und speichernstoreProfileImage()
VideoThumbnailUpdaterApp\Services\SocialYouTube-Thumbnails herunterladenstoreVideoThumbnail()
YouTubeUrlParserApp\Services\SocialYouTube-URL-Parsing (Channel/Video/Handle)statische Methoden
InstagramUrlParserApp\Services\SocialInstagram-URL-Parsing (Handle extrahieren)statische Methoden
YouTubeChannelPageParserApp\Services\Social\ParsersYouTube-Kanal-HTML parsenfinal class
InstagramProfilePageParserApp\Services\Social\ParsersInstagram-Profil-HTML parsenfinal class
CompactNumberApp\Services\Social\SupportZahlen kompakt formatieren (1.2K, 3.4M)final class
EnsureSocialProfileFromUrlApp\Services\Social\ActionsProfil aus URL erstellen/finden (dedupliziert)execute()
YouTubeDataApiClientApp\Services\Social\YouTubeYouTube Data API v3 Client mit Key-Pool und Failoverget(), getChannelByHandle(), getVideosByIds()
YouTubeChannelResolverApp\Services\Social\YouTubeYouTube-URL zu Channel-ID auflösenresolve()

Watchers Services

ServiceNamespaceBeschreibungWichtigste Methoden
WatcherMoverApp\Services\WatchersWatcher zwischen Workspaces verschieben, Duplikate mergenmoveWatchers()

Workspaces Services

ServiceNamespaceBeschreibungWichtigste Methoden
AdminWorkspaceManagerApp\Services\WorkspacesAdmin-Workspace (ID 999999999999) verwalten und Profile spiegelnensureAdminWorkspace(), ensureProfileWatcher(), removeProfileFromAdminWorkspace()
DefaultWorkspaceProvisionerApp\Services\WorkspacesDefault-Workspace für neue User erstellenensureGeneralWorkspace()

YouTube Services

ServiceNamespaceBeschreibungWichtigste Methoden
ResearchQuotaServiceApp\Services\YouTubeYouTube Research Quota prüfen (Auto-Fill erlaubt?)getStatus(), allowsAutoFill(), hasQuota()

Root-Level Services

ServiceNamespaceBeschreibungWichtigste Methoden
YouTubeUpdateStatusServiceApp\ServicesYouTube Update-Status aggregierengetStatus(), refresh(), getQueueableProfileIds()
InstagramUpdateStatusServiceApp\ServicesInstagram Scrape-Status aggregierengetStatus(), refresh(), getStaleProfileIds()
ServerAlertServiceApp\ServicesServer-Metriken gegen Schwellwerte prüfen, Alerts dispatchencheck()
MatomoTrackingServiceApp\ServicesServer-seitiges Matomo Tracking (Page Views + Events)trackPageView(), trackEvent(), isEnabled()