Adding image source & requester to event json
This commit is contained in:
45
index.js
45
index.js
@@ -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 + "\"");
|
||||||
|
Reference in New Issue
Block a user