Lua: end MPV at a time












1















Using MPV I want a Lua script to end playback of a stream at the end of a show but my script does nothing at the time I set it to.



curtime = os.date("!%H:%M:%S")
endtime = "00:30:00"

if ( curtime == endtime )
then mp.command("quit")
end









share|improve this question























  • Share the full code

    – Loss of human identity
    Jan 2 at 0:54











  • Is the intent for the curtime to be UTC? so your stream ends at 12:30 am UTC.

    – Nifim
    Jan 2 at 23:21
















1















Using MPV I want a Lua script to end playback of a stream at the end of a show but my script does nothing at the time I set it to.



curtime = os.date("!%H:%M:%S")
endtime = "00:30:00"

if ( curtime == endtime )
then mp.command("quit")
end









share|improve this question























  • Share the full code

    – Loss of human identity
    Jan 2 at 0:54











  • Is the intent for the curtime to be UTC? so your stream ends at 12:30 am UTC.

    – Nifim
    Jan 2 at 23:21














1












1








1








Using MPV I want a Lua script to end playback of a stream at the end of a show but my script does nothing at the time I set it to.



curtime = os.date("!%H:%M:%S")
endtime = "00:30:00"

if ( curtime == endtime )
then mp.command("quit")
end









share|improve this question














Using MPV I want a Lua script to end playback of a stream at the end of a show but my script does nothing at the time I set it to.



curtime = os.date("!%H:%M:%S")
endtime = "00:30:00"

if ( curtime == endtime )
then mp.command("quit")
end






lua mpv






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked Jan 2 at 0:41









jake9wijake9wi

62




62













  • Share the full code

    – Loss of human identity
    Jan 2 at 0:54











  • Is the intent for the curtime to be UTC? so your stream ends at 12:30 am UTC.

    – Nifim
    Jan 2 at 23:21



















  • Share the full code

    – Loss of human identity
    Jan 2 at 0:54











  • Is the intent for the curtime to be UTC? so your stream ends at 12:30 am UTC.

    – Nifim
    Jan 2 at 23:21

















Share the full code

– Loss of human identity
Jan 2 at 0:54





Share the full code

– Loss of human identity
Jan 2 at 0:54













Is the intent for the curtime to be UTC? so your stream ends at 12:30 am UTC.

– Nifim
Jan 2 at 23:21





Is the intent for the curtime to be UTC? so your stream ends at 12:30 am UTC.

– Nifim
Jan 2 at 23:21












1 Answer
1






active

oldest

votes


















0














I suggest changing your code to evaluate the epoch time, this way you can evaluate time as a numeric value.



endtime = endtime or os.time() + 3600 -- add the expected stream duration in seconds.
curtime = os.time()

if (curtime >= endtime) then
mp.command("quit")
end


Your example has only 1 second in time where the if statement is true. While 1 second is a long time for a computer, it is possible to miss a window defined so absolutely. If your code has points where it may sleep or wait for a long time you can miss the window from that alone.



Here in my example the stream is set to end 1 hour after the first time this section of code is run, this is represented by the 3600 seconds i added to os.time().



Once the current time is equal to or greater than that increase of 3600 seconds the if statement condition will be true and the quit command should be sent.






