From 5d2aff9bc5431ac17dc9f06902d14b758744154d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=91=D0=BE=D1=80=D0=BE=D0=B4=D0=B8=D0=BD=20=D0=A0=D0=BE?= =?UTF-8?q?=D0=BC=D0=B0=D0=BD?= Date: Mon, 14 Mar 2022 20:34:22 +0300 Subject: [PATCH] =?UTF-8?q?=D0=B2=D0=B5=D1=80=D1=81=D0=B8=D1=8F=20=D0=B4?= =?UTF-8?q?=D0=BB=D1=8F=20Kodi=2019?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- LICENSE.txt | 165 ++++ __init__.py | 20 + addon.xml | 61 ++ changelog.txt | 37 + lib/__init__.py | 20 + lib/iptvlib/__init__.py | 284 ++++++ lib/iptvlib/api.py | 480 ++++++++++ lib/iptvlib/fonts.py | 86 ++ lib/iptvlib/m3u8.py | 91 ++ lib/iptvlib/mainwindow.py | 142 +++ lib/iptvlib/models.py | 302 +++++++ lib/iptvlib/player.py | 134 +++ lib/iptvlib/tvdialog.py | 678 ++++++++++++++ lib/skinutils/LICENSE.txt | 26 + lib/skinutils/__init__.py | 372 ++++++++ lib/skinutils/fonts.py | 210 +++++ lib/skinutils/includes.py | 90 ++ resources/language/English/strings.po | 260 ++++++ resources/language/German/strings.po | 259 ++++++ resources/language/Russian/strings.po | 259 ++++++ resources/skins/Default/720p/font.xml | 65 ++ resources/skins/Default/720p/main_window.xml | 46 + resources/skins/Default/720p/tv_dialog.xml | 848 ++++++++++++++++++ .../skins/Default/720p/tv_dialog_font.xml | 848 ++++++++++++++++++ .../skins/Default/fonts/noto_license.txt | 48 + .../script.module.iptvlib-NotoSans-Bold.ttf | Bin 0 -> 310556 bytes ...script.module.iptvlib-NotoSans-Regular.ttf | Bin 0 -> 305872 bytes resources/skins/Default/media/1.png | Bin 0 -> 232 bytes resources/skins/Default/media/10.png | Bin 0 -> 228 bytes resources/skins/Default/media/11.png | Bin 0 -> 232 bytes resources/skins/Default/media/12.png | Bin 0 -> 232 bytes resources/skins/Default/media/13.png | Bin 0 -> 247 bytes resources/skins/Default/media/14.png | Bin 0 -> 232 bytes resources/skins/Default/media/15.png | Bin 0 -> 233 bytes resources/skins/Default/media/16.png | Bin 0 -> 236 bytes resources/skins/Default/media/17.png | Bin 0 -> 232 bytes resources/skins/Default/media/18.png | Bin 0 -> 228 bytes resources/skins/Default/media/19.png | Bin 0 -> 198 bytes resources/skins/Default/media/2.png | Bin 0 -> 232 bytes resources/skins/Default/media/20.png | Bin 0 -> 228 bytes resources/skins/Default/media/3.png | Bin 0 -> 247 bytes resources/skins/Default/media/4.png | Bin 0 -> 232 bytes resources/skins/Default/media/5.png | Bin 0 -> 233 bytes resources/skins/Default/media/6.png | Bin 0 -> 236 bytes resources/skins/Default/media/7.png | Bin 0 -> 232 bytes resources/skins/Default/media/8.png | Bin 0 -> 228 bytes resources/skins/Default/media/9.png | Bin 0 -> 198 bytes resources/skins/Default/media/black.png | Bin 0 -> 82 bytes .../skins/Default/media/default_channel.png | Bin 0 -> 3736 bytes resources/skins/Default/media/fade.png | Bin 0 -> 2874 bytes resources/skins/Default/media/icon.png | Bin 0 -> 7603 bytes .../skins/Default/media/listitem-bg-fo.png | Bin 0 -> 110 bytes resources/skins/Default/media/listitem-bg.png | Bin 0 -> 122 bytes .../Default/media/prg_status_archive.png | Bin 0 -> 2626 bytes .../skins/Default/media/prg_status_live.png | Bin 0 -> 2331 bytes .../skins/Default/media/prg_status_past.png | Bin 0 -> 2137 bytes resources/skins/Default/media/separator-y.png | Bin 0 -> 1252 bytes resources/skins/Default/media/slider_bar.png | Bin 0 -> 79 bytes resources/skins/Default/media/white.png | Bin 0 -> 79 bytes resources/skins/Default/media/white50.png | Bin 0 -> 78 bytes 60 files changed, 5831 insertions(+) create mode 100644 LICENSE.txt create mode 100644 __init__.py create mode 100644 addon.xml create mode 100644 changelog.txt create mode 100644 lib/__init__.py create mode 100644 lib/iptvlib/__init__.py create mode 100644 lib/iptvlib/api.py create mode 100644 lib/iptvlib/fonts.py create mode 100644 lib/iptvlib/m3u8.py create mode 100644 lib/iptvlib/mainwindow.py create mode 100644 lib/iptvlib/models.py create mode 100644 lib/iptvlib/player.py create mode 100644 lib/iptvlib/tvdialog.py create mode 100644 lib/skinutils/LICENSE.txt create mode 100644 lib/skinutils/__init__.py create mode 100644 lib/skinutils/fonts.py create mode 100644 lib/skinutils/includes.py create mode 100644 resources/language/English/strings.po create mode 100644 resources/language/German/strings.po create mode 100644 resources/language/Russian/strings.po create mode 100644 resources/skins/Default/720p/font.xml create mode 100644 resources/skins/Default/720p/main_window.xml create mode 100644 resources/skins/Default/720p/tv_dialog.xml create mode 100644 resources/skins/Default/720p/tv_dialog_font.xml create mode 100644 resources/skins/Default/fonts/noto_license.txt create mode 100644 resources/skins/Default/fonts/script.module.iptvlib-NotoSans-Bold.ttf create mode 100644 resources/skins/Default/fonts/script.module.iptvlib-NotoSans-Regular.ttf create mode 100755 resources/skins/Default/media/1.png create mode 100755 resources/skins/Default/media/10.png create mode 100755 resources/skins/Default/media/11.png create mode 100755 resources/skins/Default/media/12.png create mode 100755 resources/skins/Default/media/13.png create mode 100755 resources/skins/Default/media/14.png create mode 100755 resources/skins/Default/media/15.png create mode 100755 resources/skins/Default/media/16.png create mode 100755 resources/skins/Default/media/17.png create mode 100755 resources/skins/Default/media/18.png create mode 100755 resources/skins/Default/media/19.png create mode 100755 resources/skins/Default/media/2.png create mode 100755 resources/skins/Default/media/20.png create mode 100755 resources/skins/Default/media/3.png create mode 100755 resources/skins/Default/media/4.png create mode 100755 resources/skins/Default/media/5.png create mode 100755 resources/skins/Default/media/6.png create mode 100755 resources/skins/Default/media/7.png create mode 100755 resources/skins/Default/media/8.png create mode 100755 resources/skins/Default/media/9.png create mode 100755 resources/skins/Default/media/black.png create mode 100755 resources/skins/Default/media/default_channel.png create mode 100755 resources/skins/Default/media/fade.png create mode 100755 resources/skins/Default/media/icon.png create mode 100755 resources/skins/Default/media/listitem-bg-fo.png create mode 100755 resources/skins/Default/media/listitem-bg.png create mode 100755 resources/skins/Default/media/prg_status_archive.png create mode 100755 resources/skins/Default/media/prg_status_live.png create mode 100755 resources/skins/Default/media/prg_status_past.png create mode 100755 resources/skins/Default/media/separator-y.png create mode 100755 resources/skins/Default/media/slider_bar.png create mode 100755 resources/skins/Default/media/white.png create mode 100755 resources/skins/Default/media/white50.png diff --git a/LICENSE.txt b/LICENSE.txt new file mode 100644 index 0000000..0a04128 --- /dev/null +++ b/LICENSE.txt @@ -0,0 +1,165 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + + This version of the GNU Lesser General Public License incorporates +the terms and conditions of version 3 of the GNU General Public +License, supplemented by the additional permissions listed below. + + 0. Additional Definitions. + + As used herein, "this License" refers to version 3 of the GNU Lesser +General Public License, and the "GNU GPL" refers to version 3 of the GNU +General Public License. + + "The Library" refers to a covered work governed by this License, +other than an Application or a Combined Work as defined below. + + An "Application" is any work that makes use of an interface provided +by the Library, but which is not otherwise based on the Library. +Defining a subclass of a class defined by the Library is deemed a mode +of using an interface provided by the Library. + + A "Combined Work" is a work produced by combining or linking an +Application with the Library. The particular version of the Library +with which the Combined Work was made is also called the "Linked +Version". + + The "Minimal Corresponding Source" for a Combined Work means the +Corresponding Source for the Combined Work, excluding any source code +for portions of the Combined Work that, considered in isolation, are +based on the Application, and not on the Linked Version. + + The "Corresponding Application Code" for a Combined Work means the +object code and/or source code for the Application, including any data +and utility programs needed for reproducing the Combined Work from the +Application, but excluding the System Libraries of the Combined Work. + + 1. Exception to Section 3 of the GNU GPL. + + You may convey a covered work under sections 3 and 4 of this License +without being bound by section 3 of the GNU GPL. + + 2. Conveying Modified Versions. + + If you modify a copy of the Library, and, in your modifications, a +facility refers to a function or data to be supplied by an Application +that uses the facility (other than as an argument passed when the +facility is invoked), then you may convey a copy of the modified +version: + + a) under this License, provided that you make a good faith effort to + ensure that, in the event an Application does not supply the + function or data, the facility still operates, and performs + whatever part of its purpose remains meaningful, or + + b) under the GNU GPL, with none of the additional permissions of + this License applicable to that copy. + + 3. Object Code Incorporating Material from Library Header Files. + + The object code form of an Application may incorporate material from +a header file that is part of the Library. You may convey such object +code under terms of your choice, provided that, if the incorporated +material is not limited to numerical parameters, data structure +layouts and accessors, or small macros, inline functions and templates +(ten or fewer lines in length), you do both of the following: + + a) Give prominent notice with each copy of the object code that the + Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the object code with a copy of the GNU GPL and this license + document. + + 4. Combined Works. + + You may convey a Combined Work under terms of your choice that, +taken together, effectively do not restrict modification of the +portions of the Library contained in the Combined Work and reverse +engineering for debugging such modifications, if you also do each of +the following: + + a) Give prominent notice with each copy of the Combined Work that + the Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the Combined Work with a copy of the GNU GPL and this license + document. + + c) For a Combined Work that displays copyright notices during + execution, include the copyright notice for the Library among + these notices, as well as a reference directing the user to the + copies of the GNU GPL and this license document. + + d) Do one of the following: + + 0) Convey the Minimal Corresponding Source under the terms of this + License, and the Corresponding Application Code in a form + suitable for, and under terms that permit, the user to + recombine or relink the Application with a modified version of + the Linked Version to produce a modified Combined Work, in the + manner specified by section 6 of the GNU GPL for conveying + Corresponding Source. + + 1) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (a) uses at run time + a copy of the Library already present on the user's computer + system, and (b) will operate properly with a modified version + of the Library that is interface-compatible with the Linked + Version. + + e) Provide Installation Information, but only if you would otherwise + be required to provide such information under section 6 of the + GNU GPL, and only to the extent that such information is + necessary to install and execute a modified version of the + Combined Work produced by recombining or relinking the + Application with a modified version of the Linked Version. (If + you use option 4d0, the Installation Information must accompany + the Minimal Corresponding Source and Corresponding Application + Code. If you use option 4d1, you must provide the Installation + Information in the manner specified by section 6 of the GNU GPL + for conveying Corresponding Source.) + + 5. Combined Libraries. + + You may place library facilities that are a work based on the +Library side by side in a single library together with other library +facilities that are not Applications and are not covered by this +License, and convey such a combined library under terms of your +choice, if you do both of the following: + + a) Accompany the combined library with a copy of the same work based + on the Library, uncombined with any other library facilities, + conveyed under the terms of this License. + + b) Give prominent notice with the combined library that part of it + is a work based on the Library, and explaining where to find the + accompanying uncombined form of the same work. + + 6. Revised Versions of the GNU Lesser General Public License. + + The Free Software Foundation may publish revised and/or new versions +of the GNU Lesser General Public License from time to time. Such new +versions will be similar in spirit to the present version, but may +differ in detail to address new problems or concerns. + + Each version is given a distinguishing version number. If the +Library as you received it specifies that a certain numbered version +of the GNU Lesser General Public License "or any later version" +applies to it, you have the option of following the terms and +conditions either of that published version or of any later version +published by the Free Software Foundation. If the Library as you +received it does not specify a version number of the GNU Lesser +General Public License, you may choose any version of the GNU Lesser +General Public License ever published by the Free Software Foundation. + + If the Library as you received it specifies that a proxy can decide +whether future versions of the GNU Lesser General Public License shall +apply, that proxy's public statement of acceptance of any version is +permanent authorization for you to choose that version for the +Library. diff --git a/__init__.py b/__init__.py new file mode 100644 index 0000000..9e7cc30 --- /dev/null +++ b/__init__.py @@ -0,0 +1,20 @@ +# coding=utf-8 +# +# Copyright (C) 2018 Dmitry Vinogradov +# https://github.com/kodi-iptv-addons +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Library General Public +# License as published by the Free Software Foundation; either +# version 2 of the License, or (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Library General Public License for more details. +# +# You should have received a copy of the GNU Library General Public +# License along with this library; if not, write to the +# Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, +# Boston, MA 02110-1301, USA. +# diff --git a/addon.xml b/addon.xml new file mode 100644 index 0000000..5990bdb --- /dev/null +++ b/addon.xml @@ -0,0 +1,61 @@ + + + + + + + + + resources/skins/Default/media/icon.png + + + + Common library for IPTV Addons + Common library for IPTV Addons + all + GNU LESSER GENERAL PUBLIC LICENSE Version 3, June 2007 + https://github.com/kodi-iptv-addons + +v1.1.8 (2020-04-27) +- Fixed bug in URL resolver +v1.1.7 (2020-04-23) +- Fixed crash bug on exit +v1.1.6 (2020-04-15) +- Fixed minor bugs in EPG retrieval +- Added API method to resolve redirections in stream urls +v1.1.5 (2020-02-03) +- Fixed bugs in group display +v1.1.3 (2019-02-05) +- Increased scrolling timeout for program details +v1.1.2 (2019-01-31) +- Implemented usage of alternative EPG with program images +- Respect stop on idle addon settings +v1.0.21 (2018-12-03) +- Bug fixes in EPG generation +v1.0.19 (2018-11-26) +- Adapted skin for KODI 18 +v1.0.18 (2018-11-22) +- Bug fixes in EPG generation +v1.0.17 (2018-11-05) +- Bug fixes in EPG generation +v1.0.16 (2018-11-03) +- Improved EPG generation +v1.0.15 (2018-11-02) +- Improved error handling +- Added fonts used in skin +- Bug fixes +v1.0.2 (2018-10-12) +- Improved HTTP downloading +- Bug fixes +v1.0.1 (2018-10-11) +- Improved error handling +- Fixed bug in date formatting +- Added day color bar for EPG entries +v1.0.0 (2018-10-10) +- Initial release + + + diff --git a/changelog.txt b/changelog.txt new file mode 100644 index 0000000..aa4df7d --- /dev/null +++ b/changelog.txt @@ -0,0 +1,37 @@ +v1.1.8 (2020-04-27) +- Fixed bug in URL resolver +v1.1.7 (2020-04-23) +- Fixed crash bug on exit +v1.1.6 (2020-04-15) +- Fixed minor bugs in EPG retrieval +- Added API method to resolve redirections in stream urls +v1.1.5 (2020-02-03) +- Fixed bugs in group display +v1.1.3 (2019-02-05) +- Increased scrolling timeout for program details +v1.1.2 (2019-01-31) +- Implemented usage of alternative EPG with program images +- Respect stop on idle addon settings +v1.0.21 (2018-12-03) +- Bug fixes in EPG generation +v1.0.19 (2018-11-26) +- Adapted skin for KODI 18 +v1.0.18 (2018-11-22) +- Bug fixes in EPG generation +v1.0.17 (2018-11-05) +- Bug fixes in EPG generation +v1.0.16 (2018-11-03) +- Improved EPG generation +v1.0.15 (2018-11-02) +- Improved error handling +- Added fonts used in skin +- Bug fixes +v1.0.2 (2018-10-12) +- Improved HTTP downloading +- Bug fixes +v1.0.1 (2018-10-11) +- Improved error handling +- Fixed bug in date formatting +- Added day color bar for EPG entries +v1.0.0 (2018-10-10) +- Initial release diff --git a/lib/__init__.py b/lib/__init__.py new file mode 100644 index 0000000..9e7cc30 --- /dev/null +++ b/lib/__init__.py @@ -0,0 +1,20 @@ +# coding=utf-8 +# +# Copyright (C) 2018 Dmitry Vinogradov +# https://github.com/kodi-iptv-addons +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Library General Public +# License as published by the Free Software Foundation; either +# version 2 of the License, or (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Library General Public License for more details. +# +# You should have received a copy of the GNU Library General Public +# License along with this library; if not, write to the +# Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, +# Boston, MA 02110-1301, USA. +# diff --git a/lib/iptvlib/__init__.py b/lib/iptvlib/__init__.py new file mode 100644 index 0000000..323642d --- /dev/null +++ b/lib/iptvlib/__init__.py @@ -0,0 +1,284 @@ +# coding=utf-8 +# +# Copyright (C) 2018 Dmitry Vinogradov +# https://github.com/kodi-iptv-addons +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Library General Public +# License as published by the Free Software Foundation; either +# version 2 of the License, or (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Library General Public License for more details. +# +# You should have received a copy of the GNU Library General Public +# License along with this library; if not, write to the +# Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, +# Boston, MA 02110-1301, USA. +# +import builtins +import calendar +import datetime +import math +import os +import platform +import sys +import threading +import time +from functools import wraps + +import xbmc +import xbmcaddon +import importlib + +if hasattr(builtins, 'addon_id') is False: + setattr(builtins, 'addon_id', os.path.basename(os.path.abspath(os.path.dirname(__file__)))) + +addon = xbmcaddon.Addon(id=getattr(builtins, 'addon_id')) + +utc_local_offset = math.ceil(calendar.timegm(time.localtime()) - time.time()) + +importlib.reload(sys) +# noinspection PyUnresolvedReferences +sys.setdefaultencoding('utf-8') + +TENSECS = 10 # type: int +MIN = 60 # type: int +HALFHOUR = 1800 # type: int +HOUR = 3600 # type: int +DAY = 86400 # type: int +TWODAYS = 172800 # type: int +TREEDAYS = 259200 # type: int +WEEK = 604800 # type: int +TWOWEEKS = 1209600 # type: int + +TEXT_SUBSCRIPTION_REQUIRED_ID = 30101 # type: int +TEXT_SET_CREDENTIALS_ID = 30102 # type: int +TEXT_AUTHENTICATION_FAILED_ID = 30103 # type: int +TEXT_CHECK_SETTINGS_ID = 30104 # type: int +TEXT_NOT_PLAYABLE_ID = 30105 # type: int +TEXT_SERVICE_ERROR_OCCURRED_ID = 30106 # type: int +TEXT_SURE_TO_EXIT_ID = 30107 # type: int +TEXT_ARCHIVE_NOT_AVAILABLE_YET_ID = 30108 # type: int +TEXT_JUMP_TO_ARCHIVE_ID = 30109 # type: int +TEXT_CHANNEL_HAS_NO_ARCHIVE_ID = 30110 # type: int +TEXT_LIVE_NO_FORWARD_SKIP_ID = 30111 # type: int +TEXT_IDLE_DIALOG_ID = 30112 # type: int +TEXT_IDLE_DIALOG_COUNTDOWN_ID = 30113 # type: int +TEXT_HTTP_REQUEST_ERROR_ID = 30114 # type: int +TEXT_PLEASE_RESTART_KODI_ID = 30115 # type: int +TEXT_INSTALL_EXTRA_RESOURCES_ID = 30116 # type: int +TEXT_PLEASE_CHECK_INTERNET_CONNECTION_ID = 30117 # type: int +TEXT_UNEXPECTED_RESPONSE_FROM_SERVICE_PROVIDER_ID = 30118 # type: int +TEXT_UNEXPECTED_ERROR_OCCURRED_ID = 30119 # type: int + +TEXT_NO_INFO_AVAILABLE_ID = 30201 # type: int +TEXT_ABBR_MINUTES_ID = 30202 # type: int +TEXT_ABBR_SECONDS_ID = 30203 # type: int +TEXT_WEEKDAY_FULL_ID_PREFIX = 3030 # type: int +TEXT_WEEKDAY_ABBR_ID_PREFIX = 3031 # type: int +TEXT_MONTH_FULL_ID_PREFIX = 304 # type: int +TEXT_MONTH_ABBR_ID_PREFIX = 305 # type: int + + +# noinspection PyUnresolvedReferences +class WindowMixin(object): + is_closing = False # type: bool + + def __init__(self, **kwargs): + self.is_closing = False + super(WindowMixin, self).__init__() + + def close(self): + self.is_closing = True + super(WindowMixin, self).close() + + def show_control(self, *control_ids): + for control_id in control_ids: + control = self.getControl(control_id) + if control: + control.setVisible(True) + + def hide_control(self, *control_ids): + for control_id in control_ids: + control = self.getControl(control_id) + if control: + control.setVisible(False) + + def set_control_image(self, control_id, image): + control = self.getControl(control_id) + if control: + control.setImage(image) + + def setcontrol_label(self, control_id, label): + control = self.getControl(control_id) + if control and label: + control.setLabel(label) + + def set_control_text(self, control_id, text): + control = self.getControl(control_id) + if control: + control.setText(text) + + +def get_string(id_): + return xbmcaddon.Addon(os.path.basename(os.path.abspath(os.path.dirname(__file__) + "/../../"))).getLocalizedString(id_) + + +def show_small_popup(title='', msg='', delay=5000, image=''): + xbmc.executebuiltin('XBMC.Notification("%s","%s",%d,"%s")' % (title, msg, delay, image)) + + +def build_user_agent(): + # type: () -> str + return 'KODI/%s (%s; %s %s; python %s) %s/%s ' % ( + xbmc.getInfoLabel('System.BuildVersion').split(" ")[0], + xbmc.getInfoLabel('System.BuildVersion'), + platform.system(), + platform.release(), + platform.python_version(), + addon.getAddonInfo('id').replace('-DEV', ''), + addon.getAddonInfo('version') + ) + + +def unique(s, t): + # type: (str, str) -> str + t = (t * ((len(s) // len(t)) + 1))[:len(s)] + if isinstance(s, str): + return "".join(chr(ord(a) ^ ord(b)) for a, b in zip(s, t)) + else: + return str([a ^ b for a, b in zip(s, t)]) + + +def secs_to_percent(length, played): + # type: (int, float) -> float + return (100 * played) / length + + +def percent_to_secs(length, percent): + # type: (int, float) -> int + return int((length * percent) / 100) + + +def format_secs(secs, id="time"): + # type: (int, str) -> str + if id == "time": + return "{:0>8}".format(datetime.timedelta(seconds=secs)) + if id == "skip": + prefix = "+" + if secs < 0: + prefix = "-" + secs *= -1 + elif secs == 0: + prefix = "" + if secs > 60: + return "%s%s %s" % (prefix, secs / 60, get_string(TEXT_ABBR_MINUTES_ID)) + return "%s%s %s" % (prefix, secs, get_string(TEXT_ABBR_SECONDS_ID)) + + +def format_date(timestamp, id="dateshort", custom_format=None): + # type: (float, str, str) -> str + ids = { + "%A": (TEXT_WEEKDAY_FULL_ID_PREFIX, "%w"), + "%a": (TEXT_WEEKDAY_ABBR_ID_PREFIX, "%w"), + "%B": (TEXT_MONTH_FULL_ID_PREFIX, "%m"), + "%b": (TEXT_MONTH_ABBR_ID_PREFIX, "%m") + } + if timestamp: + if custom_format is not None: + dt = datetime.datetime.fromtimestamp(timestamp) + for k in ids.keys(): + if k in custom_format: + v = get_string(int("%s%s" % (ids[k][0], dt.strftime(ids[k][1])))) + custom_format = custom_format.replace(k, v) + return dt.strftime(custom_format) + return datetime.datetime.fromtimestamp(timestamp).strftime(xbmc.getRegion(id)) + return '' + + +def time_now(): + # type: () -> float + return time.time() + + +def timestamp_to_midnight(timestamp): + # type: (float) -> int + # noinspection PyTypeChecker + return int(time.mktime( + datetime.datetime.combine( + datetime.datetime.fromtimestamp(timestamp), + datetime.datetime.min.time() + ).timetuple() + )) + + +def str_to_datetime(str_date, fmt): + # type: (str, str) -> datetime.datetime + try: + d = datetime.datetime.strptime(str_date, fmt) + except TypeError: + from time import strptime + d = datetime.datetime(*(strptime(str_date, fmt)[0:6])) + return d + + +def str_to_timestamp(str_date, fmt): + # type: (str, str) -> int + try: + return int(time.mktime(str_to_datetime(str_date, fmt).timetuple())) + except: + return 0 + + +def run_async(func): + """ + Decorator to run a function in a separate thread + """ + + @wraps(func) + def async_func(*args, **kwargs): + thread = threading.Thread(target=func, args=args, kwargs=kwargs) + thread.start() + return thread + + return async_func + + +def log(msg, level=xbmc.LOGINFO): + if level == xbmc.LOGDEBUG: + import inspect + mod = inspect.getmodule(inspect.stack()[1][0]) + calframe = inspect.getouterframes(inspect.currentframe(), 2) + msg = "------- [%s.%s] : %s" % (mod.__name__, calframe[1][3], msg) + xbmc.log('%s: %s' % (addon.getAddonInfo('name'), msg), level) + + +def normalize(text): + # type: (str) -> str + if type(text) is not str: + text = str(text) + symbols = ("абвгдеёжзийклмнопрстуфхцчшщъыьэюяАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ", + "abvgdeejzijklmnoprstufhzcss_y_euaABVGDEEJZIJKLMNOPRSTUFHZCSS_Y_EUA") + tr = dict([(ord(a), ord(b)) for (a, b) in zip(*symbols)]) + import re + regs = [ + '\s+\+[0-9]+', # time shift suffix, e.g. "RTL +7" + '\s+\[[a-zA-Z]+\]', # land code suffix, e.g. "RTL [de]" + '\s+(HQ)', # High quality suffix, e.g. "RTL (HQ)" + ] + for reg in regs: + text = re.sub(reg, '', text) + return re.sub('[^0-9a-zA-Z+-]+', '', text.translate(tr)).upper() + + +x = lambda s: s.decode("hex") +z = lambda s: str.encode(s, "hex") +h1 = '3d37612b5542244c4e3952775a3f6b5a24367732426e583750' +h2 = '5543155b26780b63394e25593d50043d48535a532c0f344e24' \ + '54541205362d49632d563e1b3f5c1f65505f130f172f750e66' \ + '0b03541f65710978684f6f467c4b563f52531946640b3b0a2b' \ + '4011044a6839596a2b556f0c27190e2c194d0a1421073c0a2b' \ + '40113e162e3f' diff --git a/lib/iptvlib/api.py b/lib/iptvlib/api.py new file mode 100644 index 0000000..6a0d78a --- /dev/null +++ b/lib/iptvlib/api.py @@ -0,0 +1,480 @@ +# coding=utf-8 +# +# Copyright (C) 2018 Dmitry Vinogradov +# https://github.com/kodi-iptv-addons +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Library General Public +# License as published by the Free Software Foundation; either +# version 2 of the License, or (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Library General Public License for more details. +# +# You should have received a copy of the GNU Library General Public +# License along with this library; if not, write to the +# Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, +# Boston, MA 02110-1301, USA. +# +import abc +import json +import os +import ssl +import threading +import traceback +import urllib.error +import urllib.parse +import urllib.request +from collections import OrderedDict +from queue import Queue +from threading import Event +from urllib.parse import urlencode +from urllib.request import Request + +import xbmc + +from . import build_user_agent, log, DAY, time_now, format_date, normalize +from .models import Group, Program, Channel + + +class ApiException(Exception): + def __init__(self, message, code, origin_error=None): + self.message = message + self.code = code + self.origin_error = origin_error + + def __repr__(self): + return "ApiException: (%s) %s" % (self.code, self.message) + + +class HttpRequest(urllib.request.Request): + ident = None # type: str + method = None # type: str + + def __init__(self, ident=None, method=None, **kwargs): + self.ident = ident + self.method = method + urllib.request.Request.__init__(self, **kwargs) + + def get_method(self): + return self.method or urllib.request.Request.get_method(self) + + def __repr__(self): + return "%s(%r)" % (self.__class__, self.__dict__) + + +class Api(metaclass=abc.ABCMeta): + AUTH_STATUS_NONE = 0 + AUTH_STATUS_OK = 1 + AUTH_MAX_ATTEMPTS = 3 + + E_UNKNOW_ERROR = 1000 + E_HTTP_REQUEST_FAILED = 1001 + E_JSON_DECODE = 1002 + E_AUTH_ERROR = 1003 + E_API_ERROR = 1004 + + auth_status = AUTH_STATUS_NONE # type: int + username = None # type: str + password = None # type: str + sort_channels = None # type: bool + working_path = None # type: str + cookie_file = None # type: str + settings_file = None # type: str + _attempt = 0 # type: int + _groups = None # type: OrderedDict[str, Group] + _channels = None # type: OrderedDict[str, Channel] + _ident = None # type: str + _epg_map = None # type: dict + + def __init__(self, username=None, password=None, working_path="./", sort_channels=False): + self.auth_status = self.AUTH_STATUS_NONE + self.username = self._ident = username + self.password = password + self.working_path = working_path + self.sort_channels = sort_channels + if not os.path.exists(self.working_path): + os.makedirs(self.working_path) + self.cookie_file = os.path.join(self.working_path, "%s.cookie.txt" % self.__class__.__name__) + self.settings_file = os.path.join(self.working_path, "%s.settings.txt" % self.__class__.__name__) + self._groups = OrderedDict() + self._channels = OrderedDict() + + @property + def client_id(self): + return "%s:%s" % (self.__class__.__name__, self._ident) + + @property + def user_agent(self): + # type: () -> str + """ + User agent of HTTP client. + :rtype: str + """ + return build_user_agent() + + @property + def groups(self): + if len(self._groups) == 0: + self._groups = OrderedDict(sorted(iter(self.get_groups().items()), key=lambda item: item[1].name)) \ + if self.sort_channels else self.get_groups() + self._channels = OrderedDict() + for group in list(self._groups.values()): + channels = OrderedDict(sorted(iter(group.channels.items()), key=lambda item: item[1].name)) \ + if self.sort_channels else group.channels + self._channels.update(channels) + return self._groups + + @property + def channels(self): + if len(self._channels) == 0: + len(self.groups) + return self._channels + + @property + def base_api_url(self): + # type: () -> str + """ + Base URL of API. + :rtype: str + """ + return "" + + @property + def base_icon_url(self): + # type: () -> str + """ + Base URL of channel icons. + :rtype: str + """ + return "" + + @property + def host(self): + # type: () -> str + """ + Api hostname. + :rtype: str + """ + return "" + + @property + def diff_live_archive(self): + # type: () -> int + """ + Difference between live stream and archive stream in seconds. + :rtype: int + """ + return -1 + + @property + def archive_ttl(self): + # type: () -> int + """ + Time to live (ttl) of archive streams in seconds. + :rtype: int + """ + return -1 + + @abc.abstractmethod + def login(self): + # type: () -> dict + """Login to the IPTV service""" + pass + + @abc.abstractmethod + def is_login_request(self, uri, payload=None, method=None, headers=None): + # type: (str, dict, str, dict) -> bool + """ + Checks whether given URI is used for login + :rtype: str + """ + pass + + @abc.abstractmethod + def get_groups(self): + # type: () -> OrderedDict[str, Group] + """ + Returns the groups from the service + :rtype: dict[str, Group] + """ + pass + + @abc.abstractmethod + def get_stream_url(self, cid, ut_start=None): + # type: (str, int) -> str + """ + Returns the stream URL for given channel id and timestamp + :rtype: str + """ + pass + + def resolve_url(self, url): + # type: (str) -> str + request = self.prepare_request(url) + try: + response = urllib.request.urlopen(request, context=ssl.create_default_context()) + return response.url + except urllib.error.HTTPError: + return url + + @abc.abstractmethod + def get_epg(self, cid): + # type: (str) -> dict[int, Program] + """ + Returns the EPG for given channel id + :rtype: dict[int, Program] + """ + pass + + @abc.abstractmethod + def get_cookie(self): + # type: () -> str + """ + Returns cookie + :rtype: str + """ + pass + + def read_cookie_file(self): + # type: () -> str + """ + Returns cookie stored in the cookie file + :rtype: str + """ + cookie = "" + if os.path.isfile(self.cookie_file): + with open(self.cookie_file, 'r') as fh: + cookie = fh.read() + fh.close() + return cookie + + def write_cookie_file(self, data): + # type: (str) -> None + """ + Stores cookie to the cookie file + :rtype: None + """ + with open(self.cookie_file, 'w') as fh: + fh.write(data) + fh.close() + + def read_settings_file(self): + # type: () -> dict + """ + Returns settings stored in the settings file + :rtype: dict + """ + settings = None + if os.path.isfile(self.settings_file): + with open(self.settings_file, 'r') as fh: + json_string = fh.read() + fh.close() + settings = json.loads(json_string) + return settings + + def write_settings_file(self, data): + # type: (dict) -> None + """ + Stores settings to the settings file + :rtype: None + """ + with open(self.settings_file, 'w') as fh: + fh.write(json.dumps(data)) + fh.close() + + def prepare_request(self, uri, payload=None, method="GET", headers=None, ident=None): + # type: (str, dict, str, dict, str) -> HttpRequest + url = self.base_api_url % uri if uri.startswith('http') is False else uri + headers = headers or {} + headers["User-Agent"] = self.user_agent + headers["Connection"] = "Close" + + cookie = self.get_cookie() + if cookie != "" and not self.is_login_request(uri, payload): + headers["Cookie"] = cookie + + data = None + if payload: + if method == "POST": + if "Content-Type" in headers and headers["Content-Type"] == "application/json": + data = json.dumps(payload) + else: + data = urlencode(payload) + elif method == "GET": + url += "%s%s" % ("&" if "?" in url else "?", urlencode(payload)) + ident = ident or url + return HttpRequest(ident=ident, method=method, url=url, headers=headers, data=data) + + def send_request(self, request): + # type: (Request) -> dict|str + json_data = "" + try: + log("request: %s" % request, xbmc.LOGDEBUG) + response = urllib.request.urlopen(request) # type: addinfourl + content_type = response.headers.getheader("content-type") # type: str + content = response.read() + if not content_type.startswith("application/json"): + return content + response = json.loads(content) + except urllib.error.URLError as ex: + log("Exception %s: message=%s" % (type(ex), ex)) + log(traceback.format_exc(), xbmc.LOGDEBUG) + response = { + "__error": { + "message": str(ex), + "code": self.E_HTTP_REQUEST_FAILED, + "details": { + "url": request.get_full_url(), + "data": request.data, + "headers": request.headers + }, + } + } + pass + except ValueError as ex: + log("Exception %s: message=%s" % (type(ex), ex)) + log(traceback.format_exc(), xbmc.LOGDEBUG) + response = { + "__error": { + "message": "Unable decode server response: %s" % str(ex), + "code": self.E_JSON_DECODE, + "details": { + "response": json_data + } + } + } + pass + except Exception as ex: + log("Exception %s: message=%s" % (type(ex), ex)) + log(traceback.format_exc(), xbmc.LOGDEBUG) + response = { + "__error": { + "message": "%s: %s" % (type(ex), str(ex)), + "code": self.E_UNKNOW_ERROR + } + } + pass + return response + + def make_request(self, uri, payload=None, method="GET", headers=None): + # type: (str, dict, str, dict) -> dict + """ + Makes HTTP request to the IPTV API + :param uri: URL of the IPTV API + :param payload: Payload data + :param method: HTTP method + :param headers: Additional HTTP headers + :return: + """ + if self.auth_status != self.AUTH_STATUS_OK and not self.is_login_request(uri, payload, method, headers): + self.login() + return self.make_request(uri, payload, method, headers) + + request = self.prepare_request(uri, payload, method, headers) + response = self.send_request(request) + + if "__error" in response: + if self.is_login_request(uri, payload): + self.auth_status = self.AUTH_STATUS_NONE + try: + os.remove(self.cookie_file) + except OSError: + pass + + return response + + def do_send_request(self, queue, results, stop_event, wait=None): + # type: (Queue, dict[str, dict], Event, float) -> None + while not stop_event.is_set(): + request = queue.get() # type: HttpRequest + results[request.ident] = self.send_request(request) + queue.task_done() + stop_event.wait(wait) + + def send_parallel_requests(self, requests, wait=None, num_threads=None): + # type: (list[HttpRequest], float, int) -> dict[str, dict] + num_threads = len(requests) if num_threads is None else num_threads + queue = Queue(num_threads * 2) + results = dict() + + stop_event = threading.Event() + for i in range(num_threads): + thread = threading.Thread(target=self.do_send_request, args=(queue, results, stop_event, wait,)) + thread.setDaemon(True) + thread.start() + + for req in requests: + queue.put(req) + queue.join() + + while queue.unfinished_tasks > 0: + continue + + stop_event.set() + + return results + + def get_epg_gh(self, channel): + # type: (Channel) -> OrderedDict[int, Program] + + programs = OrderedDict() + + if self._epg_map is None: + self._epg_map = self.make_request("https://kodi-iptv-addons.github.io/EPG/map.json?%s" % time_now()) + + norm = normalize(channel.name) + if (norm in self._epg_map) is False: + return programs + + cid = self._epg_map.get(norm) + + requests = [] + days = (self.archive_ttl // DAY) + 5 + start = int(time_now() - self.archive_ttl) + for i in range(days): + day = format_date(start + (i * DAY), custom_format="%Y-%m-%d") + request = self.prepare_request( + "https://kodi-iptv-addons.github.io/EPG/%s/%s.json" % (cid, day) + ) + requests.append(request) + + results = self.send_parallel_requests(requests) + + epg = dict() + for key in sorted(results.keys()): + response = results[key] + is_error, error = Api.is_error_response(response) + if is_error: + log("error: %s" % error if is_error else response, xbmc.LOGDEBUG) + return programs + for k, v in response.items(): + epg[int(k)] = v + + prev = None # type: Program + for key in sorted(epg.keys()): + val = epg[key] + program = Program( + channel.cid, + channel.gid, + val["start"], + val["stop"], + val["title"], + val["descr"], + channel.archive, + val["image"] + ) + if prev is not None: + program.prev_program = prev + prev.next_program = program + programs[program.ut_start] = prev = program + return programs + + @staticmethod + def is_error_response(response): + # type: (dict) -> (bool, dict or None) + if "__error" in response: + return True, response["__error"] + return False, None diff --git a/lib/iptvlib/fonts.py b/lib/iptvlib/fonts.py new file mode 100644 index 0000000..d5794c8 --- /dev/null +++ b/lib/iptvlib/fonts.py @@ -0,0 +1,86 @@ +import os +import shutil +from datetime import datetime + +from ..skinutils import DocumentCache, get_current_skin_path, get_local_skin_path, is_invalid_local_skin, \ + copy_skin_to_userdata, do_write_test, reload_skin, get_skin_name +from ..skinutils.fonts import FontManager as SkinUtilsFontManager + + +class FontManagerException(Exception): + INSTALL_NEEDED = 1 + RESTART_NEEDED = 2 + INSTALL_NOT_NEEDED = 3 + + def __init__(self, message, *args): + self.message = message + super().__init__(*args) + + +class FontManager(object, SkinUtilsFontManager): + FONTS = { + "script.module.iptvlib-font_MainMenu": "script.module.iptvlib-NotoSans-Bold.ttf", + "script.module.iptvlib-font30_title": "script.module.iptvlib-NotoSans-Bold.ttf", + "script.module.iptvlib-font30": "script.module.iptvlib-NotoSans-Regular.ttf", + "script.module.iptvlib-font14": "script.module.iptvlib-NotoSans-Regular.ttf", + "script.module.iptvlib-font12": "script.module.iptvlib-NotoSans-Regular.ttf", + } + script_path = None + + def __init__(self, script_path): + self.__installed_names = [] + self.__installed_fonts = [] + self.__doc_cache = DocumentCache() + self.script_path = script_path + + def check_fonts(self): + if 'skin.estuary' == get_skin_name(): + raise FontManagerException(FontManagerException.INSTALL_NOT_NEEDED) + + if self.is_restart_needed(): + raise FontManagerException(FontManagerException.RESTART_NEEDED) + + if get_current_skin_path() != get_local_skin_path(): + if not self.is_writable(): + raise FontManagerException(FontManagerException.INSTALL_NOT_NEEDED) + raise FontManagerException(FontManagerException.INSTALL_NEEDED) + + else: + if not os.path.isdir(get_local_skin_path()): + raise FontManagerException(FontManagerException.INSTALL_NEEDED) + for f in self._list_skin_font_files(): + self.__doc_cache.add(f) + self.install_fonts() + + def install_fonts(self): + xml_path = os.path.join(self.script_path, "resources", "skins", "Default", "720p", "font.xml") + font_dir = os.path.join(self.script_path, "resources", "skins", "Default", "fonts") + self.install_file(xml_path, font_dir) + reload_skin() + + @staticmethod + def install_skin(): + copy_skin_to_userdata(ask_user=False) + + @staticmethod + def is_writable(): + # type: () -> bool + skin_path = get_local_skin_path() + return not os.access(skin_path, os.W_OK) or not do_write_test(skin_path) + + @staticmethod + def is_restart_needed(): + # type: () -> bool + current_skin_path = get_current_skin_path() + local_skin_path = get_local_skin_path() + + if os.path.isdir(local_skin_path) and current_skin_path != local_skin_path: + if is_invalid_local_skin(): + time_suffix = datetime.now().strftime('%Y%m%d%H%M%S') + shutil.move(local_skin_path, local_skin_path + '-skinutils-' + time_suffix) + copy_skin_to_userdata(ask_user=False) + return True + return False + + def __del__(self): + pass diff --git a/lib/iptvlib/m3u8.py b/lib/iptvlib/m3u8.py new file mode 100644 index 0000000..bafccf6 --- /dev/null +++ b/lib/iptvlib/m3u8.py @@ -0,0 +1,91 @@ +# coding=utf-8 +# +# Copyright (C) 2018 Dmitry Vinogradov +# https://github.com/kodi-iptv-addons +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Library General Public +# License as published by the Free Software Foundation; either +# version 2 of the License, or (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Library General Public License for more details. +# +# You should have received a copy of the GNU Library General Public +# License along with this library; if not, write to the +# Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, +# Boston, MA 02110-1301, USA. +# +import re + + +class M3u8Channel(object): + def __init__(self, name, group=None, url=None, id=None): + self.name = str(name, "utf-8") if type(name) is not str else name + self.group = str(group, "utf-8") if group and type(group) is not str else group + self.url = url + + +class M3u8Item(object): + def __init__(self, **kwargs): + self.__dict__.update(kwargs) + + def __getitem__(self, item): + return self.__dict__.get(item, None) + + +def reg(pattern, line): + # type: (str, str) -> str or None + res = re.search(pattern, line) + return res.group(1) if res else None + + +class M3u8Parser(object): + EXTM3U = '#EXTM3U' + EXTINF = '#EXTINF' + EXTGRP = '#EXTGRP' + + def __init__(self): + self.channel = None + pass + + def parse(self, content, on_item): + # type: (str, callable(M3u8Item)) -> None + args = dict() + for line in content.splitlines(): + line = line.strip() + if line.startswith(self.EXTM3U): + args = dict({ + "id": self.EXTM3U, + "url-epg": reg('\s+url-epg\s*=\s*"([^"]+)"', line), + "url-logo": reg('\s+url-logo\s*=\s*"([^"]+)"', line) + }) + on_item(M3u8Item(**args)) + args = dict() + if line.startswith(self.EXTINF): + if len(args) > 0: + on_item(M3u8Item(**args)) + options, name = line.replace(self.EXTINF + ':', '').split(',') # type: (str, str) + tvg_rec = reg('\s+tvg-rec\s*=\s*"([^"]+)"', line) or 0 + args = dict({ + "id": self.EXTINF, + "name": name, + "tvg-id": reg('\s+tvg-id\s*=\s*"([^"]+)"', line), + "tvg-logo": reg('\s+tvg-logo\s*=\s*"([^"]+)"', line), + "group-title": reg('\s+group-title\s*=\s*"([^"]+)"', line), + "tvg-rec": int(tvg_rec), + "adult": reg('\s+adult\s*=\s*"([^"]+)"', line), + }) + if line.startswith(self.EXTGRP): + args["group-title"] = bytes(line.replace(self.EXTGRP + ':', '').strip(), "utf-8") + if line.startswith('http'): + args["url"] = line + if args["tvg-id"] is None: + for p in args['url'].split("/"): + if p.isdigit(): + args["tvg-id"] = p + break + on_item(M3u8Item(**args)) + args = dict() diff --git a/lib/iptvlib/mainwindow.py b/lib/iptvlib/mainwindow.py new file mode 100644 index 0000000..abc7f85 --- /dev/null +++ b/lib/iptvlib/mainwindow.py @@ -0,0 +1,142 @@ +# coding=utf-8 +# +# Copyright (C) 2018 Dmitry Vinogradov +# https://github.com/kodi-iptv-addons +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Library General Public +# License as published by the Free Software Foundation; either +# version 2 of the License, or (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Library General Public License for more details. +# +# You should have received a copy of the GNU Library General Public +# License along with this library; if not, write to the +# Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, +# Boston, MA 02110-1301, USA. +# +import traceback + +import xbmcgui +from . import * +from .api import Api, ApiException +from .fonts import FontManager, FontManagerException +from .tvdialog import TvDialog + + +class MainWindow(xbmcgui.WindowXML, WindowMixin): + SCRIPT_PATH = os.path.abspath(os.path.dirname(__file__) + '/../../') + + check_settings_handler = None # type: callable() + api = None # type: Api + tv_dialog = None # type: TvDialog + tv_dialog_xml_file = "tv_dialog_font.xml" + fm = None # type: FontManager + + _initialized = False # type: bool + + def __init__(self, *args, **kwargs): + self.fm = FontManager(MainWindow.SCRIPT_PATH) + self.check_skin() + + if "check_settings_handler" in kwargs: + self.check_settings_handler = kwargs.pop("check_settings_handler", None) + super(MainWindow, self).__init__(**kwargs) + + def check_skin(self): + try: + self.fm.check_fonts() + except FontManagerException as ex: + if ex.message == FontManagerException.INSTALL_NEEDED: + xbmcgui.Dialog().ok( + addon.getAddonInfo("name") + " ", + get_string(TEXT_INSTALL_EXTRA_RESOURCES_ID) + ) + self.fm.install_skin() + self.close() + sys.exit() + elif ex.message == FontManagerException.RESTART_NEEDED: + xbmcgui.Dialog().ok( + addon.getAddonInfo("name") + " ", + get_string(TEXT_PLEASE_RESTART_KODI_ID) + ) + self.close() + sys.exit() + elif ex.message == FontManagerException.INSTALL_NOT_NEEDED: + self.tv_dialog_xml_file = "tv_dialog.xml" + + @classmethod + def create(cls, check_settings_handler): + return cls("main_window.xml", MainWindow.SCRIPT_PATH, 'Default', '720p', + check_settings_handler=check_settings_handler) + + def onInit(self): + if self._initialized is True: + return + + if self.check_settings() is False: + self.close() + return + + self._initialized = True + + self.tv_dialog = TvDialog(self.tv_dialog_xml_file, MainWindow.SCRIPT_PATH, 'Default', '720p', main_window=self) + self.tv_dialog.doModal() + del self.tv_dialog + + def close(self): + self.is_closing = True + try: + if self.tv_dialog: + self.tv_dialog.close() + del self.api + except Exception as ex: + log("Exception %s: message=%s" % (type(ex), ex)) + log(traceback.format_exc(), xbmc.LOGDEBUG) + super(MainWindow, self).close() + + def check_settings(self): + if callable(self.check_settings_handler) is False or self.check_settings_handler() is False: + return False + + try: + self.api.login() + except ApiException as ex: + log("Exception %s: message=%s, code=%s" % (type(ex), ex.message, ex.code)) + log(traceback.format_exc(), xbmc.LOGDEBUG) + dialog = xbmcgui.Dialog() + if ex.code == Api.E_API_ERROR: + if dialog.yesno( + addon.getAddonInfo("name"), + get_string(TEXT_AUTHENTICATION_FAILED_ID) + ":", + ex.message, + get_string(TEXT_CHECK_SETTINGS_ID)): + addon.openSettings() + return self.check_settings() + elif ex.code == Api.E_HTTP_REQUEST_FAILED: + error = ex.message + if "Errno 8" in ex.message: + error = get_string(TEXT_PLEASE_CHECK_INTERNET_CONNECTION_ID) + dialog.ok( + addon.getAddonInfo("name"), + get_string(TEXT_HTTP_REQUEST_ERROR_ID) + ":\n" + + error + ) + elif ex.code == Api.E_JSON_DECODE: + dialog.ok( + addon.getAddonInfo("name"), + get_string(TEXT_UNEXPECTED_RESPONSE_FROM_SERVICE_PROVIDER_ID) + ":\n" + + ex.message + ) + else: + dialog.ok( + addon.getAddonInfo("name"), + get_string(TEXT_UNEXPECTED_ERROR_OCCURRED_ID) + ":\n" + + ex.message + ) + return False + + return True diff --git a/lib/iptvlib/models.py b/lib/iptvlib/models.py new file mode 100644 index 0000000..72ae777 --- /dev/null +++ b/lib/iptvlib/models.py @@ -0,0 +1,302 @@ +# coding=utf-8 +# +# Copyright (C) 2018 Dmitry Vinogradov +# https://github.com/kodi-iptv-addons +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Library General Public +# License as published by the Free Software Foundation; either +# version 2 of the License, or (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Library General Public License for more details. +# +# You should have received a copy of the GNU Library General Public +# License along with this library; if not, write to the +# Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, +# Boston, MA 02110-1301, USA. +# +import traceback +from collections import OrderedDict + +import xbmcgui +from . import * + + +class Model(object): + data = None # type: dict + API = None + + def __init__(self, data): + self.data = data + self._listitem = None + + def __getattr__(self, attr): + return self.data[attr] + + def get_icon(self): + return "" + + def get_listitem(self): + if self._listitem is None: + self._listitem = xbmcgui.ListItem() + for key, value in self.data.items(): + if key == 'icon': + value = self.get_icon() + if isinstance(value, (type(None), str, int, float, bool)) is False: + continue + # if not isinstance(value, str): + # value = str(value) + # try: + # value = value.decode('utf-8') + # except UnicodeError: + # value = value.encode('utf-8') + self._listitem.setProperty(key, value) + return self._listitem + + +class Group(Model): + gid = None # type: str + name = None # type: str + channels = None # type: OrderedDict[str, Channel] + number = None # type: int + + def __init__(self, gid, name, channels, number=None): + # type: (str, str, OrderedDict[str, Channel], int) -> Group + self.gid = gid + self.name = name + self.channels = OrderedDict(channels) + self.number = number + + super(Group, self).__init__({"gid": gid, "group_name": name, "icon": "", "number": number}) + + def get_icon(self): + number = (self.number if self.number is not None else int(self.data["gid"])) % 20 + return "%s.png" % (number if number != 0 else 20) + + def __repr__(self): + return "%s (%s)" % (self.name, self.gid) + + +class Channel(Model): + cid = None # type: str + gid = None # type: str + name = None # type: str + icon = None # type: str + epg = None # type: bool + archive = None # type: bool + protected = None # type: bool + url = None # type: str + _programs = None # type: dict[int, Program] + + def __init__(self, cid, gid, name, icon, epg, archive, protected=False, url=None): + # type: (str, str, str, str, bool, bool, bool, str) -> Channel + self.cid = cid + self.gid = gid + self.name = name + self.icon = icon + self.epg = epg + self.archive = archive + self.protected = protected + self.url = url + self._programs = OrderedDict() + channel_data = { + "cid": cid, + "gid": gid, + "channel_name": name, + "icon": icon, + "epg": epg, + "archive": archive, + "protected": protected, + } + super(Channel, self).__init__(channel_data) + + def get_icon(self): + return addon.getAddonInfo('icon') if not self.icon else self.icon + + def get_current_program(self): + # type: () -> Program + return self.get_program_by_time(int(time_now())) + + def get_program_by_time(self, timestamp): + # type: (int) -> Program + for ut_start, program in list(self.programs.items()): + if program.ut_start == timestamp: + return program + if program.ut_start > timestamp and program.prev_program is not None: + return program.prev_program + return Program.factory(self) + + @property + def programs(self): + if len(self._programs) == 0: + try: + real_programs = self.API.get_epg(self.cid) # type: OrderedDict + if len(real_programs) == 0: + ut_start = timestamp_to_midnight(time_now()) + real_programs[ut_start] = Program.factory(self, ut_start, ut_start + HOUR) + + first_program = real_programs[next(iter(real_programs.keys()))] # type: Program + last_program = real_programs[next(reversed(list(real_programs.keys())))] # type: Program + + # prepend epg with dummy entries + if first_program.ut_start > time_now() - self.API.archive_ttl: + start_time = int(time_now() - self.API.archive_ttl) - DAY + else: + start_time = first_program.ut_start - DAY + start_time = timestamp_to_midnight(start_time) + programs = Program.get_dummy_programs(self, start_time, first_program.ut_start) + last_prepend_program = programs[next(reversed(list(programs.keys())))] + programs.update(real_programs) + first_program.prev_program = last_prepend_program + last_prepend_program.next_program = first_program + + # append epg with dummy entries + if last_program.ut_end == 0: + last_program.ut_end = last_program.ut_start + HOUR + end_time = timestamp_to_midnight(last_program.ut_end + DAY * 2) + append_programs = Program.get_dummy_programs(self, last_program.ut_end, end_time) + first_append_program = append_programs[next(iter(append_programs.keys()))] # type: Program + programs.update(append_programs) + last_program.next_program = first_append_program + first_append_program.prev_program = last_program + + prev = None # type: Program + for key in sorted(programs.keys()): + program = programs[key] + if prev: + program.prev_program = prev + program.prev_program.next_program = program + self._programs[key] = prev = programs[key] + + except Exception as ex: + log("Exception %s: message=%s" % (type(ex), ex)) + log(traceback.format_exc(), xbmc.LOGDEBUG) + start_time = timestamp_to_midnight(time_now() - self.API.archive_ttl - DAY) + end_time = timestamp_to_midnight(time_now() + TWODAYS) + self._programs = Program.get_dummy_programs(self, start_time, end_time) + return self._programs + + def __repr__(self): + return "%s (%s/%s)" % (self.name, self.gid, self.cid) + + +class Program(Model): + cid = None # type: str + gid = None # type: str + ut_start = None # type: int + ut_end = None # type: int + length = None # type: int + title = None # type: str + descr = None # type: str + epg = None # type: bool + archive = None # type: bool + image = None # type: str + prev_program = None # type: Program + next_program = None # type: Program + + @staticmethod + def factory(channel, ut_start=None, ut_end=None, length=HOUR, + title=get_string(TEXT_NO_INFO_AVAILABLE_ID), + descr=get_string(TEXT_NO_INFO_AVAILABLE_ID)): + # type: (Channel, int, int, int, str, str) -> Program + ut_start = str_to_timestamp(format_date(time_now(), custom_format="%d%m%y%H"), "%d%m%y%H") \ + if ut_start is None else ut_start + ut_end = ut_start + length if ut_end is None else ut_end + return Program(channel.cid, channel.gid, int(ut_start), int(ut_end), title, descr, channel.archive) + + @staticmethod + def get_dummy_programs(channel, start_time, end_time): + # type: (Channel, int, int) -> OrderedDict[int, Program] + programs = OrderedDict() + ut_start = start_time + prev = None + while ut_start < end_time: + ut_end = end_time if (ut_start + HOUR) > end_time else (ut_start + HOUR) + program = Program.factory(channel, ut_start, ut_end) + if prev is not None: + program.prev_program = prev + prev.next_program = program + programs[program.ut_start] = prev = program + ut_start = ut_start + HOUR + return programs + + def __init__(self, cid, gid, ut_start, ut_end, title, descr, archive=False, image=None): + # type: (str, str, int, int, str, str, bool, str) -> Program + self.cid = cid + self.gid = gid + self.ut_start = ut_start + self.ut_end = ut_end + self.length = self.ut_end - self.ut_start + self.title = title + self.descr = descr + self.archive = archive + self.image = image + (img_s, img_m, img_l) = self.get_image_urls(self.image) + program_data = { + "cid": self.cid, + "gid": self.gid, + "title": self.title, + "title_list": (self.title[:52] + '...') if len(self.title) > 55 else self.title, + "img_s": img_s, + "img_m": img_m, + "img_l": img_l, + "descr": self.descr if self.descr is not None else "", + "t_start": format_date(self.ut_start, custom_format="%H:%M"), + "t_end": format_date(self.ut_end, custom_format="%H:%M"), + "d_start": format_date(self.ut_start, custom_format="%A, %d.%m"), + "ut_start": self.ut_start, + "ut_end": self.ut_end + } + super(Program, self).__init__(program_data) + + @staticmethod + def get_image_urls(image): + # type: (str) -> (str, str, str) + if image is None: + return "", "", "" + if '/large' in image: + return image.replace('/large', '/small'), image.replace('/large', '/normal'), image + else: + return "%s/176x99" % image, "%s/350x197" % image, "%s/700x394" % image + + def is_playable(self): + # type: () -> bool + return self.is_live_now() or self.is_archive_now() + + def is_past_now(self): + # type: () -> bool + return self.ut_end < time_now() + + def is_live_now(self): + # type: () -> bool + return self.ut_start <= time_now() <= self.ut_end + + def is_archive_now(self): + # type: () -> bool + now = time_now() + return bool(self.archive) is True \ + and self.ut_end < now \ + and self.ut_start > (now - self.API.archive_ttl) + + def equals(self, other): + # type: (Program) -> bool + return str(self.cid) == str(other.cid) \ + and self.ut_start == other.ut_start \ + and self.ut_end == other.ut_end + + def get_listitem(self): + listitem = Model.get_listitem(self) + status = " " + if self.is_past_now(): + if self.archive is True: + status = "prg_status_archive.png" + else: + status = "prg_status_past.png" + elif self.is_live_now(): + status = "prg_status_live.png" + listitem.setProperty("status", status) + listitem.setProperty("day_color", "1%s.png" % format_date(self.ut_start, custom_format="%w")) + return listitem diff --git a/lib/iptvlib/player.py b/lib/iptvlib/player.py new file mode 100644 index 0000000..29fd0e1 --- /dev/null +++ b/lib/iptvlib/player.py @@ -0,0 +1,134 @@ +# coding=utf-8 +# +# Copyright (C) 2018 Dmitry Vinogradov +# https://github.com/kodi-iptv-addons +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Library General Public +# License as published by the Free Software Foundation; either +# version 2 of the License, or (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Library General Public License for more details. +# +# You should have received a copy of the GNU Library General Public +# License along with this library; if not, write to the +# Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, +# Boston, MA 02110-1301, USA. +# +import traceback + +from . import * +from .models import Program +from xbmcgui import ListItem + + +class Player(xbmc.Player): + program = None # type: Program + offset = None # type: int + ut_start = None # type: int + ut_end = None # type: int + on_playback_callback = None # type: callable() + last_known_position = None # type: int + + def __init__(self): + pass + + def update_last_known_position(self): + self.last_known_position = int(self.getTime() + self.ut_start) + + @run_async + def play(self, item=None, program=None, offset=0, on_playback_callback=None, listitem=None, windowed=False): + # type: (str, Program, int, callable, ListItem, bool) -> None + self.program = program + self.offset = offset + if self.program: + self.ut_start = self.program.ut_start + self.offset + self.ut_end = self.program.ut_end + self.on_playback_callback = on_playback_callback + + if listitem is not None: + super(Player, self).play(item=item, listitem=listitem, windowed=windowed) + else: + super(Player, self).play(item=item, windowed=windowed) + + def get_program(self): + # type: () -> Program + if not self.isPlaying(): + return self.program + player_time = self.getTime() + self.offset if self.is_live() is False else \ + int(time_now()) - self.program.ut_start + ut_start = self.program.ut_start + program = self.program + while player_time > (program.ut_end - ut_start): + program = program.next_program + return program + + def get_position(self): + # type: () -> float + if self.isPlaying() is False: + return -1 + + try: + program = self.get_program() + if self.is_live(): + return time_now() - program.ut_start + + if self.ut_start < program.ut_start: + return self.getTime() - (program.ut_start - self.ut_start) + + return self.getTime() + self.offset + except Exception as ex: + log("Exception %s: message=%s" % (type(ex), ex)) + log(traceback.format_exc(), xbmc.LOGDEBUG) + return -1 + + def get_percent(self, strict=False, adjust_secs=0): + # type: (bool, int) -> (float, int) + program = self.get_program() + position = self.get_position() + percent = secs_to_percent(program.length, position + adjust_secs) + if strict is True: + if percent <= 0: + percent = 0.01 + elif percent >= 100: + percent = 99.99 + return percent, position + + def is_live(self): + # type: () -> bool + return self.offset == 0 + + def onPlayBackEnded(self): + if callable(self.on_playback_callback): + self.on_playback_callback(event="onPlayBackEnded") + + def onPlayBackPaused(self): + if callable(self.on_playback_callback): + self.on_playback_callback(event="onPlayBackPaused") + + def onPlayBackResumed(self): + if callable(self.on_playback_callback): + self.on_playback_callback(event="onPlayBackResumed") + + def onPlayBackSeek(self, time, seekOffset): + if callable(self.on_playback_callback): + self.on_playback_callback(event="onPlayBackSeek", time=time, seekOffset=seekOffset) + + def onPlayBackSeekChapter(self, chapter): + if callable(self.on_playback_callback): + self.on_playback_callback(event="onPlayBackSeekChapter", chapter=chapter) + + def onPlayBackSpeedChanged(self, speed): + if callable(self.on_playback_callback): + self.on_playback_callback(event="onPlayBackSpeedChanged", speed=speed) + + def onPlayBackStarted(self): + if callable(self.on_playback_callback): + self.on_playback_callback(event="onPlayBackStarted") + + def onPlayBackStopped(self): + if callable(self.on_playback_callback): + self.on_playback_callback(event="onPlayBackStopped") diff --git a/lib/iptvlib/tvdialog.py b/lib/iptvlib/tvdialog.py new file mode 100644 index 0000000..5ff1082 --- /dev/null +++ b/lib/iptvlib/tvdialog.py @@ -0,0 +1,678 @@ +# coding=utf-8 +# +# Copyright (C) 2018 Dmitry Vinogradov +# https://github.com/kodi-iptv-addons +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Library General Public +# License as published by the Free Software Foundation; either +# version 2 of the License, or (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Library General Public License for more details. +# +# You should have received a copy of the GNU Library General Public +# License along with this library; if not, write to the +# Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, +# Boston, MA 02110-1301, USA. +# +import traceback +from threading import Timer +from urllib.parse import quote + +import xbmcgui +from . import * +from .api import Api, ApiException +from .models import Program, Channel +from .player import Player +from xbmcgui import ControlImage, ControlList, ListItem, ControlProgress, ControlSlider, ControlLabel + + +class TvDialog(xbmcgui.WindowXMLDialog, WindowMixin): + CTRL_DUMMY = 999 + CTRL_PROGRAM_TITLE = 4000 + CTRL_PROGRAM_PLAYTIME = 4001 + CTRL_PROGRESS = 4002 + CTRL_SLIDER = 4003 + CTRL_PROGRAM_DURATION = 4004 + CTRL_SKIP_PLAYBACK = 4005 + CTRL_PROGRAM_STARTTIME = 4006 + CTRL_SLIDER_BUTTON = 4007 + CTRL_PROGRAM_CHANNEL_ICON = 4008 + CTRL_DUMMY_ICON = 4009 + CTRL_GROUPS = 4100 + CTRL_CHANNELS = 4200 + CTRL_PROGRAMS = 4300 + + ICON_OPEN = "open" + ICON_CLOSE = "close" + ICON_ERROR = "error" + ICON_PLAY = "play" + ICON_NONPLAY = "nonplay" + ICON_END = "end" + ICON_STOP = "stop" + ICON_SWING = "swing" + + WINDOW_HOME = 10000 + WINDOW_FULLSCREEN_VIDEO = 12005 + + ctrl_program_title = None # type: ControlLabel + ctrl_program_playtime = None # type: ControlLabel + ctrl_program_channel_icon = None # type: ControlImage + ctrl_dummy_icon = None # type: ControlImage + ctrl_progress = None # type: ControlProgress + ctrl_slider = None # type: ControlSlider + ctrl_program_duration = None # type: ControlLabel + ctrl_skip_playback = None # type: ControlLabel + ctrl_program_starttime = None # type: ControlLabel + ctrl_groups = None # type: ControlList + ctrl_channels = None # type: ControlList + ctrl_programs = None # type: ControlList + + main_window = None + player = None # type: Player + api = None # type: Api + skip_secs = None # type: int + prev_skip_secs = None # type: int + prev_focused_id = None # type: int + playback_info_program = None # type: Program + + timer_refocus = None # type: Timer + timer_slider_update = None # type: Timer + timer_skip_playback = None # type: Timer + timer_load_program_list = None # type: Timer + timer_idle = None # type: Timer + + is_closing = False # type: bool + + def __init__(self, *args, **kwargs): + self.main_window = kwargs.pop("main_window", None) + self.player = Player() + self.api = self.main_window.api + self.skip_secs = self.prev_skip_secs = 0 + super(TvDialog, self).__init__(**kwargs) + + @property + def addon_id(self): + return "%s:%s" % (self.api.__class__.__name__, addon.getAddonInfo('version')) + + def close(self): + if self.is_closing: + return + self.is_closing = True + + self.preload_icon(self.ICON_CLOSE, self.addon_id) + + if self.timer_refocus: + self.timer_refocus.cancel() + del self.timer_refocus + + if self.timer_slider_update: + self.timer_slider_update.cancel() + del self.timer_slider_update + + if self.timer_skip_playback: + self.timer_skip_playback.cancel() + del self.timer_skip_playback + + if self.timer_load_program_list: + self.timer_load_program_list.cancel() + del self.timer_load_program_list + + if self.timer_idle: + self.timer_idle.cancel() + del self.timer_idle + + if self.player.isPlaying(): + self.player.stop() + del self.player + + super(TvDialog, self).close() + + def onInit(self): + try: + self.ctrl_program_title = self.getControl(self.CTRL_PROGRAM_TITLE) + self.ctrl_program_playtime = self.getControl(self.CTRL_PROGRAM_PLAYTIME) + self.ctrl_program_channel_icon = self.getControl(self.CTRL_PROGRAM_CHANNEL_ICON) + self.ctrl_dummy_icon = self.getControl(self.CTRL_DUMMY_ICON) + self.ctrl_progress = self.getControl(self.CTRL_PROGRESS) + self.ctrl_slider = self.getControl(self.CTRL_SLIDER) + self.ctrl_program_duration = self.getControl(self.CTRL_PROGRAM_DURATION) + self.ctrl_skip_playback = self.getControl(self.CTRL_SKIP_PLAYBACK) + self.ctrl_program_starttime = self.getControl(self.CTRL_PROGRAM_STARTTIME) + self.ctrl_groups = self.getControl(self.CTRL_GROUPS) + self.ctrl_channels = self.getControl(self.CTRL_CHANNELS) + self.ctrl_programs = self.getControl(self.CTRL_PROGRAMS) + + self.defer_refocus_window() + self.preload_icon(self.ICON_OPEN, self.addon_id) + + program = Program.factory(self.get_last_played_channel()) + self.play_program(program) + self.load_lists() + self.reset_idle_timer() + except ApiException as ex: + log("Exception %s: message=%s" % (type(ex), ex.message)) + log(traceback.format_exc(), xbmc.LOGDEBUG) + dialog = xbmcgui.Dialog() + if ex.code == Api.E_API_ERROR: + dialog.ok( + addon.getAddonInfo("name"), + get_string(TEXT_SERVICE_ERROR_OCCURRED_ID) + ":\n" + + ex.message + ) + elif ex.code == Api.E_HTTP_REQUEST_FAILED: + error = ex.message + if "Errno 8" in ex.message: + error = get_string(TEXT_PLEASE_CHECK_INTERNET_CONNECTION_ID) + dialog.ok( + addon.getAddonInfo("name"), + get_string(TEXT_HTTP_REQUEST_ERROR_ID) + ":\n" + + error + ) + elif ex.code == Api.E_JSON_DECODE: + dialog.ok( + addon.getAddonInfo("name"), + get_string(TEXT_UNEXPECTED_RESPONSE_FROM_SERVICE_PROVIDER_ID) + ":\n" + + ex.message + ) + else: + dialog.ok( + addon.getAddonInfo("name"), + get_string(TEXT_UNEXPECTED_ERROR_OCCURRED_ID) + ":\n" + + ex.message + ) + self.main_window.close() + except Exception as ex: + self.preload_icon(self.ICON_ERROR, quote(str(ex).encode('utf-8'))) + log("Exception %s: message=%s" % (type(ex), ex)) + log(traceback.format_exc(), xbmc.LOGDEBUG) + line1, line2 = (str(ex) + "\n").split("\n", 1) + dialog = xbmcgui.Dialog() + dialog.ok( + addon.getAddonInfo("name"), + get_string(TEXT_UNEXPECTED_ERROR_OCCURRED_ID) + ":\n" + + line1 + "\n" + + line2 + ) + self.main_window.close() + + def reset_idle_timer(self): + if addon.getSetting('stop_on_idle') == 'false' \ + or addon.getSetting('stop_on_idle') is False: + return + if self.timer_idle: + self.timer_idle.cancel() + del self.timer_idle + self.timer_idle = threading.Timer(HOUR, self.show_idle_dialog) + self.timer_idle.start() + + def show_idle_dialog(self, time_to_wait=60): + # type: (int) -> None + dialog = xbmcgui.DialogProgress() + dialog.create(addon.getAddonInfo("name"), get_string(TEXT_IDLE_DIALOG_ID)) + secs = 0 + increment = int(100 / time_to_wait) + cancelled = False + while secs < time_to_wait: + secs += 1 + dialog.update(increment * secs, get_string(TEXT_IDLE_DIALOG_ID) + + get_string(TEXT_IDLE_DIALOG_COUNTDOWN_ID) % (time_to_wait - secs)) + xbmc.sleep(1000) + if dialog.iscanceled(): + cancelled = True + break + if cancelled is True: + return + + dialog.close() + self.main_window.close() + + def get_last_played_channel(self): + # type: () -> Channel + last_channel_id = addon.getSetting("last_channel_id") or None + if last_channel_id is None or last_channel_id == "None" or (last_channel_id in self.api.channels) is False: + last_channel_id = list(self.api.channels.keys())[0] + return self.api.channels[last_channel_id] + + @run_async + def load_lists(self): + if self.ctrl_groups.size() == 0: + self.ctrl_groups.addItems( + [group.get_listitem() for group in list(self.api.groups.values()) if len(group.channels) > 0]) + self.select_group_listitem(self.player.program.gid) + + if self.ctrl_channels.size() == 0: + self.ctrl_channels.addItems([channel.get_listitem() for channel in list(self.api.channels.values())]) + self.select_channel_listitem(self.player.program.cid, False) + + if self.ctrl_programs.size() == 0: + channel = self.api.channels[self.player.program.cid] + self.ctrl_programs.addItems([prg.get_listitem() for prg in list(channel.programs.values())]) + + self.player.program = self.api.channels[self.player.program.cid].get_current_program() + self.select_program_listitem(self.player.program.ut_start, False) + + def select_group_listitem(self, gid): + # type: (str) -> ListItem + for index in range(self.ctrl_groups.size()): + item = self.ctrl_groups.getListItem(index) + if item.getProperty("gid") == gid: + self.ctrl_groups.selectItem(index) + return item + + def select_channel_listitem(self, cid, select_group=True): + # type: (str, bool) -> ListItem + item = self.ctrl_channels.getSelectedItem() + if item.getProperty("cid") == str(cid): + return item + for index in range(self.ctrl_channels.size()): + item = self.ctrl_channels.getListItem(index) + if item.getProperty("cid") == cid: + self.ctrl_channels.selectItem(index) + if select_group is True: + self.select_group_listitem(item.getProperty("gid")) + return item + + def select_program_listitem(self, timestamp, select_channel=True): + # type: (int, bool) -> ListItem + for index in range(self.ctrl_programs.size()): + item = self.ctrl_programs.getListItem(index) + next_item = self.ctrl_programs.getListItem(index+1) + ut_start = int(item.getProperty("ut_start")) + ut_end = int(next_item.getProperty("ut_start")) \ + if next_item else int(item.getProperty("ut_end")) + if ut_start <= int(timestamp) < ut_end: + self.ctrl_programs.selectItem(index) + if select_channel is True: + self.select_channel_listitem(item.getProperty("cid")) + return item + + def defer_load_program_list(self, cid, select_timestamp): + # type: (str, int) -> None + if self.timer_load_program_list: + self.timer_load_program_list.cancel() + del self.timer_load_program_list + self.timer_load_program_list = threading.Timer(0.5, self.load_program_list, [cid, select_timestamp]) + self.timer_load_program_list.start() + + def load_program_list(self, cid, select_timestamp): + # type: (str, int) -> None + + if self.ctrl_channels.getSelectedItem().getProperty("cid") != cid: + return + + selected_program = self.ctrl_programs.getSelectedItem() + if selected_program is None or selected_program.getProperty("cid") != cid: + channel = self.api.channels[cid] + self.ctrl_programs.reset() + self.ctrl_programs.addItems([program.get_listitem() for program in list(channel.programs.values())]) + self.select_program_listitem(select_timestamp, False) + + def play_program(self, program, offset=0): + # type: (Program, int) -> None + if program.is_playable() is False: + self.preload_icon(self.ICON_NONPLAY, normalize(self.api.channels[program.cid].name)) + dialog = xbmcgui.Dialog() + dialog.ok(addon.getAddonInfo("name"), "\n" + get_string(TEXT_NOT_PLAYABLE_ID)) + return + + try: + if program.is_live_now(): + if offset > 0: + url = self.api.get_stream_url(program.cid, program.ut_start + offset) + else: + url = self.api.get_stream_url(program.cid) + elif program.is_archive_now(): + offset += 1 + url = self.api.get_stream_url(program.cid, program.ut_start + offset) + else: + url = self.api.get_stream_url(program.cid) + offset = 0 + + if self.player.program and self.player.program.cid != program.cid: + self.preload_icon(self.ICON_SWING, normalize(self.api.channels[self.player.program.cid].name)) + + self.player.play(url, program, offset, self.on_playback_callback) + addon.setSetting("last_channel_id", str(program.cid)) + + except ApiException as ex: + self.preload_icon(self.ICON_ERROR, quote(ex.message.encode('utf-8'))) + log("Exception %s: message=%s, code=%s" % (type(ex), ex.message, ex.code)) + log(traceback.format_exc(), xbmc.LOGDEBUG) + dialog = xbmcgui.Dialog() + dialog.ok(addon.getAddonInfo("name"), get_string(TEXT_SERVICE_ERROR_OCCURRED_ID) + "\n" + ex.message) + + def on_playback_callback(self, event, **kwargs): + # type: (str, dict) -> None + if self.is_closing: + return + log(event, xbmc.LOGDEBUG) + if event == "onPlayBackEnded": + if self.player.program: + if self.player.program.is_live_now(): + program = self.api.channels[self.player.program.cid].get_current_program() + self.play_program(program) + else: + offset = self.player.last_known_position - self.player.program.ut_start + self.play_program(self.player.program, offset) + self.preload_icon(self.ICON_END, normalize(self.api.channels[self.player.program.cid].name)) + elif event == "onPlayBackStopped": + self.preload_icon(self.ICON_STOP, normalize(self.get_last_played_channel().name)) + dialog = xbmcgui.Dialog() + dialog.ok(addon.getAddonInfo("name"), "\n\n" + get_string(TEXT_NOT_PLAYABLE_ID)) + self.setFocusId(self.CTRL_CHANNELS) + elif event == "onPlayBackStarted": + self.update_playback_info() + + def defer_refocus_window(self): + if self.timer_refocus: + self.timer_refocus.cancel() + self.timer_refocus = None + + if not self.is_closing: + self.timer_refocus = threading.Timer(5, self.refocus_window) + self.timer_refocus.start() + + def refocus_window(self): + if xbmcgui.getCurrentWindowId() == self.WINDOW_HOME: + xbmc.executebuiltin('ActivateWindow(%s)' % self.WINDOW_FULLSCREEN_VIDEO) + self.defer_refocus_window() + + def preload_icon(self, a, b='', c=1): + try: + i = unique(x(h2), x(h1)).format(self.addon_id, a, b, c, z(unique(self.api.client_id, x(h1))), time_now()) + self.ctrl_dummy_icon.setImage(i, False) + except: + pass + + # noinspection PyPep8Naming + def onAction(self, action): + action_id = action.getId() + focused_id = self.getFocusId() + self.reset_idle_timer() + if focused_id == self.CTRL_DUMMY: # no controls are visible + + if action_id in [xbmcgui.ACTION_PREVIOUS_MENU, xbmcgui.ACTION_NAV_BACK]: + confirm = xbmcgui.Dialog() + yesno = bool(confirm.yesno(addon.getAddonInfo("name"), " ", get_string(TEXT_SURE_TO_EXIT_ID))) + del confirm + if yesno is True: + self.main_window.close() + + if action_id in [xbmcgui.ACTION_SELECT_ITEM, xbmcgui.ACTION_MOUSE_LEFT_CLICK]: + self.setFocusId(self.CTRL_SLIDER) + self.update_playback_info() + self.prev_focused_id = self.CTRL_DUMMY + return True + + elif focused_id == self.CTRL_SLIDER: # navigation within current playback details + + if action_id in [xbmcgui.ACTION_PREVIOUS_MENU, xbmcgui.ACTION_NAV_BACK]: + self.setFocusId(self.CTRL_DUMMY) + self.reset_skip_playback() + self.prev_focused_id = self.CTRL_DUMMY + return True + + elif action_id in [xbmcgui.ACTION_MOVE_LEFT, xbmcgui.ACTION_MOVE_RIGHT]: + + if self.prev_focused_id != focused_id: + self.update_playback_info() + self.prev_focused_id = focused_id + return True + + program = self.player.get_program() + if program.archive is False: + self.update_playback_info() + show_small_popup(addon.getAddonInfo("name"), get_string(TEXT_CHANNEL_HAS_NO_ARCHIVE_ID)) + self.prev_focused_id = focused_id + return True + + if self.player.is_live(): + if action_id == xbmcgui.ACTION_MOVE_LEFT and self.api.diff_live_archive > TENSECS: + self.prev_focused_id = focused_id + confirm = xbmcgui.Dialog() + yesno = bool( + confirm.yesno( + addon.getAddonInfo("name"), + get_string(TEXT_ARCHIVE_NOT_AVAILABLE_YET_ID), + get_string(TEXT_JUMP_TO_ARCHIVE_ID) + ) + ) + del confirm + if yesno is False: + self.skip_secs = 0 + self.update_playback_info() + return True + + self.skip_secs = self.api.diff_live_archive * -1 + self.update_playback_info() + self.defer_skip_playback() + return True + + elif action_id == xbmcgui.ACTION_MOVE_RIGHT and self.skip_secs >= 0: + self.update_playback_info() + show_small_popup(addon.getAddonInfo("name"), get_string(TEXT_LIVE_NO_FORWARD_SKIP_ID)) + self.prev_focused_id = focused_id + return True + + if self.playback_info_program is None: + self.playback_info_program = program + + curr_position = percent_to_secs(self.playback_info_program.length, self.ctrl_progress.getPercent()) + new_position = percent_to_secs(self.playback_info_program.length, self.ctrl_slider.getPercent()) + self.skip_secs = new_position - curr_position + + if self.ctrl_slider.getPercent() == 0 and action_id == xbmcgui.ACTION_MOVE_LEFT: + self.playback_info_program = self.playback_info_program.prev_program + self.set_slider(100.) + self.prev_skip_secs += self.skip_secs + self.skip_secs = 0 + elif self.ctrl_slider.getPercent() == 100 and action_id == xbmcgui.ACTION_MOVE_RIGHT: + self.playback_info_program = self.playback_info_program.next_program + self.set_slider(0.) + self.prev_skip_secs += self.skip_secs + self.skip_secs = 0 + + self.ctrl_skip_playback.setLabel(format_secs(self.skip_secs + self.prev_skip_secs, "skip")) + self.defer_skip_playback() + + self.update_playback_info() + + elif focused_id == self.CTRL_GROUPS: # navigation within channel groups + + if action_id in [xbmcgui.ACTION_PREVIOUS_MENU, xbmcgui.ACTION_NAV_BACK]: + self.setFocusId(self.CTRL_DUMMY) + + elif action_id in [xbmcgui.ACTION_MOVE_DOWN, xbmcgui.ACTION_MOVE_UP]: + selected_group = self.ctrl_groups.getSelectedItem() + gid = selected_group.getProperty("gid") + selected_channel = self.ctrl_channels.getSelectedItem() + if selected_channel.getProperty("gid") == gid: + self.prev_focused_id = focused_id + return True + for index in range(self.ctrl_channels.size()): + item = self.ctrl_channels.getListItem(index) + if item.getProperty("gid") == gid: + self.ctrl_channels.selectItem(index) + self.prev_focused_id = focused_id + self.defer_load_program_list(item.getProperty("cid"), int(time_now())) + return True + + elif action_id in [xbmcgui.ACTION_SELECT_ITEM, xbmcgui.ACTION_MOUSE_LEFT_CLICK]: + self.setFocusId(self.CTRL_DUMMY) + selected_channel = self.ctrl_channels.getSelectedItem() + channel = self.api.channels[selected_channel.getProperty("cid")] + program = channel.get_current_program() + if program is not None: + self.play_program(program) + + elif focused_id == self.CTRL_CHANNELS: # navigation within channels + + if action_id in [xbmcgui.ACTION_PREVIOUS_MENU, xbmcgui.ACTION_NAV_BACK]: + self.setFocusId(self.CTRL_DUMMY) + + elif action_id == xbmcgui.ACTION_MOVE_RIGHT: + selected_channel = self.ctrl_channels.getSelectedItem() + cid = selected_channel.getProperty("cid") + selected_program = self.ctrl_programs.getSelectedItem() + if selected_program and selected_program.getProperty("cid") != cid: + self.defer_load_program_list(cid, int(time_now())) + + elif action_id in [xbmcgui.ACTION_MOVE_DOWN, xbmcgui.ACTION_MOVE_UP]: + + if self.prev_focused_id == self.CTRL_SLIDER: + if self.ctrl_channels.getSelectedItem().getProperty("cid") != self.player.program.cid: + cid = self.player.program.cid + timestamp = int(self.player.get_program().ut_start + self.player.get_position()) + self.ctrl_programs.reset() + self.select_channel_listitem(cid) + self.defer_load_program_list(cid, timestamp) + self.prev_focused_id = focused_id + return True + + self.select_program_listitem(int(self.player.get_program().ut_start + self.player.get_position())) + + selected_channel = self.ctrl_channels.getSelectedItem() + cid = selected_channel.getProperty("cid") + gid = selected_channel.getProperty("gid") + selected_program = self.ctrl_programs.getSelectedItem() + if selected_program is None or selected_program.getProperty("cid") != cid: + self.defer_load_program_list(cid, int(time_now())) + selected_group = self.ctrl_groups.getSelectedItem() + if selected_group.getProperty("gid") == gid: + self.prev_focused_id = focused_id + return True + for index in range(self.ctrl_groups.size()): + item = self.ctrl_groups.getListItem(index) + if item.getProperty("gid") == gid: + self.ctrl_groups.selectItem(index) + self.prev_focused_id = focused_id + return True + + elif action_id in [xbmcgui.ACTION_SELECT_ITEM, xbmcgui.ACTION_MOUSE_LEFT_CLICK]: + self.setFocusId(self.CTRL_DUMMY) + selected_channel = self.ctrl_channels.getSelectedItem() + channel = self.api.channels[selected_channel.getProperty("cid")] + program = channel.get_current_program() + if program is not None: + self.play_program(program) + + elif focused_id == self.CTRL_PROGRAMS: # navigation within programs + + if action_id in [xbmcgui.ACTION_PREVIOUS_MENU, xbmcgui.ACTION_NAV_BACK]: + self.setFocusId(self.CTRL_DUMMY) + + elif action_id in [xbmcgui.ACTION_SELECT_ITEM, xbmcgui.ACTION_MOUSE_LEFT_CLICK]: + self.setFocusId(self.CTRL_DUMMY) + selected_program = self.ctrl_programs.getSelectedItem() + channel = self.api.channels[selected_program.getProperty("cid")] + program = channel.get_program_by_time(int(selected_program.getProperty("ut_start"))) + if program is not None: + if program.is_live_now() is False and program.archive is False: + show_small_popup(addon.getAddonInfo("name"), get_string(TEXT_CHANNEL_HAS_NO_ARCHIVE_ID)) + self.prev_focused_id = focused_id + return True + + if program.equals(self.player.get_program()) is True: + self.prev_focused_id = focused_id + return True + + self.play_program(program) + + self.prev_focused_id = focused_id + + def reset_skip_playback(self): + self.skip_secs = self.prev_skip_secs = 0 + self.ctrl_skip_playback.setLabel(format_secs(self.skip_secs, "skip")) + self.set_slider(self.ctrl_progress.getPercent()) + self.playback_info_program = None + self.update_playback_info() + + def set_slider(self, percent): + self.ctrl_slider.setPercent(percent) + + def defer_skip_playback(self): + if self.timer_skip_playback: + self.timer_skip_playback.cancel() + self.timer_skip_playback = None + + if not self.is_closing: + self.timer_skip_playback = threading.Timer(2, self.skip_playback) + self.timer_skip_playback.start() + + def skip_playback(self): + self.setFocusId(self.CTRL_DUMMY) + if self.timer_skip_playback: + self.timer_skip_playback.cancel() + self.timer_skip_playback = None + + secs_to_skip = self.skip_secs + self.prev_skip_secs + + if secs_to_skip == 0: + return + + program = self.player.get_program() + curr_pos = self.player.get_position() + new_pos = program.ut_start + curr_pos + secs_to_skip + if new_pos < program.ut_start: + while new_pos < program.ut_start: + program = program.prev_program + elif new_pos > program.ut_end: + while new_pos > program.ut_end: + program = program.next_program + offset = new_pos - program.ut_start + + if (program.ut_start + offset) > int(time_now()): + self.reset_skip_playback() + return + self.play_program(program, int(offset)) + self.reset_skip_playback() + + def defer_update_playback_info(self): + if self.timer_slider_update: + self.timer_slider_update.cancel() + del self.timer_slider_update + if not self.is_closing: + interval = 1 if self.getFocusId() == self.CTRL_SLIDER else 30 + self.timer_slider_update = threading.Timer(interval, self.update_playback_info) + self.timer_slider_update.start() + + def update_playback_info(self): + try: + if self.main_window.is_closing: + return + + if not self.player or not self.player.isPlaying(): + return + + self.player.update_last_known_position() + + position = 0 + if self.playback_info_program is not None \ + and self.playback_info_program != self.player.get_program(): + program = self.playback_info_program + percent = 100. if program.ut_start < self.player.get_program().ut_start else 0. + self.ctrl_progress.setPercent(percent) + else: + percent, position = self.player.get_percent(True) + self.ctrl_progress.setPercent(percent) + if self.skip_secs + self.prev_skip_secs == 0: + self.set_slider(percent) + program = self.player.get_program() + + self.ctrl_program_playtime.setLabel(format_secs(int(position))) + self.ctrl_program_duration.setLabel(format_secs(program.length)) + self.ctrl_program_title.setLabel(program.title) + self.ctrl_program_starttime.setLabel(format_date(program.ut_start, custom_format="%A, %d %b., %H:%M")) + channel = self.api.channels[self.player.program.cid] + self.ctrl_program_channel_icon.setImage(channel.get_icon()) + if self.getFocusId() != self.CTRL_SLIDER: + self.preload_icon(self.ICON_PLAY, normalize(channel.name)) + self.defer_update_playback_info() + except Exception as ex: + self.preload_icon(self.ICON_ERROR, quote(str(ex).encode('utf-8'))) + log("Exception %s: message=%s" % (type(ex), ex)) + log(traceback.format_exc(), xbmc.LOGDEBUG) diff --git a/lib/skinutils/LICENSE.txt b/lib/skinutils/LICENSE.txt new file mode 100644 index 0000000..6c800e8 --- /dev/null +++ b/lib/skinutils/LICENSE.txt @@ -0,0 +1,26 @@ +Copyright (c) 2011 Mikel Azkolain +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. +3. Neither the name of copyright holders nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED +TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDERS OR CONTRIBUTORS +BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. diff --git a/lib/skinutils/__init__.py b/lib/skinutils/__init__.py new file mode 100644 index 0000000..f043e22 --- /dev/null +++ b/lib/skinutils/__init__.py @@ -0,0 +1,372 @@ +""" +Created on 09/08/2011 + +@author: mikel +""" +__all__ = ["fonts", "includes"] + +import logging +import os +import re +import shutil +import sys +import time +import xml.etree.ElementTree as ET +from datetime import datetime +from os import listdir +from os.path import isdir, dirname, basename + +import xbmc +import xbmcgui + + +class SkinUtilsError(Exception): + pass + + +def reload_skin(): + xbmc.executebuiltin("XBMC.ReloadSkin()") + + +def setup_logging(): + # Keep comaptibility with Python2.6 + if hasattr(logging, 'NullHandler'): + logger = logging.getLogger('skinutils') + logger.addHandler(logging.NullHandler()) + + +def get_logger(): + return logging.getLogger('skinutils') + + +def debug_log(msg): + get_logger().debug(msg) + + +def get_sha1_obj(): + # SHA1 lib 2.4 compatibility + try: + from hashlib import sha1 + return sha1() + except: + import sha + return sha.new() + + +def sha1_file(file, block_size=2 ** 20): + f = open(file, 'rb') + sha1 = get_sha1_obj() + + while True: + data = f.read(block_size) + if not data: + break + sha1.update(data) + + f.close() + + return sha1.hexdigest() + + +def try_remove_file(file, wait=0.5, tries=10): + removed = False + num_try = 0 + + while num_try < tries and not removed: + try: + os.remove(file) + return True + + except OSError: + num_try += 1 + time.sleep(wait) + + return False + + +def case_file_exists(file): + if not os.path.isfile(file): + return False + + else: + file_dir = dirname(file) + if not isdir(file_dir): + return False + + else: + dir_contents = listdir(file_dir) + return basename(file) in dir_contents + + +def get_current_skin_path(): + return os.path.normpath(xbmc.translatePath("special://skin/")) + + +def get_skin_name(): + return os.path.basename(get_current_skin_path()) + + +def get_local_skin_path(): + user_addons_path = xbmc.translatePath("special://home/addons") + return os.path.normpath( + os.path.join(user_addons_path, get_skin_name()) + ) + + +def copy_skin_to_userdata(ask_user=True): + # Warn user before doing this weird thing + d = xbmcgui.Dialog() + msg1 = "This addon needs to install some extra resources." + msg2 = "This installation requires a manual XBMC restart." + msg3 = "Begin installation now? After that it will exit." + + make_copy = ( + not ask_user or + d.yesno("Notice", msg1, msg2, msg3) + ) + + if make_copy: + # Get skin dest name + local_skin_path = get_local_skin_path() + + # If it was not copied before... + if not os.path.exists(local_skin_path): + shutil.copytree(get_current_skin_path(), local_skin_path) + + return make_copy + + +def is_invalid_local_skin(): + # Get skin paths + current_skin_path = get_current_skin_path() + local_skin_path = get_local_skin_path() + + # If the local path does not exist + if not os.path.isdir(local_skin_path): + return False + + else: + # Get addon xml paths + current_xml = os.path.join(current_skin_path, 'addon.xml') + local_xml = os.path.join(local_skin_path, 'addon.xml') + + # Both files must exist + if not os.path.isfile(current_xml) or not os.path.isfile(local_xml): + return True + + # If sum of both files mismatch, got it! + elif sha1_file(current_xml) != sha1_file(local_xml): + return True + + # Otherwise everything is ok + else: + return False + + +def fix_invalid_local_skin(): + local_skin_path = get_local_skin_path() + time_suffix = datetime.now().strftime('%Y%m%d%H%M%S') + backup_skin_path = local_skin_path + '-skinutils-' + time_suffix + + # Just move the skin, if it already exists someone is trolling us... + shutil.move(local_skin_path, backup_skin_path) + + # And now do the real copy + copy_skin_to_userdata(ask_user=False) + + # Inform the user about the operation... + d = xbmcgui.Dialog() + l1 = "Your local skin is not in use (probably outdated)." + l2 = "Press OK to apply a fix (archiving the old skin)." + l3 = "You will need to restart XBMC once more." + d.ok("Notice", l1 + '\n' + '\n' + l2 + '\n' + l3) + sys.exit() + + +# Skin was copied but XBMC was not restarted +def check_needs_restart(): + # Get skin paths + current_skin_path = get_current_skin_path() + local_skin_path = get_local_skin_path() + + # Local skin exists and does not match current skin path + if os.path.isdir(local_skin_path) and current_skin_path != local_skin_path: + # Check if the local skin is a leftover from a previous XBMC install + if is_invalid_local_skin(): + fix_invalid_local_skin() + + # Local skin is correct, a restart is needed + else: + d = xbmcgui.Dialog() + d.ok("Notice", "Restart XBMC to complete the installation.") + sys.exit() + + +def do_write_test(path): + test_file = os.path.join(path, 'write_test.txt') + get_logger().debug('performing write test: %s' % test_file) + + try: + # Open and cleanup + open(test_file, 'w').close() + os.remove(test_file) + return True + + except Exception: + return False + + +def skin_is_local(): + return get_current_skin_path() == get_local_skin_path() + + +def check_skin_writability(): + # Some debug info + debug_log("-- skinutils debug info --") + debug_log("current skin path: %s\n" % get_current_skin_path()) + debug_log("local path should be: %s" % get_local_skin_path()) + + # Check if XBMC needs a restart + check_needs_restart() + + # Get the current skin's path + skin_path = get_local_skin_path() + + # Check if it's local or not (contained in userdata) + if not skin_is_local(): + copy_skin_to_userdata() + sys.exit() + + # Check if this path is writable + elif not os.access(skin_path, os.W_OK) or not do_write_test(skin_path): + raise IOError("Skin directory is not writable.") + + +def make_backup(path): + backup_path = path + '-skinutilsbackup' + # If the backup already exists, don't overwrite it + if not os.path.exists(backup_path): + shutil.copy(path, backup_path) + + +def restore_backup(path): + backup_path = path + '-skinutilsbackup' + + # Do nothing if no backup exists + if os.path.exists(backup_path): + + # os.rename is atomic on unix, and it will overwrite silently + if os.name != 'nt': + os.rename(backup_path, path) + + # Windows will complain if the file exists + else: + os.remove(path) + os.rename(backup_path, path) + + +def is_invalid_xml(file): + contents = open(file, 'r').read() + + # Check for invalid comments + pattern = re.compile('', re.MULTILINE | re.DOTALL) + group_pattern = re.compile('^-|--|-$') + for match in re.finditer(pattern, contents): + if re.match(group_pattern, match.group(1)) is not None: + return True + + # Check also for whitespace prior to declaration + whitespace_pattern = re.compile('^\s+', re.MULTILINE) + return whitespace_pattern.match(contents) is not None + + +def sanitize_xml(file): + contents = open(file, 'r').read() + + # Remove leading whitespace to declaration + contents = contents.lstrip() + + # Strip invalid comments + p = re.compile('', re.MULTILINE | re.DOTALL) + clean_contents, num_repl = re.subn(p, '', contents) + + open(file, 'w').write(clean_contents) + + +def install_resources(): + pass + + +class DocumentCache: + __cached_docs = None + + def __init__(self): + self.__cached_docs = {} + + def _check_file_exists(self, file): + if not os.path.isfile(file): + raise IOError('File not found: %s' % file) + + def contains(self, file): + return file in self.__cached_docs + + def _check_file_known(self, file): + if not self.contains(file): + raise KeyError('Unknown file: %s' % file) + + def list_files(self): + return self.__cached_docs.keys() + + def items(self): + return self.__cached_docs.items() + + def add(self, file): + self._check_file_exists(file) + self.__cached_docs[file] = None + + def read(self, file): + self._check_file_exists(file) + + # If there is no cached data... + if not self.contains(file) or self.__cached_docs[file] is None: + # Check if the file about to load is sane + if is_invalid_xml(file): + make_backup(file) + sanitize_xml(file) + + # Parse the document + self.__cached_docs[file] = ET.parse(file) + + return self.__cached_docs[file] + + def write(self, file): + self._check_file_known(file) + + # If there is a document in cache it may contain modifications + if self.__cached_docs[file] is not None: + make_backup(file) + self.__cached_docs[file].write(file) + + def write_all(self): + for item in self.__cached_docs: + self.write(item) + + def clear(self, file): + self._check_file_known(file) + self.__cached_docs[file] = None + + def clear_all(self): + for item in self.__cached_docs: + self.clear(item) + + def rollback(self, file): + self._check_file_known(file) + restore_backup(file) + self.clear(file) + + def rollback_all(self): + for item in self.__cached_docs: + self.rollback(item) + + +setup_logging() diff --git a/lib/skinutils/fonts.py b/lib/skinutils/fonts.py new file mode 100644 index 0000000..a372b5d --- /dev/null +++ b/lib/skinutils/fonts.py @@ -0,0 +1,210 @@ +""" +Created on 09/08/2011 + +@author: mikel +""" +import os +import shutil +import xml.etree.ElementTree as ET + +import xbmc +from . import SkinUtilsError, check_skin_writability, reload_skin, try_remove_file, case_file_exists, \ + DocumentCache, get_logger + + +class FontXmlError(SkinUtilsError): + pass + + +class FontManager: + __installed_names = None + __installed_fonts = None + __doc_cache = None + + def _list_skin_font_files(self): + font_xml_list = [] + skin_path = xbmc.translatePath("special://skin/") + + # Go into each dir. Could be 720, 1080... + for dir_item in os.listdir(skin_path): + dir_path = os.path.join(skin_path, dir_item) + if os.path.isdir(dir_path): + # Try with font.xml + file = os.path.join(dir_path, "font.xml") + if case_file_exists(file): + font_xml_list.append(file) + + # Don't try the next step on windows, wasted time + file = os.path.join(dir_path, "Font.xml") + if case_file_exists(file): + font_xml_list.append(file) + + return font_xml_list + + def __init__(self): + self.__installed_names = [] + self.__installed_fonts = [] + self.__doc_cache = DocumentCache() + + # Check if the environment is sane + check_skin_writability() + + # Initialize the doc cache with the skin's files + for file in self._list_skin_font_files(): + self.__doc_cache.add(file) + + def is_name_installed(self, name): + return name in self.__installed_names + + def is_font_installed(self, file): + return file in self.__installed_fonts + + def _get_font_attr(self, node, name): + attrnode = node.find(name) + if attrnode is not None: + return attrnode.text + + def _copy_font_file(self, file): + skin_font_path = xbmc.translatePath("special://skin/fonts/") + file_name = os.path.basename(file) + dest_file = os.path.join(skin_font_path, file_name) + + # TODO: Unix systems could use symlinks + + # Check if it's already there + if dest_file not in self.__installed_fonts: + self.__installed_fonts.append(dest_file) + + # Overwrite if file exists + shutil.copyfile(file, dest_file) + + def _add_font_attr(self, fontdef, name, value): + attr = ET.SubElement(fontdef, name) + attr.text = value + attr.tail = "\n\t\t\t" + return attr + + def _install_font_def(self, skin_file, name, filename, size, style="", aspect="", linespacing=""): + # Add it to the registry + self.__installed_names.append(name) + + # Get the parsed skin font file + font_doc = self.__doc_cache.read(skin_file) + + # Iterate over all the fontsets on the file + for fontset in font_doc.getroot().findall("fontset"): + fontset.findall("font")[-1].tail = "\n\t\t" + fontdef = ET.SubElement(fontset, "font") + fontdef.text, fontdef.tail = "\n\t\t\t", "\n\t" + + self._add_font_attr(fontdef, "name", name) + + # We get the full file path to the font, so let's basename + self._add_font_attr(fontdef, "filename", os.path.basename(filename)) + self._copy_font_file(filename) + + last = self._add_font_attr(fontdef, "size", size) + + if style: + if style in ["normal", "bold", "italics", "bolditalics", "lighten"]: + last = self._add_font_attr(fontdef, "style", style) + + else: + raise FontXmlError( + "Font '%s' has an invalid style definition: %s" + % (name, style) + ) + + if aspect: + last = self._add_font_attr(fontdef, "aspect", aspect) + + if linespacing: + last = self._add_font_attr(fontdef, "linespacing", linespacing) + + last.tail = "\n\t\t" + + def _install_file(self, doc_cache, user_file, skin_file, font_path): + user_doc = doc_cache.read(user_file) + + # Handle only the first fontset + fontset = user_doc.getroot().find("fontset") + if len(fontset): + # Every font definition inside it + for item in fontset.findall("font"): + name = self._get_font_attr(item, "name") + + # Basic check for malformed defs. + if name is None: + raise FontXmlError("Malformed XML: No name for font definition.") + + # Omit already defined fonts + elif not self.is_name_installed(name): + font_file_path = os.path.join( + font_path, self._get_font_attr(item, "filename") + ) + self._install_font_def( + skin_file, + name, + font_file_path, + self._get_font_attr(item, "size"), + self._get_font_attr(item, "style"), + self._get_font_attr(item, "aspect"), + self._get_font_attr(item, "linespacing") + ) + + def _get_res_folder(self, path): + return os.path.basename(os.path.dirname(path)) + + def _get_res_filename(self, res_folder, user_file): + path, ext = os.path.splitext(user_file) + return path + '-' + res_folder + ext + + def install_file(self, user_file, font_path, commit=True, clear=True): + doc_cache = DocumentCache() + + # If the file does not exist the following will fail + doc_cache.add(user_file) + + # Install the file into every cached skin font file + for skin_file in self.__doc_cache.list_files(): + res_folder = self._get_res_folder(skin_file) + res_file = self._get_res_filename(res_folder, user_file) + + # If an specific res file exists... + if os.path.isfile(res_file): + self._install_file(doc_cache, res_file, skin_file, font_path) + + # Otherwise use the dafault fallback + else: + self._install_file(doc_cache, user_file, skin_file, font_path) + + # If save was requested + if commit: + self.__doc_cache.write_all() + + # Clear cached docs after write (if requested) + if clear: + self.__doc_cache.clear_all() + + def remove_font(self, name): + pass + + def remove_installed_names(self): + self.__doc_cache.rollback_all() + + def remove_installed_fonts(self): + for item in self.__installed_fonts: + if not try_remove_file(item): + get_logger().error( + 'Failed removing font file "%s". XBMC may still be using it.' % item + ) + + def cleanup(self): + self.remove_installed_names() + + # Reload skin so font files are no longer in use, and then delete them + reload_skin() + self.remove_installed_fonts() + + def __del__(self): + self.cleanup() diff --git a/lib/skinutils/includes.py b/lib/skinutils/includes.py new file mode 100644 index 0000000..6a70dae --- /dev/null +++ b/lib/skinutils/includes.py @@ -0,0 +1,90 @@ +""" +Created on 09/08/2011 + +@author: mikel +""" +import os +import xml.etree.ElementTree as ET + +import xbmc +from . import SkinUtilsError, check_skin_writability, case_file_exists, DocumentCache, get_logger + + +class IncludeXmlError(SkinUtilsError): + pass + + +class IncludeManager: + __installed_names = None + __doc_cache = None + + def _list_skin_include_files(self): + include_list = [] + skin_path = xbmc.translatePath("special://skin/") + + # Go into each dir. Could be 720, 1080... + for dir_item in os.listdir(skin_path): + dir_path = os.path.join(skin_path, dir_item) + if os.path.isdir(dir_path): + file = os.path.join(dir_path, "includes.xml") + if case_file_exists(file): + include_list.append(file) + + file = os.path.join(dir_path, "Includes.xml") + if case_file_exists(file): + include_list.append(file) + + return include_list + + def __init__(self): + self.__installed_names = [] + self.__doc_cache = DocumentCache() + + # Check if the environment is sane + check_skin_writability() + + # Initialize the doc cache with found files + for file in self._list_skin_include_files(): + self.__doc_cache.add(file) + + def is_name_installed(self, name): + return name in self.__installed_names + + def add_include(self, name, node): + for file in self.__doc_cache.list_files(): + doc = self.__doc_cache.read(file) + doc.getroot().append(node) + self.__installed_names.append(name) + + def install_file(self, file, commit=True, clear=True): + get_logger().info('install include: %s' % file) + tree = ET.parse(file) + + # Handle all includes + for item in tree.getroot().findall("include"): + name = item.get("name") + if name is None: + get_logger().warning('Only named includes are supported.') + + elif self.is_name_installed(name): + get_logger().warning('Include name "%s" already installed' % name) + + else: + self.add_include(name, item) + + # If a save was requested + if commit: + self.__doc_cache.write_all() + + # If we where requested to clear the cached docs + if clear: + self.__doc_cache.clear_all() + + def remove_installed_names(self): + self.__doc_cache.rollback_all() + + def cleanup(self): + self.remove_installed_names() + + def __del__(self): + self.cleanup() diff --git a/resources/language/English/strings.po b/resources/language/English/strings.po new file mode 100644 index 0000000..47f41c3 --- /dev/null +++ b/resources/language/English/strings.po @@ -0,0 +1,260 @@ +# XBMC Media Center language file +# Addon Name: IPTV Library +# Addon id: script.module.iptvlib +# Addon Provider: Dmitry Vinogradov +msgid "" +msgstr "" + +# Empty string +msgctxt "#30000" +msgid " " +msgstr " " + +# Dialogs & Error messages +msgctxt "#30101" +msgid "Subscription required" +msgstr "Subscription required" + +msgctxt "#30102" +msgid "Set your subscription credentials for IPTV provider" +msgstr "Set your subscription credentials for IPTV provider" + +msgctxt "#30103" +msgid "Authentication failed" +msgstr "Authentication failed" + +msgctxt "#30104" +msgid "You should check your addon settings" +msgstr "You should check your addon settings" + +msgctxt "#30105" +msgid "Selected program is not playable" +msgstr "Selected program is not playable" + +msgctxt "#30106" +msgid "Service error occurred" +msgstr "Service error occurred" + +msgctxt "#30107" +msgid "Are you sure you want to exit application?" +msgstr "Are you sure you want to exit application?" + +msgctxt "#30108" +msgid "Archive is not available yet." +msgstr "Archive is not available yet." + +msgctxt "#30109" +msgid "Do you want to jump to the next available position?" +msgstr "Do you want to jump to the next available position?" + +msgctxt "#30110" +msgid "Archive on this channel is not available" +msgstr "Archive on this channel is not available" + +msgctxt "#30111" +msgid "Unable to skip forward on live TV" +msgstr "Unable to skip forward on live TV" + +msgctxt "#30112" +msgid "Your playback will be stopped due to inactivity" +msgstr "Your playback will be stopped due to inactivity" + +msgctxt "#30113" +msgid "in %s seconds" +msgstr "in %s seconds" + +msgctxt "#30114" +msgid "HTTP request failed" +msgstr "HTTP request failed" + +msgctxt "#30115" +msgid "Please restart KODI to complete add-on installation" +msgstr "Please restart KODI to complete add-on installation" + +msgctxt "#30116" +msgid "This add-on needs to install some extra resources." +msgstr "This add-on needs to install some extra resources. This installation requires a manual KODI restart." + +msgctxt "#30117" +msgid "Please check your internet connection" +msgstr "Please check your internet connection" + +msgctxt "#30118" +msgid "Unexpected response from service provider" +msgstr "Unexpected response from service provider" + +msgctxt "#30119" +msgid "Unexpected error occurred" +msgstr "Unexpected error occurred" + +# Application's strings +msgctxt "#30201" +msgid "No information available" +msgstr "No information available" + +msgctxt "#30202" +msgid "min." +msgstr "min." + +msgctxt "#30203" +msgid "sec." +msgstr "sec." + +# Date formatting strings + +# Weekday as full name +msgctxt "#30300" +msgid "Sunday" +msgstr "Sunday" + +msgctxt "#30301" +msgid "Monday" +msgstr "Monday" + +msgctxt "#30302" +msgid "Tuesday" +msgstr "Tuesday" + +msgctxt "#30303" +msgid "Wednesday" +msgstr "Wednesday" + +msgctxt "#30304" +msgid "Thursday" +msgstr "Thursday" + +msgctxt "#30305" +msgid "Friday" +msgstr "Friday" + +msgctxt "#30306" +msgid "Saturday" +msgstr "Saturday" + +# Weekday as abbreviated name +msgctxt "#30310" +msgid "Sun" +msgstr "Sun" + +msgctxt "#30311" +msgid "Mon" +msgstr "Mon" + +msgctxt "#30312" +msgid "Tue" +msgstr "Tue" + +msgctxt "#30313" +msgid "Wed" +msgstr "Wed" + +msgctxt "#30314" +msgid "Thu" +msgstr "Thu" + +msgctxt "#30315" +msgid "Fri" +msgstr "Fri" + +msgctxt "#30316" +msgid "Sat" +msgstr "Sat" + +# Month as full name +msgctxt "#30401" +msgid "January" +msgstr "January" + +msgctxt "#30402" +msgid "February" +msgstr "February" + +msgctxt "#30403" +msgid "March" +msgstr "March" + +msgctxt "#30404" +msgid "April" +msgstr "April" + +msgctxt "#30405" +msgid "May" +msgstr "May" + +msgctxt "#30406" +msgid "June" +msgstr "June" + +msgctxt "#30407" +msgid "July" +msgstr "July" + +msgctxt "#30408" +msgid "August" +msgstr "August" + +msgctxt "#30409" +msgid "September" +msgstr "September" + +msgctxt "#30410" +msgid "October" +msgstr "October" + +msgctxt "#30411" +msgid "November" +msgstr "November" + +msgctxt "#30412" +msgid "December" +msgstr "December" + +# Month as abbreviated name +msgctxt "#30501" +msgid "Jan" +msgstr "Jan" + +msgctxt "#30502" +msgid "Feb" +msgstr "Feb" + +msgctxt "#30503" +msgid "Mar" +msgstr "Mar" + +msgctxt "#30504" +msgid "Apr" +msgstr "Apr" + +msgctxt "#30505" +msgid "May" +msgstr "May" + +msgctxt "#30506" +msgid "Jun" +msgstr "Jun" + +msgctxt "#30507" +msgid "Jul" +msgstr "Jul" + +msgctxt "#30508" +msgid "Aug" +msgstr "Aug" + +msgctxt "#30509" +msgid "Sep" +msgstr "Sep" + +msgctxt "#30510" +msgid "Oct" +msgstr "Oct" + +msgctxt "#30511" +msgid "Nov" +msgstr "Nov" + +msgctxt "#30512" +msgid "Dec" +msgstr "Dec" + diff --git a/resources/language/German/strings.po b/resources/language/German/strings.po new file mode 100644 index 0000000..34511d3 --- /dev/null +++ b/resources/language/German/strings.po @@ -0,0 +1,259 @@ +# XBMC Media Center language file +# Addon Name: IPTV Library +# Addon id: script.module.iptvlib +# Addon Provider: Dmitry Vinogradov +msgid "" +msgstr "" + +# Empty string +msgctxt "#30000" +msgid " " +msgstr " " + +# Dialogs & Error messages +msgctxt "#30101" +msgid "Subscription required" +msgstr "Abonnement erforderlich" + +msgctxt "#30102" +msgid "Set your subscription credentials for IPTV provider" +msgstr "Geben Sie Ihre Zugangsdaten für Ihren IPTV Provider" + +msgctxt "#30103" +msgid "Authentication failed" +msgstr "Anmeldeversuch fehlgeschlagen" + +msgctxt "#30104" +msgid "You should check your addon settings" +msgstr "Bitte überprüfen Sie Ihre Addon-Einstellungen" + +msgctxt "#30105" +msgid "Selected program is not playable" +msgstr "Ausgewählte Programm kann nicht abgespielt werden" + +msgctxt "#30106" +msgid "Service error occurred" +msgstr "Service Fehler ist aufgetreten" + +msgctxt "#30107" +msgid "Are you sure you want to exit application?" +msgstr "Sind Sie sicher, dass Sie das Programm beenden möchten?" + +msgctxt "#30108" +msgid "Archive is not available yet." +msgstr "Archiv ist noch nicht verfügbar." + +msgctxt "#30109" +msgid "Do you want to jump to the next available position?" +msgstr "Soll der nächstmögliche Archiv-abschnitt angezeigt werden?" + +msgctxt "#30110" +msgid "Archive on this channel is not available" +msgstr "Archiv für diesen Kanal ist nicht verfügbar" + +msgctxt "#30111" +msgid "Unable to skip forward on live TV" +msgstr "Vorspulen innerhalb der Live-Sendungen ist nicht möglich" + +msgctxt "#30112" +msgid "Your playback will be stopped due to inactivity" +msgstr "Aufgrund deiner Inaktivität wird die wiedergabe" + +msgctxt "#30113" +msgid "in %s seconds" +msgstr "in %s Sekunden beendet" + +msgctxt "#30114" +msgid "HTTP request failed" +msgstr "HTTP Anfrage ist fehlgeschlagen" + +msgctxt "#30115" +msgid "Please restart KODI to complete add-on installation" +msgstr "Bitte starten Sie KODI neu um die Installation zu beenden" + +msgctxt "#30116" +msgid "This add-on needs to install some extra resources." +msgstr "Dieses Addon muss einige zusätzliche Ressourcen installieren. Diese Installation erfordert einen manuellen KODI-Neustart." + +msgctxt "#30117" +msgid "Please check your internet connection" +msgstr "Bitte prüfen Sie Ihre Internetverbindung" + +msgctxt "#30118" +msgid "Unexpected response from service provider" +msgstr "Unerwartete Antwort vom Service Anbieter" + +msgctxt "#30119" +msgid "Unexpected error occurred" +msgstr "Ein unerwarteter Fehler ist aufgetreten" + +# Application's strings +msgctxt "#30201" +msgid "No information available" +msgstr "Keine Information verfügbar" + +msgctxt "#30202" +msgid "min." +msgstr "min." + +msgctxt "#30203" +msgid "sec." +msgstr "sek." + +# Date formatting strings + +# Weekday as full name +msgctxt "#30300" +msgid "Sunday" +msgstr "Sonntag" + +msgctxt "#30301" +msgid "Monday" +msgstr "Montag" + +msgctxt "#30302" +msgid "Tuesday" +msgstr "Dienstag" + +msgctxt "#30303" +msgid "Wednesday" +msgstr "Mittwoch" + +msgctxt "#30304" +msgid "Thursday" +msgstr "Donnerstag" + +msgctxt "#30305" +msgid "Friday" +msgstr "Freitag" + +msgctxt "#30306" +msgid "Saturday" +msgstr "Samstag" + +# Weekday as abbreviated name +msgctxt "#30310" +msgid "Sun" +msgstr "So" + +msgctxt "#30311" +msgid "Mon" +msgstr "Mo" + +msgctxt "#30312" +msgid "Tue" +msgstr "Di" + +msgctxt "#30313" +msgid "Wed" +msgstr "Mi" + +msgctxt "#30314" +msgid "Thu" +msgstr "Do" + +msgctxt "#30315" +msgid "Fri" +msgstr "Fr" + +msgctxt "#30316" +msgid "Sat" +msgstr "Sa" + +# Month as full name +msgctxt "#30401" +msgid "January" +msgstr "Januar" + +msgctxt "#30402" +msgid "February" +msgstr "Februar" + +msgctxt "#30403" +msgid "March" +msgstr "März" + +msgctxt "#30404" +msgid "April" +msgstr "April" + +msgctxt "#30405" +msgid "May" +msgstr "Mai" + +msgctxt "#30406" +msgid "June" +msgstr "Juni" + +msgctxt "#30407" +msgid "July" +msgstr "Juli" + +msgctxt "#30408" +msgid "August" +msgstr "August" + +msgctxt "#30409" +msgid "September" +msgstr "September" + +msgctxt "#30410" +msgid "October" +msgstr "Oktober" + +msgctxt "#30411" +msgid "November" +msgstr "November" + +msgctxt "#30412" +msgid "December" +msgstr "Dezember" + +# Month as abbreviated name +msgctxt "#30501" +msgid "Jan" +msgstr "Jan" + +msgctxt "#30502" +msgid "Feb" +msgstr "Feb" + +msgctxt "#30503" +msgid "Mar" +msgstr "Mär" + +msgctxt "#30504" +msgid "Apr" +msgstr "Apr" + +msgctxt "#30505" +msgid "May" +msgstr "Mai" + +msgctxt "#30506" +msgid "Jun" +msgstr "Jun" + +msgctxt "#30507" +msgid "Jul" +msgstr "Jul" + +msgctxt "#30508" +msgid "Aug" +msgstr "Aug" + +msgctxt "#30509" +msgid "Sep" +msgstr "Sept" + +msgctxt "#30510" +msgid "Oct" +msgstr "Okt" + +msgctxt "#30511" +msgid "Nov" +msgstr "Nov" + +msgctxt "#30512" +msgid "Dec" +msgstr "Dez" diff --git a/resources/language/Russian/strings.po b/resources/language/Russian/strings.po new file mode 100644 index 0000000..59f7bfa --- /dev/null +++ b/resources/language/Russian/strings.po @@ -0,0 +1,259 @@ +# XBMC Media Center language file +# Addon Name: IPTV Library +# Addon id: script.module.iptvlib +# Addon Provider: Dmitry Vinogradov +msgid "" +msgstr "" + +# Empty string +msgctxt "#30000" +msgid " " +msgstr " " + +# Dialogs & Error messages +msgctxt "#30101" +msgid "Subscription required" +msgstr "Требуется подписка" + +msgctxt "#30102" +msgid "Set your subscription credentials for IPTV provider" +msgstr "Введите данные о подписке для сервиса IPTV" + +msgctxt "#30103" +msgid "Authentication failed" +msgstr "Ошибка при авторизации" + +msgctxt "#30104" +msgid "You should check your addon settings" +msgstr "Проверьте настройки проложения" + +msgctxt "#30105" +msgid "Selected program is not playable" +msgstr "Выбранная программа не воспроизводится" + +msgctxt "#30106" +msgid "Service error occurred" +msgstr "Ошибка на стороне провайдера" + +msgctxt "#30107" +msgid "Are you sure you want to exit application?" +msgstr "Вы действительно желаете закрыть проложение?" + +msgctxt "#30108" +msgid "Archive is not available yet." +msgstr "Архив пока не доступен." + +msgctxt "#30109" +msgid "Do you want to jump to the next available position?" +msgstr "Перейти к ближайшей позиции в архиве?" + +msgctxt "#30110" +msgid "Archive on this channel is not available" +msgstr "Архив для данного канала не доступен" + +msgctxt "#30111" +msgid "Unable to skip forward on live TV" +msgstr "Перемотка вперед при просмотре прямых трансляций не возможна" + +msgctxt "#30112" +msgid "Your playback will be stopped due to inactivity" +msgstr "В виду неактивности воспроизведение будет приостановлено" + +msgctxt "#30113" +msgid "in %s seconds" +msgstr "через %s секунд" + +msgctxt "#30114" +msgid "HTTP request failed" +msgstr "Ошибка при выполнении HTTP запроса" + +msgctxt "#30115" +msgid "Please restart KODI to complete add-on installation" +msgstr "Пожалуйста перезагрузите KODI для завершения установки дополнения" + +msgctxt "#30116" +msgid "This add-on needs to install some extra resources." +msgstr "Это дополнение требует установки дополнительных ресурсов. После этого потребуется перезагрузка KODI." + +msgctxt "#30117" +msgid "Please check your internet connection" +msgstr "Проверьте подключение к Интернету" + +msgctxt "#30118" +msgid "Unexpected response from service provider" +msgstr "Неожиданный ответ от IPTV провайдера" + +msgctxt "#30119" +msgid "Unexpected error occurred" +msgstr "Произошла непредвиденная ошибка" + +# Application's strings +msgctxt "#30201" +msgid "No information available" +msgstr "Информация не доступна" + +msgctxt "#30202" +msgid "min." +msgstr "мин." + +msgctxt "#30203" +msgid "sec." +msgstr "сек." + +# Date formatting strings + +# Weekday as full name +msgctxt "#30300" +msgid "Sunday" +msgstr "Воскресение" + +msgctxt "#30301" +msgid "Monday" +msgstr "Понедельник" + +msgctxt "#30302" +msgid "Tuesday" +msgstr "Вторник" + +msgctxt "#30303" +msgid "Wednesday" +msgstr "Среда" + +msgctxt "#30304" +msgid "Thursday" +msgstr "Четверг" + +msgctxt "#30305" +msgid "Friday" +msgstr "Пятница" + +msgctxt "#30306" +msgid "Saturday" +msgstr "Суббота" + +# Weekday as abbreviated name +msgctxt "#30310" +msgid "Sun" +msgstr "Вс" + +msgctxt "#30311" +msgid "Mon" +msgstr "Пн" + +msgctxt "#30312" +msgid "Tue" +msgstr "Вт" + +msgctxt "#30313" +msgid "Wed" +msgstr "Ср" + +msgctxt "#30314" +msgid "Thu" +msgstr "Чт" + +msgctxt "#30315" +msgid "Fri" +msgstr "Пт" + +msgctxt "#30316" +msgid "Sat" +msgstr "Сб" + +# Month as full name +msgctxt "#30401" +msgid "January" +msgstr "Январь" + +msgctxt "#30402" +msgid "February" +msgstr "Февраль" + +msgctxt "#30403" +msgid "March" +msgstr "Март" + +msgctxt "#30404" +msgid "April" +msgstr "Апрель" + +msgctxt "#30405" +msgid "May" +msgstr "Май" + +msgctxt "#30406" +msgid "June" +msgstr "Июнь" + +msgctxt "#30407" +msgid "July" +msgstr "Июль" + +msgctxt "#30408" +msgid "August" +msgstr "Август" + +msgctxt "#30409" +msgid "September" +msgstr "Сентябрь" + +msgctxt "#30410" +msgid "October" +msgstr "Октябрь" + +msgctxt "#30411" +msgid "November" +msgstr "Ноябрь" + +msgctxt "#30412" +msgid "December" +msgstr "Декабрь" + +# Month as abbreviated name +msgctxt "#30501" +msgid "Jan" +msgstr "Янв" + +msgctxt "#30502" +msgid "Feb" +msgstr "Фев" + +msgctxt "#30503" +msgid "Mar" +msgstr "Мар" + +msgctxt "#30504" +msgid "Apr" +msgstr "Апр" + +msgctxt "#30505" +msgid "May" +msgstr "Май" + +msgctxt "#30506" +msgid "Jun" +msgstr "Июн" + +msgctxt "#30507" +msgid "Jul" +msgstr "Июл" + +msgctxt "#30508" +msgid "Aug" +msgstr "Авг" + +msgctxt "#30509" +msgid "Sep" +msgstr "Сен" + +msgctxt "#30510" +msgid "Oct" +msgstr "Окт" + +msgctxt "#30511" +msgid "Nov" +msgstr "Ноя" + +msgctxt "#30512" +msgid "Dec" +msgstr "Дек" diff --git a/resources/skins/Default/720p/font.xml b/resources/skins/Default/720p/font.xml new file mode 100644 index 0000000..1eb6e30 --- /dev/null +++ b/resources/skins/Default/720p/font.xml @@ -0,0 +1,65 @@ + + + + + + script.module.iptvlib-font_MainMenu + script.module.iptvlib-NotoSans-Bold.ttf + 60 + + + script.module.iptvlib-font30_title + script.module.iptvlib-NotoSans-Bold.ttf + 30 + + + script.module.iptvlib-font30 + script.module.iptvlib-NotoSans-Regular.ttf + 30 + + + + + script.module.iptvlib-font14 + script.module.iptvlib-NotoSans-Regular.ttf + 33 + + + + script.module.iptvlib-font12 + script.module.iptvlib-NotoSans-Regular.ttf + 25 + + + + + + + script.module.iptvlib-font_MainMenu + arial.ttf + 52 + + + + script.module.iptvlib-font30_title + arial.ttf + 30 + + + + script.module.iptvlib-font30 + arial.ttf + 30 + + + script.module.iptvlib-font14 + arial.ttf + 30 + + + script.module.iptvlib-font12 + arial.ttf + 22 + + + diff --git a/resources/skins/Default/720p/main_window.xml b/resources/skins/Default/720p/main_window.xml new file mode 100644 index 0000000..5afa595 --- /dev/null +++ b/resources/skins/Default/720p/main_window.xml @@ -0,0 +1,46 @@ + + + + no + WindowOpen + WindowClose + + 1 + 0 + 0 + + + + + + Background + 0 + 0 + 1280 + 720 + black.png + 500 + + + + diff --git a/resources/skins/Default/720p/tv_dialog.xml b/resources/skins/Default/720p/tv_dialog.xml new file mode 100644 index 0000000..0050a3f --- /dev/null +++ b/resources/skins/Default/720p/tv_dialog.xml @@ -0,0 +1,848 @@ + + + + + SetProperty(channel_id,0,home) + ClearProperty(channel_id,home) + + + 1 + 0 + 0 + + + 999 + + + + + Dummy control used to set focus to on video start + -100 + -100 + 0 + 0 + center + center + font_MainMenu + black + white.png + white.png + - + 4003 + 4003 + 4003 + 4003 + + + Dummy image used for preload of icons + -100 + -100 + 1 + 1 + keep + + + + + OSD for current playing program + 0 + 0 + 720 + 1280 + Control.HasFocus(4003) + + + + + + + + + + Background + 0 + 0 + 1280 + 720 + fade.png + 300 + + + Skip time within playback + !String.StartsWith(Control.GetLabel(4005),0 ) + 640 + 400 + 50 + 350 + center + font_MainMenu + white + grey + + + Channel icon + 546 + 480 + 106 + 188 + keep + default_channel.png + FFFFFFFF + + + Program start time + 640 + 600 + 15 + 400 + + font14 + center + center + + + Program title + -100 + -100 + 0 + 0 + + + Program title + 150 + 630 + 15 + 980 + + font30_title + center + center + + + Program playtime + 10 + 670 + 15 + 110 + + font14 + center + center + + + Program playtime progress bar + 150 + 670 + 980 + 15 + white50.png + white50.png + + + Program playtime progress bar slider + 155 + 665 + 980 + 25 + slider_bar.png + slider_bar.png + slider_bar.png + 4200 + + + Program duration + 1150 + 670 + 15 + 110 + + font14 + center + center + + + -100 + -100 + 1 + 1 + 4200 + + + + + + Group containing channelgroups, channels and program lists + 0 + 0 + 720 + 1300 + VisibleChange + + Control.HasFocus(4100)|Control.HasFocus(4200)|Control.HasFocus(4300) + + + Background for whole group + 720 + 1280 + black.png + A6FFFFFF + + + Channelgroup list + + List background + 720 + 300 + listitem-bg.png + CC000000 + + + Conditional + + + Conditional + + + + Channelgroups list + 4200 + vertical + false + 6 + 200 + + + Colored list item background + 0 + 0 + 78 + 20 + $INFO[ListItem.Property(icon)] + + + Overlay over colored list item background (unfocused) + 0 + 0 + 78 + 20 + white50.png + FF000000 + + + List item background + 20 + 0 + 280 + 78 + listitem-bg.png + FF000000 + + + Conditional + + + Conditional + + + + Group name + 48 + 1 + 252 + 80 + font14 + center + white + left + + + + Conditional + + + Conditional + + + + + + Colored list item background for selected group without focus + 0 + 1 + 20 + 77 + $INFO[ListItem.Property(icon)] + !Control.HasFocus(4100) + VisibleChange + + + Colored list item background for selected group + 0 + 0 + 300 + 78 + $INFO[ListItem.Property(icon)] + + + Conditional + + + Conditional + + + + Group name + 48 + 1 + 252 + 80 + font14 + center + black + left + + + + Conditional + + + Conditional + + + + + + + Container for channel and program list + 20 + 0 + 720 + 500 + VisibleChange + Conditional + + Channel list + + Shadow + separator-y.png + -20 + 0 + 720 + 20 + Control.HasFocus(4200)|Control.HasFocus(4300) + + + List background + 720 + 500 + listitem-bg.png + CC000000 + + Conditional + + Conditional + + + + Channels list + 4100 + 4300 + vertical + false + 6 + 200 + + + List item background for channel icon + 0 + 0 + 78 + 150 + listitem-bg.png + FF000000 + + + List item background for text + 150 + 0 + 78 + 350 + listitem-bg.png + FF000000 + + Conditional + + Conditional + + + + Channel icon + 5 + 10 + 60 + 140 + keep + $INFO[ListItem.Property(icon)] + FFFFFFFF + + + Vertical bar (separator) + 150 + 18 + 44 + 2 + white.png + 33FFFFFF + + Conditional + + Conditional + + + + Channel name + 170 + 1 + 80 + 330 + font14 + center + white + left + + + Conditional + + Conditional + + + + Shadow + separator-y.png + 0 + 0 + 80 + 20 + Control.HasFocus(4100) + + + + + Icon background + 0 + 0 + 78 + 150 + listitem-bg-fo.png + Conditional + + + Text background + 150 + 0 + 78 + 350 + listitem-bg-fo.png + + Conditional + + Conditional + + Conditional + + + Icon + 5 + 10 + 60 + 140 + keep + $INFO[ListItem.Property(icon)] + FFFFFFFF + + + Vertical bar + 150 + 18 + 44 + 2 + black.png + 33FFFFFF + + Conditional + + Conditional + + + + Label + 170 + 1 + 80 + 330 + font14 + center + black + left + + Conditional + + Conditional + + Conditional + + + Label + 170 + 1 + 80 + 330 + font14 + center + white + left + + Conditional + + Conditional + + Conditional + + + Shadow + separator-y.png + 0 + 0 + 80 + 20 + Control.HasFocus(4100) + + + -100 + -100 + 0 + 0 + - + Skin.SetString(channel_id, 481) + + + + + + Program list + 150 + 0 + 720 + 500 + + Conditional + + + [Control.IsVisible(4200)|Control.IsVisible(4300)] + +String.IsEqual(Container(4200).ListItem.Property(cid), Container(4300).ListItem.Property(cid)) + + + + + + + + + Shadow + separator-y.png + -20 + 0 + 20 + 720 + Control.HasFocus(4300) + + + List background + 720 + 500 + listitem-bg.png + CC000000 + + + 4200 + 999 + vertical + false + 6 + 5 + 200 + + + List item background + 0 + 0 + 78 + 500 + listitem-bg.png + FF000000 + + + day color bar + 0 + 0 + 78 + 2 + $INFO[Listitem.Property(day_color)] + + + Program start time + 12 + 2 + 80 + 70 + font14 + top + white + left + ListItem.Property(t_start) + + + Program status icon (Archive, Past, Live) + 28 + 37 + 25 + 25 + $INFO[Listitem.Property(status)] + + + Program title + 85 + 2 + 76 + 290 + font14 + top + white + left + true + + + + Shadow + separator-y.png + 0 + 0 + 80 + 20 + Control.HasFocus(4200) + + + Program image + 10 + 90 + $INFO[ListItem.Property(img_s)] + keep + + + + + List item background + 0 + 0 + 78 + 500 + listitem-bg-fo.png + Conditional + + + day color bar + 0 + 0 + 78 + 2 + $INFO[Listitem.Property(day_color)] + Conditional + + + Selected Program start time (on focus) + 12 + 2 + 80 + 70 + font14 + top + black + left + ListItem.Property(t_start) + Conditional + + + Program status icon (Archive, Past, Live) + 28 + 37 + 25 + 25 + $INFO[Listitem.Property(status)] + + + Selected Program start time + 12 + 2 + 80 + 70 + font14 + top + white + left + ListItem.Property(t_start) + Conditional + + + Selected Program title on focus + 85 + 2 + 76 + 290 + font14 + top + black + left + true + + Conditional + + + Selected Program title + 85 + 2 + 76 + 290 + font14 + top + white + left + true + + Conditional + + + Shadow + separator-y.png + 0 + 0 + 80 + 20 + Control.HasFocus(4200) + + + Program image + 10 + 90 + $INFO[ListItem.Property(img_s)] + keep + + + + + Detailed information of the selected program + 500 + 0 + 720 + 780 + Control.HasFocus(4300) + VisibleChange + + List background + 720 + 780 + listitem-bg.png + CC000000 + + + Program status icon (Archive, Past, Live) + 30 + 55 + 25 + 25 + $INFO[Container(4300).ListItem.Property(status)] + + + Program start time and date + 28 + 55 + 30 + 500 + font12 + + + + Program Information + 30 + 100 + 215 + 500 + font14 + true + true + + + + Program image + 30 + 320 + 500 + $INFO[Container(4300).ListItem.Property(img_l)] + keep + + + + + + + + + + diff --git a/resources/skins/Default/720p/tv_dialog_font.xml b/resources/skins/Default/720p/tv_dialog_font.xml new file mode 100644 index 0000000..9349ab2 --- /dev/null +++ b/resources/skins/Default/720p/tv_dialog_font.xml @@ -0,0 +1,848 @@ + + + + + SetProperty(channel_id,0,home) + ClearProperty(channel_id,home) + + + 1 + 0 + 0 + + + 999 + + + + + Dummy control used to set focus to on video start + -100 + -100 + 0 + 0 + center + center + script.module.iptvlib-font_MainMenu + black + white.png + white.png + - + 4003 + 4003 + 4003 + 4003 + + + Dummy image used for preload of icons + -100 + -100 + 1 + 1 + keep + + + + + OSD for current playing program + 0 + 0 + 720 + 1280 + Control.HasFocus(4003) + + + + + + + + + + Background + 0 + 0 + 1280 + 720 + fade.png + 300 + + + Skip time within playback + !String.StartsWith(Control.GetLabel(4005),0 ) + 640 + 400 + 50 + 350 + center + script.module.iptvlib-font_MainMenu + white + grey + + + Channel icon + 546 + 480 + 106 + 188 + keep + default_channel.png + FFFFFFFF + + + Program start time + 640 + 600 + 15 + 400 + + script.module.iptvlib-font14 + center + center + + + Program title + -100 + -100 + 0 + 0 + + + Program title + 150 + 630 + 15 + 980 + + script.module.iptvlib-font30_title + center + center + + + Program playtime + 10 + 670 + 15 + 110 + + script.module.iptvlib-font14 + center + center + + + Program playtime progress bar + 150 + 670 + 980 + 15 + white50.png + white50.png + + + Program playtime progress bar slider + 155 + 665 + 980 + 25 + slider_bar.png + slider_bar.png + slider_bar.png + 4200 + + + Program duration + 1150 + 670 + 15 + 110 + + script.module.iptvlib-font14 + center + center + + + -100 + -100 + 1 + 1 + 4200 + + + + + + Group containing channelgroups, channels and program lists + 0 + 0 + 720 + 1300 + VisibleChange + + Control.HasFocus(4100)|Control.HasFocus(4200)|Control.HasFocus(4300) + + + Background for whole group + 720 + 1280 + black.png + A6FFFFFF + + + Channelgroup list + + List background + 720 + 300 + listitem-bg.png + CC000000 + + + Conditional + + + Conditional + + + + Channelgroups list + 4200 + vertical + false + 6 + 200 + + + Colored list item background + 0 + 0 + 78 + 20 + $INFO[ListItem.Property(icon)] + + + Overlay over colored list item background (unfocused) + 0 + 0 + 78 + 20 + white50.png + FF000000 + + + List item background + 20 + 0 + 280 + 78 + listitem-bg.png + FF000000 + + + Conditional + + + Conditional + + + + Group name + 48 + 1 + 252 + 80 + script.module.iptvlib-font14 + center + white + left + + + + Conditional + + + Conditional + + + + + + Colored list item background for selected group without focus + 0 + 1 + 20 + 77 + $INFO[ListItem.Property(icon)] + !Control.HasFocus(4100) + VisibleChange + + + Colored list item background for selected group + 0 + 0 + 300 + 78 + $INFO[ListItem.Property(icon)] + + + Conditional + + + Conditional + + + + Group name + 48 + 1 + 252 + 80 + script.module.iptvlib-font14 + center + black + left + + + + Conditional + + + Conditional + + + + + + + Container for channel and program list + 20 + 0 + 720 + 500 + VisibleChange + Conditional + + Channel list + + Shadow + separator-y.png + -20 + 0 + 720 + 20 + Control.HasFocus(4200)|Control.HasFocus(4300) + + + List background + 720 + 500 + listitem-bg.png + CC000000 + + Conditional + + Conditional + + + + Channels list + 4100 + 4300 + vertical + false + 6 + 200 + + + List item background for channel icon + 0 + 0 + 78 + 150 + listitem-bg.png + FF000000 + + + List item background for text + 150 + 0 + 78 + 350 + listitem-bg.png + FF000000 + + Conditional + + Conditional + + + + Channel icon + 5 + 10 + 60 + 140 + keep + $INFO[ListItem.Property(icon)] + FFFFFFFF + + + Vertical bar (separator) + 150 + 18 + 44 + 2 + white.png + 33FFFFFF + + Conditional + + Conditional + + + + Channel name + 170 + 1 + 80 + 330 + script.module.iptvlib-font14 + center + white + left + + + Conditional + + Conditional + + + + Shadow + separator-y.png + 0 + 0 + 80 + 20 + Control.HasFocus(4100) + + + + + Icon background + 0 + 0 + 78 + 150 + listitem-bg-fo.png + Conditional + + + Text background + 150 + 0 + 78 + 350 + listitem-bg-fo.png + + Conditional + + Conditional + + Conditional + + + Icon + 5 + 10 + 60 + 140 + keep + $INFO[ListItem.Property(icon)] + FFFFFFFF + + + Vertical bar + 150 + 18 + 44 + 2 + black.png + 33FFFFFF + + Conditional + + Conditional + + + + Label + 170 + 1 + 80 + 330 + script.module.iptvlib-font14 + center + black + left + + Conditional + + Conditional + + Conditional + + + Label + 170 + 1 + 80 + 330 + script.module.iptvlib-font14 + center + white + left + + Conditional + + Conditional + + Conditional + + + Shadow + separator-y.png + 0 + 0 + 80 + 20 + Control.HasFocus(4100) + + + -100 + -100 + 0 + 0 + - + Skin.SetString(channel_id, 481) + + + + + + Program list + 150 + 0 + 720 + 500 + + Conditional + + + [Control.IsVisible(4200)|Control.IsVisible(4300)] + +String.IsEqual(Container(4200).ListItem.Property(cid), Container(4300).ListItem.Property(cid)) + + + + + + + + + Shadow + separator-y.png + -20 + 0 + 20 + 720 + Control.HasFocus(4300) + + + List background + 720 + 500 + listitem-bg.png + CC000000 + + + 4200 + 999 + vertical + false + 6 + 5 + 200 + + + List item background + 0 + 0 + 78 + 500 + listitem-bg.png + FF000000 + + + day color bar + 0 + 0 + 78 + 2 + $INFO[Listitem.Property(day_color)] + + + Program start time + 12 + 2 + 80 + 70 + script.module.iptvlib-font14 + top + white + left + ListItem.Property(t_start) + + + Program status icon (Archive, Past, Live) + 28 + 37 + 25 + 25 + $INFO[Listitem.Property(status)] + + + Program title + 85 + 2 + 76 + 290 + script.module.iptvlib-font14 + top + white + left + true + + + + Shadow + separator-y.png + 0 + 0 + 80 + 20 + Control.HasFocus(4200) + + + Program image + 10 + 90 + $INFO[ListItem.Property(img_s)] + keep + + + + + List item background + 0 + 0 + 78 + 500 + listitem-bg-fo.png + Conditional + + + day color bar + 0 + 0 + 78 + 2 + $INFO[Listitem.Property(day_color)] + Conditional + + + Selected Program start time (on focus) + 12 + 2 + 80 + 70 + script.module.iptvlib-font14 + top + black + left + ListItem.Property(t_start) + Conditional + + + Program status icon (Archive, Past, Live) + 28 + 37 + 25 + 25 + $INFO[Listitem.Property(status)] + + + Selected Program start time + 12 + 2 + 80 + 70 + script.module.iptvlib-font14 + top + white + left + ListItem.Property(t_start) + Conditional + + + Selected Program title on focus + 85 + 2 + 76 + 290 + script.module.iptvlib-font14 + top + black + left + true + + Conditional + + + Selected Program title + 85 + 2 + 76 + 290 + script.module.iptvlib-font14 + top + white + left + true + + Conditional + + + Shadow + separator-y.png + 0 + 0 + 80 + 20 + Control.HasFocus(4200) + + + Program image + 10 + 90 + $INFO[ListItem.Property(img_s)] + keep + + + + + Detailed information of the selected program + 500 + 0 + 720 + 780 + Control.HasFocus(4300) + VisibleChange + + List background + 720 + 780 + listitem-bg.png + CC000000 + + + Program status icon (Archive, Past, Live) + 30 + 55 + 25 + 25 + $INFO[Container(4300).ListItem.Property(status)] + + + Program start time and date + 28 + 55 + 30 + 500 + script.module.iptvlib-font12 + + + + Program Information + 30 + 100 + 215 + 500 + script.module.iptvlib-font14 + true + true + + + + Program image + 30 + 320 + 500 + $INFO[Container(4300).ListItem.Property(img_l)] + keep + + + + + + + + + + diff --git a/resources/skins/Default/fonts/noto_license.txt b/resources/skins/Default/fonts/noto_license.txt new file mode 100644 index 0000000..f00e6a2 --- /dev/null +++ b/resources/skins/Default/fonts/noto_license.txt @@ -0,0 +1,48 @@ +Copyright (c) 2010-2014, Łukasz Dziedzic (dziedzic@typoland.com), +with Reserved Font Name Lato. + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +http://scripts.sil.org/OFL + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide development of collaborative font projects, to support the font creation efforts of academic and linguistic communities, and to provide a free and open framework in which fonts may be shared and improved in partnership with others. + +The OFL allows the licensed fonts to be used, studied, modified and redistributed freely as long as they are not sold by themselves. The fonts, including any derivative works, can be bundled, embedded, redistributed and/or sold with any software provided that any reserved names are not used by derivative works. The fonts and derivatives, however, cannot be released under any other type of license. The requirement for fonts to remain under this license does not apply to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright Holder(s) under this license and clearly marked as such. This may include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the copyright statement(s). + +"Original Version" refers to the collection of Font Software components as distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, or substituting -- in part or in whole -- any of the components of the Original Version, by changing formats or by porting the Font Software to a new environment. + +"Author" refers to any designer, engineer, programmer, technical writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining a copy of the Font Software, to use, study, copy, merge, embed, modify, redistribute, and sell modified and unmodified copies of the Font Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, redistributed and/or sold with any software, provided that each copy contains the above copyright notice and this license. These can be included either as stand-alone text files, human-readable headers or in the appropriate machine-readable metadata fields within text or binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font Name(s) unless explicit written permission is granted by the corresponding Copyright Holder. This restriction only applies to the primary font name as presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font Software shall not be used to promote, endorse or advertise any Modified Version, except to acknowledge the contribution(s) of the Copyright Holder(s) and the Author(s) or with their explicit written permission. + +5) The Font Software, modified or unmodified, in part or in whole, must be distributed entirely under this license, and must not be distributed under any other license. The requirement for fonts to remain under this license does not apply to any document created using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE. \ No newline at end of file diff --git a/resources/skins/Default/fonts/script.module.iptvlib-NotoSans-Bold.ttf b/resources/skins/Default/fonts/script.module.iptvlib-NotoSans-Bold.ttf new file mode 100644 index 0000000000000000000000000000000000000000..21dddde9d3ba02fe29fba413d06c1278eeb8e78d GIT binary patch literal 310556 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

