This commit is contained in:
Tim Baek
2026-03-24 14:54:29 -05:00
parent f949d17db1
commit c24a4da17d
3 changed files with 10 additions and 7 deletions
+1 -1
View File
@@ -1589,7 +1589,7 @@ ENABLE_MESSAGE_RATING = PersistentConfig(
ENABLE_USER_WEBHOOKS = PersistentConfig( ENABLE_USER_WEBHOOKS = PersistentConfig(
'ENABLE_USER_WEBHOOKS', 'ENABLE_USER_WEBHOOKS',
'ui.enable_user_webhooks', 'ui.enable_user_webhooks',
os.environ.get('ENABLE_USER_WEBHOOKS', 'True').lower() == 'true', os.environ.get('ENABLE_USER_WEBHOOKS', 'False').lower() == 'true',
) )
# FastAPI / AnyIO settings # FastAPI / AnyIO settings
+7 -4
View File
@@ -815,12 +815,16 @@ async def get_pinned_channel_messages(
############################ ############################
async def send_notification(name, webui_url, channel, message, active_user_ids, db=None): async def send_notification(request, channel, message, active_user_ids, db=None):
name = request.app.state.WEBUI_NAME
webui_url = request.app.state.config.WEBUI_URL
enable_user_webhooks = request.app.state.config.ENABLE_USER_WEBHOOKS
users = get_channel_users_with_access(channel, 'read', db=db) users = get_channel_users_with_access(channel, 'read', db=db)
for user in users: for user in users:
if (user.id not in active_user_ids) and Channels.is_user_channel_member(channel.id, user.id, db=db): if (user.id not in active_user_ids) and Channels.is_user_channel_member(channel.id, user.id, db=db):
if user.settings: if enable_user_webhooks and user.settings:
webhook_url = user.settings.ui.get('notifications', {}).get('webhook_url', None) webhook_url = user.settings.ui.get('notifications', {}).get('webhook_url', None)
if webhook_url: if webhook_url:
await post_webhook( await post_webhook(
@@ -1109,8 +1113,7 @@ async def post_new_message(
async def background_handler(): async def background_handler():
await model_response_handler(request, channel, message, user) await model_response_handler(request, channel, message, user)
await send_notification( await send_notification(
request.app.state.WEBUI_NAME, request,
request.app.state.config.WEBUI_URL,
channel, channel,
message, message,
active_user_ids, active_user_ids,
+2 -2
View File
@@ -3098,7 +3098,7 @@ async def non_streaming_chat_response_handler(response, ctx):
) )
# Send a webhook notification if the user is not active # Send a webhook notification if the user is not active
if not Users.is_user_active(user.id): if request.app.state.config.ENABLE_USER_WEBHOOKS and not Users.is_user_active(user.id):
webhook_url = Users.get_user_webhook_url_by_id(user.id) webhook_url = Users.get_user_webhook_url_by_id(user.id)
if webhook_url: if webhook_url:
await post_webhook( await post_webhook(
@@ -4587,7 +4587,7 @@ async def streaming_chat_response_handler(response, ctx):
) )
# Send a webhook notification if the user is not active # Send a webhook notification if the user is not active
if not Users.is_user_active(user.id): if request.app.state.config.ENABLE_USER_WEBHOOKS and not Users.is_user_active(user.id):
webhook_url = Users.get_user_webhook_url_by_id(user.id) webhook_url = Users.get_user_webhook_url_by_id(user.id)
if webhook_url: if webhook_url:
await post_webhook( await post_webhook(