share|improve this answer

























    Your Answer






    StackExchange.ifUsing("editor", function () {
    StackExchange.using("externalEditor", function () {
    StackExchange.using("snippets", function () {
    StackExchange.snippets.init();
    });
    });
    }, "code-snippets");

    StackExchange.ready(function() {
    var channelOptions = {
    tags: "".split(" "),
    id: "1"
    };
    initTagRenderer("".split(" "), "".split(" "), channelOptions);

    StackExchange.using("externalEditor", function() {
    // Have to fire editor after snippets, if snippets enabled
    if (StackExchange.settings.snippets.snippetsEnabled) {
    StackExchange.using("snippets", function() {
    createEditor();
    });
    }
    else {
    createEditor();
    }
    });

    function createEditor() {
    StackExchange.prepareEditor({
    heartbeatType: 'answer',
    autoActivateHeartbeat: false,
    convertImagesToLinks: true,
    noModals: true,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: 10,
    bindNavPrevention: true,
    postfix: "",
    imageUploader: {
    brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
    contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
    allowUrls: true
    },
    onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    });


    }
    });














    draft saved

    draft discarded


















    StackExchange.ready(
    function () {
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f54000078%2flua-end-mpv-at-a-time%23new-answer', 'question_page');
    }
    );

    Post as a guest















    Required, but never shown

























    1 Answer
    1






    active

    oldest

    votes








    1 Answer
    1






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes









    0














    I suggest changing your code to evaluate the epoch time, this way you can evaluate time as a numeric value.



    endtime = endtime or os.time() + 3600 -- add the expected stream duration in seconds.
    curtime = os.time()

    if (curtime >= endtime) then
    mp.command("quit")
    end


    Your example has only 1 second in time where the if statement is true. While 1 second is a long time for a computer, it is possible to miss a window defined so absolutely. If your code has points where it may sleep or wait for a long time you can miss the window from that alone.



    Here in my example the stream is set to end 1 hour after the first time this section of code is run, this is represented by the 3600 seconds i added to os.time().



    Once the current time is equal to or greater than that increase of 3600 seconds the if statement condition will be true and the quit command should be sent.






    share|improve this answer






























      0














      I suggest changing your code to evaluate the epoch time, this way you can evaluate time as a numeric value.



      endtime = endtime or os.time() + 3600 -- add the expected stream duration in seconds.
      curtime = os.time()

      if (curtime >= endtime) then
      mp.command("quit")
      end


      Your example has only 1 second in time where the if statement is true. While 1 second is a long time for a computer, it is possible to miss a window defined so absolutely. If your code has points where it may sleep or wait for a long time you can miss the window from that alone.



      Here in my example the stream is set to end 1 hour after the first time this section of code is run, this is represented by the 3600 seconds i added to os.time().



      Once the current time is equal to or greater than that increase of 3600 seconds the if statement condition will be true and the quit command should be sent.






      share|improve this answer




























        0












        0








        0







        I suggest changing your code to evaluate the epoch time, this way you can evaluate time as a numeric value.



        endtime = endtime or os.time() + 3600 -- add the expected stream duration in seconds.
        curtime = os.time()

        if (curtime >= endtime) then
        mp.command("quit")
        end


        Your example has only 1 second in time where the if statement is true. While 1 second is a long time for a computer, it is possible to miss a window defined so absolutely. If your code has points where it may sleep or wait for a long time you can miss the window from that alone.



        Here in my example the stream is set to end 1 hour after the first time this section of code is run, this is represented by the 3600 seconds i added to os.time().



        Once the current time is equal to or greater than that increase of 3600 seconds the if statement condition will be true and the quit command should be sent.






        share|improve this answer















        I suggest changing your code to evaluate the epoch time, this way you can evaluate time as a numeric value.



        endtime = endtime or os.time() + 3600 -- add the expected stream duration in seconds.
        curtime = os.time()

        if (curtime >= endtime) then
        mp.command("quit")
        end


        Your example has only 1 second in time where the if statement is true. While 1 second is a long time for a computer, it is possible to miss a window defined so absolutely. If your code has points where it may sleep or wait for a long time you can miss the window from that alone.



        Here in my example the stream is set to end 1 hour after the first time this section of code is run, this is represented by the 3600 seconds i added to os.time().



        Once the current time is equal to or greater than that increase of 3600 seconds the if statement condition will be true and the quit command should be sent.







        share|improve this answer














        share|improve this answer



        share|improve this answer








        edited Jan 3 at 0:05

























        answered Jan 2 at 23:53









        NifimNifim

        49435




        49435
































            draft saved

            draft discarded




















































            Thanks for contributing an answer to Stack Overflow!


            • Please be sure to answer the question. Provide details and share your research!

            But avoid



            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.


            To learn more, see our tips on writing great answers.




            draft saved


            draft discarded














            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f54000078%2flua-end-mpv-at-a-time%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown





















































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown

































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown







            Popular posts from this blog

            Mossoró

            Error while reading .h5 file using the rhdf5 package in R

            Pushsharp Apns notification error: 'InvalidToken'