Author: duncan
Date: Sun Jan 13 12:30:55 2008
New Revision: 10287

Log:
Added search with TextEntryScreen
Patch from Alberto González Rodríguez applied


Modified:
   branches/rel-1-7/freevo/src/video/plugins/youtube.py
   branches/rel-1/freevo/src/video/plugins/youtube.py

Modified: branches/rel-1-7/freevo/src/video/plugins/youtube.py
==============================================================================
--- branches/rel-1-7/freevo/src/video/plugins/youtube.py        (original)
+++ branches/rel-1-7/freevo/src/video/plugins/youtube.py        Sun Jan 13 
12:30:55 2008
@@ -50,12 +50,12 @@
 __author_email__     = '[EMAIL PROTECTED]'
 __maintainer__       = __author__
 __maintainer_email__ = __author_email__
-__version__          = '0.2'
+__version__          = '0.3'
 
 import os
 import plugin
 import gdata.service
-import urllib2
+import urllib2,urllib
 import re
 import traceback
 import menu
@@ -63,6 +63,7 @@
 import config
 import string, os, subprocess, util
 
+from skin.widgets import TextEntryScreen
 from video.videoitem import VideoItem
 from subprocess import Popen
 from item import Item
@@ -155,12 +156,16 @@
         users = []
         for user, description in config.YOUTUBE_VIDEOS:
             users.append(menu.MenuItem(description, self.videolist, (user, 
description)))
+        users.append(menu.MenuItem("Search video",self.search_video,0))
         menuw.pushmenu(menu.Menu(_('Choose please'), users))
+    def search_video(self, arg=None, menuw=None):
+        txt = TextEntryScreen((_('Search'),self.search_list),_("Search"))
+        txt.show(menuw)
 
 
     def videolist(self, arg=None, menuw=None):
         """Menu for video"""
-        items = video_list(self, _('Retrieving video list'), arg[0])
+        items = self.video_list(_('Retrieving video list'), arg[0])
         menuw.pushmenu(menu.Menu(_('Videos available'), items))
 
 
@@ -187,28 +192,48 @@
         playvideo2.player_rating = 10
         playvideo2.menuw = menuw
         playvideo2.play()
+    def search_list(parent, menuw, text=""):
+        """Get the video list for a specific user"""
+        items = []
+        feed = "http://gdata.youtube.com/feeds/videos/-/"; + text
+        service = gdata.service.GDataService(server='gdata.youtube.com')
+        box = PopupBox(text=_('Loading video list'))
+        box.show()
+        for video in service.GetFeed(feed).entry:
+            date = video.published.text.split("T")
+            id = video.link[1].href.split("watch?v=");
+            mi = menu.MenuItem(date[0] + " " + video.title.text, 
parent.downloadvideo, id[1])
+            mi.arg = (video.title.text, id[1])
+            text = util.htmlenties2txt(video.content)
+            mi.description = re.search('<span>([^\<]*)<',text).group(1)
+            tempimage = re.search('src="([^\"]*)"',text).group(1)
+            file = config.YOUTUBE_DIR + "/" + id[1].replace("-","_") + ".jpg"
+            if not os.path.exists(file):
+                aimage = urllib.urlretrieve(tempimage,file)
+            mi.image = file
+            items.append(mi)
+        box.destroy()
+        menuw.pushmenu(menu.Menu(_('Videos available'), items))
 
-
-def video_list(parent, title, user):
-    """Get the video list for a specific user"""
-    items = []
-    feed = 'http://gdata.youtube.com/feeds/users/' + user + 
'/uploads?orderby=updated'
-
-    service = gdata.service.GDataService(server='gdata.youtube.com')
-    box = PopupBox(text=_('Loading video list'))
-    box.show()
-    for video in service.GetFeed(feed).entry:
-        date = video.published.text.split("T")
-        id = video.link[1].href.split("watch?v=");
-        mi = menu.MenuItem(date[0] + " " + video.title.text, 
parent.downloadvideo, id[1])
-        mi.arg = (video.title.text, id[1])
-        text = util.htmlenties2txt(video.content)
-        mi.description = re.search('<span>([^\<]*)<',text).group(1)
-        tempimage = re.search('src="([^\"]*)"',text).group(1)
-        file = config.YOUTUBE_DIR + "/" + id[1].replace("-","_") + ".jpg"
-        if not os.path.exists(file):
-            aimage = urllib.urlretrieve(tempimage,file)
-        mi.image = file
-        items.append(mi)
-    box.destroy()
-    return items
+    def video_list(parent, title, user):
+        """Get the video list for a specific user"""
+        items = []
+        feed = 'http://gdata.youtube.com/feeds/users/' + user + 
'/uploads?orderby=updated'
+        service = gdata.service.GDataService(server='gdata.youtube.com')
+        box = PopupBox(text=_('Loading video list'))
+        box.show()
+        for video in service.GetFeed(feed).entry:
+            date = video.published.text.split("T")
+            id = video.link[1].href.split("watch?v=");
+            mi = menu.MenuItem(date[0] + " " + video.title.text, 
parent.downloadvideo, id[1])
+            mi.arg = (video.title.text, id[1])
+            text = util.htmlenties2txt(video.content)
+            mi.description = re.search('<span>([^\<]*)<',text).group(1)
+            tempimage = re.search('src="([^\"]*)"',text).group(1)
+            file = config.YOUTUBE_DIR + "/" + id[1].replace("-","_") + ".jpg"
+            if not os.path.exists(file):
+                aimage = urllib.urlretrieve(tempimage,file)
+            mi.image = file
+            items.append(mi)
+        box.destroy()
+        return items

