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, str):
92 self.
out.buffer.write(obj)
95 """Delegate everything but write to the stream"""
96 return getattr(self.
out, attr)
98 if isinstance(sys.stdout, io.TextIOWrapper):
106 '''Import the common python class
109 except Exception
as e:
111 The subdirectory "nv_python_libs/common" containing the modules mashups_api.py and
112 mashups_exceptions.py (v0.1.3 or greater),
113 They should have been included with the distribution of MythNetvision
118 if common_api.__version__ <
'0.1.3':
119 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__)
125 '''Import the python mashups support classes
128 except Exception
as e:
130 The subdirectory "nv_python_libs/pbs" containing the modules pbs_api and
131 pbs_exceptions.py (v0.1.0 or greater),
132 They should have been included with the distribution of pbs.py.
136 if target.__version__ <
'0.1.0':
137 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__)
143 except Exception
as e:
145 The python script "nv_python_libs/mainProcess.py" must be present.
150 if process.__version__ <
'0.2.0':
151 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__)
154 if __name__ ==
'__main__':
158 target.baseProcessingDir = os.path.dirname( os.path.realpath( __file__ ))
160 target.common = common_api.Common()
161 main = process.mainProcess(target, apikey, )
162 main.grabberInfo = {}
163 main.grabberInfo[
'enabled'] =
True
164 main.grabberInfo[
'title'] = __title__
165 main.grabberInfo[
'command'] =
'pbs.py'
166 main.grabberInfo[
'mashup_title'] = __mashup_title__
167 main.grabberInfo[
'author'] = __author__
168 main.grabberInfo[
'thumbnail'] =
'pbs.png'
169 main.grabberInfo[
'type'] = [
'video', ]
170 main.grabberInfo[
'desc'] =
"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."
171 main.grabberInfo[
'version'] = __version__
172 main.grabberInfo[
'search'] = target.common.checkIfDBItem(
'dummy', {
'feedtitle': __title__, })
173 main.grabberInfo[
'tree'] =
True
174 main.grabberInfo[
'html'] =
False
175 main.grabberInfo[
'usage'] = __usage_examples__
176 main.grabberInfo[
'SmaxPage'] = __search_max_page_items__
177 main.grabberInfo[
'TmaxPage'] = __tree_max_page_items__