$ git clone http://tcclient.ion.nu/tc_client.git
commit 3b1ef2eb4a87f511e61a0073af1c325332170e7f
Author: Alicia <...>
Date:   Wed May 27 15:45:56 2015 +0200

    modbot: make sure we don't skip over an unapproved video in queue before the 2 minutes are up.

diff --git a/ChangeLog b/ChangeLog
index 960efce..3f2aaaa 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -6,6 +6,7 @@ tc_client-gtk: ignore anything after the offset in /mbs commands.
 tc_client-gtk: when camming down, remove the glib event source for our cam stream.
 tc_client-gtk: send the cam stream to tc_client from the main process instead of from the cam child process to avoid potential overlap of writes.
 modbot: for !badvid, only play the next video if the one we marked as bad was the currently playing video.
+modbot: make sure we don't skip over an unapproved video in queue before the 2 minutes are up.
 0.31:
 Fixed the issue where messages would show up on kanji on some platforms (a proper fix instead of the earlier android & apple workaround)
 When a message is sent with a privacy field, send it once with 'b' (broadcasting) and once with 'n' (not-broadcasting)
diff --git a/utilities/modbot/modbot.c b/utilities/modbot/modbot.c
index e5705f6..6986ce6 100644
--- a/utilities/modbot/modbot.c
+++ b/utilities/modbot/modbot.c
@@ -135,6 +135,7 @@ unsigned int getduration(const char* vid)
 }
 
 unsigned int waitskip=0;
+time_t waitskiptime=0;
 void playnextvid()
 {
   waitskip=0;
@@ -167,12 +168,14 @@ void playnext(int x)
         if(list_contains(&goodvids, queue.items[i].video))
         {
           waitskip=i;
+          waitskiptime=time(0)+120;
           alarm(120);
           break;
         }
       }
       return;
     }else{
+      if(time(0)<waitskiptime){return;} // Not time yet
       say(0, "Skipping http://youtube.com/watch?v=%s because it is still not approved after 2 minutes\n", queue.items[0].video);
       queue_movetofront(&queue, waitskip);
       waitskip=0;
@@ -389,7 +392,7 @@ int main(int argc, char** argv)
               say(pm, "Video '%s' (%s) is added to the queue but will need to be approved by a mod\n", vid, title);
             }
           }
-          else if(!playing){playnext(0);}
+          else if(!playing && !waitskip){playnext(0);}
           else{say(pm, "Added '%s' to queue, it has already been approved\n", title);}
         }
         // Undo