Modified: branches/rel-1/freevo/src/video/plugins/youtube.py
==============================================================================
--- branches/rel-1/freevo/src/video/plugins/youtube.py  (original)
+++ branches/rel-1/freevo/src/video/plugins/youtube.py  Sun Jan 13 12:30:55 2008
@@ -50,12 +50,12 @@
 __author_email__     = '[EMAIL PROTECTED]'
 __maintainer__       = __author__
 __maintainer_email__ = __author_email__
-__version__          = '0.2'
+__version__          = '0.3'
 
 import os
 import plugin
 import gdata.service
-import urllib2
+import urllib2,urllib
 import re
 import traceback
 import menu
@@ -63,6 +63,7 @@
 import config
 import string, os, subprocess, util
 
+from skin.widgets import TextEntryScreen
 from video.videoitem import VideoItem
 from subprocess import Popen
 from item import Item
@@ -155,12 +156,16 @@
         users = []
         for user, description in config.YOUTUBE_VIDEOS:
             users.append(menu.MenuItem(description, self.videolist, (user, 
description)))
+        users.append(menu.MenuItem("Search video",self.search_video,0))
         menuw.pushmenu(menu.Menu(_('Choose please'), users))
+    def search_video(self, arg=None, menuw=None):
+        txt = TextEntryScreen((_('Search'),self.search_list),_("Search"))
+        txt.show(menuw)
 
 
     def videolist(self, arg=None, menuw=None):
         """Menu for video"""
-        items = video_list(self, _('Retrieving video list'), arg[0])
+        items = self.video_list(_('Retrieving video list'), arg[0])
         menuw.pushmenu(menu.Menu(_('Videos available'), items))
 
 
@@ -187,28 +192,48 @@
         playvideo2.player_rating = 10
         playvideo2.menuw = menuw
         playvideo2.play()
+    def search_list(parent, menuw, text=""):
+        """Get the video list for a specific user"""
+        items = []
+        feed = "http://gdata.youtube.com/feeds/videos/-/"; + text
+        service = gdata.service.GDataService(server='gdata.youtube.com')
+        box = PopupBox(text=_('Loading video list'))
+        box.show()
+        for video in service.GetFeed(feed).entry:
+            date = video.published.text.split("T")
+            id = video.link[1].href.split("watch?v=");
+            mi = menu.MenuItem(date[0] + " " + video.title.text, 
parent.downloadvideo, id[1])
+            mi.arg = (video.title.text, id[1])
+            text = util.htmlenties2txt(video.content)
+            mi.description = re.search('<span>([^\<]*)<',text).group(1)
+            tempimage = re.search('src="([^\"]*)"',text).group(1)
+            file = config.YOUTUBE_DIR + "/" + id[1].replace("-","_") + ".jpg"
+            if not os.path.exists(file):
+                aimage = urllib.urlretrieve(tempimage,file)
+            mi.image = file
+            items.append(mi)
+        box.destroy()
+        menuw.pushmenu(menu.Menu(_('Videos available'), items))
 
-
-def video_list(parent, title, user):
-    """Get the video list for a specific user"""
-    items = []
-    feed = 'http://gdata.youtube.com/feeds/users/' + user + 
'/uploads?orderby=updated'
-
-    service = gdata.service.GDataService(server='gdata.youtube.com')
-    box = PopupBox(text=_('Loading video list'))
-    box.show()
-    for video in service.GetFeed(feed).entry:
-        date = video.published.text.split("T")
-        id = video.link[1].href.split("watch?v=");
-        mi = menu.MenuItem(date[0] + " " + video.title.text, 
parent.downloadvideo, id[1])
-        mi.arg = (video.title.text, id[1])
-        text = util.htmlenties2txt(video.content)
-        mi.description = re.search('<span>([^\<]*)<',text).group(1)
-        tempimage = re.search('src="([^\"]*)"',text).group(1)
-        file = config.YOUTUBE_DIR + "/" + id[1].replace("-","_") + ".jpg"
-        if not os.path.exists(file):
-            aimage = urllib.urlretrieve(tempimage,file)
-        mi.image = file
-        items.append(mi)
-    box.destroy()
-    return items
+    def video_list(parent, title, user):
+        """Get the video list for a specific user"""
+        items = []
+        feed = 'http://gdata.youtube.com/feeds/users/' + user + 
'/uploads?orderby=updated'
+        service = gdata.service.GDataService(server='gdata.youtube.com')
+        box = PopupBox(text=_('Loading video list'))
+        box.show()
+        for video in service.GetFeed(feed).entry:
+            date = video.published.text.split("T")
+            id = video.link[1].href.split("watch?v=");
+            mi = menu.MenuItem(date[0] + " " + video.title.text, 
parent.downloadvideo, id[1])
+            mi.arg = (video.title.text, id[1])
+            text = util.htmlenties2txt(video.content)
+            mi.description = re.search('<span>([^\<]*)<',text).group(1)
+            tempimage = re.search('src="([^\"]*)"',text).group(1)
+            file = config.YOUTUBE_DIR + "/" + id[1].replace("-","_") + ".jpg"
+            if not os.path.exists(file):
+                aimage = urllib.urlretrieve(tempimage,file)
+            mi.image = file
+            items.append(mi)
+        box.destroy()
+        return items

-------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace
_______________________________________________
Freevo-cvslog mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/freevo-cvslog

Reply via email to