Update of /cvsroot/freevo/freevo/src/video/plugins
In directory sc8-pr-cvs1:/tmp/cvs-serv22902

Modified Files:
        imdb.py 
Log Message:
switch to new imdb helper

Index: imdb.py
===================================================================
RCS file: /cvsroot/freevo/freevo/src/video/plugins/imdb.py,v
retrieving revision 1.15
retrieving revision 1.16
diff -C2 -d -r1.15 -r1.16
*** imdb.py     8 Jul 2003 20:02:27 -0000       1.15
--- imdb.py     12 Jul 2003 11:20:14 -0000      1.16
***************
*** 16,49 ****
  # -----------------------------------------------------------------------
  # $Log$
! # Revision 1.15  2003/07/08 20:02:27  dischi
! # small bugfix
! #
! # Revision 1.14  2003/07/05 17:04:57  dischi
! # catch exceptions
! #
! # Revision 1.13  2003/06/29 20:43:30  dischi
! # o mmpython support
! # o mplayer is now a plugin
! #
! # Revision 1.12  2003/06/27 11:34:09  dischi
! # some small fixes for movies on rom drive
! #
! # Revision 1.11  2003/06/26 13:23:21  dischi
! # remove 'the' and 'a' from the imdb search string (add more in local_conf.py
! # if you like) because they mess up the results. Also fixed the filename
! # included in the fxd
! #
! # Revision 1.10  2003/06/24 18:39:42  dischi
! # some small fixes
! #
! # Revision 1.9  2003/06/23 19:52:55  dischi
! # change event key to imdb_search_or_cover_search
! #
! # Revision 1.8  2003/06/09 14:45:16  dischi
! # add support for DVD/VCD
! #
! # Revision 1.7  2003/06/07 11:32:48  dischi
! # reactivated the plugin
  #
  #
  # -----------------------------------------------------------------------
--- 16,24 ----
  # -----------------------------------------------------------------------
  # $Log$
! # Revision 1.16  2003/07/12 11:20:14  dischi
! # switch to new imdb helper
  #
+ # Revision 1.16 2003/07/10 15:00:00 den_RDC
+ # rewrite to use fxdimdb
  #
  # -----------------------------------------------------------------------
***************
*** 75,91 ****
  import plugin
  import re
  
  from gui.PopupBox import PopupBox
  
! 
! def point_maker(matching):
!     """
!     small help function to split a movie name into parts
!     """
!     return '%s.%s' % (matching.groups()[0], matching.groups()[1])
! 
! 
  
  class PluginInterface(plugin.ItemPlugin):
      def imdb_get_disc_searchstring(self, item):
          name  = item.media.label
--- 50,63 ----
  import plugin
  import re
+ import time
+ from video.fxdimdb import FxdImdb, makeVideo, makePart, point_maker
  
  from gui.PopupBox import PopupBox
  
! FALSE = 0
! TRUE = 1
  
  class PluginInterface(plugin.ItemPlugin):
+     
      def imdb_get_disc_searchstring(self, item):
          name  = item.media.label
***************
*** 93,100 ****
          name  = re.sub('([a-zA-Z])([0-9])', point_maker, name)
          name  = re.sub('([0-9])([a-zA-Z])', point_maker, name.lower())
- 
          for r in config.IMDB_REMOVE_FROM_LABEL:
              name  = re.sub(r, '', name)
- 
          parts = re.split('[\._ -]', name)
          
--- 65,70 ----
***************
*** 107,215 ****
          else:
              return ''
- 
          
      def actions(self, item):
          self.item = item
          if item.type == 'video'  and not hasattr(item, 'fxd_file'):
-             print item.mode
              if item.mode == 'file':
!                 return [ ( self.imdb_search_file, 'Search IMDB for this file',
                             'imdb_search_or_cover_search') ]
              if item.mode in ('dvd', 'vcd'):
                  s = self.imdb_get_disc_searchstring(self.item)
-                 print s
                  if s:
!                     return [ ( self.imdb_search_disc, 'Search IMDB for [%s]' % s,
                                 'imdb_search_or_cover_search') ]
          return []
  
