Adding image source & requester to event json

This commit is contained in:
q
2025-10-15 14:43:51 -04:00
parent 084e91b0bd
commit e032934c50

View File

@@ -33,7 +33,7 @@ const searxngCommands = [
unsafeImageSearchCmd unsafeImageSearchCmd
]; ];
function sendImage(results, resultIndex, roomId, name, searchCommand, retryCount, matrixClient, uploadMatrixClient) { function sendImage(results, resultIndex, roomId, name, searchCommand, retryCount, matrixClient, uploadMatrixClient, requester) {
const resultObj = results[resultIndex] const resultObj = results[resultIndex]
var imageURL; var imageURL;
@@ -54,19 +54,20 @@ function sendImage(results, resultIndex, roomId, name, searchCommand, retryCount
console.debug("[Search text: "+searchCommand+"], "+"[imageURL: "+imageURL+"], "+"[retryCount: "+retryCount+"]"+", [Engine: "+resultObj.engines[0]+"]"+", [content-type: "+imageType+"]"); console.debug("[Search text: "+searchCommand+"], "+"[imageURL: "+imageURL+"], "+"[retryCount: "+retryCount+"]"+", [Engine: "+resultObj.engines[0]+"]"+", [content-type: "+imageType+"]");
const uploadResponse = await uploadMatrixClient.uploadContent(imageResponse.data, { rawResponse: false, type: imageType }); const uploadResponse = await uploadMatrixClient.uploadContent(imageResponse.data, { rawResponse: false, type: imageType });
const matrixUrl = uploadResponse.content_uri; const matrixUrl = uploadResponse.content_uri;
var filename;
switch(imageType) { switch(imageType) {
case "image/jpeg": case "image/jpeg":
case "image/jpg": case "image/jpg":
name = name + ".jpg"; filename = name + ".jpg";
break; break;
case "image/png": case "image/png":
name = name + ".png"; filename = name + ".png";
break; break;
case "image/gif": case "image/gif":
name = name + ".gif"; filename = name + ".gif";
break; break;
case "image/webp": case "image/webp":
name = name + ".webp"; filename = name + ".webp";
break; break;
case "text/html": case "text/html":
case "text/html; charset=UTF-8": case "text/html; charset=UTF-8":
@@ -79,25 +80,45 @@ function sendImage(results, resultIndex, roomId, name, searchCommand, retryCount
case ".jpg": case ".jpg":
case ".jpeg": case ".jpeg":
imageType = "image/jpg"; imageType = "image/jpg";
name = name + ".jpg"; filename = name + ".jpg";
break; break;
case ".png": case ".png":
imageType = "image/png"; imageType = "image/png";
name = name + ".png"; filename = name + ".png";
break; break;
case ".gif": case ".gif":
imageType = "image/gif"; imageType = "image/gif";
name = name + ".gif"; filename = name + ".gif";
break; break;
case ".webp": case ".webp":
imageType = "image/webp"; imageType = "image/webp";
name = name + ".webp"; filename = name + ".webp";
break; break;
} }
break; break;
} }
matrixClient.sendImageMessage(roomId, matrixUrl, {"mimetype": imageType}, name, null); //matrixClient.sendImageMessage(roomId, matrixUrl, {"mimetype": imageType}, name, null);
const content = {
msgtype: "m.image",
body: "\"" + name + "\" Requested by " + requester,
filename: filename,
url: matrixUrl,
requested_by: requester,
image_source: imageURL,
info: {
mimetype: imageType
},
};
matrixClient.sendEvent(roomId, "m.room.message", content);
/*
await client.sendEvent(roomId, "m.room.message", content, "", (err, res) => {
if (err) console.error("Failed to send image:", err);
else console.log("Image sent successfully:", res);
});
*/
matrixClient.sendTyping(roomId, false, 3000); matrixClient.sendTyping(roomId, false, 3000);
} catch (error) { } catch (error) {
retryCount = retryCount + 1; retryCount = retryCount + 1;
@@ -111,7 +132,7 @@ function sendImage(results, resultIndex, roomId, name, searchCommand, retryCount
else { else {
console.warn("Trying next result for '"+searchCommand+"'"); console.warn("Trying next result for '"+searchCommand+"'");
console.error(error); console.error(error);
sendImage(results, resultIndex, roomId, name, searchCommand, retryCount, matrixClient, uploadMatrixClient); sendImage(results, resultIndex, roomId, name, searchCommand, retryCount, matrixClient, uploadMatrixClient, requester);
} }
} }
})(); })();
@@ -224,7 +245,7 @@ Searxng.prototype.handleMessage = function(event, room) {
return; return;
} }
sendImage(results, resultIndex, room.roomId, name, event.getContent().body, 0, matrixClient, uploadMatrixClient); sendImage(results, resultIndex, room.roomId, name, event.getContent().body, 0, matrixClient, uploadMatrixClient, event.getSender());
} }
else { else {
matrixClient.sendNotice(room.roomId, "Error occurred during \"" + event.getContent().body + "\""); matrixClient.sendNotice(room.roomId, "Error occurred during \"" + event.getContent().body + "\"");