I have a very simple plugin I wrote for freevo. below is the plugin. it will shutdown your computer after your avi file has finished playing, kind of like a sleep timer.
#!/usr/bin/env python import os import time import commands import thread import plugin from gui.PopupBox import PopupBox from gui.ConfirmBox import ConfirmBox class PluginInterface(plugin.ItemPlugin): """ this plugin will power down your system using the command "shutdown -h now" after your avi file has finished. you can enable it by adding this to your local conf file plugin.activate('video.autoshutdown') """ def __init__(self): plugin.ItemPlugin.__init__(self) def actions(self, item): self.item = item if item.type == 'video': return [ (self.confirm_start_timer, 'engage autoshutoff') ] else: return  def confirm_start_timer(self, arg=None, menuw=None): ConfirmBox(text=_('engage autoshutoff for the following avi file\n\ "%s"') % self.item.name, handler=self.start_timer, default_choice=1).show() def start_timer(self, arg=None, menuw=None): box = PopupBox(text=_('you must start your avi file within ' \ 'one minute to prevent the shutdown' \ ' to begin' )) box.show() time.sleep(6) box.destroy() thread.start_new_thread(self.run_timer,()) def run_timer(self): while True: time.sleep(60) if commands.getoutput('ps -ewf').__contains__(self.item.filename)== False: os.system('shutdown -h now') break
the run_timer method is started as a new thread using this line of code
the run timer_method checks at an interval of every minute to see if an avi file is playing, if the avi is no longer playing, it will send the computer the shutdown command. I would like to be able to abort the shutdown if possible. Is their a way to kill the thread that I started, maybe some sort of kill method?