diff --git a/README.md b/README.md index 1e90935..ddf0c9f 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,5 @@ -#Mandy - current version: 0.5.0 +#Mandy +###current version: 0.6.0 ##About @@ -215,7 +216,7 @@ Thanks! [1]: http://lua.org [2]: http://www.tecgraf.puc-rio.br/iup/ -[3]: http://i.imgur.com/P2rMTiM.png +[3]: http://i.imgur.com/btD0dJc.png [4]: http://i.imgur.com/1AcLZk6.png [5]: http://sourceforge.net/projects/iup/files/ [6]: http://sourceforge.net/projects/canvasdraw/files/ diff --git a/TODO.txt b/TODO.txt index 35b403a..79d76a1 100644 --- a/TODO.txt +++ b/TODO.txt @@ -2,16 +2,15 @@ TODO: key: + = to add, - = to remove, x = completed, # = comment -xAdd option for multiple audio formats -+Dynamic libraries -+Create custom url entry dialog -+Create dialog asking to play finished file or not -+Fix FFMPEG MARQUEE bar -xMake cancel button exit in url dialog -xFix progress bar cancel button -xDisplay current action in progressbar instead of youtube link itself -xUrl validation -xplace spaces in file name with dashes/underscores -xAppend extensions to file name in save dialog unless exists +x Add option for multiple audio formats ++ Dynamic libraries/package IUP +x Option play file once finished ++ Fix FFMPEG MARQUEE bar +x Make cancel button exit in url dialog +x Fix progress bar cancel button +x Display current action in progressbar instead of youtube link itself +x Url validation +x place spaces in file name with dashes/underscores +x Append extensions to file name in save dialog unless exists +Percentage in progress bar --- not possible with iUP #possibly more later diff --git a/changelog.txt b/changelog.txt index 63406af..7c07b4f 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,7 +1,16 @@ ***CHANGELOG*** +Version 0.6.0 (8-5-13) + +* Set the default settings in 'mandy.cfg' +* Can now select audio bitrate +* Autoremove old video files from /tmp +* Added option to play completed file +- Still unknown bug with 'converting' bar + Version 0.5.0 (7-31-13) + *added audio format selection for mp3. ogg, and flac -autoplay has been removed, users now play files manually diff --git a/main.lua b/main.lua index 4a6bcbd..83ab655 100755 --- a/main.lua +++ b/main.lua @@ -1,4 +1,4 @@ -#!/usr/bin/lua5.2 +#!/usr/bin/env lua require("mandy") dofile("mandy.cfg") function main() diff --git a/mandy.cfg b/mandy.cfg index 5d6ac5c..99ade61 100644 --- a/mandy.cfg +++ b/mandy.cfg @@ -1,6 +1,11 @@ cfg_table = { -format = "ogg" -- 0 for mp3, 1 for ogg, 2 for flac - +--Change default audio format and bitrate within the quotes +--Values for format: mp3, ogg, flac +--Values for bitrate: 320k, 192k, 160k, 128k, 96k + +format = "ogg", +bitrate = "320k", +playFile = "no", } diff --git a/mandy.lua b/mandy.lua index 3f5b719..5e4b2d3 100644 --- a/mandy.lua +++ b/mandy.lua @@ -1,4 +1,4 @@ -#!/usr/bin/lua5.2 +#!/usr/bin/env lua require("iuplua") require("iupluacontrols") @@ -7,24 +7,31 @@ require('ffmpeg_progress') --Main url entry box function url_entry() - local format = sel_format() - + local bitRate = sel_bitrate() local url = "" + local playNow = sel_play() + local changeLog = "* Set the default settings in 'mandy.cfg'\n".. + "* Can now select audio bitrate\n".. + "* Autoremove old video files from /tmp\n".. + "* Added option to play completed file\n".. + "- Still unknown bug with 'converting' bar\n" + - res, url, format = iup.GetParam("Mandy 0.5.0 - Enter URL", nil, + res, url, format, bitRate, playNow, changeLog = iup.GetParam("Mandy 0.6.0 (alpha)", nil, "Enter Youtube URL: %s\n".. - "Select an audio format: %l|mp3|ogg|flac|\n", url, format) - - + "Audio Options %t\n".. + "Select an audio format: %l|mp3|ogg|flac|\n".. + "Select the bitrate: %l|320 kbps|192 kbps|160 kbps|128 kbps|96 kbps|\n".. + "Play file when finished?: %l|no|yes|\n".. + "Changelog: %m\n", + url, format, bitRate, playNow, changeLog) + gPlay = ask_play(playNow) gFormat = sel_Codec(format) + gBitrate = bit_logic(bitRate) if res == true then if string.match(url, "youtube.com/watch") then - - local format_config = io.open("Config.txt", "w") - format_config:write("local format = "..format) - format_config:close() return url else iup.Message("Error", "The URL is not a youtube link") @@ -48,6 +55,26 @@ function sel_format() end end +function sel_bitrate() + local bitrate = cfg_table["bitrate"] + if bitrate == "320k" then return 0 + elseif bitrate == "192k" then return 1 + elseif bitrate == "160k" then return 2 + elseif bitrate == "128k" then return 3 + elseif bitrate == "96k" then return 4 + elseif bitrate == "32k" then return 5 + else return 0 + end +end + +function sel_play() + local playFile = cfg_table["playFile"] + if playFile == "no" then return 0 + elseif playFile == "yes" then return 1 + else return 0 + end +end + --make format dropdown menu items work @@ -68,6 +95,30 @@ function sel_Codec(x) end +function bit_logic(x) + if x == 0 then + local b320k = "320k" + print ("Selected "..b320k) + return b320k + elseif x == 1 then + local b192k = "192k" + print ("Selected "..b192k) + return b192k + elseif x == 2 then + local b160k = "160k" + print ("Selected "..b160k) + return b160k + elseif x == 3 then + local b128k = "128k" + print ("Selected "..b128k) + return b128k + elseif x == 4 then + local b96k = "96k" + print ("Selected "..b96k) + return b96k + end +end + --Ask user to set directory function set_dir() @@ -102,7 +153,7 @@ function ytDl(x) local tmpNameTwo = math.random(0,999999999999) local tmpPath = x.." --output=/tmp/youtube-dl-"..tmpName.."-"..tmpNameTwo..".flv" local tmpPath2 = "/tmp/youtube-dl-"..tmpName.."-"..tmpNameTwo..".flv" - + print(x) local flag = popin.ytdl(tmpPath, tmpPath2) if not flag then return false end @@ -112,18 +163,10 @@ end --optional function to implement autoplay function ask_play(x) - local play = "" - res, play = iup.GetParam("Play now?", nil, - "Do you want to play the file now? %t\n") - - if res == true then - io.popen("notify-send 'The file was saved to' "..x) - io.close() - io.popen("xdg-open "..x) - io.close() - return true - else + if x == 0 then return false + elseif x == 1 then + return true end end @@ -135,17 +178,22 @@ function ffmpeg(tmpPath, dirD) if gFormat == ".ogg" then gFormat = "libvorbis" end if gFormat == ".flac" then gFormat = "flac" end - local subSpaces = string.gsub(dirD, " ", "\\ ") - local codec = "ffmpeg -i "..tmpPath.." -acodec "..gFormat.." -ac 2 -ab 192k -vn -y "..subSpaces + local codec = "ffmpeg -i "..tmpPath.." -acodec "..gFormat.." -ac 2 -ab "..gBitrate.." -vn -y "..subSpaces - print(format) + print(format) --debug purposes local flag = convert_mp3.go(codec, tmpPath) if not flag then return false end - --end - --io.popen("notify-send 'The file was saved to' "..subSpaces) - ask_play(subSpaces) + io.popen("notify-send 'The file was saved to' "..subSpaces) + io.close() + if gPlay == true then + io.popen("xdg-open "..subSpaces) + io.close() + + elseif gPlay == false then + print ("You chose not to open the file") + end end --put everything into a table to use local functions globally