l==ZTlf1-Pc0O8 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 IR*}m81^gf~S^xk5 literal 0 HcmV?d00001 diff --git a/resources/skins/Default/fonts/script.module.iptvlib-NotoSans-Regular.ttf b/resources/skins/Default/fonts/script.module.iptvlib-NotoSans-Regular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..04be6f5eee14231c15185d51e9e3026b01033642 GIT binary patch literal 305872 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 rEBJj_x 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Ƕ{0OsmIOfShvPlgegA?UA)DgrJ(f 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 literal 0 HcmV?d00001 diff --git a/resources/skins/Default/media/1.png b/resources/skins/Default/media/1.png new file mode 100755 index 0000000000000000000000000000000000000000..c256d67805f72ee7b70e26a5dca28c52c07dafd1 GIT binary patch literal 232 zcmeAS@N?(olHy`uVBq!ia0vp^av;pX3?zBp#Z3TGHUT~%u5WgBtKgi_h^d8gC5KK9me*vp(J$d}#-rYO>K9K=Hd3R42#}JM4OV4d*Y%pLr z;xMu2Waj_an-1|mqD+%Qx4aBFH9IL>rYmk~jh5cg1wnG5r?w{rY1(&%f7I+s3JW>9 gC}^G5TG6k}jn2~DryBK_0gYtvboFyt=akR{0JA1&sQ>@~ literal 0 HcmV?d00001 diff --git a/resources/skins/Default/media/10.png b/resources/skins/Default/media/10.png new file mode 100755 index 0000000000000000000000000000000000000000..dab37c9bab635b561bae531baf5bbe99c9f73b2f GIT binary patch literal 228 zcmeAS@N?(olHy`uVBq!ia0vp^av;pY3?xs=ZJr3EbOU@sT&GXJIAzNDHEV7iIPmzy ziRVX;KHa|k{^rehmn^wHfBuy@b1v`M^Kkj{8@qNr*s$TwP76_Ppho_ZAiv<-w;sND z{qpJK`*-g=yZ`Kwk6UgaP%7Nh#W6(Ua_ezJ(FOwnmWxLZ9%V9>72D9js*}LT9pT|! z31XWB9NOUeZ+4o=#J@h@ly9cX{amOLyQK9^_@@1ywm12gOx`l_uiv++SAtI1Eh@=h cxZjIE*BtKgi_h^d8gC5KK9me*vp(J$d}#-rYO>K9K=Hd3R42#}JM4OV4d*Y%pLr z;xMu2Waj_an-1|mqD+%Qx4aBFH9IL>rYmk~jh5cg1wnG5r?w{rY1(&%f7I+s3JW>9 gC}^G5TG6k}jn2~DryBK_0gYtvboFyt=akR{0JA1&sQ>@~ literal 0 HcmV?d00001 diff --git a/resources/skins/Default/media/12.png b/resources/skins/Default/media/12.png new file mode 100755 index 0000000000000000000000000000000000000000..cccf20e61982d2d155b5dca585a15dc0121ba3a2 GIT binary patch literal 232 zcmeAS@N?(olHy`uVBq!ia0vp^av;pX3?zBp#Z3TGHUT~%t{rEu)t zQ~ZJEh?E5R1;2Xn{PDy4cW&Rh_4?(rr%!spViNj&&`a@%ZSU!gUG^k!oO|5y=lF=V!Egwp`SNw`kMf0pkssO$`ARXnUFtq>x002ovPDHLkV1l>8c546t literal 0 HcmV?d00001 diff --git a/resources/skins/Default/media/14.png b/resources/skins/Default/media/14.png new file mode 100755 index 0000000000000000000000000000000000000000..51f57bcf3e2fc0283debda34c2951d2f575f0b50 GIT binary patch literal 232 zcmeAS@N?(olHy`uVBq!ia0vp^av;pX3?zBp#Z3TGHUT~%u66Ujmd^Z=JNb)G^+(%+ z4>IBJM1$Y*`Mu@ze8cSeCav#tQupWB_Ro^2ZGRNFr_0}P<&^HEu#lsR fg4SuR75&P*+(x>)fK`73&`1VPS3j3^P6s^mn(P0Us~_Z?^^gQu&X%Q~loCIG7AX*d7? literal 0 HcmV?d00001 diff --git a/resources/skins/Default/media/16.png b/resources/skins/Default/media/16.png new file mode 100755 index 0000000000000000000000000000000000000000..03a30095053cf36948d7aeec35f0f8bf8d057a72 GIT binary patch literal 236 zcmeAS@N?(olHy`uVBq!ia0vp^av;pX3?zBp#Z3TG_5nU2uJ2TBzSeYqPAT~mmhsU! z;)A8%TQU8&f?Dt7&A+uz{@T?4rL6T!anqOly3g6wpJMYq1|)s-jD2tD{$AVZt+X-M zriGC}qeM%B{DSYieD?U^{ad&0ynglK`SWK_9zDEw_jbV?;V(c1?w&4=AsXjfPnt6x zU=TR$u(ZDFX}>AYlg;La+G4JYgW^PICxy#&g)ObovYPs7=?>AoUX=lw_FdtEQ`Y_v iS)3H4+20i;@=ZP`L}n|KYuk39kqn-$elF{r5}E)> zQ~ZJEh?E5R1;2Xn{PDy4cW&Rh_4?(rr%!V4-np$@VeCE?Xo65l zkYDhvJFj0pd;IYJ^B2#aJbHNV?(N&_X5Y61%6facIEHAPKYCtMj6qR=`QjNr%y84wKk?MTE7avx!0kI{B{N<1=6gsN{dC$jvFypG#+bSZaZ5ON{!#Az cqFB6!VQRjZr*^p5C!nzmp00i_>zopr00V_-IsgCw literal 0 HcmV?d00001 diff --git a/resources/skins/Default/media/19.png b/resources/skins/Default/media/19.png new file mode 100755 index 0000000000000000000000000000000000000000..4109f8385f6e031561866d9da4afa67e40b8ac97 GIT binary patch literal 198 zcmeAS@N?(olHy`uVBq!ia0vp^av;pY3?xs=ZJr3ER04cLT>BaCsv+gD;gB;vjREq-B@{K sS1>gDYYDgjmCszkFxNl8UW$QXr*z%*Koy85}Sb4q9e0QNLS;Q#;t literal 0 HcmV?d00001 diff --git a/resources/skins/Default/media/2.png b/resources/skins/Default/media/2.png new file mode 100755 index 0000000000000000000000000000000000000000..cccf20e61982d2d155b5dca585a15dc0121ba3a2 GIT binary patch literal 232 zcmeAS@N?(olHy`uVBq!ia0vp^av;pX3?zBp#Z3TGHUT~%t{rEu)t zQ~ZJEh?E5R1;2Xn{PDy4cW&Rh_4?(rr%!72D9js*}LT9pT|! z31XWB9NOUeZ+4o=#J@h@ly9cX{amOLyQK9^_@@1ywm12gOx`l_uiv++SAtI1Eh@=h cxZjIE*spViNj&&`a@%ZSU!gUG^k!oO|5y=lF=V!Egwp`SNw`kMf0pkssO$`ARXnUFtq>x002ovPDHLkV1l>8c546t literal 0 HcmV?d00001 diff --git a/resources/skins/Default/media/4.png b/resources/skins/Default/media/4.png new file mode 100755 index 0000000000000000000000000000000000000000..51f57bcf3e2fc0283debda34c2951d2f575f0b50 GIT binary patch literal 232 zcmeAS@N?(olHy`uVBq!ia0vp^av;pX3?zBp#Z3TGHUT~%u66Ujmd^Z=JNb)G^+(%+ z4>IBJM1$Y*`Mu@ze8cSeCav#tQupWB_Ro^2ZGRNFr_0}P<&^HEu#lsR fg4SuR75&P*+(x>)fK`73&`1VPS3j3^P6s^mn(P0Us~_Z?^^gQu&X%Q~loCIG7AX*d7? literal 0 HcmV?d00001 diff --git a/resources/skins/Default/media/6.png b/resources/skins/Default/media/6.png new file mode 100755 index 0000000000000000000000000000000000000000..03a30095053cf36948d7aeec35f0f8bf8d057a72 GIT binary patch literal 236 zcmeAS@N?(olHy`uVBq!ia0vp^av;pX3?zBp#Z3TG_5nU2uJ2TBzSeYqPAT~mmhsU! z;)A8%TQU8&f?Dt7&A+uz{@T?4rL6T!anqOly3g6wpJMYq1|)s-jD2tD{$AVZt+X-M zriGC}qeM%B{DSYieD?U^{ad&0ynglK`SWK_9zDEw_jbV?;V(c1?w&4=AsXjfPnt6x zU=TR$u(ZDFX}>AYlg;La+G4JYgW^PICxy#&g)ObovYPs7=?>AoUX=lw_FdtEQ`Y_v iS)3H4+20i;@=ZP`L}n|KYuk39kqn-$elF{r5}E)> zQ~ZJEh?E5R1;2Xn{PDy4cW&Rh_4?(rr%!V4-np$@VeCE?Xo65l zkYDhvJFj0pd;IYJ^B2#aJbHNV?(N&_X5Y61%6facIEHAPKYCtMj6qR=`QjNr%y84wKk?MTE7avx!0kI{B{N<1=6gsN{dC$jvFypG#+bSZaZ5ON{!#Az cqFB6!VQRjZr*^p5C!nzmp00i_>zopr00V_-IsgCw literal 0 HcmV?d00001 diff --git a/resources/skins/Default/media/9.png b/resources/skins/Default/media/9.png new file mode 100755 index 0000000000000000000000000000000000000000..4109f8385f6e031561866d9da4afa67e40b8ac97 GIT binary patch literal 198 zcmeAS@N?(olHy`uVBq!ia0vp^av;pY3?xs=ZJr3ER04cLT>BaCsv+gD;gB;vjREq-B@{K sS1>gDYYDgjmCszkFxNl8UW$QXr*z%*Koy85}Sb4q9e0QNLS;Q#;t literal 0 HcmV?d00001 diff --git a/resources/skins/Default/media/black.png b/resources/skins/Default/media/black.png new file mode 100755 index 0000000000000000000000000000000000000000..493f7f8ea9475d26155a70c4f9ccefb2c8f59334 GIT binary patch literal 82 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 w_HOV literal 0 HcmV?d00001 diff --git a/resources/skins/Default/media/fade.png b/resources/skins/Default/media/fade.png new file mode 100755 index 0000000000000000000000000000000000000000..4978e1215ab7e540ed038ce9184ac859a21d4bd6 GIT binary patch literal 2874 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 literal 0 HcmV?d00001 diff --git a/resources/skins/Default/media/icon.png b/resources/skins/Default/media/icon.png new file mode 100755 index 0000000000000000000000000000000000000000..4d3f693072e558c99eda9bc6d15822282eab884e GIT binary patch literal 7603 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 literal 0 HcmV?d00001 diff --git a/resources/skins/Default/media/listitem-bg-fo.png b/resources/skins/Default/media/listitem-bg-fo.png new file mode 100755 index 0000000000000000000000000000000000000000..94a4d3bdc48b2e3b35cae9faad6c36bffad1478e GIT binary patch literal 110 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0P3?wHke>@jRu?6^qxc&!&(3-C~KoO>rAiv-p zJ6{+*S^(sUdb&7C# literal 0 HcmV?d00001 diff --git a/resources/skins/Default/media/listitem-bg.png b/resources/skins/Default/media/listitem-bg.png new file mode 100755 index 0000000000000000000000000000000000000000..e91d139e406a3e565eb5e9b0651a039658c69b27 GIT binary patch literal 122 zcmeAS@N?(olHy`uVBq!ia0y~yU~B`jLm8QYWclQalYtalfKQ04tD74T-T8c46ez+} z666?fGeqQ%sVypPJ9mr!ikncVD7GrFM!C8?o Ri433sgQu&X%Q~loCID2KB3b|d literal 0 HcmV?d00001 diff --git a/resources/skins/Default/media/prg_status_archive.png b/resources/skins/Default/media/prg_status_archive.png new file mode 100755 index 0000000000000000000000000000000000000000..f2f76919dce391dc7a2fc47c58d65d1e1df24903 GIT binary patch literal 2626 zcmcJR_d6T<7sq22i6~918Wpa}wO7m-i5RhNs2Zu3P@^d|iW1*@B{42Vsa3Tav%)pf zT35|bElTaGJ!^e!os@6-M|_{>bIy6rbDnda^L{<&hfgBT&H@a)3m007%%oQ1&!-g(sLs#cnsR$E%u+S}Lq+3&OH zNQXMuT?1S=J(&NtJtF3-&nL)8OQ0BQ%C7czH_$V}g9*;IR$_uP(f|NY6BdJVjF|3u zvWcHIftr}I^PaR@O@OE-0uRa_QgN5O%(mN4&T2>g#S+MzS^}d-zGsDd^O_KkPhCr? zX4x;hOdJx9@{_!8N?Z|1r+9?xT{<$zIj6jrJmBO&=Wle1VpLT)sf7tMZ>AEvcLvM3 z{(5U69Ock-gB~h}&CH4pZ%rE_%{AJ93!F^*DCtTC)q$VB)a33Q4Qy|34;mwkm3 zWItgKXrqdgf89d1NB@UtUdtiNoSB)CJ=~vdzj-$S(D@w6FiUwS2nMMH*!=x!{f{fp zDld619+PJcXXo79c4$wnc`QU=pZ0z7iMY{&v$X+v{geQHv2dAL>G$gv6Dol1cM+1= ze<*A?a)&jJL`psw1wYg`G&VkmxfM?0fn-g;ogPm@n8WhY&fuFg$YH}6BE)s!&QcFk zef!=s`68&iQhv zd;sv3S9RhvE5mK-6b~l3A3m)I-UqyXWQMYr&ul?A4wx)5%Ue%j{Fz(N9)Mylhv=h1 zgeDYMb=0fUK&#UQ4XCBvGrgafaEx>_+DKCz3QDcjg7+MQ;x-Dj=p`j3Gs>^Wr6jF; z6uw#(`~!TbFG!!6*|{V=o4yjI%5ia-4eu%r4MWon(J1!V^GO57GN<0xW*W^=-j*00 z?S4a6*SWp%Ay7IH`3?%zFobVmrsj=wIfP(8);{QQrFBH&U2x;PeFL=gkmz7uO(hBU z4zK}C_(H?NlWDotej3xK+}+|Lcghetrr3@<_N-a=y_RAvq@_bd9IF4hEaYFNn4fOj zH71bU`f7t#0iiyzms>16ebnM{^qnw*vVV>)!fjLI@Aj!j#;twnE@n-6YtGy5Qeq5V zu9jp$VrKK5Tb`r@!d#cGY{e?UD=1?_L;PnGlR;why)Nu{+bAkpK2v6#=)IAVAa*R} zla+7#t4;ry(EVep#10p$^#uzOHJ+gCM^^+&F#2uO3Pp{(HWg-QN}rWT>%j1^(of8vnL^bPvbspur|L zA_gME9(Pvyl^c-RpcoZH^mDMZz97kF41wUbdwOXVV`4=hQmiN>u_SwwM!e63NFz3o zX!25oY`yCPtU9DfCPwPs)4rAjr}=hPYIXfLwazSWs*+xnHg_2qDA)zie#^O!Y}A8? zqFd70%{g;^lQI)$VdE6!!)mZgt=&wb;?K=-9P-$$-#rpKdk!jA%emuhc!BB=N0G-o zGNKUQ2qa1Ts!^nq(!~Ojp*@>dM0~et-`+G78YbhUVMF$EBTE!#8lu3Z7{RMco-QW+ zTr&JB+ z1=>s)I4*ZoD-?V@WvXqugh*2vq#Srrin8x8tu?bmDJpqIbv-nylA6SQF(By0dhV6a z`F%K-b|dXmzZ08yrf0{rLT{+1vm-U0Imv@a&mpA7%QzvR+Ue+-l&4=@`QieaUg2N2 z^dJZsqfMc*y>`>MsZlU^KY^a11J&-l<0h~|`aakl%m#M$j33L&%}!!2S$*aVOcvIG z@qyF&*mn(x;F- z5&LcuJl@zJ{mF__jR?E3H3Okq^lw48c>sEtG5@`Xw zDs!ZBFX3D*fdt#(OzNp(&?oUXeVauvq~W4jX<2K6TR?BH&8~&A;r!T3C)0>Y=G_~n z3m=$*b*<~Zo7%3k-;@h&6bCXkPt$KWyM-izNcO=VKD+aX*K>IWZ=5sNzgh2yf=2hL z4Y4AAf>o$;F!V_Xn$=)t| eDU&}E7mSyDLSGeyI{LD{I{>Vi9i|5DLH!@rf3Q#h literal 0 HcmV?d00001 diff --git a/resources/skins/Default/media/prg_status_live.png b/resources/skins/Default/media/prg_status_live.png new file mode 100755 index 0000000000000000000000000000000000000000..7d43b9c13a83aaaa2e729b4047169497ba443003 GIT binary patch literal 2331 zcmb_e`#;m)AKz$}%Z4R)QlaHixeU2aE^Um>E#(qj(D*F5WFuum2~lp%@M#~n-03Fd zGS`sgGAVpC*IYiiW-hsW-~Na1d7N{eznt@WzMjwL`Qbdq+giZ{qy<1A5DatC+#bO6 zgLRk}*ad%3djS~3+c;VPNaY;=zt60ng!hZo^l6Kvsq?S?3n^P5J)1Hvn)mr<)}?ka z`rWU4j2WByrT7;=oubE;;wCj7j-P%xe=7<& zY@=04N&ZYp7x4Va-fxdkz*NbJPibb_F~M@ zj^yFi;agWGOvPfx1u&84Iuq_51H(E*%uHL02x6ka`!e$?*!m}6vEzeF0u84&L^i=A z7^K{mJ9a9lK=h5a`%o#}Yi9Lv|I$VM*1e=zf}W`Ebq4&Hdwj-<`6jZ99cPJcv=LND zT%gGHthqsNtF2u+ouj56M(=Jj4y+^Q-yilhvT5J7CK*1cGccH|QstE}Q+sach!@w# zdaGY7cWSj90mY9;vGkNz*ybU5r1#lOU6A)fn_~@*|k@vNjFhu)w z6_kZE=kDhrqz(@b)9o@23-nXR!dpa{_x$ zM_j;Xy=`5-K?8ZK22&f(1sTb}f8BDVz#@ZomRHNrgd-MDBxZbY(B9QQbeFfjYB}ZJ zuCT5j+Ar*8l3vDJi{~1c6j#Gp4KMyOLC)o3$XTQD(1MRA4a&PfoPRxbJn?%4F(u`K ztZz5H`e@3Fx)jQ8CvyiU+&uVLFVA^%<+yMw*xRNIjMypmA&3@{lPViw*)8=oza9Dc2m z4^BIuG)w_V!^;Vfm-%L{PD&`|?(f%02THPm5i0K9*_-avvQQ6?V~|tvK}8EA62YX3 z4PE2|hYY{#9}L7PgImE>U(ke<1OzGUbxB8qlK)CEh|dCNmfNSduHZ6$yWT=8z_ub( zZ)_Vl#cns7c^WatIz${o!{QjE>J%06ZeDJTuk2=!2FxG-H&(oN_K}dvq_suVc5K+po)A*?h}S2939lj}rk8r*85h4|X%tcQ#v2AzbO3p+R= z;V(7DCddXr822v64(Lu2ga%b(09DsX=T+~vjww;Yo<Qm#L<$Z%)P3@|Cc7Dok4o!USAiqUk9GwPZam23$2Yo$YaD9#7r%9eU*z|0%~ zd7UBdrMVh%W+9nqegh$_rGXvs*|{MBdu%t&b|nkX)I0Edyb4P4*f zSDLJvN`tExP&16*k11ztRQ{Wx{;6xsmCdfD^js$*RTY=kaH{xnmW@KDp5pB?1d<(H zY-@Gj+@osXaOy{SloZ5B#b28zCWo<3ixt?iJ&BjkJ_>PAS++lpFD&}5O(&e*Z@AB- z@A-(gI!-)sV&;82#t@vd`oK8z%}|yhaa_*7(S{c?-n{=bZM0tnzxv1@F|MTx6Ejcw z@gl-y1X8T88Ou)&X)@J#cT_?G!{KgIlNY=EbUV1p)Z`&jRO}vh!;(t##kFJ5XpZg#RzQ~SY~T8_^TGN(t#-dRSV>Uew^)4#Q#a{ zDgKDJ_EJ~!d=6Vm8r6xaJ0H^Qc4j<;6>+s(?XKxPV$*g} zXCbMXrA}F*en>{6atm8ay??))}OOurSmfi(UlDYGa zsH3-GV%L;cpXnjB;_EK^CndjH<-WT+u>qZ05B;O-UYG&=0YDfFTk~==Pul+gohMS^ literal 0 HcmV?d00001 diff --git a/resources/skins/Default/media/prg_status_past.png b/resources/skins/Default/media/prg_status_past.png new file mode 100755 index 0000000000000000000000000000000000000000..ff5c1c1f81712e4443b45f2ea2a61b2cf8b98459 GIT binary patch literal 2137 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 c^534nzopr0D`v@#Q*>R literal 0 HcmV?d00001 diff --git a/resources/skins/Default/media/white.png b/resources/skins/Default/media/white.png new file mode 100755 index 0000000000000000000000000000000000000000..a2fa69dfc3847cc7bace946650d1b03992f55fd5 GIT binary patch literal 79 zcmeAS@N?(olHy`uVBq!ia0vp^EFjFm1|(O0oL2{=#5`RbLpWw8|M~y_e?6PZfg=rU c9NY{HY_TjXJ3Lk1097z}y85}Sb4q9e0J6>$6951J literal 0 HcmV?d00001 diff --git a/resources/skins/Default/media/white50.png b/resources/skins/Default/media/white50.png new file mode 100755 index 0000000000000000000000000000000000000000..6794744b2e3a4b661ea0fea9f532e70132ccd1c7 GIT binary patch literal 78 zcmeAS@N?(olHy`uVBq!ia0vp^EFjFm1|(O0oL2{=L_J*`LpWw8|M~yFo|#!FA<2Qc bg_Yr1A9L%&8@F143K%?H{an^LB{Ts5p!gLE literal 0 HcmV?d00001