24 __mashup_title__ =
"pbs"
25 __author__=
"R.D. Vaughan"
29 __usage_examples__ =
'''
32 Usage: ./pbs.py -hduvlST [parameters] <search text>
33 Version: v0.1.0 Author: R.D.Vaughan
35 For details on the MythTV Netvision plugin see the wiki page at:
36 http://www.mythtv.org/wiki/MythNetvision
39 -h, --help show this help message and exit
40 -d, --debug Show debugging info (URLs, raw XML ... etc, info
42 -u, --usage Display examples for executing the script
43 -v, --version Display grabber name and supported options
44 -l LANGUAGE, --language=LANGUAGE
45 Select data that matches the specified language fall
46 back to English if nothing found (e.g. 'es' Español,
47 'de' Deutsch ... etc). Not all sites or grabbers
49 -p PAGE NUMBER, --pagenumber=PAGE NUMBER
50 Display specific page of the search results. Default
51 is page 1. Page number is ignored with the Tree View
53 -S, --search Search for videos
54 -T, --treeview Display a Tree View of a sites videos
59 <author>R.D. Vaughan</author>
60 <thumbnail>pbs.png</thumbnail>
61 <command>pbs.py</command>
63 <description>Discover award-winning programming right at your fingertips on PBS Video. Catch the episodes you may have missed and watch your favorite shows whenever you want.</description>
64 <version>v0.10</version>
69 > ./pbs.py -S "Dinosaurs"
73 __search_max_page_items__ = 20
74 __tree_max_page_items__ = 20
80 """Wraps a stream with an encoder"""
89 """Wraps the output stream, encoding Unicode strings with the specified encoding"""
90 if isinstance(obj, unicode):
102 """Delegate everything but write to the stream"""
103 return getattr(self.
out, attr)
111 '''Import the common python class
116 The subdirectory "nv_python_libs/common" containing the modules mashups_api.py and
117 mashups_exceptions.py (v0.1.3 or greater),
118 They should have been included with the distribution of MythNetvision
123 if common_api.__version__ <
'0.1.3':
124 sys.stderr.write(
"\n! Error: Your current installed common_api.py version is (%s)\nYou must at least have version (0.1.3) or higher.\n" % target.__version__)
130 '''Import the python mashups support classes
135 The subdirectory "nv_python_libs/pbs" containing the modules pbs_api and
136 pbs_exceptions.py (v0.1.0 or greater),
137 They should have been included with the distribution of pbs.py.
141 if target.__version__ <
'0.1.0':
142 sys.stderr.write(
"\n! Error: Your current installed pbs_api.py version is (%s)\nYou must at least have version (0.1.0) or higher.\n" % target.__version__)
150 The python script "nv_python_libs/mainProcess.py" must be present.
155 if process.__version__ <
'0.2.0':
156 sys.stderr.write(
"\n! Error: Your current installed mainProcess.py version is (%s)\nYou must at least have version (0.2.0) or higher.\n" % process.__version__)
159 if __name__ ==
'__main__':
163 target.baseProcessingDir = os.path.dirname( os.path.realpath( __file__ ))
165 target.common = common_api.Common()
166 main = process.mainProcess(target, apikey, )
167 main.grabberInfo = {}
168 main.grabberInfo[
'title'] = __title__
169 main.grabberInfo[
'command'] =
u'pbs.py'
170 main.grabberInfo[
'mashup_title'] = __mashup_title__
171 main.grabberInfo[
'author'] = __author__
172 main.grabberInfo[
'thumbnail'] =
'pbs.png'
173 main.grabberInfo[
'type'] = [
'video', ]
174 main.grabberInfo[
'desc'] =
u"Discover award-winning programming right at your fingertips on PBS Video. Catch the episodes you may have missed and watch your favorite shows whenever you want."
175 main.grabberInfo[
'version'] = __version__
176 main.grabberInfo[
'search'] = target.common.checkIfDBItem(
'dummy', {
'feedtitle': __title__, })
177 main.grabberInfo[
'tree'] =
True
178 main.grabberInfo[
'html'] =
False
179 main.grabberInfo[
'usage'] = __usage_examples__
180 main.grabberInfo[
'SmaxPage'] = __search_max_page_items__
181 main.grabberInfo[
'TmaxPage'] = __tree_max_page_items__