Skip to content

Technical Plugin Notifications

Daniel Neto edited this page Oct 29, 2026 · 1 revision

Technical: Notifications plugin

Sends configured email notifications for video, live and comment events.

Audience: developers, advanced administrators and AI-assisted diagnosis. Plugin catalog.

Source baseline

  • Review date: 2026-10-29. Method: static source analysis; runtime/provider behavior was not exercised.
  • Code ownership: independently versioned plugin repository.
  • Reported version: 9.1.
  • Source revision: 378a76c9d2d53744685efcdde88cb33826ee1c94.
  • Entry class file: Notifications.php.

Confirm the installed plugin version independently of the Streamer version. Configuration defaults below are not a dump of this installation's saved settings.

Dependencies

Plugin Required by declaration Source reason
UserNotifications Optional Optional per-user push notification preferences

Hook integration

Override Implementation
getTags() Notifications.php:20
afterNewComment($comments_id) Notifications.php:462
afterNewResponse($comments_id) Notifications.php:466
onNewVideo($videos_id) Notifications.php:501
onEncoderNotifyIsDone($videos_id) Notifications.php:537
onUploadIsDone($videos_id) Notifications.php:541
onUserSignup($users_id) Notifications.php:545
on_publish($users_id, $live_servers_id, $liveTransmitionHistory_id, $key, $isReconnection) Notifications.php:573
getHeadCode() Notifications.php:717
getPluginMenu() Notifications.php:801
getMobileInfo() Notifications.php:806

Configuration assignments

These are direct assignments inside getEmptyDataObject(), not evaluated effective defaults. Stored plugins.object_data, globals, structured values and conditional branches may alter runtime behavior. Private/default credential values are omitted.

Field Literal default or expression type Literal source label/help Evidence
emailEnabled true — source
bellNotificationEnabled true — source
emailLogo Computed/structured; inspect source — source
notifyVerifiedUsersOnly false — source
notifyVideoUploadToVideoOwner true — source
notifyVideoUploadToSubscribers true — source
notifyVideoUploadToTagsSubscribers true — source
notifyVideoUploadToEmail "" — source
notifyVideoUploadSubject "A new Video was uploaded" — source
notifyVideoUploadText Computed/structured; inspect source — source
notifyVideoUploadWebhook "" — source
notifyCommentsToVideoOwner true — source
notifyCommentsToEmail "" — source
notifyCommentsSubject "A new comment was made on video" — source
notifyCommentsText Computed/structured; inspect source — source
notifyResponseToVideoOwner true — source
notifyResponseToCommenter true — source
notifyResponseToEmail "" — source
notifyResponseSubject "A new response was made on video" — source
notifyResponseText Computed/structured; inspect source — source
notifySubscribersWhenSomeoneGoesLive false — source
notifySubscribersWhenSomeoneGoesLiveSubject Computed/structured; inspect source — source
notifySubscribersWhenSomeoneGoesLiveText Computed/structured; inspect source — source
notifyNewUserSignUp false — source
signUpRequestUploadRights false — source
signUpRequestLivestreamRights false — source
signUpAutoResponseMessage Computed/structured; inspect source — source
oneSignalEnabled false — source
oneSignalOnNewVideo true — source
oneSignalOnLiveStream true — source
oneSignalAPPID "" — source
oneSignalRESTAPIKEY Private setting; value omitted — source
oneSignalFIREBASE_SENDER_ID "" — source
oneSignalDebugMode false — source

Files and request surface

This inventory distinguishes implementation files from an API specification. Includes, templates, callbacks and CLI workers are not interchangeable HTTP endpoints. Request-field names below are direct source references, not a complete schema or permission declaration.

File Source role Direct request fields observed
Notifications.php plugin entry class email, pass
test.php PHP page/include/worker; inspect caller —

Data and migrations

No CREATE TABLE names were extracted from available plugin SQL. The plugin can still use core tables, PHP-created schema or another component's data. Apply installation/update behavior through the owning plugin; this reference is not a script for running historical migrations manually.

Main-file named symbols

Visibility and implementation semantics must be checked in source. Nonempty string defaults are represented as . This is a symbol reference, not a stable public API promise.

Function or method Source
getPluginDependencies() 14
getTags() 20
getDescription() 26
getPluginVersion() 34
getName() 39
getUUID() 43
getEmptyDataObject() 47
shouldSendBellNotification() 105
addBellNotificationVideo($videos_id, $to_users_id, $title, $icon) 117
getVideoUploadEmails($videos_id, $verifiedOnly = false) 142
getCommentEmails($comments_id) 196
getResponseEmails($comments_id) 215
getParentCommentEmail($comments_id, $emails = array()) 239
sendVideoUploadEmails($videos_id) 260
getCommentAndParents($comments_id, $child = '') 332
sendVideoCommentsEmails($comments_id) 355
sendVideoResponseEmails($comments_id) 382
replaceText($users_id, $videos_id, $text) 403
replaceTemplateText($videos_id, $message) 418
send($emailsArray, $subject, $body) 443
afterNewComment($comments_id) 462
afterNewResponse($comments_id) 466
getVideoNotificationSentFilename($videos_id) 470
setVideoNotificationSent($videos_id) 473
unsetVideoNotificationSent($videos_id) 483
isVideoNotificationSent($videos_id) 492
onNewVideo($videos_id) 501
onEncoderNotifyIsDone($videos_id) 537
onUploadIsDone($videos_id) 541
onUserSignup($users_id) 545
on_publish($users_id, $live_servers_id, $liveTransmitionHistory_id, $key, $isReconnection) 573
addBellNotificationToUsers($to_users_id, $title, $msg, $image, $href, $type, $element_id, $icon) 691
getHeadCode() 717
sendOneSignal($msg, $url = "'<string>'") 745
getOpenSignal() 783
getPluginMenu() 801
getMobileInfo() 806

Diagnostics and validation

  1. Check the installed/enabled version and the dependencies/settings above.
  2. Identify the actual failing page, request, callback or worker and correlate its timestamp with the AVideo log.
  3. Follow the linked method and caller. Check business-state changes and output artifacts as well as HTTP status.
  4. Reproduce the relevant workflow in a test environment. External provider, Encoder, live-server, storage, payment and authenticated flows require their real integrations.

Shared diagnostic workflow. This page is not a security audit or a claim of end-to-end validation.

Clone this wiki locally