- 
-     def imdb_search_disc(self, arg=None, menuw=None):
-         """
-         search imdb for this disc item
-         """
-         import helpers.imdb
- 
-         box = PopupBox(text='searching IMDB...')
-         box.show()
-         
-         name = self.imdb_get_disc_searchstring(self.item)
-         items = []
-         try:
-             for id,name,year,type in helpers.imdb.search(name):
-                 items += [ menu.MenuItem('%s (%s, %s)' % (name, year, type),
-                                          self.imdb_create_fxd_disc, (id, year)) ]
-             moviemenu = menu.Menu('IMDB QUERY', items)
-         except:
-             box.destroy()
-             box = PopupBox(text='Unknown error while connecting to IMDB')
-             box.show()
-             time.sleep(2)
-             box.destroy()
-             return
- 
-         box.destroy()
-         menuw.pushmenu(moviemenu)
- 
- 
-     def imdb_create_fxd_disc(self, arg=None, menuw=None):
-         """
-         create fxd file for the disc item
-         """
-         import helpers.imdb
- 
-         box = PopupBox(text='getting data...')
-         box.show()
-         
-         filename = os.path.join(config.MOVIE_DATA_DIR, self.item.media.id)
- 
-         # bad hack to set the drive, helpers/imdb.py really needs
-         # a bigger update
-         helpers.imdb.drive = self.item.media.devicename
-         helpers.imdb.get_data_and_write_fxd(arg[0], filename,
-                                             self.item.media.devicename,
-                                             None, (self.item.mode, ), None)
- 
-         # check if we have to go one menu back (called directly) or
-         # two (called from the item menu)
-         back = 1
-         if menuw.menustack[-2].selected != self.item:
-             back = 2
-             
-         # go back in menustack
-         for i in range(back):
-             menuw.delete_menu()
-         
-         box.destroy()
- 
              
!     def imdb_search_file(self, arg=None, menuw=None):
          """
          search imdb for this item
          """
!         import helpers.imdb
! 
          box = PopupBox(text='searching IMDB...')
          box.show()
-         
-         name = self.item.name
-         
-         name  = os.path.basename(os.path.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())
-         parts = re.split('[\._ -]', name)
-         
-         name = ''
-         for p in parts:
-             if not p.lower() in config.IMDB_REMOVE_FROM_SEARCHSTRING:
-                 name += '%s ' % p
  
          items = []
  
          try:
!             for id,name,year,type in helpers.imdb.search(name):
!                 items += [ menu.MenuItem('%s (%s, %s)' % (name, year, type),
!                                          self.imdb_create_fxd, (id, year)) ]
          except:
              box.destroy()
--- 77,124 ----
          else:
              return ''
          
+ 
      def actions(self, item):
          self.item = item
          if item.type == 'video'  and not hasattr(item, 'fxd_file'):
              if item.mode == 'file':
!                 return [ ( self.imdb_search , 'Search IMDB for this file',
                             'imdb_search_or_cover_search') ]
              if item.mode in ('dvd', 'vcd'):
                  s = self.imdb_get_disc_searchstring(self.item)
                  if s:
!                     return [ ( self.imdb_search , 'Search IMDB for [%s]' % s,
                                 'imdb_search_or_cover_search') ]
          return []
  
              
!     def imdb_search(self, arg=None, menuw=None):
          """
          search imdb for this item
          """
!         fxd = FxdImdb()
!         
          box = PopupBox(text='searching IMDB...')
          box.show()
  
          items = []
+         
+         if self.item.mode in ('dvd', 'vcd'):
+             disc = TRUE
+         else:
+             disc = FALSE
  
          try:
!             duplicates = []
!             for id,name,year,type in fxd.guessImdb(self.item.name, disc):
!                 try:
!                     for i in self.item.parent.play_items:
!                         if hasattr(i, 'fxd_file') and i.name == name:
!                             if not i in duplicates:
!                                 duplicates.append(i)
!                 except:
!                     pass
!                 items.append(menu.MenuItem('%s (%s, %s)' % (name, year, type),
!                                            self.imdb_create_fxd, (id, year)))
          except:
              box.destroy()
