Script simples para receber imagens do seu DVR no Telegram.
Para criar seu bot no Telegram siga os passos do link.
Obs: Corrigido problema em que a imagem era apagada antes de ser enviada.
var fs = require('fs');
const https = require('https');
const {SMTPServer} = require('smtp-server');
const parser = require("mailparser").simpleParser
const { Telegraf } = require('telegraf')
const BOT_TOKEN = 'SEU TOKEN';
const chatId = 'SEU TELEGRAM CHAT ID'; //id do canal
const app = new Telegraf(BOT_TOKEN);
console.log('Sistema Iniciado!')
app.telegram.sendMessage(chatId, 'BOT INICIADO!');
const server = new SMTPServer({
disabledCommands: ['STARTTLS'],
authMethods: ['PLAIN', 'LOGIN', 'CRAM-MD5'],
logger: false,
onAuth(auth, session, callback) {
let username = 'santiago';
let password = 'santiago';
if (
auth.username === username &&
(auth.method === 'CRAM-MD5'
? auth.validatePassword(password)
: auth.password === password)
) {
return callback(null, {
user: 'userdata'
});
}
return callback(new Error('Falha ao autenticar'));
},
onData(stream, session, callback){
parser(stream, {}, (err, parsed) => {
function myFunction(item) {
fs.writeFile('img/'+item.filename, item.content, (err) => {
if (err)
console.log(err);
else {
console.log("Arquivo "+item.filename+" salvo\n");
//console.log("Erro ao salvar imagem");
app.telegram.sendPhoto(chatId, { source: 'img/'+item.filename }).then(function(data){
console.log(data);
fs.unlink('img/'+item.filename, (err) => {
if (err) {
console.error(err)
return
}
//file removed
})
});
}
});
//app.telegram.sendPhoto(chatId, { source: 'img/'+item.filename })
}
if (err)
console.log("Error:" , err)
//console.log(parsed)
console.log(parsed)
//let img = encodeURI(parsed.attachments);
let fix = encodeURI(parsed.text);
if(parsed.attachments.length > 0){
parsed.attachments.forEach(myFunction)
let envia = app.telegram.sendMessage(chatId, parsed.text);
console.log(envia);
}else{
let envia = app.telegram.sendMessage(chatId, parsed.text);
console.log(envia);
}
console.log('DEBUG::: '+parsed.subject)
stream.on("end", callback)
})
stream.pipe(process.stdout); // print message to console
stream.on('end', callback);
},
});
server.listen(587, 'SEUIP');

Comentários