diff --git a/miku/plugins/reverse_video.lua b/miku/plugins/reverse_video.lua new file mode 100644 index 0000000..25f546a --- /dev/null +++ b/miku/plugins/reverse_video.lua @@ -0,0 +1,57 @@ +local reverse_video = {} + +reverse_video.triggers = { + "^/reverse$" +} + +function reverse_video:action(msg, config) + -- Check if there is really a video + if msg.reply_to_message then -- answer + if not msg.reply_to_message.document then + -- print('Kein Dokument in Antwort') + return + end + if msg.reply_to_message.document.mime_type ~= "video/mp4" then + -- print('Kein Video in Antwort') + return + end + file_size = msg.reply_to_message.document.file_size + file_id = msg.reply_to_message.document.file_id + else -- caption/command + if not msg.document then + -- print('Kein Dokument') + return + end + if msg.document.mime_type ~= "video/mp4" then + -- print('Kein Video') + return + end + file_size = msg.document.file_size + file_id = msg.document.file_id + end + + if file_size > 19922944 then + print('Datei ist größer als 20 MB :(') + return msg + end + + local request = bindings.request('getFile', { + file_id = file_id + } ) + + if not request then + print('getFile() fehlgeschlagen!') + return + end + + local url = 'https://api.telegram.org/file/bot'..config.bot_api_key..'/'..request.result.file_path + local file_raw = download_to_file(url, 'video.mp4') + print('Konvertiere GIF...') + local cmd = run_command('ffmpeg -loglevel error -i '..file_raw..' -vf reverse /tmp/reversed.mp4 -y') + local file = '/tmp/reversed.mp4' + + utilities.send_typing(msg.chat.id, 'upload_document') + utilities.send_video(msg.chat.id, file, nil, msg.message_id) +end + +return reverse_video \ No newline at end of file