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