|
|
|
@ -17,12 +17,11 @@ import { dirname }
|
|
|
|
|
from 'path';
|
|
|
|
|
import request from 'request';
|
|
|
|
|
import FileType from 'file-type';
|
|
|
|
|
import readChunk from 'read-chunk';
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Load settings from config.json
|
|
|
|
|
const __filename = fileURLToPath(import.meta.url);
|
|
|
|
|
const __dirname = dirname(__filename);
|
|
|
|
|
const __dirname = dirname(__filename);
|
|
|
|
|
let rawdata = fs.readFileSync(__dirname + '/config.json');
|
|
|
|
|
let settings = JSON.parse(rawdata);
|
|
|
|
|
console.log(__dirname + "/config.json loaded.");
|
|
|
|
@ -130,26 +129,28 @@ function getAndUploadFile(url, callback) {
|
|
|
|
|
logger.info("Downloading MMS media " + url);
|
|
|
|
|
// download
|
|
|
|
|
request({url, encoding: null}, (err, resp, buffer) => {
|
|
|
|
|
const buffer = readChunk.sync(buffer, 0, 4100);
|
|
|
|
|
var mimetype = (await FileType.fromBuffer(buffer)).mime;
|
|
|
|
|
// upload
|
|
|
|
|
logger.info("Uploading MMS media to Matrix " + url);
|
|
|
|
|
client.uploadContent(buffer, {
|
|
|
|
|
onlyContentUri: true,
|
|
|
|
|
rawResponse: false
|
|
|
|
|
}).then((res) => {
|
|
|
|
|
if (typeof callback == "function") {
|
|
|
|
|
callback(res, mimetype);
|
|
|
|
|
logger.info("Media URI: " + res);
|
|
|
|
|
}
|
|
|
|
|
}).catch((err) => {
|
|
|
|
|
if (typeof callback == "function") {
|
|
|
|
|
callback(false);
|
|
|
|
|
}
|
|
|
|
|
if (err.data.error == "Unknown room") {
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
logger.error(err);
|
|
|
|
|
FileType.fromBuffer(buffer).then(function (mimeobj) {
|
|
|
|
|
logger.debug(mimeobj);
|
|
|
|
|
// upload
|
|
|
|
|
logger.info("Uploading MMS media to Matrix " + url);
|
|
|
|
|
client.uploadContent(buffer, {
|
|
|
|
|
onlyContentUri: true,
|
|
|
|
|
rawResponse: false,
|
|
|
|
|
type: mimeobj.mime
|
|
|
|
|
}).then((res) => {
|
|
|
|
|
if (typeof callback == "function") {
|
|
|
|
|
callback(res, mimeobj.mime);
|
|
|
|
|
logger.info("Media URI: " + res);
|
|
|
|
|
}
|
|
|
|
|
}).catch((err) => {
|
|
|
|
|
if (typeof callback == "function") {
|
|
|
|
|
callback(false);
|
|
|
|
|
}
|
|
|
|
|
if (err.data.error == "Unknown room") {
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
logger.error(err);
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|