Advertisement
Cool_boy21

telltext

Oct 28th, 2017
141
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function tellText(msg, text, language, speed) {
  2.     var chatId = msg.chat.id;
  3.  
  4.     if (text.length > 200) {
  5.         bot.sendMessage(chatId, "Розмір тексту не повинен перевищувати 200 символів. (" + text.length + ")");
  6.         return;
  7.     }
  8.  
  9.     bot.sendChatAction(chatId, "record_audio");
  10.     googleTTS(text, language, speed) // speed normal = 1 (default), slow = 0.24
  11.         .then(function(url) {
  12.             /*bot.sendAudio(chatId, url);
  13.             return;*/
  14.             var prefix = __dirname + "/temp/";
  15.             var input = "file_" + fileId + ".mp3";
  16.             var output = "ogg_" + fileId + ".ogg";
  17.            
  18.             var surl = URL.parse(url);
  19.            
  20.             var options = {
  21.                 host: surl.host,
  22.                 path: surl.path,
  23.                 "rejectUnauthorized": false
  24.             };
  25.            
  26.             try {
  27.                 fs.unlinkSync(prefix + input);
  28.                 fs.unlinkSync(prefix + output);
  29.             } catch(error) {};
  30.            
  31.             var file = fs.createWriteStream(prefix + input);
  32.             var request = https.get(options, function(response) {
  33.                 response.pipe(file);
  34.                
  35.                 response.on('end', function() {
  36.                    
  37.                 var exec = require('child_process').exec;
  38.                 exec('avconv -y -acodec mp3float -i ' + input + ' -codec:a opus ' + output, {
  39.                     cwd: prefix
  40.                 }, function(error, stdout, stderr) {
  41.                     if (error instanceof Error) {
  42.                         logger.error(error);
  43.                         bot.sendMessage(chatId, "Сталася помилка!");
  44.                     }
  45.                     bot.sendVoice(chatId, prefix + output, {
  46.                         caption: text
  47.                     });
  48.                     info(msg, "Озвучує: " + msg.text + " | Посилання: " + url);
  49.                    
  50.                     if(chatId<0) {
  51.                         bot.deleteMessage(chatId, msg.id);
  52.                     }
  53.                    
  54.                     setTimeout(function() {
  55.                         try {
  56.                             fs.unlinkSync(prefix + input);
  57.                             fs.unlinkSync(prefix + output);
  58.                         } catch (err) {
  59.                             logger.error(error.stack);
  60.                         }
  61.                     }, 10000);
  62.                     fileId++;
  63.                 });
  64.                 });
  65.             });
  66.             /*bot.sendAudio(chatId, url, {title: text, performer : "playcraft", reply_to_message_id: msg.message_id});*/
  67.         }).catch(function(err) {
  68.             logger.error(err.stack);
  69.         });
  70. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement