Author: duncan
Date: Thu Feb 28 13:42:19 2008
New Revision: 10453
Log:
[ 1903519 ] moviecovers plugin needs unzip
Fix applied
Modified:
branches/rel-1-7/freevo/ChangeLog
branches/rel-1-7/freevo/src/setup_freevo.py
branches/rel-1-7/freevo/src/video/plugins/moviecovers.py
branches/rel-1/freevo/ChangeLog
branches/rel-1/freevo/src/setup_freevo.py
branches/rel-1/freevo/src/video/plugins/moviecovers.py
Modified: branches/rel-1-7/freevo/ChangeLog
==============================================================================
--- branches/rel-1-7/freevo/ChangeLog (original)
+++ branches/rel-1-7/freevo/ChangeLog Thu Feb 28 13:42:19 2008
@@ -31,6 +31,7 @@
* Fixed audioscrobbler plug-in not sending songs to last.fm (B#1902461)
* Fixed cdbackup plug-in to allow empty parameters (B#1889068)
* Fixed ivtv_xine_tv plug-in encoding of OSD messages (B#1893373)
+ * Fixed moviecovers plug-in proceeding when unzip is not installed (B#1903519)
* Fixed rom_drives plug-in crashing when toggling the eject/close drive
(B#1890647)
* Fixed the main program to cause a crash when local_conf.py is invalid
(B#1886624)
* Fixed web servers encoding interface (B#1885914)
Modified: branches/rel-1-7/freevo/src/setup_freevo.py
==============================================================================
--- branches/rel-1-7/freevo/src/setup_freevo.py (original)
+++ branches/rel-1-7/freevo/src/setup_freevo.py Thu Feb 28 13:42:19 2008
@@ -49,28 +49,31 @@
__builtin__.__dict__['_']= lambda m: m
-EXTERNAL_PROGRAMS = (("mplayer", "mplayer", 1),
- ("mencoder", "mencoder", 0),
- ("tvtime", "tvtime", 0),
- ("xine", "xine", 0),
- ("fbxine", "fbxine", 0),
- ("df_xine", "df_xine", 0),
- ("lsdvd", "lsdvd", 0),
- ("jpegtran", "jpegtran", 0),
- ("xmame.x11", "xmame", 0),
- ("xmame.SDL", "xmame", 0),
- ("xmame", "xmame", 0),
- ("ssnes9x", "snes", 0),
- ("zsnes", "snes", 0 ),
- ("lame", "lame", 0),
- ("flac", "flac", 0),
- ("cdparanoia", "cdparanoia", 0),
- ("oggenc", "oggenc", 0),
- ("renice", "renice", 0),
- ("setterm", "setterm", 0),
- ("mpav", "mpav", 0),
- ("vlc", "vlc", 0),
- ("dvdbackup", "dvdbackup", 0))
+EXTERNAL_PROGRAMS = (
+ ("mplayer", "mplayer", 1),
+ ("mencoder", "mencoder", 0),
+ ("tvtime", "tvtime", 0),
+ ("xine", "xine", 0),
+ ("fbxine", "fbxine", 0),
+ ("df_xine", "df_xine", 0),
+ ("lsdvd", "lsdvd", 0),
+ ("jpegtran", "jpegtran", 0),
+ ("xmame.x11", "xmame", 0),
+ ("xmame.SDL", "xmame", 0),
+ ("xmame", "xmame", 0),
+ ("ssnes9x", "snes", 0),
+ ("zsnes", "snes", 0 ),
+ ("lame", "lame", 0),
+ ("flac", "flac", 0),
+ ("cdparanoia", "cdparanoia", 0),
+ ("oggenc", "oggenc", 0),
+ ("renice", "renice", 0),
+ ("setterm", "setterm", 0),
+ ("mpav", "mpav", 0),
+ ("vlc", "vlc", 0),
+ ("dvdbackup", "dvdbackup", 0),
+ ("unzip", "unzip", 0),
+)
# Help text
def print_usage():
Modified: branches/rel-1-7/freevo/src/video/plugins/moviecovers.py
==============================================================================
--- branches/rel-1-7/freevo/src/video/plugins/moviecovers.py (original)
+++ branches/rel-1-7/freevo/src/video/plugins/moviecovers.py Thu Feb 28
13:42:19 2008
@@ -78,6 +78,9 @@
if not config.USE_NETWORK:
self.reason = 'no network'
return
+ if not config.CONF.unzip:
+ self.reason = 'unzip is not installed'
+ return
plugin.ItemPlugin.__init__(self)
def initmyself(self):
@@ -87,7 +90,7 @@
self.image = None # full path image filename
self.image_urls = [] # possible image url list
- self.image_url = None # final image url
+ self.image_url = None # final image url
self.fxdfile = None # filename, full path, WITHOUT extension
@@ -127,7 +130,7 @@
raise FxdMoviecovers_Net_Error("Moviecovers unreachable : " +
error)
exit
- regexp_getall = re.compile('.*<LI><A
href="(/film/titre_.*)">(.*?)</A>.*([0-9]{4}).*', re.I)
+ regexp_getall = re.compile('.*<LI><A
href="(/film/titre_.*)">(.*?)</A>.*([0-9]{4}).*', re.I)
for line in response.read().split("\n"):
#print line
@@ -137,7 +140,7 @@
link = m.group(1)
name = m.group(2)
year = m.group(3)
- self.moviecovers_id_list += [ ( link, name, year, 'Movies' ) ]
+ self.moviecovers_id_list += [ (link, name, year, 'Movies') ]
return self.moviecovers_id_list
@@ -146,13 +149,13 @@
name = filename
for r in config.ALLOCINE_REMOVE_FROM_LABEL:
- name = re.sub(r, '', name.lower())
+ name = re.sub(r, '', name.lower())
- name = vfs.basename(vfs.splitext(name)[0])
- name = re.sub('([a-z])([A-Z])', point_maker, name)
- name = re.sub('([a-zA-Z])([0-9])', point_maker, name)
- name = re.sub('([0-9])([a-zA-Z])', point_maker, name.lower())
- name = re.sub(',', ' ', name)
+ name = vfs.basename(vfs.splitext(name)[0])
+ name = re.sub('([a-z])([A-Z])', point_maker, name)
+ name = re.sub('([a-zA-Z])([0-9])', point_maker, name)
+ name = re.sub('([0-9])([a-zA-Z])', point_maker, name.lower())
+ name = re.sub(',', ' ', name)
parts = re.split("[\._' -]", name)
name = ''
@@ -222,10 +225,10 @@
os.makedirs(vfs.dirname(self.fxdfile))
def moviecovers_get_disc_searchstring(self, item):
- name = item.media.label
- name = re.sub('([a-z])([A-Z])', point_maker, name)
- name = re.sub('([a-zA-Z])([0-9])', point_maker, name)
- name = re.sub('([0-9])([a-zA-Z])', point_maker, name.lower())
+ name = item.media.label
+ name = re.sub('([a-z])([A-Z])', point_maker, name)
+ name = re.sub('([a-zA-Z])([0-9])', point_maker, name)
+ name = re.sub('([0-9])([a-zA-Z])', point_maker, name.lower())
parts = re.split("[\._' -]", name)
name = ''
@@ -242,26 +245,25 @@
self.item = item
if item.type == 'video' and (not item.files or not
item.files.fxd_file):
- if item.mode == 'file' or (item.mode in ('dvd', 'vcd') and \
- item.info.has_key('tracks') and not \
- item.media):
+ if item.mode == 'file' or (item.mode in ('dvd', 'vcd') and
item.info.has_key('tracks')
+ and not item.media):
self.disc_set = False
- return [ ( self.moviecovers_search , _('Search Moviecovers.com
for this file'),
- 'moviecovers_search_or_cover_search') ]
+ return [ (self.moviecovers_search , _('Search Moviecovers.com
for this file'),
+ 'moviecovers_search_or_cover_search') ]
elif item.mode in ('dvd', 'vcd') and item.info.has_key('tracks'):
self.disc_set = True
s = self.moviecovers_get_disc_searchstring(self.item)
if s:
- return [ ( self.moviecovers_search , _('Search
Moviecovers.com for [%s]') % s,
- 'moviecovers_search_or_cover_search') ]
+ return [ (self.moviecovers_search , _('Search
Moviecovers.com for [%s]') % s,
+ 'moviecovers_search_or_cover_search') ]
if item.type == 'dir' and item.media and
item.media.mountdir.find(item.dir) == 0:
self.disc_set = True
s = self.moviecovers_get_disc_searchstring(self.item)
if s:
- return [ ( self.moviecovers_search , _('Search Moviecovers.com
for [%s]') % s,
- 'moviecovers_search_or_cover_search') ]
+ return [ (self.moviecovers_search , _('Search Moviecovers.com
for [%s]') % s,
+ 'moviecovers_search_or_cover_search') ]
return []
@@ -290,7 +292,7 @@
except:
pass
items.append(menu.MenuItem('%s (%s, %s)' %
(htmlenties2txt(name), year, type),
- self.moviecovers_create_fxd, (id,
year)))
+ self.moviecovers_create_fxd, (id, year)))
except:
box.destroy()
box = PopupBox(text=_('Connection error : Probably connection
timeout, try again'))
@@ -473,14 +475,14 @@
def write_fxd_copyright(self, fxd, node):
fxd.setcdata(node, "The information in this file are from
Moviecovers.com.\n"+
"Please visit http://www.moviecovers.com for more
informations.\n")
- fxd.add(fxd.XMLnode('source', [('url', "%s" % self.myurl)] ), node, 0)
+ fxd.add(fxd.XMLnode('source', [('url', "%s" % self.myurl)]), node, 0)
def write_fxd_video(self, fxd, node):
- fxd.setattr(node, 'title', self.title )
- fxd.add(fxd.XMLnode('cover-img', (('source', self.image_url), ("test",
"test")), self.image ), node, 0)
+ fxd.setattr(node, 'title', self.title)
+ fxd.add(fxd.XMLnode('cover-img', (('source', self.image_url), ("test",
"test")), self.image), node, 0)
videonode = fxd.XMLnode('video')
fxd.add(videonode, node)
- fxd.add(fxd.XMLnode('file', [('id', 'f1')],
os.path.basename(self.item.filename) ), videonode, 0)
+ fxd.add(fxd.XMLnode('file', [('id', 'f1')],
os.path.basename(self.item.filename)), videonode, 0)
infonode = fxd.XMLnode('info')
fxd.add(infonode, node)
if self.info:
@@ -524,10 +526,10 @@
self.tmppath = '/tmp/moviecovers/'
self.tmpfile = self.tmppath + 'file.zip'
commands.getstatusoutput('rm -r -f ' + self.tmppath)
- commands.getstatusoutput('mkdir '+ self.tmppath )
+ commands.getstatusoutput('mkdir '+ self.tmppath)
#print "Get : %s " % urllib.quote(urllib.unquote(myurl2))
- commands.getstatusoutput('wget ' +
urllib.quote(urllib.unquote(myurl2)) + ' -O ' + self.tmpfile )
- (status, output) = commands.getstatusoutput('cd '+ self.tmppath+';
unzip -o '+ self.tmpfile )
+ commands.getstatusoutput('wget
'+urllib.quote(urllib.unquote(myurl2))+' -O '+self.tmpfile)
+ (status, output) = commands.getstatusoutput('cd '+self.tmppath+';
'+config.CONF.unzip+' -o '+self.tmpfile)
# Now copy
regexp_jpegfile = re.compile('.*jpg', re.I)
@@ -544,7 +546,7 @@
self.filmfile = self.tmppath + vfs.basename(file)
# Now parse the film file
- file = open(self.filmfile )
+ file = open(self.filmfile)
# File format is :
#Title
#Real
@@ -560,9 +562,9 @@
if lineno == 0: self.title = line
if lineno == 1: self.info['director'] = line
if lineno == 2: self.info['year'] = line
- if lineno == 3: self.info['country'] = line
+ if lineno == 3: self.info['country'] = line
if lineno == 4: self.info['genre'] = line
- if lineno == 5: self.info['runtime'] = line
+ if lineno == 5: self.info['runtime'] = line
if lineno == 6: self.info['actor']= line
if lineno > 6:
self.info['plot'] += line
Modified: branches/rel-1/freevo/ChangeLog
==============================================================================
--- branches/rel-1/freevo/ChangeLog (original)
+++ branches/rel-1/freevo/ChangeLog Thu Feb 28 13:42:19 2008
@@ -34,6 +34,7 @@
* Fixed audioscrobbler plug-in not sending songs to last.fm (B#1902461)
* Fixed cdbackup plug-in to allow empty parameters (B#1889068)
* Fixed ivtv_xine_tv plug-in encoding of OSD messages (B#1893373)
+ * Fixed moviecovers plug-in proceeding when unzip is not installed (B#1903519)
* Fixed the main program to cause a crash when local_conf.py is invalid
(B#1886624)
* Fixed web servers encoding interface (B#1885914)
* Fixed web servers image popup encoding (B#1895302)
Modified: branches/rel-1/freevo/src/setup_freevo.py
==============================================================================
--- branches/rel-1/freevo/src/setup_freevo.py (original)
+++ branches/rel-1/freevo/src/setup_freevo.py Thu Feb 28 13:42:19 2008
@@ -49,28 +49,31 @@
__builtin__.__dict__['_']= lambda m: m
-EXTERNAL_PROGRAMS = (("mplayer", "mplayer", 1),
- ("mencoder", "mencoder", 0),
- ("tvtime", "tvtime", 0),
- ("xine", "xine", 0),
- ("fbxine", "fbxine", 0),
- ("df_xine", "df_xine", 0),
- ("lsdvd", "lsdvd", 0),
- ("jpegtran", "jpegtran", 0),
- ("xmame.x11", "xmame", 0),
- ("xmame.SDL", "xmame", 0),
- ("xmame", "xmame", 0),
- ("ssnes9x", "snes", 0),
- ("zsnes", "snes", 0 ),
- ("lame", "lame", 0),
- ("flac", "flac", 0),
- ("cdparanoia", "cdparanoia", 0),
- ("oggenc", "oggenc", 0),
- ("renice", "renice", 0),
- ("setterm", "setterm", 0),
- ("mpav", "mpav", 0),
- ("vlc", "vlc", 0),
- ("dvdbackup", "dvdbackup", 0))
+EXTERNAL_PROGRAMS = (
+ ("mplayer", "mplayer", 1),
+ ("mencoder", "mencoder", 0),
+ ("tvtime", "tvtime", 0),
+ ("xine", "xine", 0),
+ ("fbxine", "fbxine", 0),
+ ("df_xine", "df_xine", 0),
+ ("lsdvd", "lsdvd", 0),
+ ("jpegtran", "jpegtran", 0),
+ ("xmame.x11", "xmame", 0),
+ ("xmame.SDL", "xmame", 0),
+ ("xmame", "xmame", 0),
+ ("ssnes9x", "snes", 0),
+ ("zsnes", "snes", 0 ),
+ ("lame", "lame", 0),
+ ("flac", "flac", 0),
+ ("cdparanoia", "cdparanoia", 0),
+ ("oggenc", "oggenc", 0),
+ ("renice", "renice", 0),
+ ("setterm", "setterm", 0),
+ ("mpav", "mpav", 0),
+ ("vlc", "vlc", 0),
+ ("dvdbackup", "dvdbackup", 0),
+ ("unzip", "unzip", 0),
+)
# Help text
def print_usage():
Modified: branches/rel-1/freevo/src/video/plugins/moviecovers.py
==============================================================================
--- branches/rel-1/freevo/src/video/plugins/moviecovers.py (original)
+++ branches/rel-1/freevo/src/video/plugins/moviecovers.py Thu Feb 28
13:42:19 2008
@@ -78,6 +78,9 @@
if not config.USE_NETWORK:
self.reason = 'no network'
return
+ if not config.CONF.unzip:
+ self.reason = 'unzip is not installed'
+ return
plugin.ItemPlugin.__init__(self)
def initmyself(self):
@@ -87,7 +90,7 @@
self.image = None # full path image filename
self.image_urls = [] # possible image url list
- self.image_url = None # final image url
+ self.image_url = None # final image url
self.fxdfile = None # filename, full path, WITHOUT extension
@@ -127,7 +130,7 @@
raise FxdMoviecovers_Net_Error("Moviecovers unreachable : " +
error)
exit
- regexp_getall = re.compile('.*<LI><A
href="(/film/titre_.*)">(.*?)</A>.*([0-9]{4}).*', re.I)
+ regexp_getall = re.compile('.*<LI><A
href="(/film/titre_.*)">(.*?)</A>.*([0-9]{4}).*', re.I)
for line in response.read().split("\n"):
#print line
@@ -137,7 +140,7 @@
link = m.group(1)
name = m.group(2)
year = m.group(3)
- self.moviecovers_id_list += [ ( link, name, year, 'Movies' ) ]
+ self.moviecovers_id_list += [ (link, name, year, 'Movies') ]
return self.moviecovers_id_list
@@ -146,13 +149,13 @@
name = filename
for r in config.ALLOCINE_REMOVE_FROM_LABEL:
- name = re.sub(r, '', name.lower())
+ name = re.sub(r, '', name.lower())
- name = vfs.basename(vfs.splitext(name)[0])
- name = re.sub('([a-z])([A-Z])', point_maker, name)
- name = re.sub('([a-zA-Z])([0-9])', point_maker, name)
- name = re.sub('([0-9])([a-zA-Z])', point_maker, name.lower())
- name = re.sub(',', ' ', name)
+ name = vfs.basename(vfs.splitext(name)[0])
+ name = re.sub('([a-z])([A-Z])', point_maker, name)
+ name = re.sub('([a-zA-Z])([0-9])', point_maker, name)
+ name = re.sub('([0-9])([a-zA-Z])', point_maker, name.lower())
+ name = re.sub(',', ' ', name)
parts = re.split("[\._' -]", name)
name = ''
@@ -222,10 +225,10 @@
os.makedirs(vfs.dirname(self.fxdfile))
def moviecovers_get_disc_searchstring(self, item):
- name = item.media.label
- name = re.sub('([a-z])([A-Z])', point_maker, name)
- name = re.sub('([a-zA-Z])([0-9])', point_maker, name)
- name = re.sub('([0-9])([a-zA-Z])', point_maker, name.lower())
+ name = item.media.label
+ name = re.sub('([a-z])([A-Z])', point_maker, name)
+ name = re.sub('([a-zA-Z])([0-9])', point_maker, name)
+ name = re.sub('([0-9])([a-zA-Z])', point_maker, name.lower())
parts = re.split("[\._' -]", name)
name = ''
@@ -242,26 +245,25 @@
self.item = item
if item.type == 'video' and (not item.files or not
item.files.fxd_file):
- if item.mode == 'file' or (item.mode in ('dvd', 'vcd') and \
- item.info.has_key('tracks') and not \
- item.media):
+ if item.mode == 'file' or (item.mode in ('dvd', 'vcd') and
item.info.has_key('tracks')
+ and not item.media):
self.disc_set = False
- return [ ( self.moviecovers_search , _('Search Moviecovers.com
for this file'),
- 'moviecovers_search_or_cover_search') ]
+ return [ (self.moviecovers_search , _('Search Moviecovers.com
for this file'),
+ 'moviecovers_search_or_cover_search') ]
elif item.mode in ('dvd', 'vcd') and item.info.has_key('tracks'):
self.disc_set = True
s = self.moviecovers_get_disc_searchstring(self.item)
if s:
- return [ ( self.moviecovers_search , _('Search
Moviecovers.com for [%s]') % s,
- 'moviecovers_search_or_cover_search') ]
+ return [ (self.moviecovers_search , _('Search
Moviecovers.com for [%s]') % s,
+ 'moviecovers_search_or_cover_search') ]
if item.type == 'dir' and item.media and
item.media.mountdir.find(item.dir) == 0:
self.disc_set = True
s = self.moviecovers_get_disc_searchstring(self.item)
if s:
- return [ ( self.moviecovers_search , _('Search Moviecovers.com
for [%s]') % s,
- 'moviecovers_search_or_cover_search') ]
+ return [ (self.moviecovers_search , _('Search Moviecovers.com
for [%s]') % s,
+ 'moviecovers_search_or_cover_search') ]
return []
@@ -290,7 +292,7 @@
except:
pass
items.append(menu.MenuItem('%s (%s, %s)' %
(htmlenties2txt(name), year, type),
- self.moviecovers_create_fxd, (id,
year)))
+ self.moviecovers_create_fxd, (id, year)))
except:
box.destroy()
box = PopupBox(text=_('Connection error : Probably connection
timeout, try again'))
@@ -473,14 +475,14 @@
def write_fxd_copyright(self, fxd, node):
fxd.setcdata(node, "The information in this file are from
Moviecovers.com.\n"+
"Please visit http://www.moviecovers.com for more
informations.\n")
- fxd.add(fxd.XMLnode('source', [('url', "%s" % self.myurl)] ), node, 0)
+ fxd.add(fxd.XMLnode('source', [('url', "%s" % self.myurl)]), node, 0)
def write_fxd_video(self, fxd, node):
- fxd.setattr(node, 'title', self.title )
- fxd.add(fxd.XMLnode('cover-img', (('source', self.image_url), ("test",
"test")), self.image ), node, 0)
+ fxd.setattr(node, 'title', self.title)
+ fxd.add(fxd.XMLnode('cover-img', (('source', self.image_url), ("test",
"test")), self.image), node, 0)
videonode = fxd.XMLnode('video')
fxd.add(videonode, node)
- fxd.add(fxd.XMLnode('file', [('id', 'f1')],
os.path.basename(self.item.filename) ), videonode, 0)
+ fxd.add(fxd.XMLnode('file', [('id', 'f1')],
os.path.basename(self.item.filename)), videonode, 0)
infonode = fxd.XMLnode('info')
fxd.add(infonode, node)
if self.info:
@@ -524,10 +526,10 @@
self.tmppath = '/tmp/moviecovers/'
self.tmpfile = self.tmppath + 'file.zip'
commands.getstatusoutput('rm -r -f ' + self.tmppath)
- commands.getstatusoutput('mkdir '+ self.tmppath )
+ commands.getstatusoutput('mkdir '+ self.tmppath)
#print "Get : %s " % urllib.quote(urllib.unquote(myurl2))
- commands.getstatusoutput('wget ' +
urllib.quote(urllib.unquote(myurl2)) + ' -O ' + self.tmpfile )
- (status, output) = commands.getstatusoutput('cd '+ self.tmppath+';
unzip -o '+ self.tmpfile )
+ commands.getstatusoutput('wget
'+urllib.quote(urllib.unquote(myurl2))+' -O '+self.tmpfile)
+ (status, output) = commands.getstatusoutput('cd '+self.tmppath+';
'+config.CONF.unzip+' -o '+self.tmpfile)
# Now copy
regexp_jpegfile = re.compile('.*jpg', re.I)
@@ -544,7 +546,7 @@
self.filmfile = self.tmppath + vfs.basename(file)
# Now parse the film file
- file = open(self.filmfile )
+ file = open(self.filmfile)
# File format is :
#Title
#Real
@@ -560,9 +562,9 @@
if lineno == 0: self.title = line
if lineno == 1: self.info['director'] = line
if lineno == 2: self.info['year'] = line
- if lineno == 3: self.info['country'] = line
+ if lineno == 3: self.info['country'] = line
if lineno == 4: self.info['genre'] = line
- if lineno == 5: self.info['runtime'] = line
+ if lineno == 5: self.info['runtime'] = line
if lineno == 6: self.info['actor']= line
if lineno > 6:
self.info['plot'] += line
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Freevo-cvslog mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/freevo-cvslog