Update of /cvsroot/freevo/freevo/src/video
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv26586

Modified Files:
        fxdhandler.py videoitem.py 
Log Message:
add set_name for tv show handling, rename id to __id__

Index: fxdhandler.py
===================================================================
RCS file: /cvsroot/freevo/freevo/src/video/fxdhandler.py,v
retrieving revision 1.24
retrieving revision 1.25
diff -C2 -d -r1.24 -r1.25
*** fxdhandler.py       14 Sep 2004 20:06:40 -0000      1.24
--- fxdhandler.py       30 Dec 2004 11:32:35 -0000      1.25
***************
*** 39,42 ****
--- 39,45 ----
  # -----------------------------------------------------------------------
  # $Log$
+ # Revision 1.25  2004/12/30 11:32:35  dischi
+ # add set_name for tv show handling, rename id to __id__
+ #
  # Revision 1.24  2004/09/14 20:06:40  dischi
  # add doc
***************
*** 127,132 ****
      image      = ''
      title      = fxd.getattr(node, 'title')
-     item.name  = title
      item.image = fxd.childcontent(node, 'cover-img')
      if item.image:
          item.image = vfs.abspath(os.path.join(dirname, item.image))
--- 130,135 ----
      image      = ''
      title      = fxd.getattr(node, 'title')
      item.image = fxd.childcontent(node, 'cover-img')
+     item.set_name(title)
      if item.image:
          item.image = vfs.abspath(os.path.join(dirname, item.image))
***************
*** 244,248 ****
              item.set_url(url, info=False)
          if title:
!             item.name = title
          if player:
              item.force_player = player
--- 247,251 ----
              item.set_url(url, info=False)
          if title:
!             item.set_name(title)
          if player:
              item.force_player = player

Index: videoitem.py
===================================================================
RCS file: /cvsroot/freevo/freevo/src/video/videoitem.py,v
retrieving revision 1.155
retrieving revision 1.156
diff -C2 -d -r1.155 -r1.156
*** videoitem.py        28 Dec 2004 18:10:37 -0000      1.155
--- videoitem.py        30 Dec 2004 11:32:35 -0000      1.156
***************
*** 14,18 ****
  #       o create better 'arg' handling in play
  #       o maybe xine options?
- #       o merge tv shows and episode/subtitle info in tv recordings
  #
  # 
-----------------------------------------------------------------------------
--- 14,17 ----
***************
*** 70,77 ****
          self.autovars = [ ('deinterlace', 0) ]
          MediaItem.__init__(self, 'video', parent)
-         self.set_url(url, info=parse)
- 
-         if info:
-             self.info.set_variables(info)
  
          self.variants          = []         # if this item has variants
--- 69,72 ----
***************
*** 84,91 ****
  
          self.mplayer_options   = ''
-         self.tv_show           = False
- 
-         self.video_width       = 0
-         self.video_height      = 0
  
          self.selected_subtitle = None
--- 79,82 ----
***************
*** 95,123 ****
          self.possible_player   = []
  
!         # find image for tv show and build new title
!         if config.VIDEO_SHOW_REGEXP_MATCH(self.name) and not \
!                self.network_play and config.VIDEO_SHOW_DATA_DIR:
!             show_name = config.VIDEO_SHOW_REGEXP_SPLIT(self.name)
!             if show_name[0] and show_name[1] and show_name[2] and 
show_name[3]:
!                 self.name = show_name[0] + u" " + show_name[1] + u"x" + \
!                             show_name[2] + u" - " + show_name[3]
!                 image = util.getimage((config.VIDEO_SHOW_DATA_DIR + \
!                                        show_name[0].lower()))
!                 if self.filename and not image:
!                     image = util.getimage(os.path.dirname(self.filename)+'/'+ 
\
!                                           show_name[0].lower())
!                 if image:
!                     self.image = image
!                 if database.tv_shows.has_key(show_name[0].lower()):
!                     tvinfo = database.tv_shows[show_name[0].lower()]
!                     self.info.set_variables(tvinfo[1])
!                     if not self.image:
!                         self.image = tvinfo[0]
!                     self.skin_fxd = tvinfo[3]
!                     self.mplayer_options = tvinfo[2]
!                 self.tv_show       = True
!                 self.show_name     = show_name
!                 self.tv_show_name  = show_name[0]
!                 self.tv_show_ep    = show_name[3]
  
          # extra infos in database.discset
