├── LICENSE
├── README.md
├── dreamos-plugin-systemplugins-hrtunerproxy.bb
├── enigma2-plugin-systemplugins-hrtunerproxy.bb
├── plugin
├── __init__.py
├── about.py
├── getDeviceInfo.py
├── getLineup.py
├── getLineupStatus.py
├── locale
│ ├── HRTunerProxy.pot
│ ├── ar
│ │ └── LC_MESSAGES
│ │ │ └── HRTunerProxy.po
│ ├── bg
│ │ └── LC_MESSAGES
│ │ │ └── HRTunerProxy.po
│ ├── ca
│ │ └── LC_MESSAGES
│ │ │ └── HRTunerProxy.po
│ ├── cs
│ │ └── LC_MESSAGES
│ │ │ └── HRTunerProxy.po
│ ├── da
│ │ └── LC_MESSAGES
│ │ │ └── HRTunerProxy.po
│ ├── de
│ │ └── LC_MESSAGES
│ │ │ └── HRTunerProxy.po
│ ├── el
│ │ └── LC_MESSAGES
│ │ │ └── HRTunerProxy.po
│ ├── en
│ │ └── LC_MESSAGES
│ │ │ └── HRTunerProxy.po
│ ├── en_GB
│ │ └── LC_MESSAGES
│ │ │ └── HRTunerProxy.po
│ ├── es
│ │ └── LC_MESSAGES
│ │ │ └── HRTunerProxy.po
│ ├── et
│ │ └── LC_MESSAGES
│ │ │ └── HRTunerProxy.po
│ ├── fa
│ │ └── LC_MESSAGES
│ │ │ └── HRTunerProxy.po
│ ├── fi
│ │ └── LC_MESSAGES
│ │ │ └── HRTunerProxy.po
│ ├── fr
│ │ └── LC_MESSAGES
│ │ │ └── HRTunerProxy.po
│ ├── fy
│ │ └── LC_MESSAGES
│ │ │ └── HRTunerProxy.po
│ ├── he
│ │ └── LC_MESSAGES
│ │ │ └── HRTunerProxy.po
│ ├── hr
│ │ └── LC_MESSAGES
│ │ │ └── HRTunerProxy.po
│ ├── hu
│ │ └── LC_MESSAGES
│ │ │ └── HRTunerProxy.po
│ ├── is
│ │ └── LC_MESSAGES
│ │ │ └── HRTunerProxy.po
│ ├── it
│ │ └── LC_MESSAGES
│ │ │ └── HRTunerProxy.po
│ ├── lt
│ │ └── LC_MESSAGES
│ │ │ └── HRTunerProxy.po
│ ├── lv
│ │ └── LC_MESSAGES
│ │ │ └── HRTunerProxy.po
│ ├── nb
│ │ └── LC_MESSAGES
│ │ │ └── HRTunerProxy.po
│ ├── nl
│ │ └── LC_MESSAGES
│ │ │ └── HRTunerProxy.po
│ ├── no
│ │ └── LC_MESSAGES
│ │ │ └── HRTunerProxy.po
│ ├── pl
│ │ └── LC_MESSAGES
│ │ │ └── HRTunerProxy.po
│ ├── pt
│ │ └── LC_MESSAGES
│ │ │ └── HRTunerProxy.po
│ ├── pt_BR
│ │ └── LC_MESSAGES
│ │ │ └── HRTunerProxy.po
│ ├── ro
│ │ └── LC_MESSAGES
│ │ │ └── PlexDVRAPI.po
│ ├── ru
│ │ └── LC_MESSAGES
│ │ │ └── PlexDVRAPI.po
│ ├── sk
│ │ └── LC_MESSAGES
│ │ │ └── PlexDVRAPI.po
│ ├── sl
│ │ └── LC_MESSAGES
│ │ │ └── PlexDVRAPI.po
│ ├── sr
│ │ └── LC_MESSAGES
│ │ │ └── PlexDVRAPI.po
│ ├── sv
│ │ └── LC_MESSAGES
│ │ │ └── PlexDVRAPI.po
│ ├── th
│ │ └── LC_MESSAGES
│ │ │ └── PlexDVRAPI.po
│ ├── tr
│ │ └── LC_MESSAGES
│ │ │ └── PlexDVRAPI.po
│ └── uk
│ │ └── LC_MESSAGES
│ │ └── PlexDVRAPI.po
├── plugin-hd.png
├── plugin.png
├── plugin.py
├── server.py
├── skins
│ ├── about.xml
│ ├── dreamos_about.xml
│ ├── dreamos_main.xml
│ └── main.xml
└── ssdp.py
├── pygettext.py
├── setup.py
└── setup_translate.py
/LICENSE:
--------------------------------------------------------------------------------
1 | GNU GENERAL PUBLIC LICENSE
2 | Version 2, June 1991
3 |
4 | Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
5 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
6 | Everyone is permitted to copy and distribute verbatim copies
7 | of this license document, but changing it is not allowed.
8 |
9 | Preamble
10 |
11 | The licenses for most software are designed to take away your
12 | freedom to share and change it. By contrast, the GNU General Public
13 | License is intended to guarantee your freedom to share and change free
14 | software--to make sure the software is free for all its users. This
15 | General Public License applies to most of the Free Software
16 | Foundation's software and to any other program whose authors commit to
17 | using it. (Some other Free Software Foundation software is covered by
18 | the GNU Lesser General Public License instead.) You can apply it to
19 | your programs, too.
20 |
21 | When we speak of free software, we are referring to freedom, not
22 | price. Our General Public Licenses are designed to make sure that you
23 | have the freedom to distribute copies of free software (and charge for
24 | this service if you wish), that you receive source code or can get it
25 | if you want it, that you can change the software or use pieces of it
26 | in new free programs; and that you know you can do these things.
27 |
28 | To protect your rights, we need to make restrictions that forbid
29 | anyone to deny you these rights or to ask you to surrender the rights.
30 | These restrictions translate to certain responsibilities for you if you
31 | distribute copies of the software, or if you modify it.
32 |
33 | For example, if you distribute copies of such a program, whether
34 | gratis or for a fee, you must give the recipients all the rights that
35 | you have. You must make sure that they, too, receive or can get the
36 | source code. And you must show them these terms so they know their
37 | rights.
38 |
39 | We protect your rights with two steps: (1) copyright the software, and
40 | (2) offer you this license which gives you legal permission to copy,
41 | distribute and/or modify the software.
42 |
43 | Also, for each author's protection and ours, we want to make certain
44 | that everyone understands that there is no warranty for this free
45 | software. If the software is modified by someone else and passed on, we
46 | want its recipients to know that what they have is not the original, so
47 | that any problems introduced by others will not reflect on the original
48 | authors' reputations.
49 |
50 | Finally, any free program is threatened constantly by software
51 | patents. We wish to avoid the danger that redistributors of a free
52 | program will individually obtain patent licenses, in effect making the
53 | program proprietary. To prevent this, we have made it clear that any
54 | patent must be licensed for everyone's free use or not licensed at all.
55 |
56 | The precise terms and conditions for copying, distribution and
57 | modification follow.
58 |
59 | GNU GENERAL PUBLIC LICENSE
60 | TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
61 |
62 | 0. This License applies to any program or other work which contains
63 | a notice placed by the copyright holder saying it may be distributed
64 | under the terms of this General Public License. The "Program", below,
65 | refers to any such program or work, and a "work based on the Program"
66 | means either the Program or any derivative work under copyright law:
67 | that is to say, a work containing the Program or a portion of it,
68 | either verbatim or with modifications and/or translated into another
69 | language. (Hereinafter, translation is included without limitation in
70 | the term "modification".) Each licensee is addressed as "you".
71 |
72 | Activities other than copying, distribution and modification are not
73 | covered by this License; they are outside its scope. The act of
74 | running the Program is not restricted, and the output from the Program
75 | is covered only if its contents constitute a work based on the
76 | Program (independent of having been made by running the Program).
77 | Whether that is true depends on what the Program does.
78 |
79 | 1. You may copy and distribute verbatim copies of the Program's
80 | source code as you receive it, in any medium, provided that you
81 | conspicuously and appropriately publish on each copy an appropriate
82 | copyright notice and disclaimer of warranty; keep intact all the
83 | notices that refer to this License and to the absence of any warranty;
84 | and give any other recipients of the Program a copy of this License
85 | along with the Program.
86 |
87 | You may charge a fee for the physical act of transferring a copy, and
88 | you may at your option offer warranty protection in exchange for a fee.
89 |
90 | 2. You may modify your copy or copies of the Program or any portion
91 | of it, thus forming a work based on the Program, and copy and
92 | distribute such modifications or work under the terms of Section 1
93 | above, provided that you also meet all of these conditions:
94 |
95 | a) You must cause the modified files to carry prominent notices
96 | stating that you changed the files and the date of any change.
97 |
98 | b) You must cause any work that you distribute or publish, that in
99 | whole or in part contains or is derived from the Program or any
100 | part thereof, to be licensed as a whole at no charge to all third
101 | parties under the terms of this License.
102 |
103 | c) If the modified program normally reads commands interactively
104 | when run, you must cause it, when started running for such
105 | interactive use in the most ordinary way, to print or display an
106 | announcement including an appropriate copyright notice and a
107 | notice that there is no warranty (or else, saying that you provide
108 | a warranty) and that users may redistribute the program under
109 | these conditions, and telling the user how to view a copy of this
110 | License. (Exception: if the Program itself is interactive but
111 | does not normally print such an announcement, your work based on
112 | the Program is not required to print an announcement.)
113 |
114 | These requirements apply to the modified work as a whole. If
115 | identifiable sections of that work are not derived from the Program,
116 | and can be reasonably considered independent and separate works in
117 | themselves, then this License, and its terms, do not apply to those
118 | sections when you distribute them as separate works. But when you
119 | distribute the same sections as part of a whole which is a work based
120 | on the Program, the distribution of the whole must be on the terms of
121 | this License, whose permissions for other licensees extend to the
122 | entire whole, and thus to each and every part regardless of who wrote it.
123 |
124 | Thus, it is not the intent of this section to claim rights or contest
125 | your rights to work written entirely by you; rather, the intent is to
126 | exercise the right to control the distribution of derivative or
127 | collective works based on the Program.
128 |
129 | In addition, mere aggregation of another work not based on the Program
130 | with the Program (or with a work based on the Program) on a volume of
131 | a storage or distribution medium does not bring the other work under
132 | the scope of this License.
133 |
134 | 3. You may copy and distribute the Program (or a work based on it,
135 | under Section 2) in object code or executable form under the terms of
136 | Sections 1 and 2 above provided that you also do one of the following:
137 |
138 | a) Accompany it with the complete corresponding machine-readable
139 | source code, which must be distributed under the terms of Sections
140 | 1 and 2 above on a medium customarily used for software interchange; or,
141 |
142 | b) Accompany it with a written offer, valid for at least three
143 | years, to give any third party, for a charge no more than your
144 | cost of physically performing source distribution, a complete
145 | machine-readable copy of the corresponding source code, to be
146 | distributed under the terms of Sections 1 and 2 above on a medium
147 | customarily used for software interchange; or,
148 |
149 | c) Accompany it with the information you received as to the offer
150 | to distribute corresponding source code. (This alternative is
151 | allowed only for noncommercial distribution and only if you
152 | received the program in object code or executable form with such
153 | an offer, in accord with Subsection b above.)
154 |
155 | The source code for a work means the preferred form of the work for
156 | making modifications to it. For an executable work, complete source
157 | code means all the source code for all modules it contains, plus any
158 | associated interface definition files, plus the scripts used to
159 | control compilation and installation of the executable. However, as a
160 | special exception, the source code distributed need not include
161 | anything that is normally distributed (in either source or binary
162 | form) with the major components (compiler, kernel, and so on) of the
163 | operating system on which the executable runs, unless that component
164 | itself accompanies the executable.
165 |
166 | If distribution of executable or object code is made by offering
167 | access to copy from a designated place, then offering equivalent
168 | access to copy the source code from the same place counts as
169 | distribution of the source code, even though third parties are not
170 | compelled to copy the source along with the object code.
171 |
172 | 4. You may not copy, modify, sublicense, or distribute the Program
173 | except as expressly provided under this License. Any attempt
174 | otherwise to copy, modify, sublicense or distribute the Program is
175 | void, and will automatically terminate your rights under this License.
176 | However, parties who have received copies, or rights, from you under
177 | this License will not have their licenses terminated so long as such
178 | parties remain in full compliance.
179 |
180 | 5. You are not required to accept this License, since you have not
181 | signed it. However, nothing else grants you permission to modify or
182 | distribute the Program or its derivative works. These actions are
183 | prohibited by law if you do not accept this License. Therefore, by
184 | modifying or distributing the Program (or any work based on the
185 | Program), you indicate your acceptance of this License to do so, and
186 | all its terms and conditions for copying, distributing or modifying
187 | the Program or works based on it.
188 |
189 | 6. Each time you redistribute the Program (or any work based on the
190 | Program), the recipient automatically receives a license from the
191 | original licensor to copy, distribute or modify the Program subject to
192 | these terms and conditions. You may not impose any further
193 | restrictions on the recipients' exercise of the rights granted herein.
194 | You are not responsible for enforcing compliance by third parties to
195 | this License.
196 |
197 | 7. If, as a consequence of a court judgment or allegation of patent
198 | infringement or for any other reason (not limited to patent issues),
199 | conditions are imposed on you (whether by court order, agreement or
200 | otherwise) that contradict the conditions of this License, they do not
201 | excuse you from the conditions of this License. If you cannot
202 | distribute so as to satisfy simultaneously your obligations under this
203 | License and any other pertinent obligations, then as a consequence you
204 | may not distribute the Program at all. For example, if a patent
205 | license would not permit royalty-free redistribution of the Program by
206 | all those who receive copies directly or indirectly through you, then
207 | the only way you could satisfy both it and this License would be to
208 | refrain entirely from distribution of the Program.
209 |
210 | If any portion of this section is held invalid or unenforceable under
211 | any particular circumstance, the balance of the section is intended to
212 | apply and the section as a whole is intended to apply in other
213 | circumstances.
214 |
215 | It is not the purpose of this section to induce you to infringe any
216 | patents or other property right claims or to contest validity of any
217 | such claims; this section has the sole purpose of protecting the
218 | integrity of the free software distribution system, which is
219 | implemented by public license practices. Many people have made
220 | generous contributions to the wide range of software distributed
221 | through that system in reliance on consistent application of that
222 | system; it is up to the author/donor to decide if he or she is willing
223 | to distribute software through any other system and a licensee cannot
224 | impose that choice.
225 |
226 | This section is intended to make thoroughly clear what is believed to
227 | be a consequence of the rest of this License.
228 |
229 | 8. If the distribution and/or use of the Program is restricted in
230 | certain countries either by patents or by copyrighted interfaces, the
231 | original copyright holder who places the Program under this License
232 | may add an explicit geographical distribution limitation excluding
233 | those countries, so that distribution is permitted only in or among
234 | countries not thus excluded. In such case, this License incorporates
235 | the limitation as if written in the body of this License.
236 |
237 | 9. The Free Software Foundation may publish revised and/or new versions
238 | of the General Public License from time to time. Such new versions will
239 | be similar in spirit to the present version, but may differ in detail to
240 | address new problems or concerns.
241 |
242 | Each version is given a distinguishing version number. If the Program
243 | specifies a version number of this License which applies to it and "any
244 | later version", you have the option of following the terms and conditions
245 | either of that version or of any later version published by the Free
246 | Software Foundation. If the Program does not specify a version number of
247 | this License, you may choose any version ever published by the Free Software
248 | Foundation.
249 |
250 | 10. If you wish to incorporate parts of the Program into other free
251 | programs whose distribution conditions are different, write to the author
252 | to ask for permission. For software which is copyrighted by the Free
253 | Software Foundation, write to the Free Software Foundation; we sometimes
254 | make exceptions for this. Our decision will be guided by the two goals
255 | of preserving the free status of all derivatives of our free software and
256 | of promoting the sharing and reuse of software generally.
257 |
258 | NO WARRANTY
259 |
260 | 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
261 | FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
262 | OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
263 | PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
264 | OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
265 | MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
266 | TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
267 | PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
268 | REPAIR OR CORRECTION.
269 |
270 | 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
271 | WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
272 | REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
273 | INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
274 | OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
275 | TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
276 | YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
277 | PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
278 | POSSIBILITY OF SUCH DAMAGES.
279 |
280 | END OF TERMS AND CONDITIONS
281 |
282 | How to Apply These Terms to Your New Programs
283 |
284 | If you develop a new program, and you want it to be of the greatest
285 | possible use to the public, the best way to achieve this is to make it
286 | free software which everyone can redistribute and change under these terms.
287 |
288 | To do so, attach the following notices to the program. It is safest
289 | to attach them to the start of each source file to most effectively
290 | convey the exclusion of warranty; and each file should have at least
291 | the "copyright" line and a pointer to where the full notice is found.
292 |
293 | {description}
294 | Copyright (C) {year} {fullname}
295 |
296 | This program is free software; you can redistribute it and/or modify
297 | it under the terms of the GNU General Public License as published by
298 | the Free Software Foundation; either version 2 of the License, or
299 | (at your option) any later version.
300 |
301 | This program is distributed in the hope that it will be useful,
302 | but WITHOUT ANY WARRANTY; without even the implied warranty of
303 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
304 | GNU General Public License for more details.
305 |
306 | You should have received a copy of the GNU General Public License along
307 | with this program; if not, write to the Free Software Foundation, Inc.,
308 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
309 |
310 | Also add information on how to contact you by electronic and paper mail.
311 |
312 | If the program is interactive, make it output a short notice like this
313 | when it starts in an interactive mode:
314 |
315 | Gnomovision version 69, Copyright (C) year name of author
316 | Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
317 | This is free software, and you are welcome to redistribute it
318 | under certain conditions; type `show c' for details.
319 |
320 | The hypothetical commands `show w' and `show c' should show the appropriate
321 | parts of the General Public License. Of course, the commands you use may
322 | be called something other than `show w' and `show c'; they could even be
323 | mouse-clicks or menu items--whatever suits your program.
324 |
325 | You should also get your employer (if you work as a programmer) or your
326 | school, if any, to sign a "copyright disclaimer" for the program, if
327 | necessary. Here is a sample; alter the names:
328 |
329 | Yoyodyne, Inc., hereby disclaims all copyright interest in the program
330 | `Gnomovision' (which makes passes at compilers) written by James Hacker.
331 |
332 | {signature of Ty Coon}, 1 April 1989
333 | Ty Coon, President of Vice
334 |
335 | This General Public License does not permit incorporating your program into
336 | proprietary programs. If your program is a subroutine library, you may
337 | consider it more useful to permit linking proprietary applications with the
338 | library. If this is what you want to do, use the GNU Lesser General
339 | Public License instead of this License.
340 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # HRTunerProxy
2 | Setup Enigma2 to act as HR Proxy Server.
3 |
4 | [](https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=andyblac%40icloud%2ecom&lc=GB¤cy_code=GBP&bn=PP%2dDonationsBF%3abtn_donateCC_LG%2egif%3aNonHosted)
5 |
--------------------------------------------------------------------------------
/dreamos-plugin-systemplugins-hrtunerproxy.bb:
--------------------------------------------------------------------------------
1 | SUMMARY = "Setup Enigma2 to act as HR-Tuner Proxy"
2 | DESCRIPTION = "Setup Enigma2 to act as HR-Tuner Proxy"
3 | MAINTAINER = "OpenViX"
4 | LICENSE = "Proprietary"
5 | LIC_FILES_CHKSUM = "file://LICENSE;md5=a23a74b3f4caf9616230789d94217acb"
6 |
7 | inherit allarch setuptools gitpkgv gettext distutils
8 |
9 | SRCREV = "${AUTOREV}"
10 | PV = "git${SRCPV}"
11 | PKGV = "${GITPKGVTAG}"
12 | PR = "r0"
13 |
14 | SRC_URI = "git://github.com/OpenViX/HRTunerProxy.git;protocol=git"
15 |
16 | S = "${WORKDIR}/git"
17 |
18 | RDEPENDS_${PN} = " \
19 | python-argparse \
20 | python-json \
21 | "
22 |
23 | do_install_prepend() {
24 | echo ${GITPKGVTAG} | awk -F"-" '{print $1}'> build/lib/SystemPlugins/HRTunerProxy/PLUGIN_VERSION
25 | }
26 |
27 | python populate_packages_prepend() {
28 | e2_pdir = bb.data.expand('${libdir}/enigma2/python/Plugins', d)
29 | do_split_packages(d, e2_pdir, '^(\w+/\w+)/.*\.py$', 'enigma2-plugin-%s-src', '%s (source files)', recursive=True, match_path=True, prepend=True)
30 | do_split_packages(d, e2_pdir, '^(\w+/\w+)/.*\/.*\.po$', 'enigma2-plugin-%s-po', '%s (translations)', recursive=True, match_path=True, prepend=True)
31 | }
32 |
--------------------------------------------------------------------------------
/enigma2-plugin-systemplugins-hrtunerproxy.bb:
--------------------------------------------------------------------------------
1 | SUMMARY = "Setup Enigma2 to act as HR-Tuner Proxy"
2 | DESCRIPTION = "Setup Enigma2 to act as HR-Tuner Proxy"
3 | MAINTAINER = "OpenViX"
4 | LICENSE = "Proprietary"
5 | LIC_FILES_CHKSUM = "file://LICENSE;md5=a23a74b3f4caf9616230789d94217acb"
6 |
7 | inherit gitpkgv distutils-openplugins
8 |
9 | SRCREV = "${AUTOREV}"
10 | PV = "git${SRCPV}"
11 | PKGV = "${GITPKGVTAG}"
12 | PR = "r0"
13 |
14 | SRC_URI = "git://github.com/OpenViX/HRTunerProxy.git;protocol=git"
15 |
16 | S = "${WORKDIR}/git"
17 |
18 | RDEPENDS_${PN} = " \
19 | python-argparse \
20 | "
21 |
22 | do_install_prepend() {
23 | echo ${GITPKGVTAG} | awk -F"-" '{print $1}'> build/lib/SystemPlugins/HRTunerProxy/PLUGIN_VERSION
24 | }
25 |
26 | python populate_packages_prepend() {
27 | e2_pdir = bb.data.expand('${libdir}/enigma2/python/Plugins', d)
28 | do_split_packages(d, e2_pdir, '^(\w+/\w+)/.*\.py$', 'enigma2-plugin-%s-src', '%s (source files)', recursive=True, match_path=True, prepend=True)
29 | do_split_packages(d, e2_pdir, '^(\w+/\w+)/.*\/.*\.po$', 'enigma2-plugin-%s-po', '%s (translations)', recursive=True, match_path=True, prepend=True)
30 | }
--------------------------------------------------------------------------------
/plugin/__init__.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | from __future__ import print_function
3 | from __future__ import absolute_import
4 |
5 | import gettext
6 | import socket
7 | import fcntl
8 | import struct
9 | import logging
10 | from os import path, remove, environ as os_environ
11 |
12 | from Components.config import config, ConfigSubsection, ConfigSubDict, ConfigSelection, ConfigSelectionNumber, ConfigNumber, ConfigEnableDisable, NoSave
13 | from Components.Language import language
14 | from Tools.Directories import resolveFilename, SCOPE_PLUGINS, SCOPE_LANGUAGE
15 |
16 | from .getLineup import getBouquetsList
17 |
18 | try:
19 | from enigma import eMediaDatabase
20 | isDreamOS = True
21 | except:
22 | isDreamOS = False
23 |
24 | import six
25 |
26 | if path.exists('/tmp/hrtunerproxy.log'):
27 | remove('/tmp/hrtunerproxy.log')
28 | logger = logging.getLogger('[HRTunerProxy]')
29 | hdlr = logging.FileHandler('/tmp/hrtunerproxy.log')
30 | formatter = logging.Formatter('%(asctime)s %(levelname)s %(message)s')
31 | hdlr.setFormatter(formatter)
32 | logger.addHandler(hdlr)
33 | logger.setLevel(logging.DEBUG)
34 |
35 | tunerTypes = ('DVB-C', 'DVB-T', 'DVB-S', 'iptv', 'multi')
36 |
37 | tunertypes = {
38 | 'DVB-C': 'Cable',
39 | 'DVB-T': 'Antenna',
40 | 'DVB-S': 'Cable',
41 | 'multi': 'Cable',
42 | 'iptv': 'Cable'
43 | }
44 |
45 | tunerports = {
46 | 'DVB-C': '6081',
47 | 'DVB-T': '6082',
48 | 'DVB-S': '6083',
49 | 'multi': '6084',
50 | 'iptv': '6085'
51 | }
52 |
53 | tunerfolders = {
54 | 'DVB-C': 'cable',
55 | 'DVB-T': 'antenna',
56 | 'DVB-S': 'satellite',
57 | 'multi': 'multi',
58 | 'iptv': 'iptv'
59 | }
60 |
61 | porttypes = {
62 | 6081: 'DVB-C',
63 | 6082: 'DVB-T',
64 | 6083: 'DVB-S',
65 | 6084: 'multi',
66 | 6085: 'iptv'
67 | }
68 |
69 | config.hrtunerproxy = ConfigSubsection()
70 | config.hrtunerproxy.bouquets_list = ConfigSubDict()
71 | for type in tunerTypes:
72 | config.hrtunerproxy.bouquets_list[type] = ConfigSelection(default=None, choices=[(None, _('Not set')), ('all', _('All'))] + getBouquetsList())
73 | config.hrtunerproxy.iptv_tunercount = ConfigSelectionNumber(min=1, max=10, stepwidth=1, default=2, wraparound=True)
74 | config.hrtunerproxy.slotsinuse = NoSave(ConfigNumber())
75 | config.hrtunerproxy.debug = ConfigEnableDisable(default=False)
76 |
77 |
78 | def getVersion():
79 | if path.exists("/usr/lib/enigma2/python/Plugins/SystemPlugins/HRTunerProxy/PLUGIN_VERSION"):
80 | f = open("/usr/lib/enigma2/python/Plugins/SystemPlugins/HRTunerProxy/PLUGIN_VERSION")
81 | PLUGIN_VERSION = _('v%s ') % f.read().replace('\n', '')
82 | f.close()
83 | else:
84 | PLUGIN_VERSION = ''
85 | return PLUGIN_VERSION
86 |
87 |
88 | if config.hrtunerproxy.debug.value:
89 | logger.info('Version: %s' % getVersion())
90 |
91 |
92 | def _ifinfo(sock, addr, ifname):
93 | iface = struct.pack('256s', six.ensure_binary(ifname[:15]))
94 | info = fcntl.ioctl(sock.fileno(), addr, iface)
95 | if addr == 0x8927:
96 | return ':'.join(['%02x' % (char if six.PY3 else ord(char)) for char in info[18:24]]).upper()
97 | else:
98 | return socket.inet_ntoa(info[20:24])
99 |
100 |
101 | def getIfConfig(ifname):
102 | ifreq = {'ifname': ifname}
103 | infos = {}
104 | sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
105 | # offsets defined in /usr/include/linux/sockios.h on linux 2.6
106 | infos['addr'] = 0x8915 # SIOCGIFADDR
107 | infos['brdaddr'] = 0x8919 # SIOCGIFBRDADDR
108 | infos['hwaddr'] = 0x8927 # SIOCSIFHWADDR
109 | infos['netmask'] = 0x891b # SIOCGIFNETMASK
110 | try:
111 | for k, v in infos.items():
112 | ifreq[k] = _ifinfo(sock, v, ifname)
113 | except:
114 | pass
115 | sock.close()
116 | return ifreq
117 |
118 |
119 | def getIfInfo():
120 | for port in ('eth0', 'eth1', 'wlan0', 'wlan1', 'wlan2', 'wlan3', 'ra0'):
121 | ifinfo = getIfConfig(port)
122 | if 'addr' in ifinfo:
123 | return ifinfo
124 | return None
125 |
126 |
127 | def getIP():
128 | IP = '0.0.0.0'
129 | ifinfo = getIfInfo()
130 | if ifinfo:
131 | IP = ifinfo['addr']
132 | return '%s' % IP
133 |
134 |
135 | PluginLanguageDomain = "HRTunerProxy"
136 | PluginLanguagePath = "SystemPlugins/HRTunerProxy/locale"
137 |
138 |
139 | def localeInit():
140 | if isDreamOS: # check if opendreambox image
141 | lang = language.getLanguage()[:2] # getLanguage returns e.g. "fi_FI" for "language_country"
142 | os_environ["LANGUAGE"] = lang # Enigma doesn't set this (or LC_ALL, LC_MESSAGES, LANG). gettext needs it!
143 | gettext.bindtextdomain(PluginLanguageDomain, resolveFilename(SCOPE_PLUGINS, PluginLanguagePath))
144 |
145 |
146 | if isDreamOS: # check if DreamOS image
147 | _ = lambda txt: gettext.dgettext(PluginLanguageDomain, txt) if txt else ""
148 | localeInit()
149 | language.addCallback(localeInit)
150 | else:
151 | def _(txt):
152 | if gettext.dgettext(PluginLanguageDomain, txt):
153 | return gettext.dgettext(PluginLanguageDomain, txt)
154 | else:
155 | print("[" + PluginLanguageDomain + "] fallback to default translation for " + txt)
156 | return gettext.gettext(txt)
157 | language.addCallback(localeInit())
158 |
--------------------------------------------------------------------------------
/plugin/about.py:
--------------------------------------------------------------------------------
1 | from os import path
2 | from sys import modules
3 |
4 | from . import _, getVersion, isDreamOS
5 | from Components.ActionMap import ActionMap
6 | from Components.Button import Button
7 | from Components.config import config
8 | from Components.Label import Label
9 | from Components.Pixmap import Pixmap
10 | from Components.Sources.StaticText import StaticText
11 | from Screens.Screen import Screen
12 |
13 |
14 | class HRTunerProxy_About(Screen):
15 | if isDreamOS: # check if DreamOS image
16 | skin = "%s/skins/dreamos_about.xml" % (path.dirname(modules[__name__].__file__))
17 | else:
18 | skin = "%s/skins/about.xml" % (path.dirname(modules[__name__].__file__))
19 | f = open(skin, "r")
20 | skin = f.read()
21 | f.close()
22 |
23 | def __init__(self, session, menu_path=""):
24 | Screen.__init__(self, session)
25 | if hasattr(config.usage, 'show_menupath'):
26 | screentitle = _("About HR-Tuner Proxy")
27 | if config.usage.show_menupath.value == 'large':
28 | menu_path += screentitle
29 | title = menu_path
30 | self["menu_path_compressed"] = StaticText("")
31 | elif config.usage.show_menupath.value == 'small':
32 | title = screentitle
33 | self["menu_path_compressed"] = StaticText(menu_path + " >" if not menu_path.endswith(' / ') else menu_path[:-3] + " >" or "")
34 | else:
35 | title = screentitle
36 | self["menu_path_compressed"] = StaticText("")
37 | else:
38 | title = _("About HR-Tuner Proxy")
39 | Screen.setTitle(self, title)
40 |
41 | self["about"] = Label()
42 | self["actions"] = ActionMap(["SetupActions"],
43 | {
44 | "red": self.close,
45 | "cancel": self.close,
46 | "menu": self.close,
47 | }, -2)
48 |
49 | self["key_red"] = Button(_("Close"))
50 | self["button_red"] = Pixmap()
51 |
52 | credit = _("HR-Tuner Proxy for Enigma2 %s(c) 2018\n") % getVersion()
53 | credit += "Andrew Blackburn & Rowland Huevos\n"
54 | credit += "https://github.com/OpenViX/HRTunerProxy\n\n"
55 | credit += _("Application credits:\n")
56 | credit += "- AndyBlac (main developer)\n"
57 | credit += "- Huevos (main developer)\n"
58 | credit += "- rossi2000 (developer)\n\n"
59 | credit += _("Sources credits:\n")
60 | credit += "- FidoFuz (helped us with JSON tags)\n"
61 | credit += "- PiGeon(CZ) (helped us with debugging OpenDreamBox)\n\n"
62 | credit += _("Translation credits:\n")
63 | credit += "- patrickf95 / captain (German)\n"
64 | credit += "- PiGeon(CZ) (Czech)\n"
65 | credit += "- Rob van der Does(NL) (Dutch)\n"
66 | credit += "- Pakorro (Spanish)"
67 | self["about"].setText(credit)
68 |
--------------------------------------------------------------------------------
/plugin/getDeviceInfo.py:
--------------------------------------------------------------------------------
1 | from __future__ import print_function
2 | from __future__ import absolute_import
3 |
4 | import string
5 | import random
6 | import json
7 | import uuid
8 | from socket import gethostname
9 | from os import path, mkdir
10 | from sys import modules
11 |
12 | from Components.About import about
13 | from Components.NimManager import nimmanager
14 | from Components.config import config
15 |
16 | try:
17 | from boxbranding import getMachineName, getDriverDate, getBoxType, getMachineBrand, getImageDistro
18 | brandingmodule = True
19 | except:
20 | brandingmodule = False
21 | try:
22 | from enigma import getBoxType, getEnigmaVersionString
23 | except:
24 | def getBoxType():
25 | return 'STB'
26 |
27 | def getEnigmaVersionString():
28 | return '000000'
29 |
30 | from .getLineup import getlineup
31 | from . import tunertypes, tunerports, tunerfolders, getIP
32 |
33 | charset = {
34 | "auth": string.ascii_letters + string.digits,
35 | "id": string.ascii_uppercase + string.digits,
36 | }
37 |
38 |
39 | def generator(size, chars=charset['id']):
40 | return ''.join(random.choice(chars) for _ in range(size))
41 |
42 |
43 | class getDeviceInfo:
44 | def __init__(self):
45 | pass
46 |
47 | def discoverJSON(self, dvb_type):
48 | ip = getIP()
49 | ip_port = 'http://%s:%s' % (ip, tunerports[dvb_type])
50 | device_uuid = str(uuid.uuid4())
51 | if path.exists('/etc/enigma2/%s.discover' % dvb_type):
52 | with open('/etc/enigma2/%s.discover' % dvb_type) as data_file:
53 | discover = json.load(data_file)
54 | discover.pop('NumChannels', None)
55 | else:
56 | discover = {}
57 | deviceauth = generator(24, charset['auth'])
58 | deviceid = generator(8, charset['id'])
59 | if brandingmodule:
60 | discover['FriendlyName'] = '%s %s' % (getMachineBrand(), getMachineName())
61 | discover['ModelNumber'] = '%s' % getBoxType()
62 | discover['FirmwareName'] = '%s' % getImageDistro()
63 | discover['FirmwareVersion'] = '%s' % getDriverDate()
64 | else:
65 | discover['FriendlyName'] = '%s' % gethostname()
66 | discover['ModelNumber'] = '%s' % getBoxType()
67 | discover['FirmwareName'] = '%s' % _('Enigma2')
68 | discover['FirmwareVersion'] = '%s' % getEnigmaVersionString()
69 | discover['DeviceID'] = '%s' % deviceid
70 | discover['DeviceAuth'] = '%s' % deviceauth
71 | discover['DeviceUUID'] = '%s' % device_uuid
72 |
73 | discover['Manufacturer'] = 'Silicondust'
74 | discover['BaseURL'] = '%s' % ip_port
75 | discover['LineupURL'] = '%s/lineup.json' % ip_port
76 | discover['TunerCount'] = tunercount(dvb_type)
77 | return discover
78 |
79 | def tunersInUse(self):
80 | # returns list of nim.slot numbers that are currenly in use
81 | mask = config.hrtunerproxy.slotsinuse.value
82 | print("[HRTunerProxy] mask:%s\n" % mask)
83 | slots = []
84 | for i in range(len(format(mask, 'b'))):
85 | if (mask >> i) & 0x1:
86 | slots.append(i)
87 | return slots
88 |
89 | def getTunerInfo(self, dvb_type):
90 | nimList = getNimList(dvb_type)
91 | tunersInUse = self.tunersInUse()
92 | print("[HRTunerProxy] tunersInUse", tunersInUse)
93 | tunerstatus = {}
94 | x = 0
95 | for nim in nimList:
96 | status = _("In use") if nim in tunersInUse else "none"
97 | tunerstatus["tuner%s" % x] = status
98 | x += 1
99 | return tunerstatus
100 |
101 |
102 | def getNimList(dvbtype):
103 | return nimmanager.getNimListOfType(dvbtype) if dvbtype not in ('multi', 'iptv') else nimmanager.nimList()
104 |
105 |
106 | def tunercount(dvbtype):
107 | return len(nimmanager.getNimListOfType(dvbtype)) if dvbtype not in ('multi', 'iptv') else len(nimmanager.nimList())
108 |
109 |
110 | def tunerdata(dvbtype):
111 | device_info = getDeviceInfo()
112 | output = device_info.getTunerInfo(dvbtype)
113 | return output
114 |
115 |
116 | def tunerstatus(dvbtype):
117 | discover = discoverdata(dvbtype=dvbtype)
118 | ts = tunerdata(dvbtype)
119 | data = """
120 |
121 |
122 |
131 | """ % discover['FriendlyName']
132 | for x in range(tunercount(dvbtype)):
133 | data += "
Tuner %s Channel
%s
\n" % (x, ts["tuner%s" % x])
134 | data += """
135 |
136 |
137 | """
138 | return data
139 |
140 |
141 | def discoverdata(dvbtype):
142 | device_info = getDeviceInfo()
143 | output = device_info.discoverJSON(dvb_type=dvbtype)
144 | return output
145 |
146 |
147 | def write_discover(dvbtype="DVB-S"):
148 | data = discoverdata(dvbtype=dvbtype)
149 | try:
150 | with open('/etc/enigma2/%s.discover' % dvbtype, 'w') as outfile:
151 | json.dump(data, outfile)
152 | outfile.close()
153 | except Exception as e:
154 | print("Error opening %s for writing" % writefile)
155 | return
156 |
157 |
158 | def devicedata(dvbtype):
159 | if path.exists('/etc/enigma2/%s.device' % dvbtype):
160 | datafile = open('/etc/enigma2/%s.device' % dvbtype, 'r')
161 | xmldoc = datafile.read()
162 | datafile.close()
163 | else:
164 | xmldoc = ""
165 | return xmldoc
166 |
167 |
168 | def write_device_xml(dvbtype):
169 | discover = discoverdata(dvbtype=dvbtype)
170 | xml = """
171 |
172 | 1
173 | 0
174 |
175 | {base_url}
176 |
177 | urn:schemas-upnp-org:device:MediaServer:1
178 | {friendly_name}
179 | {manufacturer}
180 | {model_name}
181 | {model_number}
182 | {serial_number}
183 | uuid:{uuid}
184 |
185 | """
186 | xmlfile = xml.format(base_url=discover['BaseURL'],
187 | friendly_name=discover['FriendlyName'],
188 | manufacturer=discover['Manufacturer'],
189 | model_name=discover['ModelNumber'].upper(),
190 | model_number=discover['ModelNumber'].lower(),
191 | serial_number="",
192 | uuid=discover['DeviceUUID'])
193 |
194 | with open('/etc/enigma2/%s.device' % dvbtype, 'w') as outfile:
195 | outfile.writelines(xmlfile)
196 | outfile.close()
197 |
198 |
199 | getdeviceinfo = modules[__name__]
200 |
--------------------------------------------------------------------------------
/plugin/getLineup.py:
--------------------------------------------------------------------------------
1 | from __future__ import print_function
2 |
3 | import re
4 | import json
5 | try:
6 | from urllib.parse import unquote
7 | except:
8 | from urllib import unquote
9 | from os import path, mkdir
10 | from sys import modules
11 |
12 | from enigma import eServiceReference
13 | from Components.config import config
14 |
15 |
16 | class getLineup:
17 | def __init__(self, duplicates=False, bouquet=None, bouquet_names_only=False):
18 | self.duplicates = duplicates
19 | self.bouquet_names_only = bouquet_names_only
20 | self.refs_added = []
21 | if hasattr(eServiceReference, 'isNumberedMarker'):
22 | self.isNumberedMarker = eServiceReference.isNumberedMarker
23 | else:
24 | self.isNumberedMarker = 256
25 | if hasattr(eServiceReference, 'isInvisible'):
26 | self.isInvisible = eServiceReference.isInvisible
27 | else:
28 | self.isInvisible = 512
29 | self.path = "/etc/enigma2/"
30 | self.db = "lamedb"
31 | self.tv_index = "bouquets.tv"
32 | self.channelNames = {} # key SID:TSID:ONID:NAMESPACE in hex
33 | self.bouquets_filenames = []
34 | self.bouquets_flags = {}
35 | self.bouquets_names = [] # contains tuple pairs, e.g. [(filename1, bouquet_name1), (filename2, bouquet_name2)]
36 | self.channel_numbers_names_and_refs = []
37 | self.video_allowed_types = [1, 4, 5, 17, 22, 24, 25, 27, 31, 135]
38 | if not self.bouquet_names_only:
39 | self.read_services()
40 | if bouquet:
41 | if bouquet != 'all':
42 | self.bouquets_filenames.append(bouquet)
43 | self.bouquets_flags[bouquet] = (eServiceReference.isDirectory | eServiceReference.mustDescent | eServiceReference.canDescent) # default bouquet folder (7)
44 | else:
45 | self.read_tv_index()
46 | self.read_tv_bouquets()
47 |
48 | def read_services(self):
49 | try:
50 | db = open(self.path + self.db, "r")
51 | except Exception as e:
52 | return
53 |
54 | content = db.read()
55 | db.close()
56 |
57 | srv_start = content.find("services\n")
58 | srv_stop = content.rfind("end\n")
59 |
60 | srv_blocks = content[srv_start + 9:srv_stop].strip().split("\n")
61 |
62 | for i in range(0, len(srv_blocks) // 3):
63 | service_reference = srv_blocks[i * 3].strip().split(":")
64 | service_name = srv_blocks[(i * 3) + 1].strip()
65 |
66 | if len(service_reference) != 6 and len(service_reference) != 7:
67 | continue
68 |
69 | sid = int(service_reference[0], 16)
70 | namespace = int(service_reference[1], 16)
71 | tsid = int(service_reference[2], 16)
72 | onid = int(service_reference[3], 16)
73 |
74 | key = "%x:%x:%x:%x" % (sid, tsid, onid, namespace)
75 | self.channelNames[key] = service_name
76 |
77 | def read_tv_index(self):
78 | try:
79 | bouquets = open(self.path + self.tv_index, "r")
80 | except Exception as e:
81 | return
82 |
83 | content = bouquets.read()
84 | bouquets.close()
85 |
86 | for row in content.split("\n"):
87 | result = re.match("^.*FROM BOUQUET \"(.+)\" ORDER BY.*$", row) or re.match("[#]SERVICE[:] (?:[0-9a-f]+[:])+([^:]+[.](?:tv|radio))$", row, re.IGNORECASE)
88 | if result is None:
89 | continue
90 | self.bouquets_filenames.append(result.group(1))
91 | bouquet_flags = (eServiceReference.isDirectory | eServiceReference.mustDescent | eServiceReference.canDescent) # default bouquet folder (7)
92 | if result.group(0).startswith("#SERVICE "):
93 | service_ref = result.group(0)[9:].strip()
94 | service_ref_split = service_ref.split(":")
95 | if len(service_ref_split) > 9:
96 | bouquet_flags = int(service_ref_split[1])
97 | self.bouquets_flags[result.group(1)] = bouquet_flags
98 |
99 | def read_tv_bouquets(self):
100 | channel_number = 0
101 | for filename in self.bouquets_filenames:
102 | name = ''
103 | try:
104 | bouquet = open(self.path + filename, "r")
105 | except Exception as e:
106 | continue
107 |
108 | content = bouquet.read()
109 | bouquet.close()
110 |
111 | content_split = content.split("\n")
112 | content_len = len(content_split)
113 | for idx in range(content_len):
114 | row = content_split[idx]
115 | channel_name = ''
116 | if name == '' and row.startswith("#NAME "):
117 | if not (self.bouquets_flags[filename] & self.isInvisible): # not invisible bouquet
118 | name = row.strip()[6:]
119 | self.bouquets_names.append((filename, name))
120 | if self.bouquet_names_only:
121 | break
122 | elif row.startswith("#SERVICE "):
123 | if content_len > (idx + 1) and content_split[idx + 1].startswith("#DESCRIPTION "): # check if channel name exists in bouquets file
124 | channel_name = content_split[idx + 1].strip()[13:]
125 | service_ref = row[9:].strip()
126 | service_ref_split = service_ref.split(":")
127 | if len(service_ref_split) < 10:
128 | print("[HRTunerProxy] [read_tv_bouquets] Error in %s" % filename)
129 | continue
130 | service_flags = int(service_ref_split[1])
131 | if service_flags == (eServiceReference.mustDescent | eServiceReference.canDescent | eServiceReference.isGroup): # alternatives (134)
132 | alternative = self.alternatives(row)
133 | if alternative is None: # something must be wrong with alternatives group
134 | channel_number += 1
135 | continue
136 | service_ref = alternative["service_ref"]
137 | service_ref_split = alternative["service_ref_split"]
138 | service_flags = alternative["service_flags"]
139 | if service_flags == eServiceReference.isMarker: # standard marker (64), skip
140 | continue
141 | channel_number += 1 # everything below this point increments the channel number
142 | if (service_flags & self.isNumberedMarker): # numbered marker (256)
143 | continue
144 | if (self.bouquets_flags[filename] & self.isInvisible): # invisible bouquet (512)
145 | continue
146 | if int(service_ref_split[0]) not in (1, 4097): # not a regular service. Might be IPTV.
147 | continue
148 | if service_flags != 0: # not a normal service that can be fed directly into the "play"-handler.
149 | continue
150 | if int(service_ref_split[2], 16) not in self.video_allowed_types:
151 | continue
152 | if service_ref in self.refs_added and not self.duplicates:
153 | continue
154 | if "http" not in row: # not http stream
155 | self.refs_added.append(service_ref)
156 | sid = int(service_ref_split[3], 16)
157 | tsid = int(service_ref_split[4], 16)
158 | onid = int(service_ref_split[5], 16)
159 | namespace = int(service_ref_split[6], 16)
160 | key = "%x:%x:%x:%x" % (sid, tsid, onid, namespace)
161 | if key not in self.channelNames and ("http" not in row or ("http" in row and channel_name == "")):
162 | continue
163 | if channel_name == "":
164 | channel_name = self.channelNames[key]
165 | if len(service_ref_split) > 10 and "http" in service_ref_split[10]: # http stream
166 | http_link = unquote(service_ref_split[10].strip())
167 | self.channel_numbers_names_and_refs.append((str(channel_number), channel_name, http_link, "iptv"))
168 | continue
169 | service_ref_clean = ':'.join(service_ref_split[:10]) + ":"
170 | self.channel_numbers_names_and_refs.append((str(channel_number), channel_name, service_ref_clean, self.tunerType(namespace)))
171 |
172 | def tunerType(self, namespace):
173 | if (namespace >> 16) == 0xFFFF:
174 | return "DVB-C"
175 | if (namespace >> 16) == 0xEEEE:
176 | return "DVB-T"
177 | return "DVB-S"
178 |
179 | def alternatives(self, service_line):
180 | result = re.match("^.*FROM BOUQUET \"(.+)\" ORDER BY.*$", service_line)
181 | if result is not None:
182 | try:
183 | alternative = open(self.path + result.group(1), "r")
184 | except Exception as e:
185 | return
186 | content = alternative.read()
187 | alternative.close()
188 |
189 | for row in content.split("\n"):
190 | if row.startswith("#SERVICE "):
191 | if "http" in row:
192 | continue
193 | service_ref = row[9:].strip()
194 | service_ref_split = service_ref.split(":")
195 | if len(service_ref_split) < 10:
196 | print("[HRTunerProxy] [alternatives] Error in %s" % result.group(1))
197 | continue
198 | if int(service_ref_split[0], 16) != 1: # not a regular service. Might be IPTV.
199 | continue
200 | service_flags = int(service_ref_split[1])
201 | if service_flags == 0: # normal service that can be fed directly into the "play"-handler.
202 | return {"service_ref": service_ref, "service_ref_split": service_ref_split, "service_flags": service_flags}
203 |
204 | def output(self):
205 | return self.channel_numbers_names_and_refs
206 |
207 | def createJSON(self, ip="0.0.0.0", port=8001, dvb_type="DVB-S"):
208 | output = self.output()
209 | self.data_tmp = {}
210 | self.lineup = []
211 |
212 | for c_n_r in output:
213 | if dvb_type == "iptv" and "http" not in c_n_r[2]:
214 | continue
215 | if dvb_type in ('multi', 'iptv', c_n_r[3]):
216 | self.data_tmp = {}
217 | self.data_tmp['GuideNumber'] = '%s' % c_n_r[0]
218 | self.data_tmp['GuideName'] = '%s' % c_n_r[1]
219 | if "http" in c_n_r[2]:
220 | self.data_tmp['URL'] = c_n_r[2]
221 | else:
222 | self.data_tmp['URL'] = 'http://%s:%d/%s' % (ip, port, c_n_r[2])
223 | self.lineup.append(self.data_tmp)
224 | return self.lineup
225 |
226 | def getBouquetsList(self):
227 | return self.bouquets_names
228 |
229 |
230 | def noofchannels(dvb_type, bouquet):
231 | return len(lineupdata(dvbtype=dvb_type, bouquet_name=bouquet))
232 |
233 |
234 | def lineupdata(ipinput='0.0.0.0', dvbtype='', bouquet_name=''):
235 | channel_numbers = getLineup(bouquet=bouquet_name)
236 | return channel_numbers.createJSON(ip=ipinput, dvb_type=dvbtype)
237 |
238 |
239 | def getBouquetsList():
240 | lineup = getLineup(bouquet_names_only=True, bouquet='all')
241 | return lineup.getBouquetsList()
242 |
243 |
244 | getlineup = modules[__name__]
245 |
--------------------------------------------------------------------------------
/plugin/getLineupStatus.py:
--------------------------------------------------------------------------------
1 | from __future__ import print_function
2 | from __future__ import absolute_import
3 |
4 | import string
5 | import random
6 | import json
7 | from os import path, mkdir
8 | from sys import modules
9 |
10 | from . import tunerTypes, tunertypes
11 |
12 | lineup_status = {}
13 |
14 |
15 | class getLineupStatus:
16 | def __init__(self):
17 | pass
18 |
19 | def lineupstatusJSON(self, dvb_type):
20 | lineup_status = {}
21 | lineup_status['ScanInProgess'] = 0
22 | lineup_status['ScanPossible'] = 0
23 | lineup_status['Source'] = '%s' % tunertypes[dvb_type]
24 | lineup_status['SourceList'] = ["%s" % tunertypes[dvb_type]]
25 | return lineup_status
26 |
27 |
28 | def lineupstatus(dvbtype):
29 | lineup_status = getLineupStatus()
30 | output = lineup_status.lineupstatusJSON(dvb_type=dvbtype)
31 | return output
32 |
33 |
34 | getlineupstatus = modules[__name__]
35 |
--------------------------------------------------------------------------------
/plugin/locale/HRTunerProxy.pot:
--------------------------------------------------------------------------------
1 | # SOME DESCRIPTIVE TITLE.
2 | # Copyright (C) YEAR ORGANIZATION
3 | # FIRST AUTHOR , YEAR.
4 | #
5 | msgid ""
6 | msgstr ""
7 | "Project-Id-Version: PACKAGE VERSION\n"
8 | "POT-Creation-Date: 2018-02-11 15:24+GMT\n"
9 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
10 | "Last-Translator: FULL NAME \n"
11 | "Language-Team: LANGUAGE \n"
12 | "MIME-Version: 1.0\n"
13 | "Content-Type: text/plain; charset=CHARSET\n"
14 | "Content-Transfer-Encoding: ENCODING\n"
15 | "Generated-By: pygettext.py 1.5\n"
16 |
17 |
18 | #: plugin/__init__.py:67
19 | msgid "All"
20 | msgstr ""
21 |
22 | #: plugin/__init__.py:67
23 | msgid "Not set"
24 | msgstr ""
25 |
26 | #: plugin/__init__.py:75
27 | msgid "v%s "
28 | msgstr ""
29 |
30 | #: plugin/about.py:25 plugin/about.py:37
31 | msgid "About HR-Tuner Proxy"
32 | msgstr ""
33 |
34 | #: plugin/about.py:48 plugin/plugin.py:162
35 | msgid "Close"
36 | msgstr ""
37 |
38 | #: plugin/about.py:51
39 | msgid ""
40 | "HR-Tuner Proxy for Enigma2 %s(c) 2018\n"
41 | msgstr ""
42 |
43 | #: plugin/about.py:54
44 | msgid ""
45 | "Application credits:\n"
46 | msgstr ""
47 |
48 | #: plugin/about.py:58
49 | msgid ""
50 | "Sources credits:\n"
51 | msgstr ""
52 |
53 | #: plugin/about.py:61
54 | msgid ""
55 | "Translation credits:\n"
56 | msgstr ""
57 |
58 | #: plugin/getDeviceInfo.py:62
59 | msgid "Enigma2"
60 | msgstr ""
61 |
62 | #: plugin/getDeviceInfo.py:91
63 | msgid "In use"
64 | msgstr ""
65 |
66 | #: plugin/plugin.py:105 plugin/plugin.py:125
67 | msgid "HR-Tuner Proxy for Enigma2"
68 | msgstr ""
69 |
70 | #: plugin/plugin.py:174
71 | msgid "About"
72 | msgstr ""
73 |
74 | #: plugin/plugin.py:189
75 | msgid ""
76 | "WARNING: No IP address found. Please make sure you are connected to your LAN via ethernet or Wi-Fi.\n"
77 | "\n"
78 | "Press OK to exit."
79 | msgstr ""
80 |
81 | #: plugin/plugin.py:200 plugin/plugin.py:216 plugin/plugin.py:271
82 | #: plugin/plugin.py:292 plugin/plugin.py:307
83 | msgid "Tuner type to use."
84 | msgstr ""
85 |
86 | #: plugin/plugin.py:217 plugin/plugin.py:274 plugin/plugin.py:295
87 | #: plugin/plugin.py:310
88 | msgid "Bouquet to use."
89 | msgstr ""
90 |
91 | #: plugin/plugin.py:219
92 | msgid "Number of concurrent streams."
93 | msgstr ""
94 |
95 | #: plugin/plugin.py:220 plugin/plugin.py:298 plugin/plugin.py:313
96 | msgid "Debug Mode."
97 | msgstr ""
98 |
99 | #: plugin/plugin.py:256
100 | msgid "Please note: Please now select a bouquet to use."
101 | msgstr ""
102 |
103 | #: plugin/plugin.py:258
104 | msgid "Please note: You do not seem to have any channels setup for this tuner, please add some channels to Enigma2 or choose anther tuner type."
105 | msgstr ""
106 |
107 | #: plugin/plugin.py:264
108 | msgid "WARNING: It seems you have a single tuner box. If the box is not left in standby your recordings WILL fail."
109 | msgstr ""
110 |
111 | #: plugin/plugin.py:265
112 | msgid "Press OK to continue setting up this tuner."
113 | msgstr ""
114 |
115 | #: plugin/plugin.py:268 plugin/plugin.py:303 plugin/plugin.py:316
116 | msgid "Save"
117 | msgstr ""
118 |
119 | #: plugin/plugin.py:272
120 | msgid "Press OK to continue setting up this tuner or press LEFT / RIGHT to select a different tuner type."
121 | msgstr ""
122 |
123 | #: plugin/plugin.py:273 plugin/plugin.py:293 plugin/plugin.py:308
124 | msgid "Press LEFT / RIGHT to select a different tuner type."
125 | msgstr ""
126 |
127 | #: plugin/plugin.py:275 plugin/plugin.py:278 plugin/plugin.py:281
128 | msgid "Press OK to continue setting up this tuner or select a different tuner type."
129 | msgstr ""
130 |
131 | #: plugin/plugin.py:276 plugin/plugin.py:279 plugin/plugin.py:297
132 | #: plugin/plugin.py:312
133 | msgid "Press LEFT / RIGHT to select a different bouquet."
134 | msgstr ""
135 |
136 | #: plugin/plugin.py:277
137 | msgid "Debug mode to create logs."
138 | msgstr ""
139 |
140 | #: plugin/plugin.py:282
141 | msgid "Press LEFT / RIGHT to set number of concurent streams."
142 | msgstr ""
143 |
144 | #: plugin/plugin.py:285
145 | msgid ""
146 | "Please note: DVR feature in Plex / Emby is premire feature. For more information please refer to:\n"
147 | "https://www.plex.tv/features/plex-pass\n"
148 | "https://emby.media/premiere.html"
149 | msgstr ""
150 |
151 | #: plugin/plugin.py:286
152 | msgid "Press OK to continue setting up."
153 | msgstr ""
154 |
155 | #: plugin/plugin.py:289
156 | msgid ""
157 | "Please note: To use another tuner type in Plex you need to setup/have another server.\n"
158 | "Are you sure you want to continue?"
159 | msgstr ""
160 |
161 | #: plugin/plugin.py:300 plugin/plugin.py:315
162 | msgid "Press LEFT / RIGHT to enable or disable debug mode."
163 | msgstr ""
164 |
165 | #: plugin/plugin.py:317
166 | msgid "Delete"
167 | msgstr ""
168 |
169 | #: plugin/plugin.py:325
170 | msgid "Do you really want to remove the files for this tuner type? Doing so will cause your DVR to be none functional."
171 | msgstr ""
172 |
173 | #: plugin/plugin.py:336
174 | msgid ""
175 | "Files deleted. Please restart enigma2.\n"
176 | "\n"
177 | "Do you want to restart now?"
178 | msgstr ""
179 |
180 | #: plugin/plugin.py:357
181 | msgid "It seems you have already set up another tuner. Your server can only support one tuner type. To use this additional tuner type you will need to setup another server. Do you want to continue creating the files?"
182 | msgstr ""
183 |
184 | #: plugin/plugin.py:377
185 | msgid ""
186 | "Files created. Please restart enigma2 and then you should be able to add this STB to your server.\n"
187 | "\n"
188 | "Do you want to restart now?"
189 | msgstr ""
190 |
191 | #: plugin/plugin.py:395
192 | msgid "Really close without saving settings?"
193 | msgstr ""
194 |
195 | #: plugin/plugin.py:446
196 | msgid "HR-Tuner Proxy"
197 | msgstr ""
198 |
199 | #: plugin/plugin.py:454 plugin/plugin.py:455 plugin/plugin.py:456
200 | msgid "Setup the HR-Tuner Proxy server"
201 | msgstr ""
202 |
203 |
--------------------------------------------------------------------------------
/plugin/locale/ar/LC_MESSAGES/HRTunerProxy.po:
--------------------------------------------------------------------------------
1 | # Arabic translations for enigma2-openvix-plugins package.
2 | # Copyright (C) 2017 THE enigma2-openvix-plugins'S COPYRIGHT HOLDER
3 | # This file is distributed under the same license as the enigma2-openvix-plugins package.
4 | # Automatically generated, 2017.
5 | #
6 | msgid ""
7 | msgstr ""
8 | "Project-Id-Version: enigma2-openvix-plugins 1.0\n"
9 | "Report-Msgid-Bugs-To: \n"
10 | "POT-Creation-Date: 2017-07-06 12:43+0100\n"
11 | "PO-Revision-Date: 2017-05-24 19:38+0100\n"
12 | "Last-Translator: Automatically generated\n"
13 | "Language-Team: none\n"
14 | "Language: ar\n"
15 | "MIME-Version: 1.0\n"
16 | "Content-Type: text/plain; charset=UTF-8\n"
17 | "Content-Transfer-Encoding: 8bit\n"
18 |
19 | msgid "About"
20 | msgstr ""
21 |
22 | msgid "Close"
23 | msgstr ""
24 |
25 | msgid "Create"
26 | msgstr ""
27 |
28 | msgid "Do you really want to remove the files for this tuner type?, doing so will cause the DVR in plex to be none functional."
29 | msgstr ""
30 |
31 | msgid "Enigma2"
32 | msgstr ""
33 |
34 | msgid "Enigma2 STB"
35 | msgstr ""
36 |
37 | msgid ""
38 | "Files created, Please restart enigma2 and then you should be able to add this STB to Plex DVR.\n"
39 | "Do you want to do this now ?"
40 | msgstr ""
41 |
42 | msgid "It seems you have already setup on another tuner, As Plex Server can only support one tuner type, to use this additional tuner type you will need to setup a 2nd Plex Server, do you want to continue creating the files?"
43 | msgstr ""
44 |
45 | msgid ""
46 | "No IP address found, please make sure you are connected to your LAN via ethernet, wifi is not supported at this time.\n"
47 | "\n"
48 | "Press OK to close"
49 | msgstr ""
50 |
51 | msgid "Please note: To use a 2nd tuner type you need to setup/have a 2nd Plex Server, are you sure you want to continue?"
52 | msgstr ""
53 |
54 | msgid "Please note: To use the DVR feature in Plex, you need to be a Plex Pass user. For more information about Plex Pass see https://www.plex.tv/features/plex-pass"
55 | msgstr ""
56 |
57 | msgid "HR-Tuner Proxy for Enigma2"
58 | msgstr ""
59 |
60 | msgid "PlexDVR"
61 | msgstr ""
62 |
63 | msgid ""
64 | "Press LEFT / RIGHT to select a different tuner type.\n"
65 | "Press GREEN button to create your configuration files."
66 | msgstr ""
67 |
68 | msgid ""
69 | "Press LEFT / RIGHT to select a different tuner type.\n"
70 | "Press GREEN button to update your configuration files."
71 | msgstr ""
72 |
73 | msgid ""
74 | "Press OK to continue setting up this tuner or press LEFT / RIGHT to select a different tuner type.\n"
75 | "Press GREEN button to create your configuration files."
76 | msgstr ""
77 |
78 | msgid "Tuner type to use."
79 | msgstr ""
80 |
81 | msgid "Update"
82 | msgstr ""
83 |
84 | msgid ""
85 | "WARNING: It seems you have a single tuner box, if the box is not left in Standby your Plex recordings WILL fail.\n"
86 | "\n"
87 | "Press OK to continue"
88 | msgstr ""
89 |
--------------------------------------------------------------------------------
/plugin/locale/bg/LC_MESSAGES/HRTunerProxy.po:
--------------------------------------------------------------------------------
1 | # Bulgarian translations for enigma2-openvix-plugins package.
2 | # Copyright (C) 2017 THE enigma2-openvix-plugins'S COPYRIGHT HOLDER
3 | # This file is distributed under the same license as the enigma2-openvix-plugins package.
4 | # Automatically generated, 2017.
5 | #
6 | msgid ""
7 | msgstr ""
8 | "Project-Id-Version: enigma2-openvix-plugins 1.0\n"
9 | "Report-Msgid-Bugs-To: \n"
10 | "POT-Creation-Date: 2017-07-06 12:43+0100\n"
11 | "PO-Revision-Date: 2017-05-24 19:38+0100\n"
12 | "Last-Translator: Automatically generated\n"
13 | "Language-Team: none\n"
14 | "Language: bg\n"
15 | "MIME-Version: 1.0\n"
16 | "Content-Type: text/plain; charset=UTF-8\n"
17 | "Content-Transfer-Encoding: 8bit\n"
18 | "Plural-Forms: nplurals=2; plural=(n != 1);\n"
19 |
20 | msgid "About"
21 | msgstr ""
22 |
23 | msgid "Close"
24 | msgstr ""
25 |
26 | msgid "Create"
27 | msgstr ""
28 |
29 | msgid "Do you really want to remove the files for this tuner type?, doing so will cause the DVR in plex to be none functional."
30 | msgstr ""
31 |
32 | msgid "Enigma2"
33 | msgstr ""
34 |
35 | msgid "Enigma2 STB"
36 | msgstr ""
37 |
38 | msgid ""
39 | "Files created, Please restart enigma2 and then you should be able to add this STB to Plex DVR.\n"
40 | "Do you want to do this now ?"
41 | msgstr ""
42 |
43 | msgid "It seems you have already setup on another tuner, As Plex Server can only support one tuner type, to use this additional tuner type you will need to setup a 2nd Plex Server, do you want to continue creating the files?"
44 | msgstr ""
45 |
46 | msgid ""
47 | "No IP address found, please make sure you are connected to your LAN via ethernet, wifi is not supported at this time.\n"
48 | "\n"
49 | "Press OK to close"
50 | msgstr ""
51 |
52 | msgid "Please note: To use a 2nd tuner type you need to setup/have a 2nd Plex Server, are you sure you want to continue?"
53 | msgstr ""
54 |
55 | msgid "Please note: To use the DVR feature in Plex, you need to be a Plex Pass user. For more information about Plex Pass see https://www.plex.tv/features/plex-pass"
56 | msgstr ""
57 |
58 | msgid "HR-Tuner Proxy for Enigma2"
59 | msgstr ""
60 |
61 | msgid "PlexDVR"
62 | msgstr ""
63 |
64 | msgid ""
65 | "Press LEFT / RIGHT to select a different tuner type.\n"
66 | "Press GREEN button to create your configuration files."
67 | msgstr ""
68 |
69 | msgid ""
70 | "Press LEFT / RIGHT to select a different tuner type.\n"
71 | "Press GREEN button to update your configuration files."
72 | msgstr ""
73 |
74 | msgid ""
75 | "Press OK to continue setting up this tuner or press LEFT / RIGHT to select a different tuner type.\n"
76 | "Press GREEN button to create your configuration files."
77 | msgstr ""
78 |
79 | msgid "Tuner type to use."
80 | msgstr ""
81 |
82 | msgid "Update"
83 | msgstr ""
84 |
85 | msgid ""
86 | "WARNING: It seems you have a single tuner box, if the box is not left in Standby your Plex recordings WILL fail.\n"
87 | "\n"
88 | "Press OK to continue"
89 | msgstr ""
90 |
--------------------------------------------------------------------------------
/plugin/locale/ca/LC_MESSAGES/HRTunerProxy.po:
--------------------------------------------------------------------------------
1 | # Catalan translations for enigma2-openvix-plugins package.
2 | # Copyright (C) 2017 THE enigma2-openvix-plugins'S COPYRIGHT HOLDER
3 | # This file is distributed under the same license as the enigma2-openvix-plugins package.
4 | # Automatically generated, 2017.
5 | #
6 | msgid ""
7 | msgstr ""
8 | "Project-Id-Version: enigma2-openvix-plugins 1.0\n"
9 | "Report-Msgid-Bugs-To: \n"
10 | "POT-Creation-Date: 2017-07-06 12:43+0100\n"
11 | "PO-Revision-Date: 2017-05-24 19:38+0100\n"
12 | "Last-Translator: Automatically generated\n"
13 | "Language-Team: none\n"
14 | "Language: ca\n"
15 | "MIME-Version: 1.0\n"
16 | "Content-Type: text/plain; charset=UTF-8\n"
17 | "Content-Transfer-Encoding: 8bit\n"
18 |
19 | msgid "About"
20 | msgstr ""
21 |
22 | msgid "Close"
23 | msgstr ""
24 |
25 | msgid "Create"
26 | msgstr ""
27 |
28 | msgid "Do you really want to remove the files for this tuner type?, doing so will cause the DVR in plex to be none functional."
29 | msgstr ""
30 |
31 | msgid "Enigma2"
32 | msgstr ""
33 |
34 | msgid "Enigma2 STB"
35 | msgstr ""
36 |
37 | msgid ""
38 | "Files created, Please restart enigma2 and then you should be able to add this STB to Plex DVR.\n"
39 | "Do you want to do this now ?"
40 | msgstr ""
41 |
42 | msgid "It seems you have already setup on another tuner, As Plex Server can only support one tuner type, to use this additional tuner type you will need to setup a 2nd Plex Server, do you want to continue creating the files?"
43 | msgstr ""
44 |
45 | msgid ""
46 | "No IP address found, please make sure you are connected to your LAN via ethernet, wifi is not supported at this time.\n"
47 | "\n"
48 | "Press OK to close"
49 | msgstr ""
50 |
51 | msgid "Please note: To use a 2nd tuner type you need to setup/have a 2nd Plex Server, are you sure you want to continue?"
52 | msgstr ""
53 |
54 | msgid "Please note: To use the DVR feature in Plex, you need to be a Plex Pass user. For more information about Plex Pass see https://www.plex.tv/features/plex-pass"
55 | msgstr ""
56 |
57 | msgid "HR-Tuner Proxy for Enigma2"
58 | msgstr ""
59 |
60 | msgid "PlexDVR"
61 | msgstr ""
62 |
63 | msgid ""
64 | "Press LEFT / RIGHT to select a different tuner type.\n"
65 | "Press GREEN button to create your configuration files."
66 | msgstr ""
67 |
68 | msgid ""
69 | "Press LEFT / RIGHT to select a different tuner type.\n"
70 | "Press GREEN button to update your configuration files."
71 | msgstr ""
72 |
73 | msgid ""
74 | "Press OK to continue setting up this tuner or press LEFT / RIGHT to select a different tuner type.\n"
75 | "Press GREEN button to create your configuration files."
76 | msgstr ""
77 |
78 | msgid "Tuner type to use."
79 | msgstr ""
80 |
81 | msgid "Update"
82 | msgstr ""
83 |
84 | msgid ""
85 | "WARNING: It seems you have a single tuner box, if the box is not left in Standby your Plex recordings WILL fail.\n"
86 | "\n"
87 | "Press OK to continue"
88 | msgstr ""
89 |
--------------------------------------------------------------------------------
/plugin/locale/cs/LC_MESSAGES/HRTunerProxy.po:
--------------------------------------------------------------------------------
1 | # Copyright (C) 2017 The enigma2-openvix-plugins's COPYRIGHT HOLDER
2 | # This file is distributed under the same license as the enigma2-openvix-plugins package.
3 | # Automatically generated, 2018.
4 | #
5 | msgid ""
6 | msgstr ""
7 | "Project-Id-Version: enigma2-openvix-plugins 1.0\n"
8 | "POT-Creation-Date: 2018-02-11 15:24+GMT\n"
9 | "PO-Revision-Date: 2018-02-11 15:39+0000\n"
10 | "Last-Translator: Automatically generated\n"
11 | "Language-Team: PiGeon(CZ)\n"
12 | "Language: cs\n"
13 | "MIME-Version: 1.0\n"
14 | "Content-Type: text/plain; charset=UTF-8\n"
15 | "Content-Transfer-Encoding: 8bit\n"
16 | "Generated-By: pygettext.py 1.5\n"
17 | "X-Generator: Poedit 2.0.6\n"
18 |
19 | #: plugin/__init__.py:67
20 | msgid "All"
21 | msgstr "Všechny"
22 |
23 | #: plugin/__init__.py:67
24 | msgid "Not set"
25 | msgstr "nenastaveno"
26 |
27 | #: plugin/__init__.py:75
28 | msgid "v%s "
29 | msgstr "v%s "
30 |
31 | #: plugin/about.py:25 plugin/about.py:37
32 | msgid "About HR-Tuner Proxy"
33 | msgstr "O HR-Tuner Proxy"
34 |
35 | #: plugin/about.py:48 plugin/plugin.py:162
36 | msgid "Close"
37 | msgstr "Uzavřít"
38 |
39 | #: plugin/about.py:51
40 | msgid "HR-Tuner Proxy for Enigma2 %s(c) 2018\n"
41 | msgstr "HR-Tuner Proxy pro Enigma2 v%s(c) 2018 \n"
42 |
43 | #: plugin/about.py:54
44 | msgid "Application credits:\n"
45 | msgstr "Poděkování - Aplikace:\n"
46 |
47 | #: plugin/about.py:58
48 | msgid "Sources credits:\n"
49 | msgstr "Poděkování - Zdroj:\n"
50 |
51 | #: plugin/about.py:61
52 | msgid "Translation credits:\n"
53 | msgstr "Poděkování - Překlady:\n"
54 |
55 | #: plugin/getDeviceInfo.py:62
56 | msgid "Enigma2"
57 | msgstr "Enigma2"
58 |
59 | #: plugin/getDeviceInfo.py:91
60 | msgid "In use"
61 | msgstr "V použití"
62 |
63 | #: plugin/plugin.py:105 plugin/plugin.py:125
64 | msgid "HR-Tuner Proxy for Enigma2"
65 | msgstr "HR-Tuner Proxy pro Enigma2"
66 |
67 | #: plugin/plugin.py:174
68 | msgid "About"
69 | msgstr "O pluginu"
70 |
71 | #: plugin/plugin.py:189
72 | msgid ""
73 | "WARNING: No IP address found. Please make sure you are connected to your LAN "
74 | "via ethernet or Wi-Fi.\n"
75 | "\n"
76 | "Press OK to exit."
77 | msgstr ""
78 | "Upozornění: IP adresa nenalezena. Ujistěte se, že je přijímač připojen do "
79 | "sítě (LAN nebo WiFi).\n"
80 | "\n"
81 | "Zmáčkněte OK pro uzavření."
82 |
83 | #: plugin/plugin.py:200 plugin/plugin.py:216 plugin/plugin.py:271
84 | #: plugin/plugin.py:292 plugin/plugin.py:307
85 | msgid "Tuner type to use."
86 | msgstr "Typ tuneru, který bude použit."
87 |
88 | #: plugin/plugin.py:217 plugin/plugin.py:274 plugin/plugin.py:295
89 | #: plugin/plugin.py:310
90 | msgid "Bouquet to use."
91 | msgstr "Sada kanálů, která bude použita."
92 |
93 | #: plugin/plugin.py:219
94 | msgid "Number of concurrent streams."
95 | msgstr "Počet současných streamů."
96 |
97 | #: plugin/plugin.py:220 plugin/plugin.py:298 plugin/plugin.py:313
98 | msgid "Debug Mode."
99 | msgstr "Debug mód."
100 |
101 | #: plugin/plugin.py:256
102 | msgid "Please note: Please now select a bouquet to use."
103 | msgstr "Poznámka: Prosím vyberte sadu kanálů."
104 |
105 | #: plugin/plugin.py:258
106 | msgid ""
107 | "Please note: You do not seem to have any channels setup for this tuner, "
108 | "please add some channels to Enigma2 or choose anther tuner type."
109 | msgstr ""
110 | "Poznámka: Zdá se, že nemáte naladěny žádné kanály pro tento tuner, nalaďte "
111 | "prosím nějaké kanály nebo vyberte jiný typ tuneru."
112 |
113 | #: plugin/plugin.py:264
114 | msgid ""
115 | "WARNING: It seems you have a single tuner box. If the box is not left in "
116 | "standby your recordings WILL fail."
117 | msgstr ""
118 | "Upozornení: Zdá se, že máte přijímač pouze s jedním tunerem, Plex nahrávání "
119 | "nebude fungovat, pokud nebude přijímač v režimu StanBy."
120 |
121 | #: plugin/plugin.py:265
122 | msgid "Press OK to continue setting up this tuner."
123 | msgstr "Zmáčkněte OK pro pokračování v nastavení tohoto tuneru."
124 |
125 | #: plugin/plugin.py:268 plugin/plugin.py:303 plugin/plugin.py:316
126 | msgid "Save"
127 | msgstr "Uložit"
128 |
129 | #: plugin/plugin.py:272
130 | msgid ""
131 | "Press OK to continue setting up this tuner or press LEFT / RIGHT to select a "
132 | "different tuner type."
133 | msgstr ""
134 | "Zmáčkněte OK pro pokračování v nastavení tohoto tuneru nebo levou/pravou "
135 | "šipku pro výběr jiného typu tuneru."
136 |
137 | #: plugin/plugin.py:273 plugin/plugin.py:293 plugin/plugin.py:308
138 | msgid "Press LEFT / RIGHT to select a different tuner type."
139 | msgstr "Zmáčkněte levou/pravou šipku pro výběr jiného typu tuneru."
140 |
141 | #: plugin/plugin.py:275 plugin/plugin.py:278 plugin/plugin.py:281
142 | msgid ""
143 | "Press OK to continue setting up this tuner or select a different tuner type."
144 | msgstr ""
145 | "Zmáčkněte OK pro pokračování v nastavení tohoto tuneru nebo výberte jiný "
146 | "typu tuneru."
147 |
148 | #: plugin/plugin.py:276 plugin/plugin.py:279 plugin/plugin.py:297
149 | #: plugin/plugin.py:312
150 | msgid "Press LEFT / RIGHT to select a different bouquet."
151 | msgstr "Zmáčkněte levou/pravou šipku pro výběr jiné sady kanálů."
152 |
153 | #: plugin/plugin.py:277
154 | msgid "Debug mode to create logs."
155 | msgstr "Debug mód pro vytvoření logu."
156 |
157 | #: plugin/plugin.py:282
158 | msgid "Press LEFT / RIGHT to set number of concurent streams."
159 | msgstr "Zmáčkněte levou/pravou šipku pro nastavení počtu současných streamů."
160 |
161 | #: plugin/plugin.py:285
162 | msgid ""
163 | "Please note: DVR feature in Plex / Emby is premire feature. For more "
164 | "information please refer to:\n"
165 | "https://www.plex.tv/features/plex-pass\n"
166 | "https://emby.media/premiere.html"
167 | msgstr ""
168 | "Poznámka: DVR funkce Plex/Emby serveru je premiovou funkcí. Více informací "
169 | "naleznete na:\n"
170 | "https://www.plex.tv/features/plex-pass\n"
171 | "https://emby.media/premiere.html"
172 |
173 | #: plugin/plugin.py:286
174 | msgid "Press OK to continue setting up."
175 | msgstr "Zmáčkněte OK pro pokračování v nastavení."
176 |
177 | #: plugin/plugin.py:289
178 | msgid ""
179 | "Please note: To use another tuner type in Plex you need to setup/have "
180 | "another server.\n"
181 | "Are you sure you want to continue?"
182 | msgstr ""
183 | "Poznámka: Pro využití dalšího typu tuneru bude potreba nainstalovat/mít "
184 | "druhý Plex server.\n"
185 | "Chcete opravdu pokracovat?"
186 |
187 | #: plugin/plugin.py:300 plugin/plugin.py:315
188 | msgid "Press LEFT / RIGHT to enable or disable debug mode."
189 | msgstr "Zmáčkněte levou/pravou šipku pro zapnutí nebo vypnutí debug módu."
190 |
191 | #: plugin/plugin.py:317
192 | msgid "Delete"
193 | msgstr "Smazat"
194 |
195 | #: plugin/plugin.py:325
196 | msgid ""
197 | "Do you really want to remove the files for this tuner type? Doing so will "
198 | "cause your DVR to be none functional."
199 | msgstr ""
200 | "Opravdu chcete odebrat soubory pro tento typ tuneru? Pokud tak učiníte, "
201 | "způsobí to nefunkčnost tohoto DVR v Plexu."
202 |
203 | #: plugin/plugin.py:336
204 | msgid ""
205 | "Files deleted. Please restart enigma2.\n"
206 | "\n"
207 | "Do you want to restart now?"
208 | msgstr ""
209 | "Soubory byly smazány. Restartujte prosím enigma2.\n"
210 | "\n"
211 | "Chcete provést restart nyní?"
212 |
213 | #: plugin/plugin.py:357
214 | msgid ""
215 | "It seems you have already set up another tuner. Your server can only support "
216 | "one tuner type. To use this additional tuner type you will need to setup "
217 | "another server. Do you want to continue creating the files?"
218 | msgstr ""
219 | "Zdá se, že jste již nastavili tuner jiného typu. Plex server podporuje pouze "
220 | "jeden typ tuneru, pro využití dalšího typu tuneru budete muset nainstalovat "
221 | "druhý Plex server, chcete pokračovat s vytvořením souboru?"
222 |
223 | #: plugin/plugin.py:377
224 | msgid ""
225 | "Files created. Please restart enigma2 and then you should be able to add "
226 | "this STB to your server.\n"
227 | "\n"
228 | "Do you want to restart now?"
229 | msgstr ""
230 | "Soubory byly vytvořeny. Restartujte prosím enigma2 poté byste měli mít "
231 | "možnost přidat přijímač do Plex serveru.\n"
232 | "\n"
233 | "Chcete provést restart nyní?"
234 |
235 | #: plugin/plugin.py:395
236 | msgid "Really close without saving settings?"
237 | msgstr "Opravdu uzavřít bez uložení nastavení?"
238 |
239 | #: plugin/plugin.py:446
240 | msgid "HR-Tuner Proxy"
241 | msgstr "HR-Tuner Proxy"
242 |
243 | #: plugin/plugin.py:454 plugin/plugin.py:455 plugin/plugin.py:456
244 | msgid "Setup the HR-Tuner Proxy server"
245 | msgstr "Nastavení HR-Tuner proxy serveru"
246 |
247 |
--------------------------------------------------------------------------------
/plugin/locale/da/LC_MESSAGES/HRTunerProxy.po:
--------------------------------------------------------------------------------
1 | # Danish translations for enigma2-openvix-plugins package.
2 | # Copyright (C) 2017 THE enigma2-openvix-plugins'S COPYRIGHT HOLDER
3 | # This file is distributed under the same license as the enigma2-openvix-plugins package.
4 | # Automatically generated, 2017.
5 | #
6 | msgid ""
7 | msgstr ""
8 | "Project-Id-Version: enigma2-openvix-plugins 1.0\n"
9 | "Report-Msgid-Bugs-To: \n"
10 | "POT-Creation-Date: 2017-07-06 12:43+0100\n"
11 | "PO-Revision-Date: 2017-05-24 19:38+0100\n"
12 | "Last-Translator: Automatically generated\n"
13 | "Language-Team: none\n"
14 | "Language: da\n"
15 | "MIME-Version: 1.0\n"
16 | "Content-Type: text/plain; charset=UTF-8\n"
17 | "Content-Transfer-Encoding: 8bit\n"
18 | "Plural-Forms: nplurals=2; plural=(n != 1);\n"
19 |
20 | msgid "About"
21 | msgstr ""
22 |
23 | msgid "Close"
24 | msgstr ""
25 |
26 | msgid "Create"
27 | msgstr ""
28 |
29 | msgid "Do you really want to remove the files for this tuner type?, doing so will cause the DVR in plex to be none functional."
30 | msgstr ""
31 |
32 | msgid "Enigma2"
33 | msgstr ""
34 |
35 | msgid "Enigma2 STB"
36 | msgstr ""
37 |
38 | msgid ""
39 | "Files created, Please restart enigma2 and then you should be able to add this STB to Plex DVR.\n"
40 | "Do you want to do this now ?"
41 | msgstr ""
42 |
43 | msgid "It seems you have already setup on another tuner, As Plex Server can only support one tuner type, to use this additional tuner type you will need to setup a 2nd Plex Server, do you want to continue creating the files?"
44 | msgstr ""
45 |
46 | msgid ""
47 | "No IP address found, please make sure you are connected to your LAN via ethernet, wifi is not supported at this time.\n"
48 | "\n"
49 | "Press OK to close"
50 | msgstr ""
51 |
52 | msgid "Please note: To use a 2nd tuner type you need to setup/have a 2nd Plex Server, are you sure you want to continue?"
53 | msgstr ""
54 |
55 | msgid "Please note: To use the DVR feature in Plex, you need to be a Plex Pass user. For more information about Plex Pass see https://www.plex.tv/features/plex-pass"
56 | msgstr ""
57 |
58 | msgid "HR-Tuner Proxy for Enigma2"
59 | msgstr ""
60 |
61 | msgid "PlexDVR"
62 | msgstr ""
63 |
64 | msgid ""
65 | "Press LEFT / RIGHT to select a different tuner type.\n"
66 | "Press GREEN button to create your configuration files."
67 | msgstr ""
68 |
69 | msgid ""
70 | "Press LEFT / RIGHT to select a different tuner type.\n"
71 | "Press GREEN button to update your configuration files."
72 | msgstr ""
73 |
74 | msgid ""
75 | "Press OK to continue setting up this tuner or press LEFT / RIGHT to select a different tuner type.\n"
76 | "Press GREEN button to create your configuration files."
77 | msgstr ""
78 |
79 | msgid "Tuner type to use."
80 | msgstr ""
81 |
82 | msgid "Update"
83 | msgstr ""
84 |
85 | msgid ""
86 | "WARNING: It seems you have a single tuner box, if the box is not left in Standby your Plex recordings WILL fail.\n"
87 | "\n"
88 | "Press OK to continue"
89 | msgstr ""
90 |
--------------------------------------------------------------------------------
/plugin/locale/de/LC_MESSAGES/HRTunerProxy.po:
--------------------------------------------------------------------------------
1 | # German translations for enigma2-openvix-plugins package.
2 | # Copyright (C) 2017 THE enigma2-openvix-plugins'S COPYRIGHT HOLDER
3 | # This file is distributed under the same license as the enigma2-openvix-plugins package.
4 | # Automatically generated, 2017.
5 | #
6 | msgid ""
7 | msgstr ""
8 | "Project-Id-Version: enigma2-openvix-plugins 1.0\n"
9 | "Report-Msgid-Bugs-To: \n"
10 | "POT-Creation-Date: 2017-07-06 12:43+0100\n"
11 | "PO-Revision-Date: 2017-05-24 19:38+0100\n"
12 | "Last-Translator: Automatically generated\n"
13 | "Language-Team: none\n"
14 | "Language: de\n"
15 | "MIME-Version: 1.0\n"
16 | "Content-Type: text/plain; charset=UTF-8\n"
17 | "Content-Transfer-Encoding: 8bit\n"
18 | "Plural-Forms: nplurals=2; plural=(n != 1);\n"
19 |
20 | msgid "About"
21 | msgstr "Über"
22 |
23 | msgid "Close"
24 | msgstr "Schließen"
25 |
26 | msgid "Create"
27 | msgstr "Erstellen"
28 |
29 | msgid "Do you really want to remove the files for this tuner type?, doing so will cause the DVR in plex to be none functional."
30 | msgstr ""
31 |
32 | msgid "Enigma2"
33 | msgstr ""
34 |
35 | msgid "Enigma2 STB"
36 | msgstr ""
37 |
38 | msgid ""
39 | "Files created, Please restart enigma2 and then you should be able to add this STB to Plex DVR.\n"
40 | "Do you want to do this now ?"
41 | msgstr ""
42 |
43 | msgid "It seems you have already setup on another tuner, As Plex Server can only support one tuner type, to use this additional tuner type you will need to setup a 2nd Plex Server, do you want to continue creating the files?"
44 | msgstr ""
45 |
46 | msgid ""
47 | "No IP address found, please make sure you are connected to your LAN via ethernet, wifi is not supported at this time.\n"
48 | "\n"
49 | "Press OK to close"
50 | msgstr ""
51 | "Keine IP Adresse gefunden, bitte verwende eine kabelgebundende Verbindung zum LAN, WLAN wird aktuell nocht nicht supportet.\n"
52 | "\n"
53 | "Drücke OK zum schließen"
54 |
55 | msgid "Please note: To use a 2nd tuner type you need to setup/have a 2nd Plex Server, are you sure you want to continue?"
56 | msgstr ""
57 |
58 | msgid "Please note: To use the DVR feature in Plex, you need to be a Plex Pass user. For more information about Plex Pass see https://www.plex.tv/features/plex-pass"
59 | msgstr ""
60 |
61 | msgid "HR-Tuner Proxy for Enigma2"
62 | msgstr "HRTunerProxy für Enigma2"
63 |
64 | msgid "PlexDVR"
65 | msgstr ""
66 |
67 | msgid ""
68 | "Press LEFT / RIGHT to select a different tuner type.\n"
69 | "Press GREEN button to create your configuration files."
70 | msgstr ""
71 |
72 | msgid ""
73 | "Press LEFT / RIGHT to select a different tuner type.\n"
74 | "Press GREEN button to update your configuration files."
75 | msgstr ""
76 |
77 | msgid ""
78 | "Press OK to continue setting up this tuner or press LEFT / RIGHT to select a different tuner type.\n"
79 | "Press GREEN button to create your configuration files."
80 | msgstr ""
81 |
82 | msgid "Tuner type to use."
83 | msgstr ""
84 |
85 | msgid "Update"
86 | msgstr "Update"
87 |
88 | msgid ""
89 | "WARNING: It seems you have a single tuner box, if the box is not left in Standby your Plex recordings WILL fail.\n"
90 | "\n"
91 | "Press OK to continue"
92 | msgstr ""
93 |
94 | #~ msgid ""
95 | #~ "Do you really want to reset?,\n"
96 | #~ " doing so will cause the DVR in plex to be none functional,\n"
97 | #~ "you will have to remove and re-add the DVR."
98 | #~ msgstr ""
99 | #~ "Wirklich Zurücksetzen?,\n"
100 | #~ " Plex DVR funktion wird dadurch beendet,\n"
101 | #~ "DVR-funktion muss entfernt werden und eine neue Anbindung ist erforderlich."
102 |
103 | #~ msgid "Files created, you should be able to add this STB to Plex DVR."
104 | #~ msgstr "Dateien wurden erstellt, das hinzufügen deines STB an Plex DVR ist nun möglich."
105 |
106 | #~ msgid ""
107 | #~ "Please note: A 2 Tuner minimum requirement is required for this plugin to function.\n"
108 | #~ "\n"
109 | #~ "Press OK to close"
110 | #~ msgstr ""
111 | #~ "Bitte beachten: Es werden mind. 2 Tuner benötigt damit das Plugin ordnungsgemäßarbeiten kann.\n"
112 | #~ "\n"
113 | #~ "Drücke OK zum schließen"
114 |
115 | #~ msgid ""
116 | #~ "Please note: To use the DVR feature in Plex, you need to be a Plex Pass user.\n"
117 | #~ "For more information about Plex Pass see https://www.plex.tv/features/plex-pass\n"
118 | #~ "\n"
119 | #~ "Press OK to contine"
120 | #~ msgstr ""
121 | #~ "Bitte beachten: Um die DVR-funktion von Plex verwendenzu können, wird eine Plex Pass Mitgliedschaft benötigt.\n"
122 | #~ "Mehr Information über Plex Pass auf der Seite https://www.plex.tv/features/plex-pass\n"
123 | #~ "\n"
124 | #~ "Drücke OK für weiter"
125 |
126 | #~ msgid "Plex DVR"
127 | #~ msgstr "Plex DVR"
128 |
129 | #~ msgid "Reset DVR"
130 | #~ msgstr "DVR zurücksetzen"
131 |
--------------------------------------------------------------------------------
/plugin/locale/el/LC_MESSAGES/HRTunerProxy.po:
--------------------------------------------------------------------------------
1 | # Greek translations for enigma2-openvix-plugins package.
2 | # Copyright (C) 2017 THE enigma2-openvix-plugins'S COPYRIGHT HOLDER
3 | # This file is distributed under the same license as the enigma2-openvix-plugins package.
4 | # Automatically generated, 2017.
5 | #
6 | msgid ""
7 | msgstr ""
8 | "Project-Id-Version: enigma2-openvix-plugins 1.0\n"
9 | "Report-Msgid-Bugs-To: \n"
10 | "POT-Creation-Date: 2017-07-06 12:43+0100\n"
11 | "PO-Revision-Date: 2017-05-24 19:38+0100\n"
12 | "Last-Translator: Automatically generated\n"
13 | "Language-Team: none\n"
14 | "Language: el\n"
15 | "MIME-Version: 1.0\n"
16 | "Content-Type: text/plain; charset=UTF-8\n"
17 | "Content-Transfer-Encoding: 8bit\n"
18 | "Plural-Forms: nplurals=2; plural=(n != 1);\n"
19 |
20 | msgid "About"
21 | msgstr ""
22 |
23 | msgid "Close"
24 | msgstr ""
25 |
26 | msgid "Create"
27 | msgstr ""
28 |
29 | msgid "Do you really want to remove the files for this tuner type?, doing so will cause the DVR in plex to be none functional."
30 | msgstr ""
31 |
32 | msgid "Enigma2"
33 | msgstr ""
34 |
35 | msgid "Enigma2 STB"
36 | msgstr ""
37 |
38 | msgid ""
39 | "Files created, Please restart enigma2 and then you should be able to add this STB to Plex DVR.\n"
40 | "Do you want to do this now ?"
41 | msgstr ""
42 |
43 | msgid "It seems you have already setup on another tuner, As Plex Server can only support one tuner type, to use this additional tuner type you will need to setup a 2nd Plex Server, do you want to continue creating the files?"
44 | msgstr ""
45 |
46 | msgid ""
47 | "No IP address found, please make sure you are connected to your LAN via ethernet, wifi is not supported at this time.\n"
48 | "\n"
49 | "Press OK to close"
50 | msgstr ""
51 |
52 | msgid "Please note: To use a 2nd tuner type you need to setup/have a 2nd Plex Server, are you sure you want to continue?"
53 | msgstr ""
54 |
55 | msgid "Please note: To use the DVR feature in Plex, you need to be a Plex Pass user. For more information about Plex Pass see https://www.plex.tv/features/plex-pass"
56 | msgstr ""
57 |
58 | msgid "HR-Tuner Proxy for Enigma2"
59 | msgstr ""
60 |
61 | msgid "PlexDVR"
62 | msgstr ""
63 |
64 | msgid ""
65 | "Press LEFT / RIGHT to select a different tuner type.\n"
66 | "Press GREEN button to create your configuration files."
67 | msgstr ""
68 |
69 | msgid ""
70 | "Press LEFT / RIGHT to select a different tuner type.\n"
71 | "Press GREEN button to update your configuration files."
72 | msgstr ""
73 |
74 | msgid ""
75 | "Press OK to continue setting up this tuner or press LEFT / RIGHT to select a different tuner type.\n"
76 | "Press GREEN button to create your configuration files."
77 | msgstr ""
78 |
79 | msgid "Tuner type to use."
80 | msgstr ""
81 |
82 | msgid "Update"
83 | msgstr ""
84 |
85 | msgid ""
86 | "WARNING: It seems you have a single tuner box, if the box is not left in Standby your Plex recordings WILL fail.\n"
87 | "\n"
88 | "Press OK to continue"
89 | msgstr ""
90 |
--------------------------------------------------------------------------------
/plugin/locale/en/LC_MESSAGES/HRTunerProxy.po:
--------------------------------------------------------------------------------
1 | # English translations for enigma2-openvix-plugins package.
2 | # Copyright (C) 2017 THE enigma2-openvix-plugins'S COPYRIGHT HOLDER
3 | # This file is distributed under the same license as the enigma2-openvix-plugins package.
4 | # Automatically generated, 2017.
5 | #
6 | msgid ""
7 | msgstr ""
8 | "Project-Id-Version: enigma2-openvix-plugins 1.0\n"
9 | "Report-Msgid-Bugs-To: \n"
10 | "POT-Creation-Date: 2017-07-06 12:43+0100\n"
11 | "PO-Revision-Date: 2017-07-07 01:32+0100\n"
12 | "Last-Translator: Automatically generated\n"
13 | "Language: en\n"
14 | "Language-Team: openvix\n"
15 | "MIME-Version: 1.0\n"
16 | "Content-Type: text/plain; charset=UTF-8\n"
17 | "Content-Transfer-Encoding: 8bit\n"
18 | "Plural-Forms: nplurals=2; plural=(n != 1);\n"
19 | "X-Generator: Poedit 2.0.2\n"
20 |
21 | msgid "About"
22 | msgstr "About"
23 |
24 | msgid "Close"
25 | msgstr "Close"
26 |
27 | msgid "Create"
28 | msgstr "Create"
29 |
30 | msgid "Do you really want to remove the files for this tuner type?, doing so will cause the DVR in plex to be none functional."
31 | msgstr "Do you really want to remove the files for this tuner type?, doing so will cause the DVR in plex to be none functional."
32 |
33 | msgid "Enigma2"
34 | msgstr "Enigma2"
35 |
36 | msgid "Enigma2 STB"
37 | msgstr "Enigma2 STB"
38 |
39 | msgid ""
40 | "Files created, Please restart enigma2 and then you should be able to add this STB to Plex DVR.\n"
41 | "Do you want to do this now ?"
42 | msgstr ""
43 | "Files created, Please restart enigma2 and then you should be able to add this STB to Plex DVR.\n"
44 | "Do you want to do this now ?"
45 |
46 | msgid "It seems you have already setup on another tuner, As Plex Server can only support one tuner type, to use this additional tuner type you will need to setup a 2nd Plex Server, do you want to continue creating the files?"
47 | msgstr "It seems you have already setup on another tuner, As Plex Server can only support one tuner type, to use this additional tuner type you will need to setup a 2nd Plex Server, do you want to continue creating the files?"
48 |
49 | msgid ""
50 | "No IP address found, please make sure you are connected to your LAN via ethernet, wifi is not supported at this time.\n"
51 | "\n"
52 | "Press OK to close"
53 | msgstr ""
54 | "No IP address found, please make sure you are connected to your LAN via ethernet, wifi is not supported at this time.\n"
55 | "\n"
56 | "Press OK to close"
57 |
58 | msgid "Please note: To use a 2nd tuner type you need to setup/have a 2nd Plex Server, are you sure you want to continue?"
59 | msgstr "Please note: To use a 2nd tuner type you need to setup/have a 2nd Plex Server, are you sure you want to continue?"
60 |
61 | msgid "Please note: To use the DVR feature in Plex, you need to be a Plex Pass user. For more information about Plex Pass see https://www.plex.tv/features/plex-pass"
62 | msgstr "Please note: To use the DVR feature in Plex, you need to be a Plex Pass user. For more information about Plex Pass see https://www.plex.tv/features/plex-pass"
63 |
64 | msgid "HR-Tuner Proxy for Enigma2"
65 | msgstr "HR-Tuner Proxy for Enigma2"
66 |
67 | msgid "PlexDVR"
68 | msgstr "PlexDVR"
69 |
70 | msgid ""
71 | "Press LEFT / RIGHT to select a different tuner type.\n"
72 | "Press GREEN button to create your configuration files."
73 | msgstr ""
74 | "Press LEFT / RIGHT to select a different tuner type.\n"
75 | "Press GREEN button to create your configuration files."
76 |
77 | msgid ""
78 | "Press LEFT / RIGHT to select a different tuner type.\n"
79 | "Press GREEN button to update your configuration files."
80 | msgstr ""
81 | "Press LEFT / RIGHT to select a different tuner type.\n"
82 | "Press GREEN button to update your configuration files."
83 |
84 | msgid ""
85 | "Press OK to continue setting up this tuner or press LEFT / RIGHT to select a different tuner type.\n"
86 | "Press GREEN button to create your configuration files."
87 | msgstr ""
88 | "Press OK to continue setting up this tuner or press LEFT / RIGHT to select a different tuner type.\n"
89 | "Press GREEN button to create your configuration files."
90 |
91 | msgid "Tuner type to use."
92 | msgstr "Tuner type to use."
93 |
94 | msgid "Update"
95 | msgstr "Update"
96 |
97 | msgid ""
98 | "WARNING: It seems you have a single tuner box, if the box is not left in Standby your Plex recordings WILL fail.\n"
99 | "\n"
100 | "Press OK to continue"
101 | msgstr ""
102 | "WARNING: It seems you have a single tuner box, if the box is not left in Standby your Plex recordings WILL fail.\n"
103 | "\n"
104 | "Press OK to continue"
105 |
--------------------------------------------------------------------------------
/plugin/locale/en_GB/LC_MESSAGES/HRTunerProxy.po:
--------------------------------------------------------------------------------
1 | # English translations for enigma2-openvix-plugins package.
2 | # Copyright (C) 2017 THE enigma2-openvix-plugins'S COPYRIGHT HOLDER
3 | # This file is distributed under the same license as the enigma2-openvix-plugins package.
4 | # Automatically generated, 2017.
5 | #
6 | msgid ""
7 | msgstr ""
8 | "Project-Id-Version: enigma2-openvix-plugins 1.0\n"
9 | "Report-Msgid-Bugs-To: \n"
10 | "POT-Creation-Date: 2018-02-11 15:24+GMT\n"
11 | "PO-Revision-Date: 2018-02-11 15:26+0000\n"
12 | "Last-Translator: Automatically generated\n"
13 | "Language-Team: openvix\n"
14 | "Language: en_GB\n"
15 | "MIME-Version: 1.0\n"
16 | "Content-Type: text/plain; charset=UTF-8\n"
17 | "Content-Transfer-Encoding: 8bit\n"
18 | "Plural-Forms: nplurals=2; plural=(n != 1);\n"
19 | "X-Generator: Poedit 2.0.6\n"
20 |
21 | #: plugin/__init__.py:67
22 | msgid "All"
23 | msgstr "All"
24 |
25 | #: plugin/__init__.py:67
26 | msgid "Not set"
27 | msgstr "Not set"
28 |
29 | #: plugin/__init__.py:75
30 | msgid "v%s "
31 | msgstr "v%s "
32 |
33 | #: plugin/about.py:25 plugin/about.py:37
34 | msgid "About HR-Tuner Proxy"
35 | msgstr "About HR-Tuner Proxy"
36 |
37 | #: plugin/about.py:48 plugin/plugin.py:162
38 | msgid "Close"
39 | msgstr "Close"
40 |
41 | #: plugin/about.py:51
42 | #| msgid "HR-Tuner Proxy for Enigma2 v%s (c) 2018 \n"
43 | msgid "HR-Tuner Proxy for Enigma2 %s(c) 2018\n"
44 | msgstr "HR-Tuner Proxy for Enigma2 %s(c) 2018\n"
45 |
46 | #: plugin/about.py:54
47 | msgid "Application credits:\n"
48 | msgstr "Application credits:\n"
49 |
50 | #: plugin/about.py:58
51 | msgid "Sources credits:\n"
52 | msgstr "Sources credits:\n"
53 |
54 | #: plugin/about.py:61
55 | msgid "Translation credits:\n"
56 | msgstr "Translation credits:\n"
57 |
58 | #: plugin/getDeviceInfo.py:62
59 | msgid "Enigma2"
60 | msgstr "Enigma2"
61 |
62 | #: plugin/getDeviceInfo.py:91
63 | msgid "In use"
64 | msgstr "In use"
65 |
66 | #: plugin/plugin.py:105 plugin/plugin.py:125
67 | msgid "HR-Tuner Proxy for Enigma2"
68 | msgstr "HR-Tuner Proxy for Enigma2"
69 |
70 | #: plugin/plugin.py:174
71 | msgid "About"
72 | msgstr "About"
73 |
74 | #: plugin/plugin.py:189
75 | msgid ""
76 | "WARNING: No IP address found. Please make sure you are connected to your LAN via ethernet or Wi-Fi.\n"
77 | "\n"
78 | "Press OK to exit."
79 | msgstr ""
80 | "WARNING: No IP address found. Please make sure you are connected to your LAN via ethernet or Wi-Fi.\n"
81 | "\n"
82 | "Press OK to exit."
83 |
84 | #: plugin/plugin.py:200 plugin/plugin.py:216 plugin/plugin.py:271
85 | #: plugin/plugin.py:292 plugin/plugin.py:307
86 | msgid "Tuner type to use."
87 | msgstr "Tuner type to use."
88 |
89 | #: plugin/plugin.py:217 plugin/plugin.py:274 plugin/plugin.py:295
90 | #: plugin/plugin.py:310
91 | msgid "Bouquet to use."
92 | msgstr "Bouquet to use."
93 |
94 | #: plugin/plugin.py:219
95 | msgid "Number of concurrent streams."
96 | msgstr "Number of concurrent streams."
97 |
98 | #: plugin/plugin.py:220 plugin/plugin.py:298 plugin/plugin.py:313
99 | msgid "Debug Mode."
100 | msgstr "Debug Mode."
101 |
102 | #: plugin/plugin.py:256
103 | msgid "Please note: Please now select a bouquet to use."
104 | msgstr "Please note: Please now select a bouquet to use."
105 |
106 | #: plugin/plugin.py:258
107 | msgid "Please note: You do not seem to have any channels setup for this tuner, please add some channels to Enigma2 or choose anther tuner type."
108 | msgstr "Please note: You do not seem to have any channels setup for this tuner, please add some channels to Enigma2 or choose anther tuner type."
109 |
110 | #: plugin/plugin.py:264
111 | msgid "WARNING: It seems you have a single tuner box. If the box is not left in standby your recordings WILL fail."
112 | msgstr "WARNING: It seems you have a single tuner box. If the box is not left in standby your recordings WILL fail."
113 |
114 | #: plugin/plugin.py:265
115 | msgid "Press OK to continue setting up this tuner."
116 | msgstr "Press OK to continue setting up this tuner."
117 |
118 | #: plugin/plugin.py:268 plugin/plugin.py:303 plugin/plugin.py:316
119 | msgid "Save"
120 | msgstr "Save"
121 |
122 | #: plugin/plugin.py:272
123 | msgid "Press OK to continue setting up this tuner or press LEFT / RIGHT to select a different tuner type."
124 | msgstr "Press OK to continue setting up this tuner or press LEFT / RIGHT to select a different tuner type."
125 |
126 | #: plugin/plugin.py:273 plugin/plugin.py:293 plugin/plugin.py:308
127 | msgid "Press LEFT / RIGHT to select a different tuner type."
128 | msgstr "Press LEFT / RIGHT to select a different tuner type."
129 |
130 | #: plugin/plugin.py:275 plugin/plugin.py:278 plugin/plugin.py:281
131 | msgid "Press OK to continue setting up this tuner or select a different tuner type."
132 | msgstr "Press OK to continue setting up this tuner or select a different tuner type."
133 |
134 | #: plugin/plugin.py:276 plugin/plugin.py:279 plugin/plugin.py:297
135 | #: plugin/plugin.py:312
136 | msgid "Press LEFT / RIGHT to select a different bouquet."
137 | msgstr "Press LEFT / RIGHT to select a different bouquet."
138 |
139 | #: plugin/plugin.py:277
140 | msgid "Debug mode to create logs."
141 | msgstr "Debug mode to create logs."
142 |
143 | #: plugin/plugin.py:282
144 | msgid "Press LEFT / RIGHT to set number of concurent streams."
145 | msgstr "Press LEFT / RIGHT to set number of concurent streams."
146 |
147 | #: plugin/plugin.py:285
148 | msgid ""
149 | "Please note: DVR feature in Plex / Emby is premire feature. For more information please refer to:\n"
150 | "https://www.plex.tv/features/plex-pass\n"
151 | "https://emby.media/premiere.html"
152 | msgstr ""
153 | "Please note: DVR feature in Plex / Emby is premire feature. For more information please refer to:\n"
154 | "https://www.plex.tv/features/plex-pass\n"
155 | "https://emby.media/premiere.html"
156 |
157 | #: plugin/plugin.py:286
158 | msgid "Press OK to continue setting up."
159 | msgstr "Press OK to continue setting up."
160 |
161 | #: plugin/plugin.py:289
162 | msgid ""
163 | "Please note: To use another tuner type in Plex you need to setup/have another server.\n"
164 | "Are you sure you want to continue?"
165 | msgstr ""
166 | "Please note: To use another tuner type in Plex you need to setup/have another server.\n"
167 | "Are you sure you want to continue?"
168 |
169 | #: plugin/plugin.py:300 plugin/plugin.py:315
170 | msgid "Press LEFT / RIGHT to enable or disable debug mode."
171 | msgstr "Press LEFT / RIGHT to enable or disable debug mode."
172 |
173 | #: plugin/plugin.py:317
174 | msgid "Delete"
175 | msgstr "Delete"
176 |
177 | #: plugin/plugin.py:325
178 | msgid "Do you really want to remove the files for this tuner type? Doing so will cause your DVR to be none functional."
179 | msgstr "Do you really want to remove the files for this tuner type? Doing so will cause your DVR to be none functional."
180 |
181 | #: plugin/plugin.py:336
182 | msgid ""
183 | "Files deleted. Please restart enigma2.\n"
184 | "\n"
185 | "Do you want to restart now?"
186 | msgstr ""
187 | "Files deleted. Please restart enigma2.\n"
188 | "\n"
189 | "Do you want to restart now?"
190 |
191 | #: plugin/plugin.py:357
192 | msgid "It seems you have already set up another tuner. Your server can only support one tuner type. To use this additional tuner type you will need to setup another server. Do you want to continue creating the files?"
193 | msgstr "It seems you have already set up another tuner. Your server can only support one tuner type. To use this additional tuner type you will need to setup another server. Do you want to continue creating the files?"
194 |
195 | #: plugin/plugin.py:377
196 | msgid ""
197 | "Files created. Please restart enigma2 and then you should be able to add this STB to your server.\n"
198 | "\n"
199 | "Do you want to restart now?"
200 | msgstr ""
201 | "Files created. Please restart enigma2 and then you should be able to add this STB to your server.\n"
202 | "\n"
203 | "Do you want to restart now?"
204 |
205 | #: plugin/plugin.py:395
206 | msgid "Really close without saving settings?"
207 | msgstr "Really close without saving settings?"
208 |
209 | #: plugin/plugin.py:446
210 | msgid "HR-Tuner Proxy"
211 | msgstr "HR-Tuner Proxy"
212 |
213 | #: plugin/plugin.py:454 plugin/plugin.py:455 plugin/plugin.py:456
214 | msgid "Setup the HR-Tuner Proxy server"
215 | msgstr "Setup the HR-Tuner Proxy server"
216 |
217 |
--------------------------------------------------------------------------------
/plugin/locale/es/LC_MESSAGES/HRTunerProxy.po:
--------------------------------------------------------------------------------
1 | # Spanish translations for enigma2-openvix-plugins package.
2 | # Copyright (C) 2017 THE enigma2-openvix-plugins'S COPYRIGHT HOLDER
3 | # This file is distributed under the same license as the enigma2-openvix-plugins package.
4 | # Automatically generated, 2017.
5 | #
6 | msgid ""
7 | msgstr ""
8 | "Project-Id-Version: enigma2-openvix-plugins 1.0\n"
9 | "Report-Msgid-Bugs-To: \n"
10 | "POT-Creation-Date: 2017-07-06 12:43+0100\n"
11 | "PO-Revision-Date: 2017-05-24 19:38+0100\n"
12 | "Last-Translator: Automatically generated\n"
13 | "Language-Team: none\n"
14 | "Language: es\n"
15 | "MIME-Version: 1.0\n"
16 | "Content-Type: text/plain; charset=UTF-8\n"
17 | "Content-Transfer-Encoding: 8bit\n"
18 | "Plural-Forms: nplurals=2; plural=(n != 1);\n"
19 |
20 | msgid "About"
21 | msgstr ""
22 |
23 | msgid "Close"
24 | msgstr ""
25 |
26 | msgid "Create"
27 | msgstr ""
28 |
29 | msgid "Do you really want to remove the files for this tuner type?, doing so will cause the DVR in plex to be none functional."
30 | msgstr ""
31 |
32 | msgid "Enigma2"
33 | msgstr ""
34 |
35 | msgid "Enigma2 STB"
36 | msgstr ""
37 |
38 | msgid ""
39 | "Files created, Please restart enigma2 and then you should be able to add this STB to Plex DVR.\n"
40 | "Do you want to do this now ?"
41 | msgstr ""
42 |
43 | msgid "It seems you have already setup on another tuner, As Plex Server can only support one tuner type, to use this additional tuner type you will need to setup a 2nd Plex Server, do you want to continue creating the files?"
44 | msgstr ""
45 |
46 | msgid ""
47 | "No IP address found, please make sure you are connected to your LAN via ethernet, wifi is not supported at this time.\n"
48 | "\n"
49 | "Press OK to close"
50 | msgstr ""
51 |
52 | msgid "Please note: To use a 2nd tuner type you need to setup/have a 2nd Plex Server, are you sure you want to continue?"
53 | msgstr ""
54 |
55 | msgid "Please note: To use the DVR feature in Plex, you need to be a Plex Pass user. For more information about Plex Pass see https://www.plex.tv/features/plex-pass"
56 | msgstr ""
57 |
58 | msgid "HR-Tuner Proxy for Enigma2"
59 | msgstr ""
60 |
61 | msgid "PlexDVR"
62 | msgstr ""
63 |
64 | msgid ""
65 | "Press LEFT / RIGHT to select a different tuner type.\n"
66 | "Press GREEN button to create your configuration files."
67 | msgstr ""
68 |
69 | msgid ""
70 | "Press LEFT / RIGHT to select a different tuner type.\n"
71 | "Press GREEN button to update your configuration files."
72 | msgstr ""
73 |
74 | msgid ""
75 | "Press OK to continue setting up this tuner or press LEFT / RIGHT to select a different tuner type.\n"
76 | "Press GREEN button to create your configuration files."
77 | msgstr ""
78 |
79 | msgid "Tuner type to use."
80 | msgstr ""
81 |
82 | msgid "Update"
83 | msgstr ""
84 |
85 | msgid ""
86 | "WARNING: It seems you have a single tuner box, if the box is not left in Standby your Plex recordings WILL fail.\n"
87 | "\n"
88 | "Press OK to continue"
89 | msgstr ""
90 |
--------------------------------------------------------------------------------
/plugin/locale/et/LC_MESSAGES/HRTunerProxy.po:
--------------------------------------------------------------------------------
1 | # Estonian translations for enigma2-openvix-plugins package.
2 | # Copyright (C) 2017 THE enigma2-openvix-plugins'S COPYRIGHT HOLDER
3 | # This file is distributed under the same license as the enigma2-openvix-plugins package.
4 | # Automatically generated, 2017.
5 | #
6 | msgid ""
7 | msgstr ""
8 | "Project-Id-Version: enigma2-openvix-plugins 1.0\n"
9 | "Report-Msgid-Bugs-To: \n"
10 | "POT-Creation-Date: 2017-07-06 12:43+0100\n"
11 | "PO-Revision-Date: 2017-05-24 19:38+0100\n"
12 | "Last-Translator: Automatically generated\n"
13 | "Language-Team: none\n"
14 | "Language: et\n"
15 | "MIME-Version: 1.0\n"
16 | "Content-Type: text/plain; charset=UTF-8\n"
17 | "Content-Transfer-Encoding: 8bit\n"
18 | "Plural-Forms: nplurals=2; plural=(n != 1);\n"
19 |
20 | msgid "About"
21 | msgstr ""
22 |
23 | msgid "Close"
24 | msgstr ""
25 |
26 | msgid "Create"
27 | msgstr ""
28 |
29 | msgid "Do you really want to remove the files for this tuner type?, doing so will cause the DVR in plex to be none functional."
30 | msgstr ""
31 |
32 | msgid "Enigma2"
33 | msgstr ""
34 |
35 | msgid "Enigma2 STB"
36 | msgstr ""
37 |
38 | msgid ""
39 | "Files created, Please restart enigma2 and then you should be able to add this STB to Plex DVR.\n"
40 | "Do you want to do this now ?"
41 | msgstr ""
42 |
43 | msgid "It seems you have already setup on another tuner, As Plex Server can only support one tuner type, to use this additional tuner type you will need to setup a 2nd Plex Server, do you want to continue creating the files?"
44 | msgstr ""
45 |
46 | msgid ""
47 | "No IP address found, please make sure you are connected to your LAN via ethernet, wifi is not supported at this time.\n"
48 | "\n"
49 | "Press OK to close"
50 | msgstr ""
51 |
52 | msgid "Please note: To use a 2nd tuner type you need to setup/have a 2nd Plex Server, are you sure you want to continue?"
53 | msgstr ""
54 |
55 | msgid "Please note: To use the DVR feature in Plex, you need to be a Plex Pass user. For more information about Plex Pass see https://www.plex.tv/features/plex-pass"
56 | msgstr ""
57 |
58 | msgid "HR-Tuner Proxy for Enigma2"
59 | msgstr ""
60 |
61 | msgid "PlexDVR"
62 | msgstr ""
63 |
64 | msgid ""
65 | "Press LEFT / RIGHT to select a different tuner type.\n"
66 | "Press GREEN button to create your configuration files."
67 | msgstr ""
68 |
69 | msgid ""
70 | "Press LEFT / RIGHT to select a different tuner type.\n"
71 | "Press GREEN button to update your configuration files."
72 | msgstr ""
73 |
74 | msgid ""
75 | "Press OK to continue setting up this tuner or press LEFT / RIGHT to select a different tuner type.\n"
76 | "Press GREEN button to create your configuration files."
77 | msgstr ""
78 |
79 | msgid "Tuner type to use."
80 | msgstr ""
81 |
82 | msgid "Update"
83 | msgstr ""
84 |
85 | msgid ""
86 | "WARNING: It seems you have a single tuner box, if the box is not left in Standby your Plex recordings WILL fail.\n"
87 | "\n"
88 | "Press OK to continue"
89 | msgstr ""
90 |
--------------------------------------------------------------------------------
/plugin/locale/fa/LC_MESSAGES/HRTunerProxy.po:
--------------------------------------------------------------------------------
1 | # Persian translations for enigma2-openvix-plugins package.
2 | # Copyright (C) 2017 THE enigma2-openvix-plugins'S COPYRIGHT HOLDER
3 | # This file is distributed under the same license as the enigma2-openvix-plugins package.
4 | # Automatically generated, 2017.
5 | #
6 | msgid ""
7 | msgstr ""
8 | "Project-Id-Version: enigma2-openvix-plugins 1.0\n"
9 | "Report-Msgid-Bugs-To: \n"
10 | "POT-Creation-Date: 2017-07-06 12:43+0100\n"
11 | "PO-Revision-Date: 2017-05-24 19:38+0100\n"
12 | "Last-Translator: Automatically generated\n"
13 | "Language-Team: none\n"
14 | "Language: fa\n"
15 | "MIME-Version: 1.0\n"
16 | "Content-Type: text/plain; charset=UTF-8\n"
17 | "Content-Transfer-Encoding: 8bit\n"
18 |
19 | msgid "About"
20 | msgstr ""
21 |
22 | msgid "Close"
23 | msgstr ""
24 |
25 | msgid "Create"
26 | msgstr ""
27 |
28 | msgid "Do you really want to remove the files for this tuner type?, doing so will cause the DVR in plex to be none functional."
29 | msgstr ""
30 |
31 | msgid "Enigma2"
32 | msgstr ""
33 |
34 | msgid "Enigma2 STB"
35 | msgstr ""
36 |
37 | msgid ""
38 | "Files created, Please restart enigma2 and then you should be able to add this STB to Plex DVR.\n"
39 | "Do you want to do this now ?"
40 | msgstr ""
41 |
42 | msgid "It seems you have already setup on another tuner, As Plex Server can only support one tuner type, to use this additional tuner type you will need to setup a 2nd Plex Server, do you want to continue creating the files?"
43 | msgstr ""
44 |
45 | msgid ""
46 | "No IP address found, please make sure you are connected to your LAN via ethernet, wifi is not supported at this time.\n"
47 | "\n"
48 | "Press OK to close"
49 | msgstr ""
50 |
51 | msgid "Please note: To use a 2nd tuner type you need to setup/have a 2nd Plex Server, are you sure you want to continue?"
52 | msgstr ""
53 |
54 | msgid "Please note: To use the DVR feature in Plex, you need to be a Plex Pass user. For more information about Plex Pass see https://www.plex.tv/features/plex-pass"
55 | msgstr ""
56 |
57 | msgid "HR-Tuner Proxy for Enigma2"
58 | msgstr ""
59 |
60 | msgid "PlexDVR"
61 | msgstr ""
62 |
63 | msgid ""
64 | "Press LEFT / RIGHT to select a different tuner type.\n"
65 | "Press GREEN button to create your configuration files."
66 | msgstr ""
67 |
68 | msgid ""
69 | "Press LEFT / RIGHT to select a different tuner type.\n"
70 | "Press GREEN button to update your configuration files."
71 | msgstr ""
72 |
73 | msgid ""
74 | "Press OK to continue setting up this tuner or press LEFT / RIGHT to select a different tuner type.\n"
75 | "Press GREEN button to create your configuration files."
76 | msgstr ""
77 |
78 | msgid "Tuner type to use."
79 | msgstr ""
80 |
81 | msgid "Update"
82 | msgstr ""
83 |
84 | msgid ""
85 | "WARNING: It seems you have a single tuner box, if the box is not left in Standby your Plex recordings WILL fail.\n"
86 | "\n"
87 | "Press OK to continue"
88 | msgstr ""
89 |
--------------------------------------------------------------------------------
/plugin/locale/fi/LC_MESSAGES/HRTunerProxy.po:
--------------------------------------------------------------------------------
1 | # Finnish translations for enigma2-openvix-plugins package.
2 | # Copyright (C) 2017 THE enigma2-openvix-plugins'S COPYRIGHT HOLDER
3 | # This file is distributed under the same license as the enigma2-openvix-plugins package.
4 | # Automatically generated, 2017.
5 | #
6 | msgid ""
7 | msgstr ""
8 | "Project-Id-Version: enigma2-openvix-plugins 1.0\n"
9 | "Report-Msgid-Bugs-To: \n"
10 | "POT-Creation-Date: 2017-07-06 12:43+0100\n"
11 | "PO-Revision-Date: 2021-12-12 13:37+0200\n"
12 | "Last-Translator: Orlandox\n"
13 | "Language-Team: none\n"
14 | "Language: fi\n"
15 | "MIME-Version: 1.0\n"
16 | "Content-Type: text/plain; charset=UTF-8\n"
17 | "Content-Transfer-Encoding: 8bit\n"
18 | "Plural-Forms: nplurals=2; plural=(n != 1);\n"
19 | "X-Generator: Poedit 3.0\n"
20 |
21 | msgid "All"
22 | msgstr "Kaikki"
23 |
24 | msgid "Not set"
25 | msgstr "Ei asetettu"
26 |
27 | msgid "v%s "
28 | msgstr "v%s "
29 |
30 | msgid "About HR-Tuner Proxy"
31 | msgstr "Tietoja HR-Tuner Proxy:sta"
32 |
33 | msgid "Close"
34 | msgstr "Sulje"
35 |
36 | msgid "HR-Tuner Proxy for Enigma2 %s(c) 2018\n"
37 | msgstr "HR-Tuner Proxy Enigma2:lle %s(c) 2018\n"
38 |
39 | msgid "Application credits:\n"
40 | msgstr "Sovelluksen krediitit:\n"
41 |
42 | msgid "Sources credits:\n"
43 | msgstr "Lähteen krediitit:\n"
44 |
45 | msgid "Translation credits:\n"
46 | msgstr "Kännöksen krediitit:\n"
47 |
48 | msgid "In use"
49 | msgstr "Käytössä"
50 |
51 | msgid "Bouquet to use."
52 | msgstr "Käytettävä suosikkilista."
53 |
54 | msgid "Number of concurrent streams."
55 | msgstr "Samanaikaisten streamien määrä."
56 |
57 | msgid "Debug Mode."
58 | msgstr "Debug-moodi."
59 |
60 | msgid "Please note: Please now select a bouquet to use."
61 | msgstr "Huomio: Valitse käytettävä suosikkilista."
62 |
63 | msgid ""
64 | "Please note: You do not seem to have any channels setup for this tuner, "
65 | "please add some channels to Enigma2 or choose anther tuner type."
66 | msgstr ""
67 | "Huomio: Näyttää, että yhtään kanavaa ei ole määritetty tälle virittimelle. "
68 | "Lisää kanavia Enigma2:lle tai valitse eri viritintyyppi."
69 |
70 | msgid "Save"
71 | msgstr "Tallenna"
72 |
73 | msgid "Press OK to continue setting up this tuner."
74 | msgstr "Paina OK jatkaaksesi tämän virittimen asennusta."
75 |
76 | msgid "Press LEFT / RIGHT to select a different tuner type."
77 | msgstr "Paina VASEN / OIKEA valitaksesi eri viritintyypin."
78 |
79 | msgid ""
80 | "Press OK to continue setting up this tuner or select a different tuner type."
81 | msgstr ""
82 | "Paina OK jatkaaksesi tämän virittimen asennusta tai valitse toinen "
83 | "viritintyyppi."
84 |
85 | msgid "Press LEFT / RIGHT to select a different bouquet."
86 | msgstr "Paina VASEN / OIKEA valitaksesi eri suosikkilistan."
87 |
88 | msgid "Debug mode to create logs."
89 | msgstr "Debug-moodi lokien luontiin."
90 |
91 | msgid "Press LEFT / RIGHT to set number of concurent streams."
92 | msgstr "Paina VASEN / OIKEA asettaaksesi samanaikaisten streamien määrän."
93 |
94 | msgid ""
95 | "Please note: DVR feature in Plex / Emby is a premium / premiere feature. For "
96 | "more information please refer to:\n"
97 | "https://www.plex.tv/features/plex-pass\n"
98 | "https://emby.media/premiere.html"
99 | msgstr ""
100 | "Huomio: DVR-toiminto Plex:ssa / Emby:ssa on lisähintainen toiminto. "
101 | "Lisätietoja:\n"
102 | "https://www.plex.tv/features/plex-pass\n"
103 | "https://emby.media/premiere.html"
104 |
105 | msgid "Press OK to continue setting up."
106 | msgstr "Paina OK jatkaaksesi asennusta."
107 |
108 | msgid ""
109 | "Press OK to continue setting up this tuner or press LEFT / RIGHT to select a "
110 | "different tuner type."
111 | msgstr ""
112 | "Paina OK jatkaaksesi tämään virittimen asennusta tai paina VASEN / OIKEA "
113 | "valitaksesi eri viritintyypin."
114 |
115 | msgid ""
116 | "Please note: To use another tuner type in Plex you need to setup/have "
117 | "another server.\n"
118 | "Are you sure you want to continue?"
119 | msgstr ""
120 | "Huomio: käyttääksesi toista viritintyyppiä Plex:ssa, täytyy asentaa/olla "
121 | "toinen serveri.\n"
122 | "Haluatko varmasti jatkaa?"
123 |
124 | msgid "Press LEFT / RIGHT to enable or disable debug mode."
125 | msgstr "Paina VASEN / OIKEA salliaksesi tai estääksesi debug-moodin."
126 |
127 | msgid "About"
128 | msgstr "Tietoja"
129 |
130 | msgid "Create"
131 | msgstr "Luo"
132 |
133 | msgid ""
134 | "Do you really want to remove the files for this tuner type?, doing so will "
135 | "cause the DVR in plex to be none functional."
136 | msgstr ""
137 | "Haluatko todella poistaa tämän viritintyypin tiedostot?Poistamisen "
138 | "seurauksena DVR Plexissä ei enää toimi."
139 |
140 | msgid ""
141 | "Files deleted. Please restart enigma2.\n"
142 | "\n"
143 | "Do you want to restart now?"
144 | msgstr ""
145 | "Tiedostot poistettu. Käynnistä Enigma2 uudelleen.\n"
146 | "\n"
147 | "Käynnistetäänkö uudelleen nyt?"
148 |
149 | msgid "BaseURL: "
150 | msgstr "Verkko-osoite: "
151 |
152 | msgid "FriendlyName: "
153 | msgstr "Malli: "
154 |
155 | msgid "Source: "
156 | msgstr "Lähde: "
157 |
158 | msgid "TunerCount: "
159 | msgstr "Virittimien määrä: "
160 |
161 | msgid "Channels: "
162 | msgstr "Kanavia: "
163 |
164 | msgid "Enigma2"
165 | msgstr "Enigma2"
166 |
167 | msgid "Enigma2 STB"
168 | msgstr "Enigma2 digiboksi"
169 |
170 | msgid ""
171 | "Files created, Please restart enigma2 and then you should be able to add "
172 | "this STB to Plex DVR.\n"
173 | "Do you want to do this now ?"
174 | msgstr ""
175 | "Tiedostot luotu, käynnistä Enigma2 uudelleen, jonka jälkeen voit lisätä "
176 | "tämän digiboksin Plex DVR:iin.\n"
177 | "Haluatko tehdä sen nyt ?"
178 |
179 | msgid ""
180 | "It seems you have already setup on another tuner, As Plex Server can only "
181 | "support one tuner type, to use this additional tuner type you will need to "
182 | "setup a 2nd Plex Server, do you want to continue creating the files?"
183 | msgstr ""
184 | "Näyttää, että olet jo tehnyt asetukset toiselle virittimelle, Plex Server "
185 | "tukee vain yhtä viritintyyppiä, käyttääksesi tätä lisäviritintä, täytyy "
186 | "sinun määritellä toinen Plex Server. Haluatko jatkaa luomalla tiedostot ?"
187 |
188 | msgid ""
189 | "No IP address found, please make sure you are connected to your LAN via "
190 | "ethernet, wifi is not supported at this time.\n"
191 | "\n"
192 | "Press OK to close"
193 | msgstr ""
194 | "IP-osoitetta ei löydy, varmista, että olet kytkeytynyt LAN-yhteydellä "
195 | "ethernethiin. WiFi ei ole tuettu tällä hetkellä.\n"
196 | "\n"
197 | "Paina OK sulkeaksesi"
198 |
199 | msgid ""
200 | "Please note: To use a 2nd tuner type you need to setup/have a 2nd Plex "
201 | "Server, are you sure you want to continue?"
202 | msgstr ""
203 | "Huomio: Käyttääksesi toista viritintyyppiä, täytyy määrittää/olla toinen "
204 | "Plex Server. Haluatko varmasti jatkaa ?"
205 |
206 | msgid ""
207 | "Please note: To use the DVR feature in Plex, you need to be a Plex Pass "
208 | "user. For more information about Plex Pass see https://www.plex.tv/features/"
209 | "plex-pass"
210 | msgstr ""
211 | "Huomio: Käyttääksesi DVR-toimintoa Plexissä, täytyy sinun olla Plex Pass -"
212 | "käyttäjä. Lisätietoja Plex Pass:sta, katso https://www.plex.tv/features/"
213 | "plex-pass"
214 |
215 | msgid "HR-Tuner Proxy for Enigma2"
216 | msgstr "HR-Tuner Proxy Enigma2:lle"
217 |
218 | msgid "PlexDVR"
219 | msgstr "PlexDVR"
220 |
221 | msgid ""
222 | "Press LEFT / RIGHT to select a different tuner type.\n"
223 | "Press GREEN button to create your configuration files."
224 | msgstr ""
225 | "Paina VASEN / OIKEA valitaksesi eri viritintyypin.\n"
226 | "Paina VIHREÄÄ näppäintä luodaksesi konfiguraatiotiedostot."
227 |
228 | msgid ""
229 | "Press LEFT / RIGHT to select a different tuner type.\n"
230 | "Press GREEN button to update your configuration files."
231 | msgstr ""
232 | "Paina VASEN / OIKEA valitaksesi eri viritintyypin.\n"
233 | "Paina VIHREÄÄ näppäintä päivittääksesi konfiguraatiotiedostot."
234 |
235 | msgid ""
236 | "Press OK to continue setting up this tuner or press LEFT / RIGHT to select a "
237 | "different tuner type.\n"
238 | "Press GREEN button to create your configuration files."
239 | msgstr ""
240 | "Paina OK jatkaaksesi tämän virittimen asennusta tai paina VASEN / OIKEA "
241 | "valitaksesi eri viritintyypin.\n"
242 | "Paina VIHREÄÄ näppäintä luodaksesi konfiguraatiotiedostot."
243 |
244 | msgid "Tuner type to use."
245 | msgstr "Käytettävä viritintyyppi."
246 |
247 | msgid "Update"
248 | msgstr "Päivitä"
249 |
250 | msgid ""
251 | "WARNING: It seems you have a single tuner box, if the box is not left in "
252 | "Standby your Plex recordings WILL fail.\n"
253 | "\n"
254 | "Press OK to continue"
255 | msgstr ""
256 | "VAROITUS: Näyttää, että käytössä on yhden virittimen boksi. Plex-"
257 | "tallennukset epäonnistuvat, jos boksia ei jätetä valmiustilaan.\n"
258 | "\n"
259 | "Paina OK jatkaaksesi"
260 |
261 | msgid "Setup the HR-Tuner Proxy server"
262 | msgstr "HR-Tuner Proxyn Asetukset"
263 |
264 | msgid "Antenna"
265 | msgstr "Antenni"
266 |
267 | msgid "Satellite"
268 | msgstr "Satelliitti"
269 |
270 | msgid "Multi"
271 | msgstr "Monivalinta"
272 |
--------------------------------------------------------------------------------
/plugin/locale/fr/LC_MESSAGES/HRTunerProxy.po:
--------------------------------------------------------------------------------
1 | # French translations for enigma2-openvix-plugins package.
2 | # Copyright (C) 2017 THE enigma2-openvix-plugins'S COPYRIGHT HOLDER
3 | # This file is distributed under the same license as the enigma2-openvix-plugins package.
4 | # Automatically generated, 2017.
5 | #
6 | msgid ""
7 | msgstr ""
8 | "Project-Id-Version: enigma2-openvix-plugins 1.0\n"
9 | "Report-Msgid-Bugs-To: \n"
10 | "POT-Creation-Date: 2017-07-06 12:43+0100\n"
11 | "PO-Revision-Date: 2017-05-24 19:38+0100\n"
12 | "Last-Translator: Automatically generated\n"
13 | "Language-Team: none\n"
14 | "Language: fr\n"
15 | "MIME-Version: 1.0\n"
16 | "Content-Type: text/plain; charset=UTF-8\n"
17 | "Content-Transfer-Encoding: 8bit\n"
18 | "Plural-Forms: nplurals=2; plural=(n > 1);\n"
19 |
20 | msgid "About"
21 | msgstr ""
22 |
23 | msgid "Close"
24 | msgstr ""
25 |
26 | msgid "Create"
27 | msgstr ""
28 |
29 | msgid "Do you really want to remove the files for this tuner type?, doing so will cause the DVR in plex to be none functional."
30 | msgstr ""
31 |
32 | msgid "Enigma2"
33 | msgstr ""
34 |
35 | msgid "Enigma2 STB"
36 | msgstr ""
37 |
38 | msgid ""
39 | "Files created, Please restart enigma2 and then you should be able to add this STB to Plex DVR.\n"
40 | "Do you want to do this now ?"
41 | msgstr ""
42 |
43 | msgid "It seems you have already setup on another tuner, As Plex Server can only support one tuner type, to use this additional tuner type you will need to setup a 2nd Plex Server, do you want to continue creating the files?"
44 | msgstr ""
45 |
46 | msgid ""
47 | "No IP address found, please make sure you are connected to your LAN via ethernet, wifi is not supported at this time.\n"
48 | "\n"
49 | "Press OK to close"
50 | msgstr ""
51 |
52 | msgid "Please note: To use a 2nd tuner type you need to setup/have a 2nd Plex Server, are you sure you want to continue?"
53 | msgstr ""
54 |
55 | msgid "Please note: To use the DVR feature in Plex, you need to be a Plex Pass user. For more information about Plex Pass see https://www.plex.tv/features/plex-pass"
56 | msgstr ""
57 |
58 | msgid "HR-Tuner Proxy for Enigma2"
59 | msgstr ""
60 |
61 | msgid "PlexDVR"
62 | msgstr ""
63 |
64 | msgid ""
65 | "Press LEFT / RIGHT to select a different tuner type.\n"
66 | "Press GREEN button to create your configuration files."
67 | msgstr ""
68 |
69 | msgid ""
70 | "Press LEFT / RIGHT to select a different tuner type.\n"
71 | "Press GREEN button to update your configuration files."
72 | msgstr ""
73 |
74 | msgid ""
75 | "Press OK to continue setting up this tuner or press LEFT / RIGHT to select a different tuner type.\n"
76 | "Press GREEN button to create your configuration files."
77 | msgstr ""
78 |
79 | msgid "Tuner type to use."
80 | msgstr ""
81 |
82 | msgid "Update"
83 | msgstr ""
84 |
85 | msgid ""
86 | "WARNING: It seems you have a single tuner box, if the box is not left in Standby your Plex recordings WILL fail.\n"
87 | "\n"
88 | "Press OK to continue"
89 | msgstr ""
90 |
--------------------------------------------------------------------------------
/plugin/locale/fy/LC_MESSAGES/HRTunerProxy.po:
--------------------------------------------------------------------------------
1 | # Western Frisian translations for enigma2-openvix-plugins package.
2 | # Copyright (C) 2017 THE enigma2-openvix-plugins'S COPYRIGHT HOLDER
3 | # This file is distributed under the same license as the enigma2-openvix-plugins package.
4 | # Automatically generated, 2017.
5 | #
6 | msgid ""
7 | msgstr ""
8 | "Project-Id-Version: enigma2-openvix-plugins 1.0\n"
9 | "Report-Msgid-Bugs-To: \n"
10 | "POT-Creation-Date: 2017-07-06 12:43+0100\n"
11 | "PO-Revision-Date: 2017-05-24 19:38+0100\n"
12 | "Last-Translator: Automatically generated\n"
13 | "Language-Team: none\n"
14 | "Language: fy\n"
15 | "MIME-Version: 1.0\n"
16 | "Content-Type: text/plain; charset=UTF-8\n"
17 | "Content-Transfer-Encoding: 8bit\n"
18 |
19 | msgid "About"
20 | msgstr ""
21 |
22 | msgid "Close"
23 | msgstr ""
24 |
25 | msgid "Create"
26 | msgstr ""
27 |
28 | msgid "Do you really want to remove the files for this tuner type?, doing so will cause the DVR in plex to be none functional."
29 | msgstr ""
30 |
31 | msgid "Enigma2"
32 | msgstr ""
33 |
34 | msgid "Enigma2 STB"
35 | msgstr ""
36 |
37 | msgid ""
38 | "Files created, Please restart enigma2 and then you should be able to add this STB to Plex DVR.\n"
39 | "Do you want to do this now ?"
40 | msgstr ""
41 |
42 | msgid "It seems you have already setup on another tuner, As Plex Server can only support one tuner type, to use this additional tuner type you will need to setup a 2nd Plex Server, do you want to continue creating the files?"
43 | msgstr ""
44 |
45 | msgid ""
46 | "No IP address found, please make sure you are connected to your LAN via ethernet, wifi is not supported at this time.\n"
47 | "\n"
48 | "Press OK to close"
49 | msgstr ""
50 |
51 | msgid "Please note: To use a 2nd tuner type you need to setup/have a 2nd Plex Server, are you sure you want to continue?"
52 | msgstr ""
53 |
54 | msgid "Please note: To use the DVR feature in Plex, you need to be a Plex Pass user. For more information about Plex Pass see https://www.plex.tv/features/plex-pass"
55 | msgstr ""
56 |
57 | msgid "HR-Tuner Proxy for Enigma2"
58 | msgstr ""
59 |
60 | msgid "PlexDVR"
61 | msgstr ""
62 |
63 | msgid ""
64 | "Press LEFT / RIGHT to select a different tuner type.\n"
65 | "Press GREEN button to create your configuration files."
66 | msgstr ""
67 |
68 | msgid ""
69 | "Press LEFT / RIGHT to select a different tuner type.\n"
70 | "Press GREEN button to update your configuration files."
71 | msgstr ""
72 |
73 | msgid ""
74 | "Press OK to continue setting up this tuner or press LEFT / RIGHT to select a different tuner type.\n"
75 | "Press GREEN button to create your configuration files."
76 | msgstr ""
77 |
78 | msgid "Tuner type to use."
79 | msgstr ""
80 |
81 | msgid "Update"
82 | msgstr ""
83 |
84 | msgid ""
85 | "WARNING: It seems you have a single tuner box, if the box is not left in Standby your Plex recordings WILL fail.\n"
86 | "\n"
87 | "Press OK to continue"
88 | msgstr ""
89 |
--------------------------------------------------------------------------------
/plugin/locale/he/LC_MESSAGES/HRTunerProxy.po:
--------------------------------------------------------------------------------
1 | # Hebrew translations for enigma2-openvix-plugins package.
2 | # Copyright (C) 2017 THE enigma2-openvix-plugins'S COPYRIGHT HOLDER
3 | # This file is distributed under the same license as the enigma2-openvix-plugins package.
4 | # Automatically generated, 2017.
5 | #
6 | msgid ""
7 | msgstr ""
8 | "Project-Id-Version: enigma2-openvix-plugins 1.0\n"
9 | "Report-Msgid-Bugs-To: \n"
10 | "POT-Creation-Date: 2017-07-06 12:43+0100\n"
11 | "PO-Revision-Date: 2017-05-24 19:38+0100\n"
12 | "Last-Translator: Automatically generated\n"
13 | "Language-Team: none\n"
14 | "Language: he\n"
15 | "MIME-Version: 1.0\n"
16 | "Content-Type: text/plain; charset=UTF-8\n"
17 | "Content-Transfer-Encoding: 8bit\n"
18 | "Plural-Forms: nplurals=2; plural=(n != 1);\n"
19 |
20 | msgid "About"
21 | msgstr ""
22 |
23 | msgid "Close"
24 | msgstr ""
25 |
26 | msgid "Create"
27 | msgstr ""
28 |
29 | msgid "Do you really want to remove the files for this tuner type?, doing so will cause the DVR in plex to be none functional."
30 | msgstr ""
31 |
32 | msgid "Enigma2"
33 | msgstr ""
34 |
35 | msgid "Enigma2 STB"
36 | msgstr ""
37 |
38 | msgid ""
39 | "Files created, Please restart enigma2 and then you should be able to add this STB to Plex DVR.\n"
40 | "Do you want to do this now ?"
41 | msgstr ""
42 |
43 | msgid "It seems you have already setup on another tuner, As Plex Server can only support one tuner type, to use this additional tuner type you will need to setup a 2nd Plex Server, do you want to continue creating the files?"
44 | msgstr ""
45 |
46 | msgid ""
47 | "No IP address found, please make sure you are connected to your LAN via ethernet, wifi is not supported at this time.\n"
48 | "\n"
49 | "Press OK to close"
50 | msgstr ""
51 |
52 | msgid "Please note: To use a 2nd tuner type you need to setup/have a 2nd Plex Server, are you sure you want to continue?"
53 | msgstr ""
54 |
55 | msgid "Please note: To use the DVR feature in Plex, you need to be a Plex Pass user. For more information about Plex Pass see https://www.plex.tv/features/plex-pass"
56 | msgstr ""
57 |
58 | msgid "HR-Tuner Proxy for Enigma2"
59 | msgstr ""
60 |
61 | msgid "PlexDVR"
62 | msgstr ""
63 |
64 | msgid ""
65 | "Press LEFT / RIGHT to select a different tuner type.\n"
66 | "Press GREEN button to create your configuration files."
67 | msgstr ""
68 |
69 | msgid ""
70 | "Press LEFT / RIGHT to select a different tuner type.\n"
71 | "Press GREEN button to update your configuration files."
72 | msgstr ""
73 |
74 | msgid ""
75 | "Press OK to continue setting up this tuner or press LEFT / RIGHT to select a different tuner type.\n"
76 | "Press GREEN button to create your configuration files."
77 | msgstr ""
78 |
79 | msgid "Tuner type to use."
80 | msgstr ""
81 |
82 | msgid "Update"
83 | msgstr ""
84 |
85 | msgid ""
86 | "WARNING: It seems you have a single tuner box, if the box is not left in Standby your Plex recordings WILL fail.\n"
87 | "\n"
88 | "Press OK to continue"
89 | msgstr ""
90 |
--------------------------------------------------------------------------------
/plugin/locale/hr/LC_MESSAGES/HRTunerProxy.po:
--------------------------------------------------------------------------------
1 | # Croatian translations for enigma2-openvix-plugins package.
2 | # Copyright (C) 2017 THE enigma2-openvix-plugins'S COPYRIGHT HOLDER
3 | # This file is distributed under the same license as the enigma2-openvix-plugins package.
4 | # Automatically generated, 2017.
5 | #
6 | msgid ""
7 | msgstr ""
8 | "Project-Id-Version: enigma2-openvix-plugins 1.0\n"
9 | "Report-Msgid-Bugs-To: \n"
10 | "POT-Creation-Date: 2017-07-06 12:43+0100\n"
11 | "PO-Revision-Date: 2017-05-24 19:38+0100\n"
12 | "Last-Translator: Automatically generated\n"
13 | "Language-Team: none\n"
14 | "Language: hr\n"
15 | "MIME-Version: 1.0\n"
16 | "Content-Type: text/plain; charset=UTF-8\n"
17 | "Content-Transfer-Encoding: 8bit\n"
18 | "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
19 |
20 | msgid "About"
21 | msgstr ""
22 |
23 | msgid "Close"
24 | msgstr ""
25 |
26 | msgid "Create"
27 | msgstr ""
28 |
29 | msgid "Do you really want to remove the files for this tuner type?, doing so will cause the DVR in plex to be none functional."
30 | msgstr ""
31 |
32 | msgid "Enigma2"
33 | msgstr ""
34 |
35 | msgid "Enigma2 STB"
36 | msgstr ""
37 |
38 | msgid ""
39 | "Files created, Please restart enigma2 and then you should be able to add this STB to Plex DVR.\n"
40 | "Do you want to do this now ?"
41 | msgstr ""
42 |
43 | msgid "It seems you have already setup on another tuner, As Plex Server can only support one tuner type, to use this additional tuner type you will need to setup a 2nd Plex Server, do you want to continue creating the files?"
44 | msgstr ""
45 |
46 | msgid ""
47 | "No IP address found, please make sure you are connected to your LAN via ethernet, wifi is not supported at this time.\n"
48 | "\n"
49 | "Press OK to close"
50 | msgstr ""
51 |
52 | msgid "Please note: To use a 2nd tuner type you need to setup/have a 2nd Plex Server, are you sure you want to continue?"
53 | msgstr ""
54 |
55 | msgid "Please note: To use the DVR feature in Plex, you need to be a Plex Pass user. For more information about Plex Pass see https://www.plex.tv/features/plex-pass"
56 | msgstr ""
57 |
58 | msgid "HR-Tuner Proxy for Enigma2"
59 | msgstr ""
60 |
61 | msgid "PlexDVR"
62 | msgstr ""
63 |
64 | msgid ""
65 | "Press LEFT / RIGHT to select a different tuner type.\n"
66 | "Press GREEN button to create your configuration files."
67 | msgstr ""
68 |
69 | msgid ""
70 | "Press LEFT / RIGHT to select a different tuner type.\n"
71 | "Press GREEN button to update your configuration files."
72 | msgstr ""
73 |
74 | msgid ""
75 | "Press OK to continue setting up this tuner or press LEFT / RIGHT to select a different tuner type.\n"
76 | "Press GREEN button to create your configuration files."
77 | msgstr ""
78 |
79 | msgid "Tuner type to use."
80 | msgstr ""
81 |
82 | msgid "Update"
83 | msgstr ""
84 |
85 | msgid ""
86 | "WARNING: It seems you have a single tuner box, if the box is not left in Standby your Plex recordings WILL fail.\n"
87 | "\n"
88 | "Press OK to continue"
89 | msgstr ""
90 |
--------------------------------------------------------------------------------
/plugin/locale/hu/LC_MESSAGES/HRTunerProxy.po:
--------------------------------------------------------------------------------
1 | # Hungarian translations for enigma2-openvix-plugins package.
2 | # Copyright (C) 2017 THE enigma2-openvix-plugins'S COPYRIGHT HOLDER
3 | # This file is distributed under the same license as the enigma2-openvix-plugins package.
4 | # Automatically generated, 2017.
5 | #
6 | msgid ""
7 | msgstr ""
8 | "Project-Id-Version: enigma2-openvix-plugins 1.0\n"
9 | "Report-Msgid-Bugs-To: \n"
10 | "POT-Creation-Date: 2017-07-06 12:43+0100\n"
11 | "PO-Revision-Date: 2017-05-24 19:38+0100\n"
12 | "Last-Translator: Automatically generated\n"
13 | "Language-Team: none\n"
14 | "Language: hu\n"
15 | "MIME-Version: 1.0\n"
16 | "Content-Type: text/plain; charset=UTF-8\n"
17 | "Content-Transfer-Encoding: 8bit\n"
18 | "Plural-Forms: nplurals=2; plural=(n != 1);\n"
19 |
20 | msgid "About"
21 | msgstr ""
22 |
23 | msgid "Close"
24 | msgstr ""
25 |
26 | msgid "Create"
27 | msgstr ""
28 |
29 | msgid "Do you really want to remove the files for this tuner type?, doing so will cause the DVR in plex to be none functional."
30 | msgstr ""
31 |
32 | msgid "Enigma2"
33 | msgstr ""
34 |
35 | msgid "Enigma2 STB"
36 | msgstr ""
37 |
38 | msgid ""
39 | "Files created, Please restart enigma2 and then you should be able to add this STB to Plex DVR.\n"
40 | "Do you want to do this now ?"
41 | msgstr ""
42 |
43 | msgid "It seems you have already setup on another tuner, As Plex Server can only support one tuner type, to use this additional tuner type you will need to setup a 2nd Plex Server, do you want to continue creating the files?"
44 | msgstr ""
45 |
46 | msgid ""
47 | "No IP address found, please make sure you are connected to your LAN via ethernet, wifi is not supported at this time.\n"
48 | "\n"
49 | "Press OK to close"
50 | msgstr ""
51 |
52 | msgid "Please note: To use a 2nd tuner type you need to setup/have a 2nd Plex Server, are you sure you want to continue?"
53 | msgstr ""
54 |
55 | msgid "Please note: To use the DVR feature in Plex, you need to be a Plex Pass user. For more information about Plex Pass see https://www.plex.tv/features/plex-pass"
56 | msgstr ""
57 |
58 | msgid "HR-Tuner Proxy for Enigma2"
59 | msgstr ""
60 |
61 | msgid "PlexDVR"
62 | msgstr ""
63 |
64 | msgid ""
65 | "Press LEFT / RIGHT to select a different tuner type.\n"
66 | "Press GREEN button to create your configuration files."
67 | msgstr ""
68 |
69 | msgid ""
70 | "Press LEFT / RIGHT to select a different tuner type.\n"
71 | "Press GREEN button to update your configuration files."
72 | msgstr ""
73 |
74 | msgid ""
75 | "Press OK to continue setting up this tuner or press LEFT / RIGHT to select a different tuner type.\n"
76 | "Press GREEN button to create your configuration files."
77 | msgstr ""
78 |
79 | msgid "Tuner type to use."
80 | msgstr ""
81 |
82 | msgid "Update"
83 | msgstr ""
84 |
85 | msgid ""
86 | "WARNING: It seems you have a single tuner box, if the box is not left in Standby your Plex recordings WILL fail.\n"
87 | "\n"
88 | "Press OK to continue"
89 | msgstr ""
90 |
--------------------------------------------------------------------------------
/plugin/locale/is/LC_MESSAGES/HRTunerProxy.po:
--------------------------------------------------------------------------------
1 | # Icelandic translations for enigma2-openvix-plugins package.
2 | # Copyright (C) 2017 THE enigma2-openvix-plugins'S COPYRIGHT HOLDER
3 | # This file is distributed under the same license as the enigma2-openvix-plugins package.
4 | # Automatically generated, 2017.
5 | #
6 | msgid ""
7 | msgstr ""
8 | "Project-Id-Version: enigma2-openvix-plugins 1.0\n"
9 | "Report-Msgid-Bugs-To: \n"
10 | "POT-Creation-Date: 2017-07-06 12:43+0100\n"
11 | "PO-Revision-Date: 2017-05-24 19:38+0100\n"
12 | "Last-Translator: Automatically generated\n"
13 | "Language-Team: none\n"
14 | "Language: is\n"
15 | "MIME-Version: 1.0\n"
16 | "Content-Type: text/plain; charset=UTF-8\n"
17 | "Content-Transfer-Encoding: 8bit\n"
18 |
19 | msgid "About"
20 | msgstr ""
21 |
22 | msgid "Close"
23 | msgstr ""
24 |
25 | msgid "Create"
26 | msgstr ""
27 |
28 | msgid "Do you really want to remove the files for this tuner type?, doing so will cause the DVR in plex to be none functional."
29 | msgstr ""
30 |
31 | msgid "Enigma2"
32 | msgstr ""
33 |
34 | msgid "Enigma2 STB"
35 | msgstr ""
36 |
37 | msgid ""
38 | "Files created, Please restart enigma2 and then you should be able to add this STB to Plex DVR.\n"
39 | "Do you want to do this now ?"
40 | msgstr ""
41 |
42 | msgid "It seems you have already setup on another tuner, As Plex Server can only support one tuner type, to use this additional tuner type you will need to setup a 2nd Plex Server, do you want to continue creating the files?"
43 | msgstr ""
44 |
45 | msgid ""
46 | "No IP address found, please make sure you are connected to your LAN via ethernet, wifi is not supported at this time.\n"
47 | "\n"
48 | "Press OK to close"
49 | msgstr ""
50 |
51 | msgid "Please note: To use a 2nd tuner type you need to setup/have a 2nd Plex Server, are you sure you want to continue?"
52 | msgstr ""
53 |
54 | msgid "Please note: To use the DVR feature in Plex, you need to be a Plex Pass user. For more information about Plex Pass see https://www.plex.tv/features/plex-pass"
55 | msgstr ""
56 |
57 | msgid "HR-Tuner Proxy for Enigma2"
58 | msgstr ""
59 |
60 | msgid "PlexDVR"
61 | msgstr ""
62 |
63 | msgid ""
64 | "Press LEFT / RIGHT to select a different tuner type.\n"
65 | "Press GREEN button to create your configuration files."
66 | msgstr ""
67 |
68 | msgid ""
69 | "Press LEFT / RIGHT to select a different tuner type.\n"
70 | "Press GREEN button to update your configuration files."
71 | msgstr ""
72 |
73 | msgid ""
74 | "Press OK to continue setting up this tuner or press LEFT / RIGHT to select a different tuner type.\n"
75 | "Press GREEN button to create your configuration files."
76 | msgstr ""
77 |
78 | msgid "Tuner type to use."
79 | msgstr ""
80 |
81 | msgid "Update"
82 | msgstr ""
83 |
84 | msgid ""
85 | "WARNING: It seems you have a single tuner box, if the box is not left in Standby your Plex recordings WILL fail.\n"
86 | "\n"
87 | "Press OK to continue"
88 | msgstr ""
89 |
--------------------------------------------------------------------------------
/plugin/locale/it/LC_MESSAGES/HRTunerProxy.po:
--------------------------------------------------------------------------------
1 | # Italian translations for enigma2-openvix-plugins package.
2 | # Copyright (C) 2017 THE enigma2-openvix-plugins'S COPYRIGHT HOLDER
3 | # This file is distributed under the same license as the enigma2-openvix-plugins package.
4 | # Automatically generated, 2017.
5 | #
6 | msgid ""
7 | msgstr ""
8 | "Project-Id-Version: enigma2-openvix-plugins 1.0\n"
9 | "Report-Msgid-Bugs-To: \n"
10 | "POT-Creation-Date: 2017-07-06 12:43+0100\n"
11 | "PO-Revision-Date: 2017-05-24 19:38+0100\n"
12 | "Last-Translator: Automatically generated\n"
13 | "Language-Team: none\n"
14 | "Language: it\n"
15 | "MIME-Version: 1.0\n"
16 | "Content-Type: text/plain; charset=UTF-8\n"
17 | "Content-Transfer-Encoding: 8bit\n"
18 | "Plural-Forms: nplurals=2; plural=(n != 1);\n"
19 |
20 | msgid "About"
21 | msgstr ""
22 |
23 | msgid "Close"
24 | msgstr ""
25 |
26 | msgid "Create"
27 | msgstr ""
28 |
29 | msgid "Do you really want to remove the files for this tuner type?, doing so will cause the DVR in plex to be none functional."
30 | msgstr ""
31 |
32 | msgid "Enigma2"
33 | msgstr ""
34 |
35 | msgid "Enigma2 STB"
36 | msgstr ""
37 |
38 | msgid ""
39 | "Files created, Please restart enigma2 and then you should be able to add this STB to Plex DVR.\n"
40 | "Do you want to do this now ?"
41 | msgstr ""
42 |
43 | msgid "It seems you have already setup on another tuner, As Plex Server can only support one tuner type, to use this additional tuner type you will need to setup a 2nd Plex Server, do you want to continue creating the files?"
44 | msgstr ""
45 |
46 | msgid ""
47 | "No IP address found, please make sure you are connected to your LAN via ethernet, wifi is not supported at this time.\n"
48 | "\n"
49 | "Press OK to close"
50 | msgstr ""
51 |
52 | msgid "Please note: To use a 2nd tuner type you need to setup/have a 2nd Plex Server, are you sure you want to continue?"
53 | msgstr ""
54 |
55 | msgid "Please note: To use the DVR feature in Plex, you need to be a Plex Pass user. For more information about Plex Pass see https://www.plex.tv/features/plex-pass"
56 | msgstr ""
57 |
58 | msgid "HR-Tuner Proxy for Enigma2"
59 | msgstr ""
60 |
61 | msgid "PlexDVR"
62 | msgstr ""
63 |
64 | msgid ""
65 | "Press LEFT / RIGHT to select a different tuner type.\n"
66 | "Press GREEN button to create your configuration files."
67 | msgstr ""
68 |
69 | msgid ""
70 | "Press LEFT / RIGHT to select a different tuner type.\n"
71 | "Press GREEN button to update your configuration files."
72 | msgstr ""
73 |
74 | msgid ""
75 | "Press OK to continue setting up this tuner or press LEFT / RIGHT to select a different tuner type.\n"
76 | "Press GREEN button to create your configuration files."
77 | msgstr ""
78 |
79 | msgid "Tuner type to use."
80 | msgstr ""
81 |
82 | msgid "Update"
83 | msgstr ""
84 |
85 | msgid ""
86 | "WARNING: It seems you have a single tuner box, if the box is not left in Standby your Plex recordings WILL fail.\n"
87 | "\n"
88 | "Press OK to continue"
89 | msgstr ""
90 |
--------------------------------------------------------------------------------
/plugin/locale/lt/LC_MESSAGES/HRTunerProxy.po:
--------------------------------------------------------------------------------
1 | # Lithuanian translations for enigma2-openvix-plugins package.
2 | # Copyright (C) 2017 THE enigma2-openvix-plugins'S COPYRIGHT HOLDER
3 | # This file is distributed under the same license as the enigma2-openvix-plugins package.
4 | # Automatically generated, 2017.
5 | #
6 | msgid ""
7 | msgstr ""
8 | "Project-Id-Version: enigma2-openvix-plugins 1.0\n"
9 | "Report-Msgid-Bugs-To: \n"
10 | "POT-Creation-Date: 2017-07-06 12:43+0100\n"
11 | "PO-Revision-Date: 2017-05-24 19:38+0100\n"
12 | "Last-Translator: Automatically generated\n"
13 | "Language-Team: none\n"
14 | "Language: lt\n"
15 | "MIME-Version: 1.0\n"
16 | "Content-Type: text/plain; charset=UTF-8\n"
17 | "Content-Transfer-Encoding: 8bit\n"
18 | "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
19 |
20 | msgid "About"
21 | msgstr ""
22 |
23 | msgid "Close"
24 | msgstr ""
25 |
26 | msgid "Create"
27 | msgstr ""
28 |
29 | msgid "Do you really want to remove the files for this tuner type?, doing so will cause the DVR in plex to be none functional."
30 | msgstr ""
31 |
32 | msgid "Enigma2"
33 | msgstr ""
34 |
35 | msgid "Enigma2 STB"
36 | msgstr ""
37 |
38 | msgid ""
39 | "Files created, Please restart enigma2 and then you should be able to add this STB to Plex DVR.\n"
40 | "Do you want to do this now ?"
41 | msgstr ""
42 |
43 | msgid "It seems you have already setup on another tuner, As Plex Server can only support one tuner type, to use this additional tuner type you will need to setup a 2nd Plex Server, do you want to continue creating the files?"
44 | msgstr ""
45 |
46 | msgid ""
47 | "No IP address found, please make sure you are connected to your LAN via ethernet, wifi is not supported at this time.\n"
48 | "\n"
49 | "Press OK to close"
50 | msgstr ""
51 |
52 | msgid "Please note: To use a 2nd tuner type you need to setup/have a 2nd Plex Server, are you sure you want to continue?"
53 | msgstr ""
54 |
55 | msgid "Please note: To use the DVR feature in Plex, you need to be a Plex Pass user. For more information about Plex Pass see https://www.plex.tv/features/plex-pass"
56 | msgstr ""
57 |
58 | msgid "HR-Tuner Proxy for Enigma2"
59 | msgstr ""
60 |
61 | msgid "PlexDVR"
62 | msgstr ""
63 |
64 | msgid ""
65 | "Press LEFT / RIGHT to select a different tuner type.\n"
66 | "Press GREEN button to create your configuration files."
67 | msgstr ""
68 |
69 | msgid ""
70 | "Press LEFT / RIGHT to select a different tuner type.\n"
71 | "Press GREEN button to update your configuration files."
72 | msgstr ""
73 |
74 | msgid ""
75 | "Press OK to continue setting up this tuner or press LEFT / RIGHT to select a different tuner type.\n"
76 | "Press GREEN button to create your configuration files."
77 | msgstr ""
78 |
79 | msgid "Tuner type to use."
80 | msgstr ""
81 |
82 | msgid "Update"
83 | msgstr ""
84 |
85 | msgid ""
86 | "WARNING: It seems you have a single tuner box, if the box is not left in Standby your Plex recordings WILL fail.\n"
87 | "\n"
88 | "Press OK to continue"
89 | msgstr ""
90 |
--------------------------------------------------------------------------------
/plugin/locale/lv/LC_MESSAGES/HRTunerProxy.po:
--------------------------------------------------------------------------------
1 | # Latvian translations for enigma2-openvix-plugins package.
2 | # Copyright (C) 2017 THE enigma2-openvix-plugins'S COPYRIGHT HOLDER
3 | # This file is distributed under the same license as the enigma2-openvix-plugins package.
4 | # Automatically generated, 2017.
5 | #
6 | msgid ""
7 | msgstr ""
8 | "Project-Id-Version: enigma2-openvix-plugins 1.0\n"
9 | "Report-Msgid-Bugs-To: \n"
10 | "POT-Creation-Date: 2017-07-06 12:43+0100\n"
11 | "PO-Revision-Date: 2017-05-24 19:38+0100\n"
12 | "Last-Translator: Automatically generated\n"
13 | "Language-Team: none\n"
14 | "Language: lv\n"
15 | "MIME-Version: 1.0\n"
16 | "Content-Type: text/plain; charset=UTF-8\n"
17 | "Content-Transfer-Encoding: 8bit\n"
18 | "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);\n"
19 |
20 | msgid "About"
21 | msgstr ""
22 |
23 | msgid "Close"
24 | msgstr ""
25 |
26 | msgid "Create"
27 | msgstr ""
28 |
29 | msgid "Do you really want to remove the files for this tuner type?, doing so will cause the DVR in plex to be none functional."
30 | msgstr ""
31 |
32 | msgid "Enigma2"
33 | msgstr ""
34 |
35 | msgid "Enigma2 STB"
36 | msgstr ""
37 |
38 | msgid ""
39 | "Files created, Please restart enigma2 and then you should be able to add this STB to Plex DVR.\n"
40 | "Do you want to do this now ?"
41 | msgstr ""
42 |
43 | msgid "It seems you have already setup on another tuner, As Plex Server can only support one tuner type, to use this additional tuner type you will need to setup a 2nd Plex Server, do you want to continue creating the files?"
44 | msgstr ""
45 |
46 | msgid ""
47 | "No IP address found, please make sure you are connected to your LAN via ethernet, wifi is not supported at this time.\n"
48 | "\n"
49 | "Press OK to close"
50 | msgstr ""
51 |
52 | msgid "Please note: To use a 2nd tuner type you need to setup/have a 2nd Plex Server, are you sure you want to continue?"
53 | msgstr ""
54 |
55 | msgid "Please note: To use the DVR feature in Plex, you need to be a Plex Pass user. For more information about Plex Pass see https://www.plex.tv/features/plex-pass"
56 | msgstr ""
57 |
58 | msgid "HR-Tuner Proxy for Enigma2"
59 | msgstr ""
60 |
61 | msgid "PlexDVR"
62 | msgstr ""
63 |
64 | msgid ""
65 | "Press LEFT / RIGHT to select a different tuner type.\n"
66 | "Press GREEN button to create your configuration files."
67 | msgstr ""
68 |
69 | msgid ""
70 | "Press LEFT / RIGHT to select a different tuner type.\n"
71 | "Press GREEN button to update your configuration files."
72 | msgstr ""
73 |
74 | msgid ""
75 | "Press OK to continue setting up this tuner or press LEFT / RIGHT to select a different tuner type.\n"
76 | "Press GREEN button to create your configuration files."
77 | msgstr ""
78 |
79 | msgid "Tuner type to use."
80 | msgstr ""
81 |
82 | msgid "Update"
83 | msgstr ""
84 |
85 | msgid ""
86 | "WARNING: It seems you have a single tuner box, if the box is not left in Standby your Plex recordings WILL fail.\n"
87 | "\n"
88 | "Press OK to continue"
89 | msgstr ""
90 |
--------------------------------------------------------------------------------
/plugin/locale/nb/LC_MESSAGES/HRTunerProxy.po:
--------------------------------------------------------------------------------
1 | # Norwegian Bokmal translations for enigma2-openvix-plugins package.
2 | # Copyright (C) 2017 THE enigma2-openvix-plugins'S COPYRIGHT HOLDER
3 | # This file is distributed under the same license as the enigma2-openvix-plugins package.
4 | # Automatically generated, 2017.
5 | #
6 | msgid ""
7 | msgstr ""
8 | "Project-Id-Version: enigma2-openvix-plugins 1.0\n"
9 | "Report-Msgid-Bugs-To: \n"
10 | "POT-Creation-Date: 2017-07-06 12:43+0100\n"
11 | "PO-Revision-Date: 2017-05-24 19:38+0100\n"
12 | "Last-Translator: Automatically generated\n"
13 | "Language-Team: none\n"
14 | "Language: nb\n"
15 | "MIME-Version: 1.0\n"
16 | "Content-Type: text/plain; charset=UTF-8\n"
17 | "Content-Transfer-Encoding: 8bit\n"
18 | "Plural-Forms: nplurals=2; plural=(n != 1);\n"
19 |
20 | msgid "About"
21 | msgstr ""
22 |
23 | msgid "Close"
24 | msgstr ""
25 |
26 | msgid "Create"
27 | msgstr ""
28 |
29 | msgid "Do you really want to remove the files for this tuner type?, doing so will cause the DVR in plex to be none functional."
30 | msgstr ""
31 |
32 | msgid "Enigma2"
33 | msgstr ""
34 |
35 | msgid "Enigma2 STB"
36 | msgstr ""
37 |
38 | msgid ""
39 | "Files created, Please restart enigma2 and then you should be able to add this STB to Plex DVR.\n"
40 | "Do you want to do this now ?"
41 | msgstr ""
42 |
43 | msgid "It seems you have already setup on another tuner, As Plex Server can only support one tuner type, to use this additional tuner type you will need to setup a 2nd Plex Server, do you want to continue creating the files?"
44 | msgstr ""
45 |
46 | msgid ""
47 | "No IP address found, please make sure you are connected to your LAN via ethernet, wifi is not supported at this time.\n"
48 | "\n"
49 | "Press OK to close"
50 | msgstr ""
51 |
52 | msgid "Please note: To use a 2nd tuner type you need to setup/have a 2nd Plex Server, are you sure you want to continue?"
53 | msgstr ""
54 |
55 | msgid "Please note: To use the DVR feature in Plex, you need to be a Plex Pass user. For more information about Plex Pass see https://www.plex.tv/features/plex-pass"
56 | msgstr ""
57 |
58 | msgid "HR-Tuner Proxy for Enigma2"
59 | msgstr ""
60 |
61 | msgid "PlexDVR"
62 | msgstr ""
63 |
64 | msgid ""
65 | "Press LEFT / RIGHT to select a different tuner type.\n"
66 | "Press GREEN button to create your configuration files."
67 | msgstr ""
68 |
69 | msgid ""
70 | "Press LEFT / RIGHT to select a different tuner type.\n"
71 | "Press GREEN button to update your configuration files."
72 | msgstr ""
73 |
74 | msgid ""
75 | "Press OK to continue setting up this tuner or press LEFT / RIGHT to select a different tuner type.\n"
76 | "Press GREEN button to create your configuration files."
77 | msgstr ""
78 |
79 | msgid "Tuner type to use."
80 | msgstr ""
81 |
82 | msgid "Update"
83 | msgstr ""
84 |
85 | msgid ""
86 | "WARNING: It seems you have a single tuner box, if the box is not left in Standby your Plex recordings WILL fail.\n"
87 | "\n"
88 | "Press OK to continue"
89 | msgstr ""
90 |
--------------------------------------------------------------------------------
/plugin/locale/nl/LC_MESSAGES/HRTunerProxy.po:
--------------------------------------------------------------------------------
1 | # SOME DESCRIPTIVE TITLE.
2 | # Copyright (C) YEAR ORGANIZATION
3 | # FIRST AUTHOR , YEAR.
4 | #
5 | msgid ""
6 | msgstr ""
7 | "Project-Id-Version: enigma2-openvix-plugins 1.0\n"
8 | "POT-Creation-Date: 2018-02-11 15:24+GMT\n"
9 | "PO-Revision-Date: 2018-02-11 15:35+0000\n"
10 | "Last-Translator: \n"
11 | "Language-Team: Rob van der Does\n"
12 | "Language: nl\n"
13 | "MIME-Version: 1.0\n"
14 | "Content-Type: text/plain; charset=UTF-8\n"
15 | "Content-Transfer-Encoding: 8bit\n"
16 | "Generated-By: pygettext.py 1.5\n"
17 | "X-Generator: Poedit 2.0.6\n"
18 | "Plural-Forms: nplurals=2; plural=(n != 1);\n"
19 |
20 | #: plugin/__init__.py:67
21 | msgid "All"
22 | msgstr "Alle"
23 |
24 | #: plugin/__init__.py:67
25 | msgid "Not set"
26 | msgstr "Niet ingesteld"
27 |
28 | #: plugin/__init__.py:75
29 | msgid "v%s "
30 | msgstr "v%s "
31 |
32 | #: plugin/about.py:25 plugin/about.py:37
33 | msgid "About HR-Tuner Proxy"
34 | msgstr "Over HR-Tuner Proxy"
35 |
36 | #: plugin/about.py:48 plugin/plugin.py:162
37 | msgid "Close"
38 | msgstr "Sluiten"
39 |
40 | #: plugin/about.py:51
41 | msgid "HR-Tuner Proxy for Enigma2 %s(c) 2018\n"
42 | msgstr "HR-Tuner Proxy voor Enigma2 %s(c) 2018\n"
43 |
44 | #: plugin/about.py:54
45 | msgid "Application credits:\n"
46 | msgstr "Applicatie dankzij:\n"
47 |
48 | #: plugin/about.py:58
49 | msgid "Sources credits:\n"
50 | msgstr "Bronnen dankzij:\n"
51 |
52 | #: plugin/about.py:61
53 | msgid "Translation credits:\n"
54 | msgstr "Vertaling dankzij:\n"
55 |
56 | #: plugin/getDeviceInfo.py:62
57 | msgid "Enigma2"
58 | msgstr "Enigma2"
59 |
60 | #: plugin/getDeviceInfo.py:91
61 | msgid "In use"
62 | msgstr "In gebruik"
63 |
64 | #: plugin/plugin.py:105 plugin/plugin.py:125
65 | msgid "HR-Tuner Proxy for Enigma2"
66 | msgstr "HR-Tuner Proxy voor Enigma2"
67 |
68 | #: plugin/plugin.py:174
69 | msgid "About"
70 | msgstr "Over"
71 |
72 | #: plugin/plugin.py:189
73 | msgid ""
74 | "WARNING: No IP address found. Please make sure you are connected to your LAN "
75 | "via ethernet or Wi-Fi.\n"
76 | "\n"
77 | "Press OK to exit."
78 | msgstr ""
79 | "WAARSCHUWING: Geen IP-adres gevonden. Stel zeker dat u met internet "
80 | "verbonden bent via LAN of WiFi.\n"
81 | "\n"
82 | "Druk op \"OK\" om verder te gaan."
83 |
84 | #: plugin/plugin.py:200 plugin/plugin.py:216 plugin/plugin.py:271
85 | #: plugin/plugin.py:292 plugin/plugin.py:307
86 | msgid "Tuner type to use."
87 | msgstr "Te gebruiken tunertype."
88 |
89 | #: plugin/plugin.py:217 plugin/plugin.py:274 plugin/plugin.py:295
90 | #: plugin/plugin.py:310
91 | msgid "Bouquet to use."
92 | msgstr "Te gebruiken boeket."
93 |
94 | #: plugin/plugin.py:219
95 | msgid "Number of concurrent streams."
96 | msgstr "Aantal gelijktijdige streams."
97 |
98 | #: plugin/plugin.py:220 plugin/plugin.py:298 plugin/plugin.py:313
99 | msgid "Debug Mode."
100 | msgstr "Debug Modus."
101 |
102 | #: plugin/plugin.py:256
103 | msgid "Please note: Please now select a bouquet to use."
104 | msgstr "Let op: nu moet u een boeket kiezen."
105 |
106 | #: plugin/plugin.py:258
107 | msgid ""
108 | "Please note: You do not seem to have any channels setup for this tuner, "
109 | "please add some channels to Enigma2 or choose anther tuner type."
110 | msgstr ""
111 | "Let op: het lijkt er op dat u voor deze tuner geen kanalen heeft ingesteld. "
112 | "Voeg kanalen toe in Enigma2 of kies een ander tunertype."
113 |
114 | #: plugin/plugin.py:264
115 | msgid ""
116 | "WARNING: It seems you have a single tuner box. If the box is not left in "
117 | "standby your recordings WILL fail."
118 | msgstr ""
119 | "WAARSCHUWING: Het lijkt er op, dat u een ontvanger met slechts één tuner "
120 | "gebruikt. Als u de box niet in stand-by zet, zullen uw opnames mislukken."
121 |
122 | #: plugin/plugin.py:265
123 | msgid "Press OK to continue setting up this tuner."
124 | msgstr "Druk op \"OK\" om door te gaan met het instellen van deze tuner."
125 |
126 | #: plugin/plugin.py:268 plugin/plugin.py:303 plugin/plugin.py:316
127 | msgid "Save"
128 | msgstr "Opslaan"
129 |
130 | #: plugin/plugin.py:272
131 | msgid ""
132 | "Press OK to continue setting up this tuner or press LEFT / RIGHT to select a "
133 | "different tuner type."
134 | msgstr ""
135 | "Druk op \"OK\" om door te gaan met het instellen van deze tuner of druk op "
136 | "LINKS/RECHTS om een ander tunertype te kiezen."
137 |
138 | #: plugin/plugin.py:273 plugin/plugin.py:293 plugin/plugin.py:308
139 | msgid "Press LEFT / RIGHT to select a different tuner type."
140 | msgstr "Druk op LINKS/RECHTS om een ander tunertype te selecteren."
141 |
142 | #: plugin/plugin.py:275 plugin/plugin.py:278 plugin/plugin.py:281
143 | msgid ""
144 | "Press OK to continue setting up this tuner or select a different tuner type."
145 | msgstr ""
146 | "Druk op \"OK\" om door te gaan met het instellen van deze tuner of kies een "
147 | "ander type tuner."
148 |
149 | #: plugin/plugin.py:276 plugin/plugin.py:279 plugin/plugin.py:297
150 | #: plugin/plugin.py:312
151 | msgid "Press LEFT / RIGHT to select a different bouquet."
152 | msgstr "Gebruik LINKS/RECHTS om een ander boeket te kiezen."
153 |
154 | #: plugin/plugin.py:277
155 | msgid "Debug mode to create logs."
156 | msgstr "Debug modus om logs te maken."
157 |
158 | #: plugin/plugin.py:282
159 | msgid "Press LEFT / RIGHT to set number of concurent streams."
160 | msgstr ""
161 | "Gebruik LINKS/RECHTS om het aantal gelijktijdige streams in te stellen."
162 |
163 | #: plugin/plugin.py:285
164 | msgid ""
165 | "Please note: DVR feature in Plex / Emby is premire feature. For more "
166 | "information please refer to:\n"
167 | "https://www.plex.tv/features/plex-pass\n"
168 | "https://emby.media/premiere.html"
169 | msgstr ""
170 | "Let op: PVR-functionaliteit in Plex / Emby is een premium functie. Voor meer "
171 | "informatie zie:\n"
172 | "https://www.plex.tv/features/plex-pass\n"
173 | "https://emby.media/premiere.html"
174 |
175 | #: plugin/plugin.py:286
176 | msgid "Press OK to continue setting up."
177 | msgstr "Druk op \"OK\" om in te stellen."
178 |
179 | #: plugin/plugin.py:289
180 | msgid ""
181 | "Please note: To use another tuner type in Plex you need to setup/have "
182 | "another server.\n"
183 | "Are you sure you want to continue?"
184 | msgstr ""
185 | "Let op: om een ander tunertype te gebruiken, moet u een andere server "
186 | "instellen/hebben.\n"
187 | "Weet u zeker dat u wilt doorgaan?"
188 |
189 | #: plugin/plugin.py:300 plugin/plugin.py:315
190 | msgid "Press LEFT / RIGHT to enable or disable debug mode."
191 | msgstr "Gebruik LINKS/RECHTS om de debug modus te (de)activeren."
192 |
193 | #: plugin/plugin.py:317
194 | msgid "Delete"
195 | msgstr "Verwijder"
196 |
197 | #: plugin/plugin.py:325
198 | msgid ""
199 | "Do you really want to remove the files for this tuner type? Doing so will "
200 | "cause your DVR to be none functional."
201 | msgstr ""
202 | "Wilt u echt de bestanden voor dit tunertype verwijderen? Als u dat doet, "
203 | "wordt uw PVR onbruikbaar."
204 |
205 | #: plugin/plugin.py:336
206 | msgid ""
207 | "Files deleted. Please restart enigma2.\n"
208 | "\n"
209 | "Do you want to restart now?"
210 | msgstr ""
211 | "Bestanden gewist. U moet nu Enigma2 herstarten.\n"
212 | "\n"
213 | "Wilt u nu herstarten?"
214 |
215 | #: plugin/plugin.py:357
216 | msgid ""
217 | "It seems you have already set up another tuner. Your server can only support "
218 | "one tuner type. To use this additional tuner type you will need to setup "
219 | "another server. Do you want to continue creating the files?"
220 | msgstr ""
221 | "Het lijkt er op dat u al een andere tuner heeft ingesteld. Uw server kan "
222 | "slechts één tunertype ondersteunen. Om een aanvullende tuner te gebruiken, "
223 | "zult u een andere server moeten gebruiken.\n"
224 | "Wilt u doorgaan met het aanmaken van de bestanden?"
225 |
226 | #: plugin/plugin.py:377
227 | msgid ""
228 | "Files created. Please restart enigma2 and then you should be able to add "
229 | "this STB to your server.\n"
230 | "\n"
231 | "Do you want to restart now?"
232 | msgstr ""
233 | "Bestanden aangemaakt. Na een Enigma2 herstart kunt u deze STB aan uw server "
234 | "toevoegen.\n"
235 | "\n"
236 | "Wilt u nu herstarten?"
237 |
238 | #: plugin/plugin.py:395
239 | msgid "Really close without saving settings?"
240 | msgstr "Echt afsluiten zonder op te slaan?"
241 |
242 | #: plugin/plugin.py:446
243 | msgid "HR-Tuner Proxy"
244 | msgstr "HR-Tuner Proxy"
245 |
246 | #: plugin/plugin.py:454 plugin/plugin.py:455 plugin/plugin.py:456
247 | msgid "Setup the HR-Tuner Proxy server"
248 | msgstr "De HR-Tuner Proxy server instellen"
249 |
--------------------------------------------------------------------------------
/plugin/locale/no/LC_MESSAGES/HRTunerProxy.po:
--------------------------------------------------------------------------------
1 | # Norwegian translations for enigma2-openvix-plugins package.
2 | # Copyright (C) 2017 THE enigma2-openvix-plugins'S COPYRIGHT HOLDER
3 | # This file is distributed under the same license as the enigma2-openvix-plugins package.
4 | # Automatically generated, 2017.
5 | #
6 | msgid ""
7 | msgstr ""
8 | "Project-Id-Version: enigma2-openvix-plugins 1.0\n"
9 | "Report-Msgid-Bugs-To: \n"
10 | "POT-Creation-Date: 2017-07-06 12:43+0100\n"
11 | "PO-Revision-Date: 2017-05-24 19:38+0100\n"
12 | "Last-Translator: Automatically generated\n"
13 | "Language-Team: none\n"
14 | "Language: no\n"
15 | "MIME-Version: 1.0\n"
16 | "Content-Type: text/plain; charset=UTF-8\n"
17 | "Content-Transfer-Encoding: 8bit\n"
18 | "Plural-Forms: nplurals=2; plural=(n != 1);\n"
19 |
20 | msgid "About"
21 | msgstr ""
22 |
23 | msgid "Close"
24 | msgstr ""
25 |
26 | msgid "Create"
27 | msgstr ""
28 |
29 | msgid "Do you really want to remove the files for this tuner type?, doing so will cause the DVR in plex to be none functional."
30 | msgstr ""
31 |
32 | msgid "Enigma2"
33 | msgstr ""
34 |
35 | msgid "Enigma2 STB"
36 | msgstr ""
37 |
38 | msgid ""
39 | "Files created, Please restart enigma2 and then you should be able to add this STB to Plex DVR.\n"
40 | "Do you want to do this now ?"
41 | msgstr ""
42 |
43 | msgid "It seems you have already setup on another tuner, As Plex Server can only support one tuner type, to use this additional tuner type you will need to setup a 2nd Plex Server, do you want to continue creating the files?"
44 | msgstr ""
45 |
46 | msgid ""
47 | "No IP address found, please make sure you are connected to your LAN via ethernet, wifi is not supported at this time.\n"
48 | "\n"
49 | "Press OK to close"
50 | msgstr ""
51 |
52 | msgid "Please note: To use a 2nd tuner type you need to setup/have a 2nd Plex Server, are you sure you want to continue?"
53 | msgstr ""
54 |
55 | msgid "Please note: To use the DVR feature in Plex, you need to be a Plex Pass user. For more information about Plex Pass see https://www.plex.tv/features/plex-pass"
56 | msgstr ""
57 |
58 | msgid "HR-Tuner Proxy for Enigma2"
59 | msgstr ""
60 |
61 | msgid "PlexDVR"
62 | msgstr ""
63 |
64 | msgid ""
65 | "Press LEFT / RIGHT to select a different tuner type.\n"
66 | "Press GREEN button to create your configuration files."
67 | msgstr ""
68 |
69 | msgid ""
70 | "Press LEFT / RIGHT to select a different tuner type.\n"
71 | "Press GREEN button to update your configuration files."
72 | msgstr ""
73 |
74 | msgid ""
75 | "Press OK to continue setting up this tuner or press LEFT / RIGHT to select a different tuner type.\n"
76 | "Press GREEN button to create your configuration files."
77 | msgstr ""
78 |
79 | msgid "Tuner type to use."
80 | msgstr ""
81 |
82 | msgid "Update"
83 | msgstr ""
84 |
85 | msgid ""
86 | "WARNING: It seems you have a single tuner box, if the box is not left in Standby your Plex recordings WILL fail.\n"
87 | "\n"
88 | "Press OK to continue"
89 | msgstr ""
90 |
--------------------------------------------------------------------------------
/plugin/locale/pl/LC_MESSAGES/HRTunerProxy.po:
--------------------------------------------------------------------------------
1 | # Polish translations for enigma2-openvix-plugins package.
2 | # Copyright (C) 2017 THE enigma2-openvix-plugins'S COPYRIGHT HOLDER
3 | # This file is distributed under the same license as the enigma2-openvix-plugins package.
4 | # Automatically generated, 2017.
5 | #
6 | msgid ""
7 | msgstr ""
8 | "Project-Id-Version: enigma2-openvix-plugins 1.0\n"
9 | "Report-Msgid-Bugs-To: \n"
10 | "POT-Creation-Date: 2017-07-06 12:43+0100\n"
11 | "PO-Revision-Date: 2017-05-24 19:38+0100\n"
12 | "Last-Translator: Automatically generated\n"
13 | "Language-Team: none\n"
14 | "Language: pl\n"
15 | "MIME-Version: 1.0\n"
16 | "Content-Type: text/plain; charset=UTF-8\n"
17 | "Content-Transfer-Encoding: 8bit\n"
18 | "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
19 |
20 | msgid "About"
21 | msgstr ""
22 |
23 | msgid "Close"
24 | msgstr ""
25 |
26 | msgid "Create"
27 | msgstr ""
28 |
29 | msgid "Do you really want to remove the files for this tuner type?, doing so will cause the DVR in plex to be none functional."
30 | msgstr ""
31 |
32 | msgid "Enigma2"
33 | msgstr ""
34 |
35 | msgid "Enigma2 STB"
36 | msgstr ""
37 |
38 | msgid ""
39 | "Files created, Please restart enigma2 and then you should be able to add this STB to Plex DVR.\n"
40 | "Do you want to do this now ?"
41 | msgstr ""
42 |
43 | msgid "It seems you have already setup on another tuner, As Plex Server can only support one tuner type, to use this additional tuner type you will need to setup a 2nd Plex Server, do you want to continue creating the files?"
44 | msgstr ""
45 |
46 | msgid ""
47 | "No IP address found, please make sure you are connected to your LAN via ethernet, wifi is not supported at this time.\n"
48 | "\n"
49 | "Press OK to close"
50 | msgstr ""
51 |
52 | msgid "Please note: To use a 2nd tuner type you need to setup/have a 2nd Plex Server, are you sure you want to continue?"
53 | msgstr ""
54 |
55 | msgid "Please note: To use the DVR feature in Plex, you need to be a Plex Pass user. For more information about Plex Pass see https://www.plex.tv/features/plex-pass"
56 | msgstr ""
57 |
58 | msgid "HR-Tuner Proxy for Enigma2"
59 | msgstr ""
60 |
61 | msgid "PlexDVR"
62 | msgstr ""
63 |
64 | msgid ""
65 | "Press LEFT / RIGHT to select a different tuner type.\n"
66 | "Press GREEN button to create your configuration files."
67 | msgstr ""
68 |
69 | msgid ""
70 | "Press LEFT / RIGHT to select a different tuner type.\n"
71 | "Press GREEN button to update your configuration files."
72 | msgstr ""
73 |
74 | msgid ""
75 | "Press OK to continue setting up this tuner or press LEFT / RIGHT to select a different tuner type.\n"
76 | "Press GREEN button to create your configuration files."
77 | msgstr ""
78 |
79 | msgid "Tuner type to use."
80 | msgstr ""
81 |
82 | msgid "Update"
83 | msgstr ""
84 |
85 | msgid ""
86 | "WARNING: It seems you have a single tuner box, if the box is not left in Standby your Plex recordings WILL fail.\n"
87 | "\n"
88 | "Press OK to continue"
89 | msgstr ""
90 |
--------------------------------------------------------------------------------
/plugin/locale/pt/LC_MESSAGES/HRTunerProxy.po:
--------------------------------------------------------------------------------
1 | # Portuguese translations for enigma2-openvix-plugins package.
2 | # Copyright (C) 2017 THE enigma2-openvix-plugins'S COPYRIGHT HOLDER
3 | # This file is distributed under the same license as the enigma2-openvix-plugins package.
4 | # Automatically generated, 2017.
5 | #
6 | msgid ""
7 | msgstr ""
8 | "Project-Id-Version: enigma2-openvix-plugins 1.0\n"
9 | "Report-Msgid-Bugs-To: \n"
10 | "POT-Creation-Date: 2017-07-06 12:43+0100\n"
11 | "PO-Revision-Date: 2017-05-24 19:38+0100\n"
12 | "Last-Translator: Automatically generated\n"
13 | "Language-Team: none\n"
14 | "Language: pt\n"
15 | "MIME-Version: 1.0\n"
16 | "Content-Type: text/plain; charset=UTF-8\n"
17 | "Content-Transfer-Encoding: 8bit\n"
18 | "Plural-Forms: nplurals=2; plural=(n != 1);\n"
19 |
20 | msgid "About"
21 | msgstr ""
22 |
23 | msgid "Close"
24 | msgstr ""
25 |
26 | msgid "Create"
27 | msgstr ""
28 |
29 | msgid "Do you really want to remove the files for this tuner type?, doing so will cause the DVR in plex to be none functional."
30 | msgstr ""
31 |
32 | msgid "Enigma2"
33 | msgstr ""
34 |
35 | msgid "Enigma2 STB"
36 | msgstr ""
37 |
38 | msgid ""
39 | "Files created, Please restart enigma2 and then you should be able to add this STB to Plex DVR.\n"
40 | "Do you want to do this now ?"
41 | msgstr ""
42 |
43 | msgid "It seems you have already setup on another tuner, As Plex Server can only support one tuner type, to use this additional tuner type you will need to setup a 2nd Plex Server, do you want to continue creating the files?"
44 | msgstr ""
45 |
46 | msgid ""
47 | "No IP address found, please make sure you are connected to your LAN via ethernet, wifi is not supported at this time.\n"
48 | "\n"
49 | "Press OK to close"
50 | msgstr ""
51 |
52 | msgid "Please note: To use a 2nd tuner type you need to setup/have a 2nd Plex Server, are you sure you want to continue?"
53 | msgstr ""
54 |
55 | msgid "Please note: To use the DVR feature in Plex, you need to be a Plex Pass user. For more information about Plex Pass see https://www.plex.tv/features/plex-pass"
56 | msgstr ""
57 |
58 | msgid "HR-Tuner Proxy for Enigma2"
59 | msgstr ""
60 |
61 | msgid "PlexDVR"
62 | msgstr ""
63 |
64 | msgid ""
65 | "Press LEFT / RIGHT to select a different tuner type.\n"
66 | "Press GREEN button to create your configuration files."
67 | msgstr ""
68 |
69 | msgid ""
70 | "Press LEFT / RIGHT to select a different tuner type.\n"
71 | "Press GREEN button to update your configuration files."
72 | msgstr ""
73 |
74 | msgid ""
75 | "Press OK to continue setting up this tuner or press LEFT / RIGHT to select a different tuner type.\n"
76 | "Press GREEN button to create your configuration files."
77 | msgstr ""
78 |
79 | msgid "Tuner type to use."
80 | msgstr ""
81 |
82 | msgid "Update"
83 | msgstr ""
84 |
85 | msgid ""
86 | "WARNING: It seems you have a single tuner box, if the box is not left in Standby your Plex recordings WILL fail.\n"
87 | "\n"
88 | "Press OK to continue"
89 | msgstr ""
90 |
--------------------------------------------------------------------------------
/plugin/locale/pt_BR/LC_MESSAGES/HRTunerProxy.po:
--------------------------------------------------------------------------------
1 | # Portuguese translations for enigma2-openvix-plugins package.
2 | # Copyright (C) 2017 THE enigma2-openvix-plugins'S COPYRIGHT HOLDER
3 | # This file is distributed under the same license as the enigma2-openvix-plugins package.
4 | # Automatically generated, 2017.
5 | #
6 | msgid ""
7 | msgstr ""
8 | "Project-Id-Version: enigma2-openvix-plugins 1.0\n"
9 | "Report-Msgid-Bugs-To: \n"
10 | "POT-Creation-Date: 2017-07-06 12:43+0100\n"
11 | "PO-Revision-Date: 2017-05-24 19:38+0100\n"
12 | "Last-Translator: Automatically generated\n"
13 | "Language-Team: none\n"
14 | "Language: pt_BR\n"
15 | "MIME-Version: 1.0\n"
16 | "Content-Type: text/plain; charset=UTF-8\n"
17 | "Content-Transfer-Encoding: 8bit\n"
18 | "Plural-Forms: nplurals=2; plural=(n > 1);\n"
19 |
20 | msgid "About"
21 | msgstr ""
22 |
23 | msgid "Close"
24 | msgstr ""
25 |
26 | msgid "Create"
27 | msgstr ""
28 |
29 | msgid "Do you really want to remove the files for this tuner type?, doing so will cause the DVR in plex to be none functional."
30 | msgstr ""
31 |
32 | msgid "Enigma2"
33 | msgstr ""
34 |
35 | msgid "Enigma2 STB"
36 | msgstr ""
37 |
38 | msgid ""
39 | "Files created, Please restart enigma2 and then you should be able to add this STB to Plex DVR.\n"
40 | "Do you want to do this now ?"
41 | msgstr ""
42 |
43 | msgid "It seems you have already setup on another tuner, As Plex Server can only support one tuner type, to use this additional tuner type you will need to setup a 2nd Plex Server, do you want to continue creating the files?"
44 | msgstr ""
45 |
46 | msgid ""
47 | "No IP address found, please make sure you are connected to your LAN via ethernet, wifi is not supported at this time.\n"
48 | "\n"
49 | "Press OK to close"
50 | msgstr ""
51 |
52 | msgid "Please note: To use a 2nd tuner type you need to setup/have a 2nd Plex Server, are you sure you want to continue?"
53 | msgstr ""
54 |
55 | msgid "Please note: To use the DVR feature in Plex, you need to be a Plex Pass user. For more information about Plex Pass see https://www.plex.tv/features/plex-pass"
56 | msgstr ""
57 |
58 | msgid "HR-Tuner Proxy for Enigma2"
59 | msgstr ""
60 |
61 | msgid "PlexDVR"
62 | msgstr ""
63 |
64 | msgid ""
65 | "Press LEFT / RIGHT to select a different tuner type.\n"
66 | "Press GREEN button to create your configuration files."
67 | msgstr ""
68 |
69 | msgid ""
70 | "Press LEFT / RIGHT to select a different tuner type.\n"
71 | "Press GREEN button to update your configuration files."
72 | msgstr ""
73 |
74 | msgid ""
75 | "Press OK to continue setting up this tuner or press LEFT / RIGHT to select a different tuner type.\n"
76 | "Press GREEN button to create your configuration files."
77 | msgstr ""
78 |
79 | msgid "Tuner type to use."
80 | msgstr ""
81 |
82 | msgid "Update"
83 | msgstr ""
84 |
85 | msgid ""
86 | "WARNING: It seems you have a single tuner box, if the box is not left in Standby your Plex recordings WILL fail.\n"
87 | "\n"
88 | "Press OK to continue"
89 | msgstr ""
90 |
--------------------------------------------------------------------------------
/plugin/locale/ro/LC_MESSAGES/PlexDVRAPI.po:
--------------------------------------------------------------------------------
1 | # Romanian translations for enigma2-openvix-plugins package.
2 | # Copyright (C) 2017 THE enigma2-openvix-plugins'S COPYRIGHT HOLDER
3 | # This file is distributed under the same license as the enigma2-openvix-plugins package.
4 | # Automatically generated, 2017.
5 | #
6 | msgid ""
7 | msgstr ""
8 | "Project-Id-Version: enigma2-openvix-plugins 1.0\n"
9 | "Report-Msgid-Bugs-To: \n"
10 | "POT-Creation-Date: 2017-07-06 12:43+0100\n"
11 | "PO-Revision-Date: 2017-05-24 19:38+0100\n"
12 | "Last-Translator: Automatically generated\n"
13 | "Language-Team: none\n"
14 | "Language: ro\n"
15 | "MIME-Version: 1.0\n"
16 | "Content-Type: text/plain; charset=UTF-8\n"
17 | "Content-Transfer-Encoding: 8bit\n"
18 | "Plural-Forms: nplurals=3; plural=n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < 20)) ? 1 : 2;\n"
19 |
20 | msgid "About"
21 | msgstr ""
22 |
23 | msgid "Close"
24 | msgstr ""
25 |
26 | msgid "Create"
27 | msgstr ""
28 |
29 | msgid "Do you really want to remove the files for this tuner type?, doing so will cause the DVR in plex to be none functional."
30 | msgstr ""
31 |
32 | msgid "Enigma2"
33 | msgstr ""
34 |
35 | msgid "Enigma2 STB"
36 | msgstr ""
37 |
38 | msgid ""
39 | "Files created, Please restart enigma2 and then you should be able to add this STB to Plex DVR.\n"
40 | "Do you want to do this now ?"
41 | msgstr ""
42 |
43 | msgid "It seems you have already setup on another tuner, As Plex Server can only support one tuner type, to use this additional tuner type you will need to setup a 2nd Plex Server, do you want to continue creating the files?"
44 | msgstr ""
45 |
46 | msgid ""
47 | "No IP address found, please make sure you are connected to your LAN via ethernet, wifi is not supported at this time.\n"
48 | "\n"
49 | "Press OK to close"
50 | msgstr ""
51 |
52 | msgid "Please note: To use a 2nd tuner type you need to setup/have a 2nd Plex Server, are you sure you want to continue?"
53 | msgstr ""
54 |
55 | msgid "Please note: To use the DVR feature in Plex, you need to be a Plex Pass user. For more information about Plex Pass see https://www.plex.tv/features/plex-pass"
56 | msgstr ""
57 |
58 | msgid "HR-Tuner Proxy for Enigma2"
59 | msgstr ""
60 |
61 | msgid "PlexDVR"
62 | msgstr ""
63 |
64 | msgid ""
65 | "Press LEFT / RIGHT to select a different tuner type.\n"
66 | "Press GREEN button to create your configuration files."
67 | msgstr ""
68 |
69 | msgid ""
70 | "Press LEFT / RIGHT to select a different tuner type.\n"
71 | "Press GREEN button to update your configuration files."
72 | msgstr ""
73 |
74 | msgid ""
75 | "Press OK to continue setting up this tuner or press LEFT / RIGHT to select a different tuner type.\n"
76 | "Press GREEN button to create your configuration files."
77 | msgstr ""
78 |
79 | msgid "Tuner type to use."
80 | msgstr ""
81 |
82 | msgid "Update"
83 | msgstr ""
84 |
85 | msgid ""
86 | "WARNING: It seems you have a single tuner box, if the box is not left in Standby your Plex recordings WILL fail.\n"
87 | "\n"
88 | "Press OK to continue"
89 | msgstr ""
90 |
--------------------------------------------------------------------------------
/plugin/locale/ru/LC_MESSAGES/PlexDVRAPI.po:
--------------------------------------------------------------------------------
1 | # Russian translations for enigma2-openvix-plugins package.
2 | # Copyright (C) 2017 THE enigma2-openvix-plugins'S COPYRIGHT HOLDER
3 | # This file is distributed under the same license as the enigma2-openvix-plugins package.
4 | # Automatically generated, 2017.
5 | #
6 | msgid ""
7 | msgstr ""
8 | "Project-Id-Version: enigma2-openvix-plugins 1.0\n"
9 | "Report-Msgid-Bugs-To: \n"
10 | "POT-Creation-Date: 2017-07-06 12:43+0100\n"
11 | "PO-Revision-Date: 2017-05-24 19:38+0100\n"
12 | "Last-Translator: Automatically generated\n"
13 | "Language-Team: none\n"
14 | "Language: ru\n"
15 | "MIME-Version: 1.0\n"
16 | "Content-Type: text/plain; charset=UTF-8\n"
17 | "Content-Transfer-Encoding: 8bit\n"
18 | "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
19 |
20 | msgid "About"
21 | msgstr ""
22 |
23 | msgid "Close"
24 | msgstr ""
25 |
26 | msgid "Create"
27 | msgstr ""
28 |
29 | msgid "Do you really want to remove the files for this tuner type?, doing so will cause the DVR in plex to be none functional."
30 | msgstr ""
31 |
32 | msgid "Enigma2"
33 | msgstr ""
34 |
35 | msgid "Enigma2 STB"
36 | msgstr ""
37 |
38 | msgid ""
39 | "Files created, Please restart enigma2 and then you should be able to add this STB to Plex DVR.\n"
40 | "Do you want to do this now ?"
41 | msgstr ""
42 |
43 | msgid "It seems you have already setup on another tuner, As Plex Server can only support one tuner type, to use this additional tuner type you will need to setup a 2nd Plex Server, do you want to continue creating the files?"
44 | msgstr ""
45 |
46 | msgid ""
47 | "No IP address found, please make sure you are connected to your LAN via ethernet, wifi is not supported at this time.\n"
48 | "\n"
49 | "Press OK to close"
50 | msgstr ""
51 |
52 | msgid "Please note: To use a 2nd tuner type you need to setup/have a 2nd Plex Server, are you sure you want to continue?"
53 | msgstr ""
54 |
55 | msgid "Please note: To use the DVR feature in Plex, you need to be a Plex Pass user. For more information about Plex Pass see https://www.plex.tv/features/plex-pass"
56 | msgstr ""
57 |
58 | msgid "HR-Tuner Proxy for Enigma2"
59 | msgstr ""
60 |
61 | msgid "PlexDVR"
62 | msgstr ""
63 |
64 | msgid ""
65 | "Press LEFT / RIGHT to select a different tuner type.\n"
66 | "Press GREEN button to create your configuration files."
67 | msgstr ""
68 |
69 | msgid ""
70 | "Press LEFT / RIGHT to select a different tuner type.\n"
71 | "Press GREEN button to update your configuration files."
72 | msgstr ""
73 |
74 | msgid ""
75 | "Press OK to continue setting up this tuner or press LEFT / RIGHT to select a different tuner type.\n"
76 | "Press GREEN button to create your configuration files."
77 | msgstr ""
78 |
79 | msgid "Tuner type to use."
80 | msgstr ""
81 |
82 | msgid "Update"
83 | msgstr ""
84 |
85 | msgid ""
86 | "WARNING: It seems you have a single tuner box, if the box is not left in Standby your Plex recordings WILL fail.\n"
87 | "\n"
88 | "Press OK to continue"
89 | msgstr ""
90 |
--------------------------------------------------------------------------------
/plugin/locale/sk/LC_MESSAGES/PlexDVRAPI.po:
--------------------------------------------------------------------------------
1 | # Slovak translations for enigma2-openvix-plugins package.
2 | # Copyright (C) 2017 THE enigma2-openvix-plugins'S COPYRIGHT HOLDER
3 | # This file is distributed under the same license as the enigma2-openvix-plugins package.
4 | # Automatically generated, 2017.
5 | #
6 | msgid ""
7 | msgstr ""
8 | "Project-Id-Version: enigma2-openvix-plugins 1.0\n"
9 | "Report-Msgid-Bugs-To: \n"
10 | "POT-Creation-Date: 2017-07-06 12:43+0100\n"
11 | "PO-Revision-Date: 2017-05-24 19:38+0100\n"
12 | "Last-Translator: Automatically generated\n"
13 | "Language-Team: none\n"
14 | "Language: sk\n"
15 | "MIME-Version: 1.0\n"
16 | "Content-Type: text/plain; charset=UTF-8\n"
17 | "Content-Transfer-Encoding: 8bit\n"
18 | "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
19 |
20 | msgid "About"
21 | msgstr ""
22 |
23 | msgid "Close"
24 | msgstr ""
25 |
26 | msgid "Create"
27 | msgstr ""
28 |
29 | msgid "Do you really want to remove the files for this tuner type?, doing so will cause the DVR in plex to be none functional."
30 | msgstr ""
31 |
32 | msgid "Enigma2"
33 | msgstr ""
34 |
35 | msgid "Enigma2 STB"
36 | msgstr ""
37 |
38 | msgid ""
39 | "Files created, Please restart enigma2 and then you should be able to add this STB to Plex DVR.\n"
40 | "Do you want to do this now ?"
41 | msgstr ""
42 |
43 | msgid "It seems you have already setup on another tuner, As Plex Server can only support one tuner type, to use this additional tuner type you will need to setup a 2nd Plex Server, do you want to continue creating the files?"
44 | msgstr ""
45 |
46 | msgid ""
47 | "No IP address found, please make sure you are connected to your LAN via ethernet, wifi is not supported at this time.\n"
48 | "\n"
49 | "Press OK to close"
50 | msgstr ""
51 |
52 | msgid "Please note: To use a 2nd tuner type you need to setup/have a 2nd Plex Server, are you sure you want to continue?"
53 | msgstr ""
54 |
55 | msgid "Please note: To use the DVR feature in Plex, you need to be a Plex Pass user. For more information about Plex Pass see https://www.plex.tv/features/plex-pass"
56 | msgstr ""
57 |
58 | msgid "HR-Tuner Proxy for Enigma2"
59 | msgstr ""
60 |
61 | msgid "PlexDVR"
62 | msgstr ""
63 |
64 | msgid ""
65 | "Press LEFT / RIGHT to select a different tuner type.\n"
66 | "Press GREEN button to create your configuration files."
67 | msgstr ""
68 |
69 | msgid ""
70 | "Press LEFT / RIGHT to select a different tuner type.\n"
71 | "Press GREEN button to update your configuration files."
72 | msgstr ""
73 |
74 | msgid ""
75 | "Press OK to continue setting up this tuner or press LEFT / RIGHT to select a different tuner type.\n"
76 | "Press GREEN button to create your configuration files."
77 | msgstr ""
78 |
79 | msgid "Tuner type to use."
80 | msgstr ""
81 |
82 | msgid "Update"
83 | msgstr ""
84 |
85 | msgid ""
86 | "WARNING: It seems you have a single tuner box, if the box is not left in Standby your Plex recordings WILL fail.\n"
87 | "\n"
88 | "Press OK to continue"
89 | msgstr ""
90 |
--------------------------------------------------------------------------------
/plugin/locale/sl/LC_MESSAGES/PlexDVRAPI.po:
--------------------------------------------------------------------------------
1 | # Slovenian translations for enigma2-openvix-plugins package.
2 | # Copyright (C) 2017 THE enigma2-openvix-plugins'S COPYRIGHT HOLDER
3 | # This file is distributed under the same license as the enigma2-openvix-plugins package.
4 | # Automatically generated, 2017.
5 | #
6 | msgid ""
7 | msgstr ""
8 | "Project-Id-Version: enigma2-openvix-plugins 1.0\n"
9 | "Report-Msgid-Bugs-To: \n"
10 | "POT-Creation-Date: 2017-07-06 12:43+0100\n"
11 | "PO-Revision-Date: 2017-05-24 19:38+0100\n"
12 | "Last-Translator: Automatically generated\n"
13 | "Language-Team: none\n"
14 | "Language: sl\n"
15 | "MIME-Version: 1.0\n"
16 | "Content-Type: text/plain; charset=UTF-8\n"
17 | "Content-Transfer-Encoding: 8bit\n"
18 | "Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\n"
19 |
20 | msgid "About"
21 | msgstr ""
22 |
23 | msgid "Close"
24 | msgstr ""
25 |
26 | msgid "Create"
27 | msgstr ""
28 |
29 | msgid "Do you really want to remove the files for this tuner type?, doing so will cause the DVR in plex to be none functional."
30 | msgstr ""
31 |
32 | msgid "Enigma2"
33 | msgstr ""
34 |
35 | msgid "Enigma2 STB"
36 | msgstr ""
37 |
38 | msgid ""
39 | "Files created, Please restart enigma2 and then you should be able to add this STB to Plex DVR.\n"
40 | "Do you want to do this now ?"
41 | msgstr ""
42 |
43 | msgid "It seems you have already setup on another tuner, As Plex Server can only support one tuner type, to use this additional tuner type you will need to setup a 2nd Plex Server, do you want to continue creating the files?"
44 | msgstr ""
45 |
46 | msgid ""
47 | "No IP address found, please make sure you are connected to your LAN via ethernet, wifi is not supported at this time.\n"
48 | "\n"
49 | "Press OK to close"
50 | msgstr ""
51 |
52 | msgid "Please note: To use a 2nd tuner type you need to setup/have a 2nd Plex Server, are you sure you want to continue?"
53 | msgstr ""
54 |
55 | msgid "Please note: To use the DVR feature in Plex, you need to be a Plex Pass user. For more information about Plex Pass see https://www.plex.tv/features/plex-pass"
56 | msgstr ""
57 |
58 | msgid "HR-Tuner Proxy for Enigma2"
59 | msgstr ""
60 |
61 | msgid "PlexDVR"
62 | msgstr ""
63 |
64 | msgid ""
65 | "Press LEFT / RIGHT to select a different tuner type.\n"
66 | "Press GREEN button to create your configuration files."
67 | msgstr ""
68 |
69 | msgid ""
70 | "Press LEFT / RIGHT to select a different tuner type.\n"
71 | "Press GREEN button to update your configuration files."
72 | msgstr ""
73 |
74 | msgid ""
75 | "Press OK to continue setting up this tuner or press LEFT / RIGHT to select a different tuner type.\n"
76 | "Press GREEN button to create your configuration files."
77 | msgstr ""
78 |
79 | msgid "Tuner type to use."
80 | msgstr ""
81 |
82 | msgid "Update"
83 | msgstr ""
84 |
85 | msgid ""
86 | "WARNING: It seems you have a single tuner box, if the box is not left in Standby your Plex recordings WILL fail.\n"
87 | "\n"
88 | "Press OK to continue"
89 | msgstr ""
90 |
--------------------------------------------------------------------------------
/plugin/locale/sr/LC_MESSAGES/PlexDVRAPI.po:
--------------------------------------------------------------------------------
1 | # Serbian translations for enigma2-openvix-plugins package.
2 | # Copyright (C) 2017 THE enigma2-openvix-plugins'S COPYRIGHT HOLDER
3 | # This file is distributed under the same license as the enigma2-openvix-plugins package.
4 | # Automatically generated, 2017.
5 | #
6 | msgid ""
7 | msgstr ""
8 | "Project-Id-Version: enigma2-openvix-plugins 1.0\n"
9 | "Report-Msgid-Bugs-To: \n"
10 | "POT-Creation-Date: 2017-07-06 12:43+0100\n"
11 | "PO-Revision-Date: 2017-05-24 19:38+0100\n"
12 | "Last-Translator: Automatically generated\n"
13 | "Language-Team: none\n"
14 | "Language: sr\n"
15 | "MIME-Version: 1.0\n"
16 | "Content-Type: text/plain; charset=UTF-8\n"
17 | "Content-Transfer-Encoding: 8bit\n"
18 | "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
19 |
20 | msgid "About"
21 | msgstr ""
22 |
23 | msgid "Close"
24 | msgstr ""
25 |
26 | msgid "Create"
27 | msgstr ""
28 |
29 | msgid "Do you really want to remove the files for this tuner type?, doing so will cause the DVR in plex to be none functional."
30 | msgstr ""
31 |
32 | msgid "Enigma2"
33 | msgstr ""
34 |
35 | msgid "Enigma2 STB"
36 | msgstr ""
37 |
38 | msgid ""
39 | "Files created, Please restart enigma2 and then you should be able to add this STB to Plex DVR.\n"
40 | "Do you want to do this now ?"
41 | msgstr ""
42 |
43 | msgid "It seems you have already setup on another tuner, As Plex Server can only support one tuner type, to use this additional tuner type you will need to setup a 2nd Plex Server, do you want to continue creating the files?"
44 | msgstr ""
45 |
46 | msgid ""
47 | "No IP address found, please make sure you are connected to your LAN via ethernet, wifi is not supported at this time.\n"
48 | "\n"
49 | "Press OK to close"
50 | msgstr ""
51 |
52 | msgid "Please note: To use a 2nd tuner type you need to setup/have a 2nd Plex Server, are you sure you want to continue?"
53 | msgstr ""
54 |
55 | msgid "Please note: To use the DVR feature in Plex, you need to be a Plex Pass user. For more information about Plex Pass see https://www.plex.tv/features/plex-pass"
56 | msgstr ""
57 |
58 | msgid "HR-Tuner Proxy for Enigma2"
59 | msgstr ""
60 |
61 | msgid "PlexDVR"
62 | msgstr ""
63 |
64 | msgid ""
65 | "Press LEFT / RIGHT to select a different tuner type.\n"
66 | "Press GREEN button to create your configuration files."
67 | msgstr ""
68 |
69 | msgid ""
70 | "Press LEFT / RIGHT to select a different tuner type.\n"
71 | "Press GREEN button to update your configuration files."
72 | msgstr ""
73 |
74 | msgid ""
75 | "Press OK to continue setting up this tuner or press LEFT / RIGHT to select a different tuner type.\n"
76 | "Press GREEN button to create your configuration files."
77 | msgstr ""
78 |
79 | msgid "Tuner type to use."
80 | msgstr ""
81 |
82 | msgid "Update"
83 | msgstr ""
84 |
85 | msgid ""
86 | "WARNING: It seems you have a single tuner box, if the box is not left in Standby your Plex recordings WILL fail.\n"
87 | "\n"
88 | "Press OK to continue"
89 | msgstr ""
90 |
--------------------------------------------------------------------------------
/plugin/locale/sv/LC_MESSAGES/PlexDVRAPI.po:
--------------------------------------------------------------------------------
1 | # Swedish translations for enigma2-openvix-plugins package.
2 | # Copyright (C) 2017 THE enigma2-openvix-plugins'S COPYRIGHT HOLDER
3 | # This file is distributed under the same license as the enigma2-openvix-plugins package.
4 | # Automatically generated, 2017.
5 | #
6 | msgid ""
7 | msgstr ""
8 | "Project-Id-Version: enigma2-openvix-plugins 1.0\n"
9 | "Report-Msgid-Bugs-To: \n"
10 | "POT-Creation-Date: 2017-07-06 12:43+0100\n"
11 | "PO-Revision-Date: 2017-05-24 19:38+0100\n"
12 | "Last-Translator: Automatically generated\n"
13 | "Language-Team: none\n"
14 | "Language: sv\n"
15 | "MIME-Version: 1.0\n"
16 | "Content-Type: text/plain; charset=UTF-8\n"
17 | "Content-Transfer-Encoding: 8bit\n"
18 | "Plural-Forms: nplurals=2; plural=(n != 1);\n"
19 |
20 | msgid "About"
21 | msgstr ""
22 |
23 | msgid "Close"
24 | msgstr ""
25 |
26 | msgid "Create"
27 | msgstr ""
28 |
29 | msgid "Do you really want to remove the files for this tuner type?, doing so will cause the DVR in plex to be none functional."
30 | msgstr ""
31 |
32 | msgid "Enigma2"
33 | msgstr ""
34 |
35 | msgid "Enigma2 STB"
36 | msgstr ""
37 |
38 | msgid ""
39 | "Files created, Please restart enigma2 and then you should be able to add this STB to Plex DVR.\n"
40 | "Do you want to do this now ?"
41 | msgstr ""
42 |
43 | msgid "It seems you have already setup on another tuner, As Plex Server can only support one tuner type, to use this additional tuner type you will need to setup a 2nd Plex Server, do you want to continue creating the files?"
44 | msgstr ""
45 |
46 | msgid ""
47 | "No IP address found, please make sure you are connected to your LAN via ethernet, wifi is not supported at this time.\n"
48 | "\n"
49 | "Press OK to close"
50 | msgstr ""
51 |
52 | msgid "Please note: To use a 2nd tuner type you need to setup/have a 2nd Plex Server, are you sure you want to continue?"
53 | msgstr ""
54 |
55 | msgid "Please note: To use the DVR feature in Plex, you need to be a Plex Pass user. For more information about Plex Pass see https://www.plex.tv/features/plex-pass"
56 | msgstr ""
57 |
58 | msgid "HR-Tuner Proxy for Enigma2"
59 | msgstr ""
60 |
61 | msgid "PlexDVR"
62 | msgstr ""
63 |
64 | msgid ""
65 | "Press LEFT / RIGHT to select a different tuner type.\n"
66 | "Press GREEN button to create your configuration files."
67 | msgstr ""
68 |
69 | msgid ""
70 | "Press LEFT / RIGHT to select a different tuner type.\n"
71 | "Press GREEN button to update your configuration files."
72 | msgstr ""
73 |
74 | msgid ""
75 | "Press OK to continue setting up this tuner or press LEFT / RIGHT to select a different tuner type.\n"
76 | "Press GREEN button to create your configuration files."
77 | msgstr ""
78 |
79 | msgid "Tuner type to use."
80 | msgstr ""
81 |
82 | msgid "Update"
83 | msgstr ""
84 |
85 | msgid ""
86 | "WARNING: It seems you have a single tuner box, if the box is not left in Standby your Plex recordings WILL fail.\n"
87 | "\n"
88 | "Press OK to continue"
89 | msgstr ""
90 |
--------------------------------------------------------------------------------
/plugin/locale/th/LC_MESSAGES/PlexDVRAPI.po:
--------------------------------------------------------------------------------
1 | # Thai translations for enigma2-openvix-plugins package.
2 | # Copyright (C) 2017 THE enigma2-openvix-plugins'S COPYRIGHT HOLDER
3 | # This file is distributed under the same license as the enigma2-openvix-plugins package.
4 | # Automatically generated, 2017.
5 | #
6 | msgid ""
7 | msgstr ""
8 | "Project-Id-Version: enigma2-openvix-plugins 1.0\n"
9 | "Report-Msgid-Bugs-To: \n"
10 | "POT-Creation-Date: 2017-07-06 12:43+0100\n"
11 | "PO-Revision-Date: 2017-05-24 19:38+0100\n"
12 | "Last-Translator: Automatically generated\n"
13 | "Language-Team: none\n"
14 | "Language: th\n"
15 | "MIME-Version: 1.0\n"
16 | "Content-Type: text/plain; charset=UTF-8\n"
17 | "Content-Transfer-Encoding: 8bit\n"
18 |
19 | msgid "About"
20 | msgstr ""
21 |
22 | msgid "Close"
23 | msgstr ""
24 |
25 | msgid "Create"
26 | msgstr ""
27 |
28 | msgid "Do you really want to remove the files for this tuner type?, doing so will cause the DVR in plex to be none functional."
29 | msgstr ""
30 |
31 | msgid "Enigma2"
32 | msgstr ""
33 |
34 | msgid "Enigma2 STB"
35 | msgstr ""
36 |
37 | msgid ""
38 | "Files created, Please restart enigma2 and then you should be able to add this STB to Plex DVR.\n"
39 | "Do you want to do this now ?"
40 | msgstr ""
41 |
42 | msgid "It seems you have already setup on another tuner, As Plex Server can only support one tuner type, to use this additional tuner type you will need to setup a 2nd Plex Server, do you want to continue creating the files?"
43 | msgstr ""
44 |
45 | msgid ""
46 | "No IP address found, please make sure you are connected to your LAN via ethernet, wifi is not supported at this time.\n"
47 | "\n"
48 | "Press OK to close"
49 | msgstr ""
50 |
51 | msgid "Please note: To use a 2nd tuner type you need to setup/have a 2nd Plex Server, are you sure you want to continue?"
52 | msgstr ""
53 |
54 | msgid "Please note: To use the DVR feature in Plex, you need to be a Plex Pass user. For more information about Plex Pass see https://www.plex.tv/features/plex-pass"
55 | msgstr ""
56 |
57 | msgid "HR-Tuner Proxy for Enigma2"
58 | msgstr ""
59 |
60 | msgid "PlexDVR"
61 | msgstr ""
62 |
63 | msgid ""
64 | "Press LEFT / RIGHT to select a different tuner type.\n"
65 | "Press GREEN button to create your configuration files."
66 | msgstr ""
67 |
68 | msgid ""
69 | "Press LEFT / RIGHT to select a different tuner type.\n"
70 | "Press GREEN button to update your configuration files."
71 | msgstr ""
72 |
73 | msgid ""
74 | "Press OK to continue setting up this tuner or press LEFT / RIGHT to select a different tuner type.\n"
75 | "Press GREEN button to create your configuration files."
76 | msgstr ""
77 |
78 | msgid "Tuner type to use."
79 | msgstr ""
80 |
81 | msgid "Update"
82 | msgstr ""
83 |
84 | msgid ""
85 | "WARNING: It seems you have a single tuner box, if the box is not left in Standby your Plex recordings WILL fail.\n"
86 | "\n"
87 | "Press OK to continue"
88 | msgstr ""
89 |
--------------------------------------------------------------------------------
/plugin/locale/tr/LC_MESSAGES/PlexDVRAPI.po:
--------------------------------------------------------------------------------
1 | # Turkish translations for enigma2-openvix-plugins package.
2 | # Copyright (C) 2017 THE enigma2-openvix-plugins'S COPYRIGHT HOLDER
3 | # This file is distributed under the same license as the enigma2-openvix-plugins package.
4 | # Automatically generated, 2017.
5 | #
6 | msgid ""
7 | msgstr ""
8 | "Project-Id-Version: enigma2-openvix-plugins 1.0\n"
9 | "Report-Msgid-Bugs-To: \n"
10 | "POT-Creation-Date: 2017-07-06 12:43+0100\n"
11 | "PO-Revision-Date: 2017-05-24 19:38+0100\n"
12 | "Last-Translator: Automatically generated\n"
13 | "Language-Team: none\n"
14 | "Language: tr\n"
15 | "MIME-Version: 1.0\n"
16 | "Content-Type: text/plain; charset=UTF-8\n"
17 | "Content-Transfer-Encoding: 8bit\n"
18 | "Plural-Forms: nplurals=2; plural=(n != 1);\n"
19 |
20 | msgid "About"
21 | msgstr ""
22 |
23 | msgid "Close"
24 | msgstr ""
25 |
26 | msgid "Create"
27 | msgstr ""
28 |
29 | msgid "Do you really want to remove the files for this tuner type?, doing so will cause the DVR in plex to be none functional."
30 | msgstr ""
31 |
32 | msgid "Enigma2"
33 | msgstr ""
34 |
35 | msgid "Enigma2 STB"
36 | msgstr ""
37 |
38 | msgid ""
39 | "Files created, Please restart enigma2 and then you should be able to add this STB to Plex DVR.\n"
40 | "Do you want to do this now ?"
41 | msgstr ""
42 |
43 | msgid "It seems you have already setup on another tuner, As Plex Server can only support one tuner type, to use this additional tuner type you will need to setup a 2nd Plex Server, do you want to continue creating the files?"
44 | msgstr ""
45 |
46 | msgid ""
47 | "No IP address found, please make sure you are connected to your LAN via ethernet, wifi is not supported at this time.\n"
48 | "\n"
49 | "Press OK to close"
50 | msgstr ""
51 |
52 | msgid "Please note: To use a 2nd tuner type you need to setup/have a 2nd Plex Server, are you sure you want to continue?"
53 | msgstr ""
54 |
55 | msgid "Please note: To use the DVR feature in Plex, you need to be a Plex Pass user. For more information about Plex Pass see https://www.plex.tv/features/plex-pass"
56 | msgstr ""
57 |
58 | msgid "HR-Tuner Proxy for Enigma2"
59 | msgstr ""
60 |
61 | msgid "PlexDVR"
62 | msgstr ""
63 |
64 | msgid ""
65 | "Press LEFT / RIGHT to select a different tuner type.\n"
66 | "Press GREEN button to create your configuration files."
67 | msgstr ""
68 |
69 | msgid ""
70 | "Press LEFT / RIGHT to select a different tuner type.\n"
71 | "Press GREEN button to update your configuration files."
72 | msgstr ""
73 |
74 | msgid ""
75 | "Press OK to continue setting up this tuner or press LEFT / RIGHT to select a different tuner type.\n"
76 | "Press GREEN button to create your configuration files."
77 | msgstr ""
78 |
79 | msgid "Tuner type to use."
80 | msgstr ""
81 |
82 | msgid "Update"
83 | msgstr ""
84 |
85 | msgid ""
86 | "WARNING: It seems you have a single tuner box, if the box is not left in Standby your Plex recordings WILL fail.\n"
87 | "\n"
88 | "Press OK to continue"
89 | msgstr ""
90 |
--------------------------------------------------------------------------------
/plugin/locale/uk/LC_MESSAGES/PlexDVRAPI.po:
--------------------------------------------------------------------------------
1 | # Ukrainian translations for enigma2-openvix-plugins package.
2 | # Copyright (C) 2017 THE enigma2-openvix-plugins'S COPYRIGHT HOLDER
3 | # This file is distributed under the same license as the enigma2-openvix-plugins package.
4 | # Automatically generated, 2017.
5 | #
6 | msgid ""
7 | msgstr ""
8 | "Project-Id-Version: enigma2-openvix-plugins 1.0\n"
9 | "Report-Msgid-Bugs-To: \n"
10 | "POT-Creation-Date: 2017-07-06 12:43+0100\n"
11 | "PO-Revision-Date: 2017-05-24 19:38+0100\n"
12 | "Last-Translator: Automatically generated\n"
13 | "Language-Team: none\n"
14 | "Language: uk\n"
15 | "MIME-Version: 1.0\n"
16 | "Content-Type: text/plain; charset=UTF-8\n"
17 | "Content-Transfer-Encoding: 8bit\n"
18 | "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
19 |
20 | msgid "About"
21 | msgstr ""
22 |
23 | msgid "Close"
24 | msgstr ""
25 |
26 | msgid "Create"
27 | msgstr ""
28 |
29 | msgid "Do you really want to remove the files for this tuner type?, doing so will cause the DVR in plex to be none functional."
30 | msgstr ""
31 |
32 | msgid "Enigma2"
33 | msgstr ""
34 |
35 | msgid "Enigma2 STB"
36 | msgstr ""
37 |
38 | msgid ""
39 | "Files created, Please restart enigma2 and then you should be able to add this STB to Plex DVR.\n"
40 | "Do you want to do this now ?"
41 | msgstr ""
42 |
43 | msgid "It seems you have already setup on another tuner, As Plex Server can only support one tuner type, to use this additional tuner type you will need to setup a 2nd Plex Server, do you want to continue creating the files?"
44 | msgstr ""
45 |
46 | msgid ""
47 | "No IP address found, please make sure you are connected to your LAN via ethernet, wifi is not supported at this time.\n"
48 | "\n"
49 | "Press OK to close"
50 | msgstr ""
51 |
52 | msgid "Please note: To use a 2nd tuner type you need to setup/have a 2nd Plex Server, are you sure you want to continue?"
53 | msgstr ""
54 |
55 | msgid "Please note: To use the DVR feature in Plex, you need to be a Plex Pass user. For more information about Plex Pass see https://www.plex.tv/features/plex-pass"
56 | msgstr ""
57 |
58 | msgid "HR-Tuner Proxy for Enigma2"
59 | msgstr ""
60 |
61 | msgid "PlexDVR"
62 | msgstr ""
63 |
64 | msgid ""
65 | "Press LEFT / RIGHT to select a different tuner type.\n"
66 | "Press GREEN button to create your configuration files."
67 | msgstr ""
68 |
69 | msgid ""
70 | "Press LEFT / RIGHT to select a different tuner type.\n"
71 | "Press GREEN button to update your configuration files."
72 | msgstr ""
73 |
74 | msgid ""
75 | "Press OK to continue setting up this tuner or press LEFT / RIGHT to select a different tuner type.\n"
76 | "Press GREEN button to create your configuration files."
77 | msgstr ""
78 |
79 | msgid "Tuner type to use."
80 | msgstr ""
81 |
82 | msgid "Update"
83 | msgstr ""
84 |
85 | msgid ""
86 | "WARNING: It seems you have a single tuner box, if the box is not left in Standby your Plex recordings WILL fail.\n"
87 | "\n"
88 | "Press OK to continue"
89 | msgstr ""
90 |
--------------------------------------------------------------------------------
/plugin/plugin-hd.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OpenViX/HRTunerProxy/30d0f9b66c186278d32a52a01a3cb6d63807042c/plugin/plugin-hd.png
--------------------------------------------------------------------------------
/plugin/plugin.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OpenViX/HRTunerProxy/30d0f9b66c186278d32a52a01a3cb6d63807042c/plugin/plugin.png
--------------------------------------------------------------------------------
/plugin/plugin.py:
--------------------------------------------------------------------------------
1 | from __future__ import print_function
2 | from __future__ import absolute_import
3 |
4 | import threading
5 | import string
6 | import random
7 | import json
8 | from sys import modules
9 | from os import path, remove, mkdir, rename, listdir, rmdir
10 | from shutil import rmtree
11 |
12 | from enigma import getDesktop, eDVBResourceManager
13 |
14 | from Components.ActionMap import ActionMap
15 | from Components.Button import Button
16 | from Components.config import config, configfile, ConfigSelection, getConfigListEntry
17 | from Components.ConfigList import ConfigListScreen
18 | from Components.Label import Label
19 | from Components.Pixmap import Pixmap
20 | from Components.Sources.StaticText import StaticText
21 |
22 | from Plugins.Plugin import PluginDescriptor
23 | from Screens.Screen import Screen
24 | from Screens.MessageBox import MessageBox
25 |
26 | from . import _, tunerTypes, tunerfolders, tunerports, getIP, logger, isDreamOS
27 | from .about import HRTunerProxy_About
28 | from .getLineup import getlineup
29 | from .getDeviceInfo import getdeviceinfo
30 | from .ssdp import SSDPServer
31 | from .server import server
32 |
33 | BaseURL = {}
34 | FriendlyName = {}
35 | TunerCount = {}
36 | Source = {}
37 | NoOfChannels = {}
38 | choicelist = []
39 |
40 |
41 | def TunerInfoDebug(type=None):
42 | if type:
43 | logger.info('%s' % str(BaseURL[type]).replace('\n', ''))
44 | logger.info('%s' % str(FriendlyName[type]).replace('\n', ''))
45 | logger.info('%s' % str(Source[type]).replace('\n', ''))
46 | logger.info('%s' % str(TunerCount[type]).replace('\n', ''))
47 | logger.info('%s' % str(NoOfChannels[type]).replace('\n\n', ''))
48 | logger.info('Bouquet %s' % config.hrtunerproxy.bouquets_list[type].value)
49 | else:
50 | for type in tunerTypes:
51 | logger.info('%s' % str(BaseURL[type]).replace('\n', ''))
52 | logger.info('%s' % str(FriendlyName[type]).replace('\n', ''))
53 | logger.info('%s' % str(Source[type]).replace('\n', ''))
54 | logger.info('%s' % str(TunerCount[type]).replace('\n', ''))
55 | logger.info('%s' % str(NoOfChannels[type]).replace('\n\n', ''))
56 | logger.info('Bouquet %s' % config.hrtunerproxy.bouquets_list[type].value)
57 |
58 |
59 | def TunerInfo(type=None):
60 | if type:
61 | discover = getdeviceinfo.discoverdata(type)
62 | nochl = getlineup.noofchannels(type, config.hrtunerproxy.bouquets_list[type].value)
63 | BaseURL[type] = 'BaseURL: %s\n' % str(discover["BaseURL"])
64 | FriendlyName[type] = 'FriendlyName: %s\n' % str(discover["FriendlyName"])
65 | TunerCount[type] = 'TunerCount: %s\n' % str(getdeviceinfo.tunercount(type)) if type != 'iptv' else 'TunerCount: %s\n' % str(config.hrtunerproxy.iptv_tunercount.value)
66 | Source[type] = 'Source: %s\n' % str(tunerfolders[type]).title() if type != 'iptv' else 'Source: %s\n' % str(tunerfolders[type]).upper()
67 | NoOfChannels[type] = 'Channels: %s\n\n' % str(nochl)
68 |
69 | else:
70 | global choicelist
71 | choicelist = []
72 | for type in tunerTypes:
73 | discover = getdeviceinfo.discoverdata(type)
74 | nochl = getlineup.noofchannels(type, 'all')
75 | BaseURL[type] = 'BaseURL: %s\n' % str(discover["BaseURL"])
76 | FriendlyName[type] = 'FriendlyName: %s\n' % str(discover["FriendlyName"])
77 | TunerCount[type] = 'TunerCount: %s\n' % str(getdeviceinfo.tunercount(type)) if type != 'iptv' else 'TunerCount: %s\n' % str(config.hrtunerproxy.iptv_tunercount.value)
78 | Source[type] = 'Source: %s\n' % str(tunerfolders[type]).title() if type != 'iptv' else 'Source: %s\n' % str(tunerfolders[type]).upper()
79 | NoOfChannels[type] = 'Channels: %s\n\n' % str(nochl)
80 |
81 |
82 | if config.hrtunerproxy.debug.value:
83 | TunerInfo()
84 | TunerInfoDebug()
85 |
86 | for type in tunerTypes:
87 | discover = getdeviceinfo.discoverdata(type)
88 | if getdeviceinfo.tunercount(type) > 0:
89 | choicelist.append((type, str(tunerfolders[type]).title()))
90 |
91 | config.hrtunerproxy.type = ConfigSelection(choices=choicelist)
92 | if config.hrtunerproxy.debug.value:
93 | logger.info('Using Tuner: %s' % str(config.hrtunerproxy.type.value))
94 |
95 | tunerTypes = []
96 | for type in config.hrtunerproxy.type.choices.choices:
97 | tunerTypes.append(type[0])
98 |
99 |
100 | class HRTunerProxy_Setup(ConfigListScreen, Screen):
101 | instance = None
102 | if isDreamOS: # check if DreamOS image
103 | skin = "%s/skins/dreamos_main.xml" % (path.dirname(modules[__name__].__file__))
104 | else:
105 | skin = "%s/skins/main.xml" % (path.dirname(modules[__name__].__file__))
106 | f = open(skin, "r")
107 | skin = f.read()
108 | f.close()
109 |
110 | def __init__(self, session, menu_path=""):
111 | Screen.__init__(self, session)
112 | if hasattr(config.usage, 'show_menupath'):
113 | screentitle = _("HR-Tuner Proxy for Enigma2")
114 | self.menu_path = menu_path
115 | if config.usage.show_menupath.value == 'large':
116 | self.menu_path += screentitle
117 | title = self.menu_path
118 | self["menu_path_compressed"] = StaticText("")
119 | self.menu_path += ' / '
120 | elif config.usage.show_menupath.value == 'small':
121 | title = screentitle
122 | condtext = ""
123 | if self.menu_path and not self.menu_path.endswith(' / '):
124 | condtext = self.menu_path + " >"
125 | elif self.menu_path:
126 | condtext = self.menu_path[:-3] + " >"
127 | self["menu_path_compressed"] = StaticText(condtext)
128 | self.menu_path += screentitle + ' / '
129 | else:
130 | title = screentitle
131 | self["menu_path_compressed"] = StaticText("")
132 | else:
133 | title = _("HR-Tuner Proxy for Enigma2")
134 | self.menu_path = ""
135 | Screen.setTitle(self, title)
136 |
137 | self.savedval = config.hrtunerproxy.type.value
138 |
139 | self.onChangedEntry = []
140 | self.list = []
141 | ConfigListScreen.__init__(self, self.list, session=session, on_change=self.onChange)
142 |
143 | self["information"] = Label()
144 | self["hinttext"] = Label()
145 | self["actions"] = ActionMap(['ColorActions', 'OkCancelActions', 'DirectionActions'],
146 | {
147 | "cancel": self.keyCancel,
148 | "red": self.keyCancel,
149 | "green": self.keySave,
150 | "yellow": self.cleanfiles,
151 | "blue": self.about
152 | }, -2)
153 | self["actions"].setEnabled(False)
154 |
155 | self["okaction"] = ActionMap(['OkCancelActions'],
156 | {
157 | "ok": self.ok,
158 | "cancel": self.keyCancel,
159 | }, -2)
160 | self["okaction"].setEnabled(False)
161 |
162 | self["closeaction"] = ActionMap(['OkCancelActions', 'ColorActions'],
163 | {
164 | "ok": self.keyCancel,
165 | "cancel": self.keyCancel,
166 | "red": self.keyCancel
167 | }, -2)
168 | self["closeaction"].setEnabled(False)
169 |
170 | self["key_red"] = Button(_("Close"))
171 | self["key_red"].hide()
172 | self["button_red"] = Pixmap()
173 | self["button_red"].hide()
174 | self["key_green"] = Button()
175 | self["key_green"].hide()
176 | self["button_green"] = Pixmap()
177 | self["button_green"].hide()
178 | self["key_yellow"] = Button()
179 | self["key_yellow"].hide()
180 | self["button_yellow"] = Pixmap()
181 | self["button_yellow"].hide()
182 | self["key_blue"] = Button(_("About"))
183 | self["button_blue"] = Pixmap()
184 |
185 | self.firstrun = True
186 |
187 | assert HRTunerProxy_Setup.instance is None, "class is a singleton class and just one instance of this class is allowed!"
188 | HRTunerProxy_Setup.instance = self
189 |
190 | self.onLayoutFinish.append(self.LayoutFinish)
191 | self.onClose.append(self.__onClose)
192 |
193 | def LayoutFinish(self):
194 | print('LayoutFinish')
195 | self.createmenu()
196 | if getIP() == '0.0.0.0':
197 | self["information"].setText(_('WARNING: No IP address found. Please make sure you are connected to your LAN via ethernet or Wi-Fi.\n\nPress OK to exit.'))
198 | self["hinttext"].hide()
199 | self["key_red"].show()
200 | self["button_red"].show()
201 | self["closeaction"].setEnabled(True)
202 | else:
203 | self.populate()
204 |
205 | def onChange(self):
206 | print('onChange')
207 | currentconfig = self["config"].getCurrent()[0]
208 | if currentconfig == _('Tuner type to use.'):
209 | self.createmenu()
210 | self.populate()
211 |
212 | def selectionChanged(self):
213 | print('selectionChanged')
214 | self.populate()
215 |
216 | def __onClose(self):
217 | HRTunerProxy_Setup.instance = None
218 |
219 | def about(self):
220 | self.session.open(HRTunerProxy_About, self.menu_path)
221 |
222 | def createmenu(self):
223 | self.list = []
224 | self.list.append(getConfigListEntry(_('Tuner type to use.'), config.hrtunerproxy.type))
225 | self.list.append(getConfigListEntry(_('Bouquet to use.'), config.hrtunerproxy.bouquets_list[config.hrtunerproxy.type.value]))
226 | if config.hrtunerproxy.type.value == 'iptv':
227 | self.list.append(getConfigListEntry(_('Number of concurrent streams.'), config.hrtunerproxy.iptv_tunercount))
228 | self.list.append(getConfigListEntry(_('Debug Mode.'), config.hrtunerproxy.debug))
229 | self["config"].list = self.list
230 | self["config"].l.setList(self.list)
231 | if not self.selectionChanged in self["config"].onSelectionChanged:
232 | self["config"].onSelectionChanged.append(self.selectionChanged)
233 |
234 | def populate(self, answer=None):
235 | print('populate')
236 | setup_exists = False
237 | self["actions"].setEnabled(False)
238 | self["closeaction"].setEnabled(False)
239 | self["key_red"].hide()
240 | self["key_green"].hide()
241 | self["key_yellow"].hide()
242 | self["key_blue"].hide()
243 | self["button_red"].hide()
244 | self["button_green"].hide()
245 | self["button_yellow"].hide()
246 | self["button_blue"].hide()
247 |
248 | type = config.hrtunerproxy.type.value
249 | currentconfig = self["config"].getCurrent()[0]
250 |
251 | TunerInfo(type)
252 | if config.hrtunerproxy.debug.value:
253 | TunerInfoDebug(type)
254 |
255 | self.label = (BaseURL[type] + FriendlyName[type] + Source[type] + TunerCount[type] + NoOfChannels[type])
256 |
257 | for types in tunerTypes:
258 | if path.exists('/etc/enigma2/%s.discover' % types):
259 | setup_exists = True
260 |
261 | if not path.exists('/etc/enigma2/%s.discover' % type):
262 | if int(NoOfChannels[type].split(': ')[1]) == 0:
263 | if config.hrtunerproxy.bouquets_list[type].value == None:
264 | self["information"].setText(_('Please note: Please now select a bouquet to use.'))
265 | else:
266 | self["information"].setText(_('Please note: You do not seem to have any channels setup for this tuner, please add some channels to Enigma2 or choose anther tuner type.'))
267 | self["hinttext"].setText('')
268 | self["key_red"].show()
269 | self["button_red"].show()
270 | self["closeaction"].setEnabled(True)
271 | elif int(TunerCount[type].split(': ')[1]) < 2:
272 | self["information"].setText(_('WARNING: It seems you have a single tuner box. If the box is not left in standby your recordings WILL fail.'))
273 | self["hinttext"].setText(_('Press OK to continue setting up this tuner.'))
274 | self.hinttext = ''
275 | self["okaction"].setEnabled(True)
276 | self["key_green"].setText(_("Save"))
277 | self["key_yellow"].setText("")
278 | else:
279 | if currentconfig == _('Tuner type to use.'):
280 | self["hinttext"].setText(_('Press OK to continue setting up this tuner or press LEFT / RIGHT to select a different tuner type.'))
281 | self.hinttext = _('Press LEFT / RIGHT to select a different tuner type.')
282 | elif currentconfig == _('Bouquet to use.'):
283 | self["hinttext"].setText(_('Press OK to continue setting up this tuner or select a different tuner type.'))
284 | self.hinttext = _('Press LEFT / RIGHT to select a different bouquet.')
285 | elif currentconfig == _('Debug mode to create logs.'):
286 | self["hinttext"].setText(_('Press OK to continue setting up this tuner or select a different tuner type.'))
287 | self.hinttext = _('Press LEFT / RIGHT to select a different bouquet.')
288 | else:
289 | self["hinttext"].setText(_('Press OK to continue setting up this tuner or select a different tuner type.'))
290 | self.hinttext = _('Press LEFT / RIGHT to set number of concurent streams.')
291 | if not setup_exists and self.firstrun:
292 | print('U1')
293 | self["information"].setText(_('Please note: DVR feature in Plex / Emby is a premium / premiere feature. For more information please refer to:\nhttps://www.plex.tv/features/plex-pass\nhttps://emby.media/premiere.html'))
294 | self["hinttext"].setText(_('Press OK to continue setting up.'))
295 | elif setup_exists:
296 | print('U2')
297 | self["information"].setText(_('Please note: To use another tuner type in Plex you need to setup/have another server.\nAre you sure you want to continue?'))
298 | else:
299 | print('U3')
300 | if currentconfig == _('Tuner type to use.'):
301 | self.hinttext = _('Press LEFT / RIGHT to select a different tuner type.')
302 | print('T2')
303 | elif currentconfig == _('Bouquet to use.'):
304 | print('T3')
305 | self.hinttext = _('Press LEFT / RIGHT to select a different bouquet.')
306 | elif currentconfig == _('Debug Mode.'):
307 | print('T4')
308 | self.hinttext = _('Press LEFT / RIGHT to enable or disable debug mode.')
309 | self.ok()
310 | self["okaction"].setEnabled(True)
311 | self["key_green"].setText(_("Save"))
312 | self["key_yellow"].setText("")
313 | else:
314 | print('T1')
315 | if currentconfig == _('Tuner type to use.'):
316 | self.hinttext = _('Press LEFT / RIGHT to select a different tuner type.')
317 | print('T2')
318 | elif currentconfig == _('Bouquet to use.'):
319 | print('T3')
320 | self.hinttext = _('Press LEFT / RIGHT to select a different bouquet.')
321 | elif currentconfig == _('Debug Mode.'):
322 | print('T4')
323 | self.hinttext = _('Press LEFT / RIGHT to enable or disable debug mode.')
324 | self["key_green"].setText(_("Save"))
325 | self["key_yellow"].setText(_("Delete"))
326 | self["key_yellow"].show()
327 | self["button_yellow"].show()
328 | self.ok()
329 |
330 | def cleanfiles(self):
331 | type = config.hrtunerproxy.type.value
332 | if path.exists('/etc/enigma2/%s.discover' % type):
333 | self.session.openWithCallback(self.cleanconfirm, MessageBox, text=_("Do you really want to remove the files for this tuner type? Doing so will cause your DVR to be none functional."), type=MessageBox.TYPE_YESNO)
334 |
335 | def cleanconfirm(self, answer):
336 | if answer is not None and answer and self["config"].getCurrent() is not None:
337 | type = config.hrtunerproxy.type.value
338 | if config.hrtunerproxy.debug.value:
339 | logger.info('Deleting files for %s' % type)
340 | if path.exists('/etc/enigma2/%s.discover' % type):
341 | remove('/etc/enigma2/%s.discover' % type)
342 | if path.exists('/etc/enigma2/%s.device' % type):
343 | remove('/etc/enigma2/%s.device' % type)
344 | self.session.openWithCallback(self.rebootconfirm, MessageBox, text=_("Files deleted. Please restart enigma2.\n\nDo you want to restart now?"), type=MessageBox.TYPE_YESNO)
345 |
346 | def ok(self):
347 | self.firstrun = False
348 | self["okaction"].setEnabled(False)
349 | self["actions"].setEnabled(True)
350 | self["information"].setText(self.label)
351 | self["hinttext"].setText(self.hinttext)
352 | self["hinttext"].show()
353 |
354 | self["key_red"].show()
355 | self["key_green"].show()
356 | self["key_blue"].show()
357 |
358 | self["button_red"].show()
359 | self["button_green"].show()
360 | self["button_blue"].show()
361 |
362 | def keySave(self):
363 | if self.savedval != config.hrtunerproxy.type.value and path.exists('/etc/enigma2/%s.device' % self.savedval):
364 | self.session.openWithCallback(self.saveconfirm, MessageBox, text=_("It seems you have already set up another tuner. Your server can only support one tuner type. To use this additional tuner type you will need to setup another server. Do you want to continue creating the files?"), type=MessageBox.TYPE_YESNO)
365 | else:
366 | self.saveconfirm(True)
367 |
368 | def saveconfirm(self, answer):
369 | if answer is not None and answer and self["config"].getCurrent() is not None:
370 | type = config.hrtunerproxy.type.value
371 | newsetup = False
372 | if not path.exists('/etc/enigma2/%s.discover' % type):
373 | newsetup = True
374 | if config.hrtunerproxy.debug.value:
375 | logger.info('Creating files for %s' % type)
376 | getdeviceinfo.write_discover(dvbtype=type)
377 | if not path.exists('/etc/enigma2/%s.device' % self.savedval):
378 | getdeviceinfo.write_device_xml(dvbtype=type)
379 | config.hrtunerproxy.type.save()
380 | config.hrtunerproxy.bouquets_list[config.hrtunerproxy.type.value].save()
381 | config.hrtunerproxy.debug.save()
382 | configfile.save()
383 | if self.savedval != config.hrtunerproxy.type.value and path.exists('/etc/enigma2/%s.device' % self.savedval) or newsetup:
384 | self.session.openWithCallback(self.rebootconfirm, MessageBox, text=_("Files created. Please restart enigma2 and then you should be able to add this STB to your server.\n\nDo you want to restart now?"), type=MessageBox.TYPE_YESNO)
385 | else:
386 | self.close()
387 |
388 | def rebootconfirm(self, answer):
389 | if answer is not None and answer:
390 | from enigma import quitMainloop
391 | quitMainloop(3)
392 |
393 | def cancelConfirm(self, result):
394 | if not result:
395 | return
396 | for x in self["config"].list:
397 | x[1].cancel()
398 | self.close()
399 |
400 | def keyCancel(self):
401 | if self["config"].isChanged():
402 | self.session.openWithCallback(self.cancelConfirm, MessageBox, _("Really close without saving settings?"), default=False)
403 | else:
404 | self.close()
405 |
406 |
407 | class TunerMask():
408 | def __init__(self):
409 | res_mgr = eDVBResourceManager.getInstance()
410 | if res_mgr:
411 | res_mgr.frontendUseMaskChanged.get().append(self.tunerUseMaskChanged)
412 |
413 | def tunerUseMaskChanged(self, mask):
414 | config.hrtunerproxy.slotsinuse.setValue(mask)
415 |
416 |
417 | def startssdp(dvbtype):
418 | discover = getdeviceinfo.discoverdata(dvbtype)
419 | device_uuid = discover['DeviceUUID']
420 | if config.hrtunerproxy.debug.value:
421 | logger.info('Starting SSDP for %s, device_uuid: %s' % (dvbtype, device_uuid))
422 | local_ip_address = getIP()
423 | ssdp = SSDPServer()
424 | ssdp.register('local',
425 | 'uuid:{}::upnp:rootdevice'.format(device_uuid),
426 | 'upnp:rootdevice',
427 | 'http://{}:{}/device.xml'.format(local_ip_address, tunerports[dvbtype]))
428 | thread_ssdp = threading.Thread(target=ssdp.run, args=())
429 | thread_ssdp.daemon = True # Daemonize thread
430 | thread_ssdp.start()
431 |
432 |
433 | def starthttpserver(dvbtype):
434 | if config.hrtunerproxy.debug.value:
435 | logger.info('Starting HTTPServer for %s' % dvbtype)
436 | thread_http = threading.Thread(target=server.run, args=(dvbtype,))
437 | thread_http.daemon = True # Daemonize thread
438 | thread_http.start()
439 |
440 |
441 | def HRTunerProxy_AutoStart(reason, session=None, **kwargs):
442 | if config.hrtunerproxy.debug.value:
443 | logger.info('Starting AutoSart reason: %s, for types: %s' % (reason, tunerTypes))
444 | if reason == 0:
445 | for type in tunerTypes:
446 | if path.exists('/etc/enigma2/%s.discover' % type):
447 | starthttpserver(type)
448 | if path.exists('/etc/enigma2/%s.device' % type):
449 | startssdp(type)
450 | if not isDreamOS: # check if DreamOS image
451 | TunerMask()
452 |
453 |
454 | def HRTunerProxy_SetupMain(session, **kwargs):
455 | session.open(HRTunerProxy_Setup)
456 |
457 |
458 | def startHRTunerProxy_Setup(menuid):
459 | if menuid != "system":
460 | return []
461 | return [(_("HR-Tuner Proxy"), HRTunerProxy_SetupMain, "dvr_setup", None)]
462 |
463 |
464 | def Plugins(**kwargs):
465 | screenwidth = getDesktop(0).size().width()
466 | if screenwidth and screenwidth == 1920:
467 | iconpic = "plugin-hd.png"
468 | else:
469 | iconpic = "plugin.png"
470 | return [PluginDescriptor(name="HRTunerProxy", description=_("Setup the HR-Tuner Proxy server"), where=PluginDescriptor.WHERE_SESSIONSTART, fnc=HRTunerProxy_AutoStart, needsRestart=True),
471 | PluginDescriptor(name="HRTunerProxy", description=_("Setup the HR-Tuner Proxy server"), icon=iconpic, where=PluginDescriptor.WHERE_PLUGINMENU, fnc=HRTunerProxy_SetupMain),
472 | PluginDescriptor(name="HRTunerProxy", description=_("Setup the HR-Tuner Proxy server"), where=PluginDescriptor.WHERE_MENU, needsRestart=False, fnc=startHRTunerProxy_Setup)]
473 |
--------------------------------------------------------------------------------
/plugin/server.py:
--------------------------------------------------------------------------------
1 | from __future__ import print_function
2 | from __future__ import absolute_import
3 |
4 | import posixpath
5 | import argparse
6 | import urllib
7 | import os
8 | import json
9 | import six
10 |
11 | from sys import modules
12 | try:
13 | from http.server import SimpleHTTPRequestHandler, HTTPServer, BaseHTTPRequestHandler
14 | except:
15 | from SimpleHTTPServer import SimpleHTTPRequestHandler
16 | from BaseHTTPServer import HTTPServer, BaseHTTPRequestHandler
17 |
18 | from . import getIP, tunerports, porttypes, logger
19 | from .getLineup import getlineup
20 | from .getLineupStatus import getlineupstatus
21 | from .getDeviceInfo import getdeviceinfo
22 | from Components.config import config
23 |
24 |
25 | class RootedBaseHTTPRequestHandler(BaseHTTPRequestHandler):
26 | def log_message(self, format, *args):
27 | if config.hrtunerproxy.debug.value:
28 | logger.info("%s %s" % (self.address_string(), format % args))
29 |
30 |
31 | class RootedHTTPServer(HTTPServer):
32 | def __init__(self, *args, **kwargs):
33 | HTTPServer.__init__(self, *args, **kwargs)
34 |
35 |
36 | class RootedHTTPRequestHandler(RootedBaseHTTPRequestHandler):
37 | def do_GET(self):
38 | try:
39 | for x in str(self.headers).split('\n'):
40 | x = x.strip()
41 | if x.startswith('Host:'):
42 | host = x
43 | break
44 | self.port = int(host.split(':')[2])
45 | except:
46 | if config.hrtunerproxy.debug.value:
47 | logger.info('USING DEFAULT PORT: 6081')
48 | self.port = 6081
49 | tunertype = porttypes[self.port]
50 |
51 | if self.path == '/':
52 | self.path = '/device.xml'
53 |
54 | if self.path.endswith(".html"):
55 | mimeType = 'text/html'
56 | elif self.path.endswith(".json"):
57 | mimeType = 'application/javascript'
58 | elif self.path.endswith(".xml"):
59 | mimeType = 'application/xml'
60 | elif self.path.endswith(".css"):
61 | mimeType = 'text/css'
62 | elif self.path.endswith(".ico"):
63 | mimeType = 'image/x-icon'
64 |
65 | if self.path.endswith("lineup_status.json"):
66 | self.send_response(200)
67 | self.send_header('Content-type', mimeType)
68 | self.end_headers()
69 | self.wfile.write(six.ensure_binary(json.dumps(getlineupstatus.lineupstatus(tunertype))))
70 | elif self.path.endswith("lineup.json"):
71 | self.send_response(200)
72 | self.send_header('Content-type', mimeType)
73 | self.end_headers()
74 | self.wfile.write(six.ensure_binary(json.dumps(getlineup.lineupdata(getIP(), tunertype, config.hrtunerproxy.bouquets_list[tunertype].value))))
75 | elif self.path.endswith("discover.json"):
76 | self.send_response(200)
77 | self.send_header('Content-type', mimeType)
78 | self.end_headers()
79 | self.wfile.write(six.ensure_binary(json.dumps(getdeviceinfo.discoverdata(tunertype))))
80 | elif self.path.endswith("device.xml"):
81 | self.send_response(200)
82 | self.send_header('Content-type', mimeType)
83 | self.end_headers()
84 | self.wfile.write(six.ensure_binary(getdeviceinfo.devicedata(tunertype)))
85 | elif self.path.endswith("tuners.html"):
86 | self.send_response(200)
87 | self.send_header('Content-type', mimeType)
88 | self.end_headers()
89 | self.wfile.write(six.ensure_binary(getdeviceinfo.tunerstatus(tunertype)))
90 | elif self.path.endswith("style.css"):
91 | self.send_response(200)
92 | self.send_header('Content-type', mimeType)
93 | self.end_headers()
94 | self.wfile.write(six.ensure_binary("""html { width:100%; height: 100%;}
95 | body {background: #777 url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/PjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiB2aWV3Qm94PSIwIDAgMSAxIiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJub25lIj48cmFkaWFsR3JhZGllbnQgaWQ9InJnIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgY3g9IjUwJSIgY3k9IjUwJSIgcj0iNzUlIj48c3RvcCBvZmZzZXQ9IjAlIiBzdG9wLWNvbG9yPSIjNjA2Yzg4IiBzdG9wLW9wYWNpdHk9IjEiLz48c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiMxMzE3MjEiIHN0b3Atb3BhY2l0eT0iMSIvPjwvcmFkaWFsR3JhZGllbnQ+PHJlY3QgeD0iLTUwIiB5PSItNTAiIHdpZHRoPSIxMDEiIGhlaWdodD0iMTAxIiBmaWxsPSJ1cmwoI3JnKSIgLz48L3N2Zz4K) no-repeat center center fixed;background-size: cover;font-family: sans-serif;}
96 | .B {background: #fff;margin: 9.5em;border: 3px solid #000;box-shadow: 10px 10px 50px #000;display: table}
97 | .C, .W {margin: auto;margin-top: 1em;padding: 10px;}
98 | .C {width: 21em;}
99 | .W {width: 80em;}
100 | .S, .T {color: #fff;margin: -10px -10px 10px -10px;}
101 | .S {background: #393;padding: 2px 20px;font-size: 0.8em;}
102 | .T {background: #000;padding-left: 20px;font-weight: 700;}
103 | .TE {background: #a00;}
104 | .BE {background: #f00;color: #fff;border-color:#a00;}
105 | a {text-decoration: none;}
106 | a:hover {text-decoration: underline;}
107 | a,a:visited {color: #00f;}
108 | table {width: inherit;}
109 | td img {margin-right:5px;}
110 | .L * {border-bottom: 1px solid black;}
111 | td {white-space: nowrap;}
112 | td:first-child {text-align: center;}
113 | button { margin-top: 0.25em; }"""))
114 | else:
115 | self.send_error(404, '[HRTunerProxy] File not found!')
116 | if config.hrtunerproxy.debug.value:
117 | logger.info('file type not coded:', self.path)
118 | return
119 |
120 |
121 | def run(dvbtype):
122 | ipaddress = getIP()
123 | ipport = '%d' % int(tunerports[dvbtype])
124 | startserver(ip_address=ipaddress, port=ipport)
125 |
126 |
127 | def startserver(ip_address='', port=''):
128 | server_address = (ip_address, int(port))
129 | httpd = RootedHTTPServer(server_address, RootedHTTPRequestHandler)
130 | sa = httpd.socket.getsockname()
131 | if config.hrtunerproxy.debug.value:
132 | logger.info('Serving HTTP on %s port %s' % (str(sa[0]), str(sa[1])))
133 | httpd.serve_forever()
134 |
135 |
136 | # For modules that do "from About import about"
137 | server = modules[__name__]
138 |
--------------------------------------------------------------------------------
/plugin/skins/about.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/plugin/skins/dreamos_about.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/plugin/skins/dreamos_main.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/plugin/skins/main.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/plugin/ssdp.py:
--------------------------------------------------------------------------------
1 | from __future__ import print_function
2 | from __future__ import absolute_import
3 |
4 | # Licensed under the MIT license
5 | # http://opensource.org/licenses/mit-license.php
6 |
7 | # Copyright 2005, Tim Potter
8 | # Copyright 2006 John-Mark Gurney
9 | # Copyright (C) 2006 Fluendo, S.A. (www.fluendo.com).
10 | # Copyright 2006,2007,2008,2009 Frank Scholz
11 | # Copyright 2016 Erwan Martin
12 | #
13 | # Implementation of a SSDP server.
14 | #
15 |
16 | from . import logger
17 | import random
18 | import time
19 | import socket
20 | from email.utils import formatdate
21 | from errno import ENOPROTOOPT
22 |
23 | from . import logger
24 | from Components.config import config
25 |
26 | SSDP_PORT = 1900
27 | SSDP_ADDR = '239.255.255.250'
28 | SERVER_ID = 'SSDP Server for HRTunerProxy'
29 |
30 |
31 | class SSDPServer:
32 | """A class implementing a SSDP server. The notify_received and
33 | searchReceived methods are called when the appropriate type of
34 | datagram is received by the server."""
35 | known = {}
36 |
37 | def __init__(self):
38 | self.sock = None
39 |
40 | def run(self):
41 | self.sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
42 | self.sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
43 | if hasattr(socket, "SO_REUSEPORT"):
44 | try:
45 | self.sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEPORT, 1)
46 | except socket.error as le:
47 | # RHEL6 defines SO_REUSEPORT but it doesn't work
48 | if le.errno == ENOPROTOOPT:
49 | pass
50 | else:
51 | raise
52 |
53 | addr = socket.inet_aton(SSDP_ADDR)
54 | interface = socket.inet_aton('0.0.0.0')
55 | cmd = socket.IP_ADD_MEMBERSHIP
56 | self.sock.setsockopt(socket.IPPROTO_IP, cmd, addr + interface)
57 | self.sock.bind(('0.0.0.0', SSDP_PORT))
58 | self.sock.settimeout(1)
59 |
60 | while True:
61 | try:
62 | data, addr = self.sock.recvfrom(1024)
63 | self.datagram_received(data, addr)
64 | except socket.timeout:
65 | continue
66 | self.shutdown()
67 |
68 | def shutdown(self):
69 | for st in self.known:
70 | if self.known[st]['MANIFESTATION'] == 'local':
71 | self.do_byebye(st)
72 |
73 | def datagram_received(self, data, host_port):
74 | """Handle a received multicast datagram."""
75 |
76 | (host, port) = host_port
77 |
78 | try:
79 | header, payload = data.decode().split('\r\n\r\n')[:2]
80 | except ValueError as err:
81 | logger.info('[SSDP]', err)
82 | return
83 |
84 | lines = header.split('\r\n')
85 | cmd = lines[0].split(' ')
86 | lines = map(lambda x: x.replace(': ', ':', 1), lines[1:])
87 | lines = filter(lambda x: len(x) > 0, lines)
88 |
89 | headers = [x.split(':', 1) for x in lines]
90 | headers = dict(map(lambda x: (x[0].lower(), x[1]), headers))
91 |
92 | # if config.hrtunerproxy.debug.value:
93 | # logger.info('SSDP command %s %s - from %s:%d' % (cmd[0], cmd[1], host, port))
94 | # logger.info('SSDP with headers: {}.'.format(headers))
95 | if cmd[0] == 'M-SEARCH' and cmd[1] == '*':
96 | # SSDP discovery
97 | self.discovery_request(headers, (host, port))
98 | elif cmd[0] == 'NOTIFY' and cmd[1] == '*':
99 | # SSDP presence
100 | logger.info('SSDP NOTIFY *')
101 | else:
102 | logger.info('SSDP Unknown SSDP command %s %s' % (cmd[0], cmd[1]))
103 |
104 | def register(self, manifestation, usn, st, location, server=SERVER_ID, cache_control='max-age=1800', silent=False,
105 | host=None):
106 | """Register a service or device that this SSDP server will
107 | respond to."""
108 |
109 | if config.hrtunerproxy.debug.value:
110 | logger.info('SSDP Registering %s (%s)' % (st, location))
111 |
112 | self.known[usn] = {}
113 | self.known[usn]['USN'] = usn
114 | self.known[usn]['LOCATION'] = location
115 | self.known[usn]['ST'] = st
116 | self.known[usn]['EXT'] = ''
117 | self.known[usn]['SERVER'] = server
118 | self.known[usn]['CACHE-CONTROL'] = cache_control
119 |
120 | self.known[usn]['MANIFESTATION'] = manifestation
121 | self.known[usn]['SILENT'] = silent
122 | self.known[usn]['HOST'] = host
123 | self.known[usn]['last-seen'] = time.time()
124 |
125 | if manifestation == 'local' and self.sock:
126 | self.do_notify(usn)
127 |
128 | def unregister(self, usn):
129 | if config.hrtunerproxy.debug.value:
130 | logger.info('SSDP Un-registering %s' % usn)
131 | del self.known[usn]
132 |
133 | def is_known(self, usn):
134 | return usn in self.known
135 |
136 | def send_it(self, response, destination, delay, usn):
137 | # if config.hrtunerproxy.debug.value:
138 | # logger.info('SSDP send discovery response delayed by %ds for %s to %r' % (delay, usn, destination))
139 | try:
140 | self.sock.sendto(response.encode(), destination)
141 | except (AttributeError, socket.error) as msg:
142 | logger.info('SSDP failure sending out byebye notification: %r' % msg)
143 |
144 | def discovery_request(self, headers, host_port):
145 | """Process a discovery request. The response must be sent to
146 | the address specified by (host, port)."""
147 |
148 | (host, port) = host_port
149 |
150 | # if config.hrtunerproxy.debug.value:
151 | # logger.info('SSDP Discovery request from (%s,%d) for %s' % (host, port, headers['st']))
152 | # logger.info('SSDP Discovery request for %s' % headers['st'])
153 |
154 | # Do we know about this service?
155 | for i in self.known.values():
156 | if i['MANIFESTATION'] == 'remote':
157 | continue
158 | if headers['st'] == 'ssdp:all' and i['SILENT']:
159 | continue
160 | if i['ST'] == headers['st'] or headers['st'] == 'ssdp:all':
161 | response = ['HTTP/1.1 200 OK']
162 |
163 | usn = None
164 | for k, v in i.items():
165 | if k == 'USN':
166 | usn = v
167 | if k not in ('MANIFESTATION', 'SILENT', 'HOST'):
168 | response.append('%s: %s' % (k, v))
169 |
170 | if usn:
171 | response.append('DATE: %s' % formatdate(timeval=None, localtime=False, usegmt=True))
172 |
173 | response.extend(('', ''))
174 | delay = random.randint(0, int(headers['mx']))
175 |
176 | self.send_it('\r\n'.join(response), (host, port), delay, usn)
177 |
178 | def do_notify(self, usn):
179 | """Do notification"""
180 |
181 | if self.known[usn]['SILENT']:
182 | return
183 | if config.hrtunerproxy.debug.value:
184 | logger.info('SSDP Sending alive notification for %s' % usn)
185 |
186 | resp = [
187 | 'NOTIFY * HTTP/1.1',
188 | 'HOST: %s:%d' % (SSDP_ADDR, SSDP_PORT),
189 | 'NTS: ssdp:alive',
190 | ]
191 | stcpy = dict(self.known[usn].items())
192 | stcpy['NT'] = stcpy['ST']
193 | del stcpy['ST']
194 | del stcpy['MANIFESTATION']
195 | del stcpy['SILENT']
196 | del stcpy['HOST']
197 | del stcpy['last-seen']
198 |
199 | resp.extend(map(lambda x: ': '.join(x), stcpy.items()))
200 | resp.extend(('', ''))
201 | if config.hrtunerproxy.debug.value:
202 | logger.info('SSDP do_notify content', resp)
203 | try:
204 | self.sock.sendto('\r\n'.join(resp).encode(), (SSDP_ADDR, SSDP_PORT))
205 | self.sock.sendto('\r\n'.join(resp).encode(), (SSDP_ADDR, SSDP_PORT))
206 | except (AttributeError, socket.error) as msg:
207 | logger.info('SSDP failure sending out alive notification: %r' % msg)
208 |
209 | def do_byebye(self, usn):
210 | """Do byebye"""
211 |
212 | if config.hrtunerproxy.debug.value:
213 | logger.info('SSDP Sending byebye notification for %s' % usn)
214 |
215 | resp = [
216 | 'NOTIFY * HTTP/1.1',
217 | 'HOST: %s:%d' % (SSDP_ADDR, SSDP_PORT),
218 | 'NTS: ssdp:byebye',
219 | ]
220 | try:
221 | stcpy = dict(self.known[usn].items())
222 | stcpy['NT'] = stcpy['ST']
223 | del stcpy['ST']
224 | del stcpy['MANIFESTATION']
225 | del stcpy['SILENT']
226 | del stcpy['HOST']
227 | del stcpy['last-seen']
228 | resp.extend(map(lambda x: ': '.join(x), stcpy.items()))
229 | resp.extend(('', ''))
230 | if config.hrtunerproxy.debug.value:
231 | logger.info('SSDP do_byebye content', resp)
232 | if self.sock:
233 | try:
234 | self.sock.sendto('\r\n'.join(resp), (SSDP_ADDR, SSDP_PORT))
235 | except (AttributeError, socket.error) as msg:
236 | logger.info('SSDP failure sending out byebye notification: %r' % msg)
237 | except KeyError as msg:
238 | logger.info('SSDP error building byebye notification: %r' % msg)
239 |
--------------------------------------------------------------------------------
/setup.py:
--------------------------------------------------------------------------------
1 | from setuptools import setup
2 | import setup_translate
3 |
4 | pkg = 'SystemPlugins.HRTunerProxy'
5 | setup(name='enigma2-plugin-systemplugins-hrtunerproxy',
6 | version='3.5',
7 | description='HRTunerProxy',
8 | long_description='Setup Enigma2 to act as HR-Tuner Proxy',
9 | author='AndyBlac & Huevos',
10 | url='https://github.com/OpenViX/HRTunerProxy',
11 | package_dir={pkg: 'plugin'},
12 | packages=[pkg],
13 | package_data={pkg:
14 | ['plugin.png', 'plugin-hd.png', 'skins/*.xml', 'locale/*/LC_MESSAGES/*.mo', 'locale/*/LC_MESSAGES/*.po']},
15 | cmdclass=setup_translate.cmdclass, # for translation
16 | )
17 |
--------------------------------------------------------------------------------
/setup_translate.py:
--------------------------------------------------------------------------------
1 | # Language extension for Python scripts. Based on this concept:
2 | # http://wiki.maemo.org/Internationalize_a_Python_application
3 | from setuptools import Command as cmd
4 | from setuptools.command.build import build as _build
5 | import os
6 |
7 |
8 | class build_trans(cmd):
9 | description = 'Compile .po files into .mo files'
10 |
11 | def initialize_options(self):
12 | pass
13 |
14 | def finalize_options(self):
15 | pass
16 |
17 | def run(self):
18 | s = os.path.join('plugin', 'locale')
19 | for lang in os.listdir(s):
20 | lc = os.path.join(s, lang, 'LC_MESSAGES')
21 | if os.path.isdir(lc):
22 | for f in os.listdir(lc):
23 | if f.endswith('.po'):
24 | src = os.path.join(lc, f)
25 | dest = os.path.join(lc, f[:-2] + 'mo')
26 | print("Language compile %s -> %s" % (src, dest))
27 | if os.system("msgfmt '%s' -o '%s'" % (src, dest)) != 0:
28 | raise Exception("Failed to compile:%s " % src)
29 |
30 |
31 | class build(_build):
32 | sub_commands = _build.sub_commands + [('build_trans', None)]
33 |
34 | def run(self):
35 | _build.run(self)
36 |
37 |
38 | cmdclass = {
39 | 'build': build,
40 | 'build_trans': build_trans,
41 | }
42 |
--------------------------------------------------------------------------------