Author: duncan
Date: Sun Jan 28 15:21:18 2007
New Revision: 9061

Modified:
   branches/rel-1/freevo/src/item.py
   branches/rel-1/freevo/src/plugins/file_ops.py
   branches/rel-1/freevo/src/tv/plugins/ivtv_xine_tv.py
   branches/rel-1/freevo/src/tv/tvguide.py

Log:
[ 1645645 ] Protect numeric input from alphabetic input
Patch from Justin Wetherell applied.


Modified: branches/rel-1/freevo/src/item.py
==============================================================================
--- branches/rel-1/freevo/src/item.py   (original)
+++ branches/rel-1/freevo/src/item.py   Sun Jan 28 15:21:18 2007
@@ -47,6 +47,7 @@
     def __init__(self):
         self.files     = []
         self.fxd_file  = ''
+        self.edl_file  = ''
         self.image     = ''
         self.read_only = False
 
@@ -55,6 +56,7 @@
         s = '\nitem:FileInformation:s:'
         s += ' files=%r' % self.files
         s += ' fxd_file=%r' % self.fxd_file
+        s += ' edl_file=%r' % self.edl_file
         s += ' image=%r' % self.image
         s += ' read_only=%r' % self.read_only
         s += ' dir(self)=%r' % dir(self)
@@ -65,6 +67,7 @@
         s = '\nitem:FileInformation:r:'
         s += ' files=%r' % self.files
         s += ' fxd_file=%r' % self.fxd_file
+        s += ' edl_file=%r' % self.edl_file
         s += ' image=%r' % self.image
         s += ' read_only=%r' % self.read_only
         #s += ' dir(self)=%r' % dir(self)
@@ -84,7 +87,7 @@
 
 
     def copy(self, destdir):
-        for f in self.files + [ self.fxd_file, self.image ]:
+        for f in self.files + [ self.fxd_file, self.image, self.edl_file ]:
             if f:
                 if vfs.isoverlay(f):
                     d = vfs.getoverlay(destdir)
@@ -100,7 +103,7 @@
 
 
     def move(self, destdir):
-        for f in self.files + [ self.fxd_file, self.image ]:
+        for f in self.files + [ self.fxd_file, self.image, self.edl_file ]:
             if f:
                 if vfs.isoverlay(f):
                     d = vfs.getoverlay(destdir)
@@ -116,7 +119,7 @@
 
 
     def delete(self):
-        for f in self.files + [ self.fxd_file, self.image ]:
+        for f in self.files + [ self.fxd_file, self.image, self.edl_file ]:
             if not f:
                 continue
             if os.path.isdir(f) and not os.path.islink(f):
@@ -250,6 +253,12 @@
                 elif self.parent and self.parent.type != 'dir':
                     self.image = util.getimage(os.path.dirname(self.filename)+\
                                                '/cover', self.image)
+            if config.REMOVE_COMMERCIALS:
+               edlBase=self.filename[:self.filename.rfind('.')]
+               edlFile=edlBase+".edl"
+               self.edl_file=edlFile
+               _debug_('EDL: %s'%(edlFile))
+               self.files.edl_file=edlFile
             self.mimetype = self.filename[self.filename.rfind('.')+1:].lower()
             if info:
                 self.info = mediainfo.get(self.filename)

Modified: branches/rel-1/freevo/src/plugins/file_ops.py
==============================================================================
--- branches/rel-1/freevo/src/plugins/file_ops.py       (original)
+++ branches/rel-1/freevo/src/plugins/file_ops.py       Sun Jan 28 15:21:18 2007
@@ -43,6 +43,8 @@
     def config(self):
         return [ ('FILE_OPS_ALLOW_DELETE_IMAGE', True,
                   'Add delete image to the menu.'),
+                 ('FILE_OPS_ALLOW_DELETE_EDL', True,
+                  'Add delete edl to the menu.'),
                  ('FILE_OPS_ALLOW_DELETE_INFO', True,
                   'Add delete info to the menu.') ]
 
@@ -63,6 +65,8 @@
                 items.append((self.confirm_delete, _('Delete'), 'delete'))
             if item.files.fxd_file and config.FILE_OPS_ALLOW_DELETE_INFO:
                 items.append((self.confirm_info_delete, _('Delete info'), 
'delete_info'))
+            if item.files.edl_file and config.FILE_OPS_ALLOW_DELETE_EDL:
+                items.append((self.confirm_edl_delete, _('Delete edl'), 
'delete_edl'))
             if item.files.image and config.FILE_OPS_ALLOW_DELETE_IMAGE:
                 items.append((self.confirm_image_delete, _('Delete image'), 
'delete_image'))
         return items
@@ -79,6 +83,11 @@
         ConfirmBox(text=_('Delete info about\n \'%s\'?') % self.item.name,
                    handler=self.delete_info, default_choice=1).show()
 
