diff --git a/README.md b/README.md index 693f80b..deda5c1 100644 --- a/README.md +++ b/README.md @@ -28,6 +28,7 @@ dependancies. - lua 5.2 +- libfreetype6-dev (ubuntu) - youtube-dl - ffmpeg - vlc (temporary) @@ -216,5 +217,8 @@ Thanks! [5]: http://sourceforge.net/projects/iup/files/ [6]: http://sourceforge.net/projects/canvasdraw/files/ [7]: http://sourceforge.net/projects/imtoolkit/files/ + + + diff --git a/ffmpeg_progress.lua b/ffmpeg_progress.lua index ef26a8b..811ac88 100644 --- a/ffmpeg_progress.lua +++ b/ffmpeg_progress.lua @@ -1,62 +1,47 @@ --- take note of YtLink, I keep passing it around in order to show it as the title bar --- of the download window, YOU WILL HAVE TO PAY ATTENTION TO IT --- IT GOES THROUGH FUCKING EVERYTHING --- Also it will be replaced by what the user saves the file as --- keep that in mind as well require ('iuplua') -local cancelflag --set variable -local downloadProgress --set variable +local cancelflag +local downloadProgress -local function downloadStart(YtLink) --create button and cancle flag +local function downloadStart(YtLink) cancelButton = iup.button{ title = "Cancel", action = function() cancelflag = true - - --return iup.CLOSE --not sure if needed - - end + end } local downloadProgress = iup.progressbar{expand="HORIZONTAL", MARQUEE="YES"} - local dlgProgress = iup.dialog{ --create main window - title = YtLink, + local dlgProgress = iup.dialog{ + title = "converting", dialogframe = "YES", border = "YES", - iup.vbox { -- create vbox that contains said objects + iup.vbox { downloadProgress, cancelButton, } } - dlgProgress.size = "QUARTERxEIGHT" --should be size of dialog box - -- dlgProgress.menubox = "NO" -- no windows menus - dlgProgress.close_cb = cancelButton.action -- calls the action of the button - dlgProgress:showxy(iup.CENTER, iup.CENTER) -- show and position box + dlgProgress.size = "QUARTERxEIGHT" + dlgProgress.menubox = "NO" + dlgProgress.close_cb = cancelButton.action + dlgProgress:showxy(iup.CENTER, iup.CENTER) return dlgProgress end -local function DL_progress(YtLink) -- monitor download progress - downloadStart(YtLink) -- start the progress bar - -- downloadProgress.value = 0 - -- local pipe = io.popen(YtLink) - os.execute(YtLink) - --[[repeat - local c = pipe:read() -- read the first 20 characters of each line - if c then -- if c is true then... +local function DL_progress(YtLink) + downloadStart() + local pipe = io.popen(YtLink) + --os.execute(YtLink) + + repeat + local c = pipe:read() + if c then - --downloadProgress.value = c/100 -- x out of 100 - -- in this case x is the progress - -- data we grabbed - iup.Flush() -- speeds everything up considerably - -- when changing an attribute of an element, the change may not - -- take place immediately - -- in that case throw in a flush after the change + iup.Flush() - iup.LoopStep() -- required to work, also allows user to click button - iup.Flush() -- added this second flush... helps a shit ton - if cancelflag then -- if cancelflag is true, then break - -- which happens if you click the button + iup.LoopStep() + iup.Flush() + if cancelflag then iup.Message("Terminated", "You have canceled the conversion") iup.Flush() @@ -69,21 +54,16 @@ local function DL_progress(YtLink) -- monitor download progress -until not c-- creating a loop until c is not true -pipe:close() -- closing the ipopen--]] +until not c +pipe:close() iup.Close() +return end convert_mp3 = {} convert_mp3.go = function(tubeLink) DL_progress(tubeLink) + return end ---if you can have your script call this one and insert the link to YtLink... win - ---local YtLink = ('http://www.youtube.com/watch?v=jrmlums5bV8') - - ---DL_progress( YtLink) - diff --git a/main.lua b/main.lua index 4b3e63d..8aa72d6 100755 --- a/main.lua +++ b/main.lua @@ -3,6 +3,10 @@ require("mandy") function main() local url=global.url() + if not url then + + return false + end -- codec=sel_Codec() local saveDir=global.dir() if saveDir == "23" then diff --git a/mandy.lua b/mandy.lua index ba3e591..210f05b 100644 --- a/mandy.lua +++ b/mandy.lua @@ -9,22 +9,30 @@ require('progress') + --Main url entry box function url_entry() -res, url = iup.GetParam("Mandy 0.2 - Enter URL", nil, +res, url = iup.GetParam("Mandy 0.2 - Enter URL", nil, "Enter Youtube URL: %s\n", "") - if string.match(url, "youtube.com/watch") then - return url + + if res == true then + if string.match(url, "youtube.com/watch") then + return url + else + iup.Message("Error", "The URL is not a youtube link") + iup.Flush() + iup.Close() + end + + else - iup.Message("Error", "The URL is not a youtube link") - iup.Flush() - iup.Close() - + return false end - + + end @@ -97,8 +105,8 @@ function ffmpeg(tmpPath, dirD) local mp3 = "ffmpeg -i "..tmpPath.." -acodec libmp3lame -ac 2 -ab 192k -vn -y "..dirD os.execute(mp3) - -- convert_mp3.go(mp3) - io.popen("notify-send 'File saved to' "..dirD) + convert_mp3.go(mp3) + io.popen("vlc "..dirD) end --put everything into a table to use local functions globally diff --git a/progress.lua b/progress.lua index 321f358..2a55bd5 100644 --- a/progress.lua +++ b/progress.lua @@ -91,7 +91,7 @@ round up and only update if number has changed until not c-- creating a loop until c is not true pipe:close() -- closing the ipopen -iup.Close() +--iup.Close() end popin = {}