--- 86,95 ----
          self.possible_player   = []
  
!         # set url and parse the name
!         self.set_url(url, info=parse)
! 
!         if info:
!             # set info variables
!             self.info.set_variables(info)
  
          # extra infos in database.discset
***************
*** 129,132 ****
--- 101,151 ----
  
  
+     def set_name(self, name):
+         """
+         Set the item name and parse additional informations after title and
+         filename is set.
+         """
+         self.name = name
+         show_name = None
+         self.tv_show = False
+ 
+         if self.info['episode'] and self.info['subtitle']:
+             # get informations for recordings
+             show_name = (self.name, '', self.info['episode'], \
+                          self.info['subtitle'])
+         elif config.VIDEO_SHOW_REGEXP_MATCH(self.name) and not \
+                  self.network_play:
+             # split tv show files based on regexp
+             show_name = config.VIDEO_SHOW_REGEXP_SPLIT(self.name)
+             if show_name[0] and show_name[1] and show_name[2] and 
show_name[3]:
+                 self.name = show_name[0] + u" " + show_name[1] + u"x" + \
+                             show_name[2] + u" - " + show_name[3]
+             else:
+                 show_name = None
+                 
+         if show_name:
+             # This matches a tv show with a show name, an epsiode and
+             # a title of the specific episode
+             sn = String(show_name[0].lower())
+             if config.VIDEO_SHOW_DATA_DIR:
+                 image = util.getimage((config.VIDEO_SHOW_DATA_DIR + sn))
+                 if self.filename and not image:
+                     fname = os.path.dirname(self.filename)+'/'+ sn
+                     image = util.getimage(fname)
+                 if image:
+                     self.image = image
+             if database.tv_shows.has_key(sn):
+                 tvinfo = database.tv_shows[sn]
+                 self.info.set_variables(tvinfo[1])
+                 if not self.image:
+                     self.image = tvinfo[0]
+                 self.skin_fxd = tvinfo[3]
+                 self.mplayer_options = tvinfo[2]
+             self.tv_show      = True
+             self.show_name    = show_name
+             self.tv_show_name = show_name[0]
+             self.tv_show_ep   = show_name[3]
+ 
+         
      def set_url(self, url, info=True):
          """
***************
*** 149,158 ****
                  self.files.append(self.filename)
              elif self.url.rfind('.iso') + 4 == self.url.rfind('/'):
!                 # iso
                  self.filename = self.url[5:self.url.rfind('/')]
              else:
                  self.filename = ''
  
          elif url.endswith('.iso') and self.info['mime'] == 'video/dvd':
              self.mimetype = 'dvd'
              self.mode     = 'dvd'
--- 168,179 ----
                  self.files.append(self.filename)
              elif self.url.rfind('.iso') + 4 == self.url.rfind('/'):
!                 # dvd or vcd iso
                  self.filename = self.url[5:self.url.rfind('/')]
              else:
+                 # normal dvd or vcd
                  self.filename = ''
  
          elif url.endswith('.iso') and self.info['mime'] == 'video/dvd':
+             # dvd iso
              self.mimetype = 'dvd'
              self.mode     = 'dvd'
***************
*** 170,175 ****
              self['deinterlace'] = 1
  
  
!     def id(self):
          """
          Return a unique id of the item. This id should be the same when the
--- 191,199 ----
              self['deinterlace'] = 1
  
+         # start name parser by setting name to itself
+         self.set_name(self.name)
+         
  
!     def __id__(self):
          """
          Return a unique id of the item. This id should be the same when the
***************
*** 179,186 ****
          if self.subitems:
              for s in self.subitems:
!                 ret += s.id()
          if self.variants:
              for v in self.variants:
!                 ret += v.id()
          return ret
  
--- 203,210 ----
          if self.subitems:
              for s in self.subitems:
!                 ret += s.__id__()
          if self.variants:
              for v in self.variants:
!                 ret += v.__id__()
          return ret
  



-------------------------------------------------------
The SF.Net email is sponsored by: Beat the post-holiday blues
Get a FREE limited edition SourceForge.net t-shirt from ThinkGeek.
It's fun and FREE -- well, almost....http://www.thinkgeek.com/sfshirt
_______________________________________________
Freevo-cvslog mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/freevo-cvslog

Reply via email to