***************
*** 220,223 ****
--- 129,138 ----
              return
          
+         # for d in duplicates:
+         #     items = [ menu.MenuItem('Add to "%s"' % d.name,
+         #                             self.imdb_add_to_fxd, (d, 'add')),
+         #               menu.MenuItem('Variant to "%s"' % d.name,
+         #                             self.imdb_add_to_fxd, (d, 'variant')) ] + items
+ 
          box.destroy()
          if len(items) == 1:
***************
*** 237,262 ****
  
  
!     def imdb_create_fxd(self, arg=None, menuw=None):
          """
!         create fxd file for the item
          """
-         import helpers.imdb
          import directory
-         
-         box = PopupBox(text='getting data...')
-         box.show()
-         
-         if self.item.media and self.item.media.id: #if this exists we got a 
cdrom/dvdrom
-             filename = os.path.join(config.MOVIE_DATA_DIR, self.item.media.id)
-             device   = self.item.media.devicename
-             # bad hack to set the drive, helpers/imdb.py really needs
-             # a bigger update
-             helpers.imdb.drive = self.item.media.devicename
-         else:
-             filename = os.path.splitext(self.item.filename)[0]
-             device   = None
- 
-         helpers.imdb.get_data_and_write_fxd(arg[0], filename, device, None,
-                                             (os.path.basename(self.item.filename), 
), None)
  
          # check if we have to go one menu back (called directly) or
--- 152,160 ----
  
  
!     def imdb_menu_back(self, menuw):
          """
!         check how many menus we have to go back to see the item
          """
          import directory
  
          # check if we have to go one menu back (called directly) or
***************
*** 279,281 ****
--- 177,237 ----
              menuw.delete_menu()
          
+         
+     def imdb_create_fxd(self, arg=None, menuw=None):
+         """
+         create fxd file for the item
+         """
+         fxd = FxdImdb()
+         
+         box = PopupBox(text='getting data...')
+         box.show()
+ 
+         #if this exists we got a cdrom/dvdrom
+         if self.item.media and self.item.media.devicename: 
+             devicename = self.item.media.devicename
+         else: devicename = None
+         
+         fxd.setImdbId(arg[0])
+         
+         if self.item.mode in ('dvd', 'vcd'):
+             fxd.setDiscset(devicename, None)
+         else:
+             video = makeVideo('file', 'f1', self.item.filename, device=devicename)
+             fxd.setVideo(video)
+ 
+         fxd.writeFxd()
+         self.imdb_menu_back(menuw)
          box.destroy()
+ 
+ 
+     def imdb_add_to_fxd(self, arg=None, menuw=None):
+         """
+         add item to fxd file
+         BROKEN, PLEASE FIX
+         """
+ 
+         #if this exists we got a cdrom/dvdrom
+         if self.item.media and self.item.media.devicename: 
+             devicename = self.item.media.devicename
+         else: devicename = None
+         
+         fxd = FxdImdb()
+         fxd.setFxdFile(arg[0].fxd_file)
+ 
+         if self.item.mode in ('dvd', 'vcd'):
+             fxd.setDiscset(devicename, None)
+         else:
+             num = len(fxd.video) + 1
+             video = makeVideo('file', 'f%s' % num, self.item.filename, 
device=devicename)
+             fxd.setVideo(video)
+ 
+             if arg[1] == 'variant':
+                 part = makePart('Variant %d' % num, 'f%s' % num)
+ 
+                 if fxd.variant:
+                     part = [ makePart('Variant 1', 'f1'), part ]
+ 
+                 fxd.setVariants(part)
+             
+         fxd.writeFxd()
+         self.imdb_menu_back(menuw)




-------------------------------------------------------
This SF.Net email sponsored by: Parasoft
Error proof Web apps, automate testing & more.
Download & eval WebKing and get a free book.
www.parasoft.com/bulletproofapps1
_______________________________________________
Freevo-cvslog mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/freevo-cvslog

Reply via email to