From 2e74637c796e17552f5b5c167ea08529a53e9b27 Mon Sep 17 00:00:00 2001 From: q Date: Mon, 15 Dec 2025 16:43:07 -0500 Subject: [PATCH] Clarifying which settings are required and optional in example.js --- example.js | 38 +++++++++++++++++++++++++++++++------- index.js | 8 +++++--- 2 files changed, 36 insertions(+), 10 deletions(-) diff --git a/example.js b/example.js index 931cb8c..ea6f4aa 100644 --- a/example.js +++ b/example.js @@ -5,41 +5,65 @@ matrixcs.request(request); const startupTime = Date.now(); +// --------- The following settings are all required: ---------------------- + +// Provide a matrix ID, access token, and homeserver that the bot will use. const myUserId = "@glowy:glowers.club" const myAccessToken = "syt_TotallyMyRealAccessTokenAndNotAFake"; +const homeserver = "https://glowers.club"; + +// Provide the link to SearXNG. Include any directories used in a search query. +const searxng_server = "https://searxng.example.com/searxng" + +// -------------------------------------------------------------------------- + const matrixClient = sdk.createClient({ - baseUrl: "https://glowers.club", + baseUrl: homeserver, accessToken: myAccessToken, userId: myUserId }); +const Searx = require('./index.js'); +const searx = new Searx(matrixClient) +searx.setSearxInstance(searxng_server); + +// --------- The following settings are all optional: ---------------------- + +// This allows you to use a different Matrix user and homeserver for uploading the image results. If this is not provided then the bot's Matrix ID and homeserver will be used instead. const uploadMatrixClient = sdk.createClient({ baseUrl: "https://midov.pl", accessToken: "syt_AnotherRealAccessTokenDoNotCommit", userId: "@upload_leech:midov.pl" }); - -const Searx = require('./index.js'); -const searx = new Searx(matrixClient) searx.setUploadMatrixClient(uploadMatrixClient); + +// Set which rooms are not allowed to search for images. searx.setBlacklistedImgRooms(["!wehateimagesearching:matrix.org", "!wehateittoo:nerdsin.space"]); + +// Set which rooms are not allowed to search for images with safesearch disabled. searx.setBlacklistedUimgRooms(["!sfw:matrix.org", "!church:nerdsin.space"]); -searx.setCooldownImmuneUsers(["@q:glowers.club","@midov:midov.pl"]); + +// Set the amount of time in milliseconds users in a room are required to wait between searches (and allow some users to be immune to the cooldown and send as many as they want) +searx.setCooldownImmuneUsers(["@q:glowers.club", "@romanticusgondolaticus:glowers.club"]); searx.setRoomCooldowns(new Map([ ["!sCbWouzHiLEyfOAaSJ:midov.pl",30000] ])); -searx.setSearxInstance("https://searx.example.com"); + +// Lets you set which URL parameters are used in SearXNG queries. Useful for changing which search engines are included and excluded. See SearXNG's documentation for all of the parameters available. searx.setSearxParameters("disabled_engines=flickr__images"); +// Lets you add a whitelist for a room. When added, only the users in that whitelist will be able to search. Other users will receive an error. searxng.setRoomUserWhitelists(new Map([ ["!blahblahblah:midov.pl", [ "@q:glowers.club", - "@midek:midov.pl" + "@romanticusgondolaticus:glowers.club" ] ] ])); +// -------------------------------------------------------------------------- + matrixClient.on("Room.timeline", function(event, room, toStartOfTimeline) { if (event.getTs() >= startupTime && event.getType() == "m.room.message" && event.getContent().body != null) { diff --git a/index.js b/index.js index b9b9352..8682fd0 100644 --- a/index.js +++ b/index.js @@ -274,9 +274,11 @@ Searxng.prototype.handleMessage = function(event, room) { }; Searxng.prototype.startUploadMatrixClient = function() { - (async () => { - this.uploadMatrixClient.startClient({initialSyncLimit: 1}); - })(); + if (this.uploadMatrixClient != undefined && this.uploadMatrixClient != this.matrixClient) { + (async () => { + this.uploadMatrixClient.startClient({initialSyncLimit: 1}); + })(); + } } Searxng.prototype.getFormattedHelp = function() {