+    def confirm_edl_delete(self, arg=None, menuw=None):
+        self.menuw = menuw
+        ConfirmBox(text=_('Delete edl about\n \'%s\'?') % self.item.name,
+                   handler=self.delete_edl, default_choice=1).show()
+
     def confirm_image_delete(self, arg=None, menuw=None):
         self.menuw = menuw
         ConfirmBox(text=_('Delete image about\n \'%s\'?') % self.item.name,
@@ -97,10 +106,16 @@
 
     def delete_info(self):
         self.safe_unlink(self.item.files.image)
+        self.safe_unlink(self.item.files.edl_file)
         self.safe_unlink(self.item.files.fxd_file)
         if self.menuw:
             self.menuw.delete_submenu(True, True)
 
+    def delete_edl(self):
+        self.safe_unlink(self.item.files.edl_file)
+        if self.menuw:
+            self.menuw.delete_submenu(True, True)
+
     def delete_image(self):
         self.safe_unlink(self.item.files.image)
         if self.item.parent:

Modified: branches/rel-1/freevo/src/tv/plugins/ivtv_xine_tv.py
==============================================================================
--- branches/rel-1/freevo/src/tv/plugins/ivtv_xine_tv.py        (original)
+++ branches/rel-1/freevo/src/tv/plugins/ivtv_xine_tv.py        Sun Jan 28 
15:21:18 2007
@@ -239,35 +239,29 @@
                 self.tuner.PrevChannel()
 
             else:
-
-                # tune explicit channel
-                newinput_value = int(s_event[6])
-                newinput_time = int(time.time())
-
-                if (self.lastinput_value != None):
-
-                    # allow 2 seconds delay for multiple digit channels
-
-                    if (newinput_time - self.lastinput_time < 2):
-
+               eventInput=s_event[6]
+               isNumeric=TRUE
+               try:
+                  newinput_value = int(eventInput)
+               except:
+                  #Protected against INPUT_UP, INPUT_DOWN, etc
+                  isNumeric=FALSE
+               if isNumeric:
+                  # tune explicit channel
+                  newinput_time = int(time.time())
+                  if (self.lastinput_value != None):
+                     # allow 2 seconds delay for multiple digit channels
+                     if (newinput_time - self.lastinput_time < 2):
                         # this enables multiple (max 3) digit channel selection
-
                         if (self.lastinput_value >= 100):
-
-                            self.lastinput_value = (self.lastinput_value % 100)
-
+                           self.lastinput_value = (self.lastinput_value % 100)
                         newinput_value = self.lastinput_value * 10 + 
newinput_value
-
-                self.lastinput_value = newinput_value
-                self.lastinput_time = newinput_time
-
-                self.tuner.TuneChannelByNumber(newinput_value)
-
-                if newinput_value > 9:
-
-                    # cancel intermediate channels
-                    self.tuner.UnpushChannel()
-
+                  self.lastinput_value = newinput_value
+                  self.lastinput_time = newinput_time
+                  self.tuner.TuneChannelByNumber(newinput_value)
+                  if newinput_value > 9:
+                     # cancel intermediate channels
+                     self.tuner.UnpushChannel()
             return True
 
 

Modified: branches/rel-1/freevo/src/tv/tvguide.py
==============================================================================
--- branches/rel-1/freevo/src/tv/tvguide.py     (original)
+++ branches/rel-1/freevo/src/tv/tvguide.py     Sun Jan 28 15:21:18 2007
@@ -197,24 +197,30 @@
 
         if str(event).startswith("INPUT_"):
             # tune explicit channel
-            newinput_value = int(str(event)[6])
-            newinput_time = int(time.time())
-            if (self.lastinput_value != None):
-                # allow 2 seconds delay for multiple digit channels
-                if (newinput_time - self.lastinput_time < 2):
-                    # this enables multiple (max 3) digit channel selection
-                    if (self.lastinput_value >= 100):
-                        self.lastinput_value = (self.lastinput_value % 100)
-                    newinput_value = self.lastinput_value * 10 + newinput_value
-            self.lastinput_value = newinput_value
-            self.lastinput_time = newinput_time
-            for c in self.guide.chan_list:
-                if int(c.tunerid) == int(newinput_value):
-                    self.start_channel = c.id
-                    break
-            print ('%s %s %s %s'%(self.start_time, self.stop_time, 
self.start_channel, self.selected))
-            self.rebuild(self.start_time, self.stop_time, self.start_channel, 
self.selected)
-            self.menuw.refresh()
+            eventInput=str(event)[6]
+            isNumeric=TRUE
+            try:
+               newinput_value = int(eventInput)
+            except:
+               #Protected against INPUT_UP, INPUT_DOWN, etc
+               isNumeric=FALSE
+            if isNumeric:
+               newinput_time = int(time.time())
+               if (self.lastinput_value != None):
+                   # allow 2 seconds delay for multiple digit channels
+                   if (newinput_time - self.lastinput_time < 2):
+                       # this enables multiple (max 3) digit channel selection
+                       if (self.lastinput_value >= 100):
+                           self.lastinput_value = (self.lastinput_value % 100)
+                       newinput_value = self.lastinput_value * 10 + 
newinput_value
+               self.lastinput_value = newinput_value
+               self.lastinput_time = newinput_time
+               for c in self.guide.chan_list:
+                   if int(c.tunerid) == int(newinput_value):
+                       self.start_channel = c.id
+                       break
+               self.rebuild(self.start_time, self.stop_time, 
self.start_channel, self.selected)
+               self.menuw.refresh()
  
         elif event == MENU_SELECT or event == PLAY:
 

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Freevo-cvslog mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/freevo-cvslog

Reply via email to