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