diff --git a/plugin.video.tv3.cat/LICENSE.txt b/plugin.video.tv3.cat/LICENSE.txt deleted file mode 100644 index d159169d10..0000000000 --- a/plugin.video.tv3.cat/LICENSE.txt +++ /dev/null @@ -1,339 +0,0 @@ - GNU GENERAL PUBLIC LICENSE - Version 2, June 1991 - - Copyright (C) 1989, 1991 Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -License is intended to guarantee your freedom to share and change free -software--to make sure the software is free for all its users. This -General Public License applies to most of the Free Software -Foundation's software and to any other program whose authors commit to -using it. (Some other Free Software Foundation software is covered by -the GNU Lesser General Public License instead.) You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -this service if you wish), that you receive source code or can get it -if you want it, that you can change the software or use pieces of it -in new free programs; and that you know you can do these things. - - To protect your rights, we need to make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if you -distribute copies of the software, or if you modify it. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must give the recipients all the rights that -you have. You must make sure that they, too, receive or can get the -source code. And you must show them these terms so they know their -rights. - - We protect your rights with two steps: (1) copyright the software, and -(2) offer you this license which gives you legal permission to copy, -distribute and/or modify the software. - - Also, for each author's protection and ours, we want to make certain -that everyone understands that there is no warranty for this free -software. If the software is modified by someone else and passed on, we -want its recipients to know that what they have is not the original, so -that any problems introduced by others will not reflect on the original -authors' reputations. - - Finally, any free program is threatened constantly by software -patents. We wish to avoid the danger that redistributors of a free -program will individually obtain patent licenses, in effect making the -program proprietary. To prevent this, we have made it clear that any -patent must be licensed for everyone's free use or not licensed at all. - - The precise terms and conditions for copying, distribution and -modification follow. - - GNU GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License applies to any program or other work which contains -a notice placed by the copyright holder saying it may be distributed -under the terms of this General Public License. The "Program", below, -refers to any such program or work, and a "work based on the Program" -means either the Program or any derivative work under copyright law: -that is to say, a work containing the Program or a portion of it, -either verbatim or with modifications and/or translated into another -language. (Hereinafter, translation is included without limitation in -the term "modification".) Each licensee is addressed as "you". - -Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running the Program is not restricted, and the output from the Program -is covered only if its contents constitute a work based on the -Program (independent of having been made by running the Program). -Whether that is true depends on what the Program does. - - 1. You may copy and distribute verbatim copies of the Program's -source code as you receive it, in any medium, provided that you -conspicuously and appropriately publish on each copy an appropriate -copyright notice and disclaimer of warranty; keep intact all the -notices that refer to this License and to the absence of any warranty; -and give any other recipients of the Program a copy of this License -along with the Program. - -You may charge a fee for the physical act of transferring a copy, and -you may at your option offer warranty protection in exchange for a fee. - - 2. You may modify your copy or copies of the Program or any portion -of it, thus forming a work based on the Program, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) You must cause the modified files to carry prominent notices - stating that you changed the files and the date of any change. - - b) You must cause any work that you distribute or publish, that in - whole or in part contains or is derived from the Program or any - part thereof, to be licensed as a whole at no charge to all third - parties under the terms of this License. - - c) If the modified program normally reads commands interactively - when run, you must cause it, when started running for such - interactive use in the most ordinary way, to print or display an - announcement including an appropriate copyright notice and a - notice that there is no warranty (or else, saying that you provide - a warranty) and that users may redistribute the program under - these conditions, and telling the user how to view a copy of this - License. (Exception: if the Program itself is interactive but - does not normally print such an announcement, your work based on - the Program is not required to print an announcement.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Program, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Program, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Program. - -In addition, mere aggregation of another work not based on the Program -with the Program (or with a work based on the Program) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may copy and distribute the Program (or a work based on it, -under Section 2) in object code or executable form under the terms of -Sections 1 and 2 above provided that you also do one of the following: - - a) Accompany it with the complete corresponding machine-readable - source code, which must be distributed under the terms of Sections - 1 and 2 above on a medium customarily used for software interchange; or, - - b) Accompany it with a written offer, valid for at least three - years, to give any third party, for a charge no more than your - cost of physically performing source distribution, a complete - machine-readable copy of the corresponding source code, to be - distributed under the terms of Sections 1 and 2 above on a medium - customarily used for software interchange; or, - - c) Accompany it with the information you received as to the offer - to distribute corresponding source code. (This alternative is - allowed only for noncommercial distribution and only if you - received the program in object code or executable form with such - an offer, in accord with Subsection b above.) - -The source code for a work means the preferred form of the work for -making modifications to it. For an executable work, complete source -code means all the source code for all modules it contains, plus any -associated interface definition files, plus the scripts used to -control compilation and installation of the executable. However, as a -special exception, the source code distributed need not include -anything that is normally distributed (in either source or binary -form) with the major components (compiler, kernel, and so on) of the -operating system on which the executable runs, unless that component -itself accompanies the executable. - -If distribution of executable or object code is made by offering -access to copy from a designated place, then offering equivalent -access to copy the source code from the same place counts as -distribution of the source code, even though third parties are not -compelled to copy the source along with the object code. - - 4. You may not copy, modify, sublicense, or distribute the Program -except as expressly provided under this License. Any attempt -otherwise to copy, modify, sublicense or distribute the Program is -void, and will automatically terminate your rights under this License. -However, parties who have received copies, or rights, from you under -this License will not have their licenses terminated so long as such -parties remain in full compliance. - - 5. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Program or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Program (or any work based on the -Program), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Program or works based on it. - - 6. Each time you redistribute the Program (or any work based on the -Program), the recipient automatically receives a license from the -original licensor to copy, distribute or modify the Program subject to -these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties to -this License. - - 7. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Program at all. For example, if a patent -license would not permit royalty-free redistribution of the Program by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Program. - -If any portion of this section is held invalid or unenforceable under -any particular circumstance, the balance of the section is intended to -apply and the section as a whole is intended to apply in other -circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system, which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 8. If the distribution and/or use of the Program is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Program under this License -may add an explicit geographical distribution limitation excluding -those countries, so that distribution is permitted only in or among -countries not thus excluded. In such case, this License incorporates -the limitation as if written in the body of this License. - - 9. The Free Software Foundation may publish revised and/or new versions -of the 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 Program -specifies a version number of this License which applies to it and "any -later version", you have the option of following the terms and conditions -either of that version or of any later version published by the Free -Software Foundation. If the Program does not specify a version number of -this License, you may choose any version ever published by the Free Software -Foundation. - - 10. If you wish to incorporate parts of the Program into other free -programs whose distribution conditions are different, write to the author -to ask for permission. For software which is copyrighted by the Free -Software Foundation, write to the Free Software Foundation; we sometimes -make exceptions for this. Our decision will be guided by the two goals -of preserving the free status of all derivatives of our free software and -of promoting the sharing and reuse of software generally. - - NO WARRANTY - - 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY -FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN -OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES -PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED -OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS -TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE -PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, -REPAIR OR CORRECTION. - - 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR -REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, -INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING -OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED -TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY -YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER -PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE -POSSIBILITY OF SUCH DAMAGES. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -convey the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program 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 General Public License for more details. - - You should have received a copy of the GNU General Public License along - with this program; if not, write to the Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - -Also add information on how to contact you by electronic and paper mail. - -If the program is interactive, make it output a short notice like this -when it starts in an interactive mode: - - Gnomovision version 69, Copyright (C) year name of author - Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, the commands you use may -be called something other than `show w' and `show c'; they could even be -mouse-clicks or menu items--whatever suits your program. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the program, if -necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the program - `Gnomovision' (which makes passes at compilers) written by James Hacker. - - , 1 April 1989 - Ty Coon, President of Vice - -This General Public License does not permit incorporating your program into -proprietary programs. If your program is a subroutine library, you may -consider it more useful to permit linking proprietary applications with the -library. If this is what you want to do, use the GNU Lesser General -Public License instead of this License. diff --git a/plugin.video.tv3.cat/README.md b/plugin.video.tv3.cat/README.md deleted file mode 100644 index 9b73fb3a0c..0000000000 --- a/plugin.video.tv3.cat/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# plugin.video.tv3.cat -Kodi addon TV3cat. -Entertainment, news, sports, documentaries, etc from catalan television www.tv3.cat - -Complement per Kodi - XBMC. -Tota la programació de TV3 a la carta. Llistes dels programes Més vistos, Destacats, No t'ho perdis, etc. - - - diff --git a/plugin.video.tv3.cat/addon.py b/plugin.video.tv3.cat/addon.py deleted file mode 100644 index d156731842..0000000000 --- a/plugin.video.tv3.cat/addon.py +++ /dev/null @@ -1,33 +0,0 @@ -from __future__ import unicode_literals -from future import standard_library -standard_library.install_aliases() -from builtins import str -import sys -import urllib.parse -import xbmcplugin -import xbmc -from resources.lib.ui.UI import UI - - -xbmc.log("plugin.video.tv3.cat - addon.py") -base_url = sys.argv[0] -addon_handle = int(sys.argv[1]) - -xbmc.log(str(sys.argv[2][1:])) -args = urllib.parse.parse_qs(sys.argv[2][1:]) - -xbmc.log("plugin.video.tv3.cat - addon.py - args: ") -xbmc.log(str(args)) - -xbmcplugin.setContent(addon_handle, 'movies') - -mode = args.get('mode', None) -url = args.get('url', ['']) - - - -ui = UI(base_url, addon_handle, args) - - -ui.run(mode, url) - diff --git a/plugin.video.tv3.cat/addon.xml b/plugin.video.tv3.cat/addon.xml deleted file mode 100644 index 921fabe89d..0000000000 --- a/plugin.video.tv3.cat/addon.xml +++ /dev/null @@ -1,28 +0,0 @@ - - - - - - - - - video - - - all - Entertainment, news, documentaries, etc from catalan television www.tv3.cat - Entertainment, news, documentaries, etc from catalan television www.tv3.cat. [CR]Featured shows, most viewed, A to Z programs. [CR]Live channels: TV3cat, K33, Super3, News 3/24, Esport3 - Tots els programes de TV3 a la carta. - Tota la programació de TV3 a la carta. [CR]Les llistes dels més vistos, destacats, programes ordenats per ordre alfabètic. [CR]Els canals en directe: TV3cat, K33, Super3, 3/24 i Esport3 - Toda la programación de TV3 a la carta - Toda la programación de TV3 a la carta.[CR]Las listas de los más vistos, destacados, programas ordenados de la A a la Z. [CR]Canales en directo: TV3cat, K33, Super3, 3/24, Esport3 - ca - GPL-2.0-or-later - https://github.com/jqandreu/plugin.video.tv3.cat - http://www.tv3.cat - - resources/icon.png - resources/fanart.jpg - - - diff --git a/plugin.video.tv3.cat/changelog.txt b/plugin.video.tv3.cat/changelog.txt deleted file mode 100644 index 058c70ca96..0000000000 --- a/plugin.video.tv3.cat/changelog.txt +++ /dev/null @@ -1,91 +0,0 @@ - -v1.4.9 -- Fixed server changes - -v1.4.8 -- Adapted to Kodi 19 -- Fixed errors - -v1.4.7 -- Fixed direct channels urls - -1.4.6 -- Fixed server changes - -1.4.5 -- Fixed server changes - -v1.4.4 -- Fixed error in Libreelec with import lib2to3 script. Deleted old_div - -v1.4.3 -- Code redesigned and added Python 2/3 compatibility - -v1.4.2 -- Fixed website changes. Changed live urls channels - -v1.4.1 -- Fixed website changes. Fixed errors in "Today featured" and "Colecctions" - -v1.4.0 -- Corregits canvis al website - --Fixed website changes - -v1.3.9 -- Canviada reproducció de videos a HD -- Afegida traducció en alemany gràcies a Connum - -- Changed videos playback to HD -- Added german translation thanks to Connum - -v1.3.8 -- Corregits canvis al website -- Fixed website changes - -v1.3.7 -- Afegides urls per l'emissió internacional dels canals en directe. Gràcies a jrdfrncs -- Afegida traducció del noruec. Gràcies a jrdfrncs -- Correcció d'errors - -- Added urls to international broadcast of live channels. Thanks to jrdfrncs -- Added norwegian translation. Thanks to jrdfrncs -- Fixed minor errors - -v1.3.6 -- Fixed website changes -- Improved efficiency in listing videos - -v1.3.5 -- Improved video info -- Updated python version -- Added new section Coleccions - -v1.3.4 -- Fixed website changes - -v1.3.3 -- Fixed website changes -- Added search function -- Added dependency on BeautifulSoup -- Minor improvements - -v1.3.2 -- Fixed website changes - -v1.3.1 -- Fixes due to website changes - -v1.3.0 -- Fixed minor errors - -v1.2.9 -- Fixed minor errors - -v1.2.8 -- Added info on live channels - -v1.2.7 -- Initial version - - diff --git a/plugin.video.tv3.cat/resources/__init__.py b/plugin.video.tv3.cat/resources/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/plugin.video.tv3.cat/resources/fanart.jpg b/plugin.video.tv3.cat/resources/fanart.jpg deleted file mode 100644 index 15064988a7..0000000000 Binary files a/plugin.video.tv3.cat/resources/fanart.jpg and /dev/null differ diff --git a/plugin.video.tv3.cat/resources/icon.png b/plugin.video.tv3.cat/resources/icon.png deleted file mode 100644 index 2c86a837e7..0000000000 Binary files a/plugin.video.tv3.cat/resources/icon.png and /dev/null differ diff --git a/plugin.video.tv3.cat/resources/language/resource.language.ca_es/strings.po b/plugin.video.tv3.cat/resources/language/resource.language.ca_es/strings.po deleted file mode 100644 index 2dfe72313e..0000000000 --- a/plugin.video.tv3.cat/resources/language/resource.language.ca_es/strings.po +++ /dev/null @@ -1,125 +0,0 @@ -# Kodi Media Center language file -# Addon Name: TV3cat -# Addon id: plugin.video.tv3.cat -# Addon Provider: jqandreu -msgid "" -msgstr "" -"Project-Id-Version: Kodi Addons\n" -"Report-Msgid-Bugs-To: https://github.com/jqandreu/plugin.video.tv3.cat/issues\n" -"POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: jqandreu\n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: es_CA\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -msgctxt "#30001" -msgid "Today Featured" -msgstr "Avui destaquem" - -msgctxt "#30002" -msgid "Don't miss" -msgstr "No t'ho perdis" - -msgctxt "#30003" -msgid "Most viewed" -msgstr "El més vist" - -msgctxt "#30004" -msgid "Programs" -msgstr "Programes" - -msgctxt "#30005" -msgid "Series" -msgstr "Sèries" - -msgctxt "#30006" -msgid "News" -msgstr "Informatius" - -msgctxt "#30007" -msgid "Entertainment" -msgstr "Entreteniment" - -msgctxt "#30008" -msgid "Sports" -msgstr "Esports" - -msgctxt "#30009" -msgid "Documentaries" -msgstr "Documentals" - -msgctxt "#30010" -msgid "Divulgation" -msgstr "Divulgació" - -msgctxt "#30011" -msgid "Culture" -msgstr "Cultura" - -msgctxt "#30012" -msgid "Music" -msgstr "Música" - -msgctxt "#30013" -msgid "All A-Z" -msgstr "Tots A-Z" - -msgctxt "#30014" -msgid "Aired A-Z" -msgstr "En emissió A-Z" - -msgctxt "#30015" -msgid ">>Next Page" -msgstr ">>Pàgina següent" - -msgctxt "#30016" -msgid ">>Previous Page" -msgstr ">>Pàgina anterior" - -msgctxt "#30017" -msgid "Live channels" -msgstr "Canals en directe" - -msgctxt "#30018" -msgid "TV3" -msgstr "TV3" - -msgctxt "#30019" -msgid "Canal 324" -msgstr "Canal 324" - -msgctxt "#30020" -msgid "Canal 33-Super 3" -msgstr "Canal 33-Super 3" - -msgctxt "#30021" -msgid "Esport 3" -msgstr "Esport 3" - -msgctxt "#30022" -msgid "Search" -msgstr "Cercar" - -msgctxt "#30023" -msgid "Collections" -msgstr "Col·leccions" - -msgctxt "#30024" -msgid "TV3 (International broadcast)" -msgstr "TV3 (Emissió internacional)" - -msgctxt "#30025" -msgid "Canal 324 (International broadcast)" -msgstr "Canal 324 (Emissió internacional)" - -msgctxt "#30026" -msgid "Canal 33-Super 3 (International broadcast)" -msgstr "Canal 33-Super 3 (Emissió internacional)" - -msgctxt "#30027" -msgid "Esport 3 (International broadcast)" -msgstr "Esport 3 (Emissió internacional)" \ No newline at end of file diff --git a/plugin.video.tv3.cat/resources/language/resource.language.de_de/strings.po b/plugin.video.tv3.cat/resources/language/resource.language.de_de/strings.po deleted file mode 100644 index 27aadd32c9..0000000000 --- a/plugin.video.tv3.cat/resources/language/resource.language.de_de/strings.po +++ /dev/null @@ -1,125 +0,0 @@ -# Kodi Media Center language file -# Addon Name: TV3cat -# Addon id: plugin.video.tv3.cat -# Addon Provider: jqandreu -msgid "" -msgstr "" -"Project-Id-Version: Kodi Addons\n" -"Report-Msgid-Bugs-To: https://github.com/jqandreu/plugin.video.tv3.cat/issues\n" -"POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: Connum\n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: de_DE\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -msgctxt "#30001" -msgid "Today Featured" -msgstr "Empfehlungen des Tages" - -msgctxt "#30002" -msgid "Don't miss" -msgstr "Nicht verpassen" - -msgctxt "#30003" -msgid "Most viewed" -msgstr "Meistgesehen" - -msgctxt "#30004" -msgid "Programs" -msgstr "Programme" - -msgctxt "#30005" -msgid "Series" -msgstr "Serien" - -msgctxt "#30006" -msgid "News" -msgstr "Nachrichten" - -msgctxt "#30007" -msgid "Entertainment" -msgstr "Unterhaltung" - -msgctxt "#30008" -msgid "Sports" -msgstr "Sport" - -msgctxt "#30009" -msgid "Documentaries" -msgstr "Dokumentationen" - -msgctxt "#30010" -msgid "Divulgation" -msgstr "Verbreitung" - -msgctxt "#30011" -msgid "Culture" -msgstr "Kultur" - -msgctxt "#30012" -msgid "Music" -msgstr "Musik" - -msgctxt "#30013" -msgid "All A-Z" -msgstr "Alles A-Z" - -msgctxt "#30014" -msgid "Aired A-Z" -msgstr "Laufend A-Z" - -msgctxt "#30015" -msgid ">>Next Page" -msgstr ">>Nächste Seite" - -msgctxt "#30016" -msgid ">>Previous Page" -msgstr ">>Vorherige Seite" - -msgctxt "#30017" -msgid "Live channels" -msgstr "Live-Sender" - -msgctxt "#30018" -msgid "TV3" -msgstr "TV3" - -msgctxt "#30019" -msgid "Canal 324" -msgstr "Canal 324" - -msgctxt "#30020" -msgid "Canal 33-Super 3" -msgstr "Canal 33-Super 3" - -msgctxt "#30021" -msgid "Esport 3" -msgstr "Esport 3" - -msgctxt "#30022" -msgid "Search" -msgstr "Finden" - -msgctxt "#30023" -msgid "Collections" -msgstr "Sammlungen" - -msgctxt "#30024" -msgid "TV3 (International broadcast)" -msgstr "TV3 (International)" - -msgctxt "#30025" -msgid "Canal 324 (International broadcast)" -msgstr "Canal 324 (International)" - -msgctxt "#30026" -msgid "Canal 33-Super 3 (International broadcast)" -msgstr "Canal 33-Super 3 (International)" - -msgctxt "#30027" -msgid "Esport 3 (International broadcast)" -msgstr "Esport 3 (International)" \ No newline at end of file diff --git a/plugin.video.tv3.cat/resources/language/resource.language.en_gb/strings.po b/plugin.video.tv3.cat/resources/language/resource.language.en_gb/strings.po deleted file mode 100644 index 39ee30ed52..0000000000 --- a/plugin.video.tv3.cat/resources/language/resource.language.en_gb/strings.po +++ /dev/null @@ -1,125 +0,0 @@ -# Kodi Media Center language file -# Addon Name: TV3cat -# Addon id: plugin.video.tv3.cat -# Addon Provider: jqandreu -msgid "" -msgstr "" -"Project-Id-Version: Kodi Addons\n" -"Report-Msgid-Bugs-To: https://github.com/jqandreu/plugin.video.tv3.cat/issues\n" -"POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: jqandreu\n" -"Language-Team:\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: en_GB\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -msgctxt "#30001" -msgid "Today Featured" -msgstr "Today Featured" - -msgctxt "#30002" -msgid "Don't miss" -msgstr "Don't miss" - -msgctxt "#30003" -msgid "Most viewed" -msgstr "Most viewed" - -msgctxt "#30004" -msgid "Programs" -msgstr "Programs" - -msgctxt "#30005" -msgid "Series" -msgstr "Series" - -msgctxt "#30006" -msgid "News" -msgstr "News" - -msgctxt "#30007" -msgid "Entertainment" -msgstr "Entertainment" - -msgctxt "#30008" -msgid "Sports" -msgstr "Sports" - -msgctxt "#30009" -msgid "Documentaries" -msgstr "Documentaries" - -msgctxt "#30010" -msgid "Divulgation" -msgstr "Divulgation" - -msgctxt "#30011" -msgid "Culture" -msgstr "Culture" - -msgctxt "#30012" -msgid "Music" -msgstr "Music" - -msgctxt "#30013" -msgid "All A-Z" -msgstr "All A-Z" - -msgctxt "#30014" -msgid "Aired A-Z" -msgstr "Aired A-Z" - -msgctxt "#30015" -msgid ">>Next Page" -msgstr ">>Next Page" - -msgctxt "#30016" -msgid ">>Previous Page" -msgstr ">>Previous Page" - -msgctxt "#30017" -msgid "Live channels" -msgstr "Live channels" - -msgctxt "#30018" -msgid "TV3" -msgstr "TV3" - -msgctxt "#30019" -msgid "Canal 324" -msgstr "Canal 324" - -msgctxt "#30020" -msgid "Canal 33-Super 3" -msgstr "Canal 33-Super 3" - -msgctxt "#30021" -msgid "Esport 3" -msgstr "Esport 3" - -msgctxt "#30022" -msgid "Search" -msgstr "Search" - -msgctxt "#30023" -msgid "Collections" -msgstr "Collections" - -msgctxt "#30024" -msgid "TV3 (International broadcast)" -msgstr "TV3 (International broadcast)" - -msgctxt "#30025" -msgid "Canal 324 (International broadcast)" -msgstr "Canal 324 (International broadcast)" - -msgctxt "#30026" -msgid "Canal 33-Super 3 (International broadcast)" -msgstr "Canal 33-Super 3 (International broadcast)" - -msgctxt "#30027" -msgid "Esport 3 (International broadcast)" -msgstr "Esport 3 (International broadcast)" \ No newline at end of file diff --git a/plugin.video.tv3.cat/resources/language/resource.language.es_es/strings.po b/plugin.video.tv3.cat/resources/language/resource.language.es_es/strings.po deleted file mode 100644 index 22a420adf0..0000000000 --- a/plugin.video.tv3.cat/resources/language/resource.language.es_es/strings.po +++ /dev/null @@ -1,125 +0,0 @@ -# Kodi Media Center language file -# Addon Name: TV3cat -# Addon id: plugin.video.tv3.cat -# Addon Provider: jqandreu -msgid "" -msgstr "" -"Project-Id-Version: Kodi Addons\n" -"Report-Msgid-Bugs-To: https://github.com/jqandreu/plugin.video.tv3.cat/issues\n" -"POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: jqandreu\n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: es_ES\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -msgctxt "#30001" -msgid "Today Featured" -msgstr "Hoy destacamos" - -msgctxt "#30002" -msgid "Don't miss" -msgstr "No te lo pierdas" - -msgctxt "#30003" -msgid "Most viewed" -msgstr "Lo más visto" - -msgctxt "#30004" -msgid "Programs" -msgstr "Programas" - -msgctxt "#30005" -msgid "Series" -msgstr "Series" - -msgctxt "#30006" -msgid "News" -msgstr "Informativos" - -msgctxt "#30007" -msgid "Entertainment" -msgstr "Entretenimiento" - -msgctxt "#30008" -msgid "Sports" -msgstr "Deportes" - -msgctxt "#30009" -msgid "Documentaries" -msgstr "Documentales" - -msgctxt "#30010" -msgid "Divulgation" -msgstr "Divulgación" - -msgctxt "#30011" -msgid "Culture" -msgstr "Cultura" - -msgctxt "#30012" -msgid "Music" -msgstr "Música" - -msgctxt "#30013" -msgid "All A-Z" -msgstr "Todos A-Z" - -msgctxt "#30014" -msgid "Aired A-Z" -msgstr "En emisión A-Z" - -msgctxt "#30015" -msgid ">>Next Page" -msgstr ">>Página siguiente" - -msgctxt "#30016" -msgid ">>Previous Page" -msgstr ">>Página anterior" - -msgctxt "#30017" -msgid "Live channels" -msgstr "Canales en directo" - -msgctxt "#30018" -msgid "TV3" -msgstr "TV3" - -msgctxt "#30019" -msgid "Canal 324" -msgstr "Canal 324" - -msgctxt "#30020" -msgid "Canal 33-Super 3" -msgstr "Canal 33-Super 3" - -msgctxt "#30021" -msgid "Esport 3" -msgstr "Esport 3" - -msgctxt "#30022" -msgid "Search" -msgstr "Buscar" - -msgctxt "#30023" -msgid "Collections" -msgstr "Colecciones" - -msgctxt "#30024" -msgid "TV3 (International broadcast)" -msgstr "TV3 (Emisión internacional)" - -msgctxt "#30025" -msgid "Canal 324 (International broadcast)" -msgstr "Canal 324 (Emisión internacional)" - -msgctxt "#30026" -msgid "Canal 33-Super 3 (International broadcast)" -msgstr "Canal 33-Super 3 (Emisión internacional)" - -msgctxt "#30027" -msgid "Esport 3 (International broadcast)" -msgstr "Esport 3 (Emisión internacional)" \ No newline at end of file diff --git a/plugin.video.tv3.cat/resources/language/resource.language.nb_no/strings.po b/plugin.video.tv3.cat/resources/language/resource.language.nb_no/strings.po deleted file mode 100644 index 1e231676e0..0000000000 --- a/plugin.video.tv3.cat/resources/language/resource.language.nb_no/strings.po +++ /dev/null @@ -1,125 +0,0 @@ -# Kodi Media Center language file -# Addon Name: TV3cat -# Addon id: plugin.video.tv3.cat -# Addon Provider: jqandreu -msgid "" -msgstr "" -"Project-Id-Version: Kodi Addons\n" -"Report-Msgid-Bugs-To: https://github.com/jqandreu/plugin.video.tv3.cat/issues\n" -"POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: jrdfrncs\n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: nb_NO\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -msgctxt "#30001" -msgid "Today Featured" -msgstr "Anbefalt i dag" - -msgctxt "#30002" -msgid "Don't miss" -msgstr "Ikke miss" - -msgctxt "#30003" -msgid "Most viewed" -msgstr "Mest sett" - -msgctxt "#30004" -msgid "Programs" -msgstr "Sendinger" - -msgctxt "#30005" -msgid "Series" -msgstr "Serier" - -msgctxt "#30006" -msgid "News" -msgstr "Nyheter" - -msgctxt "#30007" -msgid "Entertainment" -msgstr "Underholdning" - -msgctxt "#30008" -msgid "Sports" -msgstr "Idrett" - -msgctxt "#30009" -msgid "Documentaries" -msgstr "Dokumentaler" - -msgctxt "#30010" -msgid "Divulgation" -msgstr "Avsløring" - -msgctxt "#30011" -msgid "Culture" -msgstr "Kultur" - -msgctxt "#30012" -msgid "Music" -msgstr "Musikk" - -msgctxt "#30013" -msgid "All A-Z" -msgstr "Alt A-Å" - -msgctxt "#30014" -msgid "Aired A-Z" -msgstr "Nåværende A-Å" - -msgctxt "#30015" -msgid ">>Next Page" -msgstr ">>Neste side" - -msgctxt "#30016" -msgid ">>Previous Page" -msgstr ">>Forrige side" - -msgctxt "#30017" -msgid "Live channels" -msgstr "Direkte" - -msgctxt "#30018" -msgid "TV3" -msgstr "TV3" - -msgctxt "#30019" -msgid "Canal 324" -msgstr "Canal 324" - -msgctxt "#30020" -msgid "Canal 33-Super 3" -msgstr "Canal 33-Super 3" - -msgctxt "#30021" -msgid "Esport 3" -msgstr "Esport 3" - -msgctxt "#30022" -msgid "Search" -msgstr "Søk" - -msgctxt "#30023" -msgid "Collections" -msgstr "Samlinger" - -msgctxt "#30024" -msgid "TV3 (International broadcast)" -msgstr "TV3 (Utland)" - -msgctxt "#30025" -msgid "Canal 324 (International broadcast)" -msgstr "Canal 324 (Utland)" - -msgctxt "#30026" -msgid "Canal 33-Super 3 (International broadcast)" -msgstr "Canal 33-Super 3 (Utland)" - -msgctxt "#30027" -msgid "Esport 3 (International broadcast)" -msgstr "Esport 3 (Utland)" \ No newline at end of file diff --git a/plugin.video.tv3.cat/resources/lib/__init__.py b/plugin.video.tv3.cat/resources/lib/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/plugin.video.tv3.cat/resources/lib/tv3cat/DirAZemisio.py b/plugin.video.tv3.cat/resources/lib/tv3cat/DirAZemisio.py deleted file mode 100644 index f25ec2b547..0000000000 --- a/plugin.video.tv3.cat/resources/lib/tv3cat/DirAZemisio.py +++ /dev/null @@ -1,18 +0,0 @@ -from resources.lib.video.FolderVideo import FolderVideo - - - - -def getList(): - progsAC = FolderVideo("#A-C", "emisio", "progAZ", "", "") - progsDE = FolderVideo("D-E", "emisio", "progAZ", "", "") - progsFI = FolderVideo("F-I", "emisio", "progAZ", "", "") - progsJL = FolderVideo("J-L", "emisio", "progAZ", "", "") - progsMP = FolderVideo("M-P", "emisio", "progAZ", "", "") - progsQS = FolderVideo("Q-S", "emisio", "progAZ", "", "") - progsTV = FolderVideo("T-V", "emisio", "progAZ", "", "") - progsXZ = FolderVideo("X-Z", "emisio", "progAZ", "", "") - - list = [progsAC, progsDE, progsFI, progsJL, progsMP, progsQS, progsTV, - progsXZ] - return list diff --git a/plugin.video.tv3.cat/resources/lib/tv3cat/DirAZtots.py b/plugin.video.tv3.cat/resources/lib/tv3cat/DirAZtots.py deleted file mode 100644 index a56fc02328..0000000000 --- a/plugin.video.tv3.cat/resources/lib/tv3cat/DirAZtots.py +++ /dev/null @@ -1,18 +0,0 @@ -from resources.lib.video.FolderVideo import FolderVideo - - - - -def getList(): - progsAC = FolderVideo("#A-C", "tots", "progAZ", "", "") - progsDE = FolderVideo("D-E", "tots", "progAZ", "", "") - progsFI = FolderVideo("F-I", "tots", "progAZ", "", "") - progsJL = FolderVideo("J-L", "tots", "progAZ", "", "") - progsMP = FolderVideo("M-P", "tots", "progAZ", "", "") - progsQS = FolderVideo("Q-S", "tots", "progAZ", "", "") - progsTV = FolderVideo("T-V", "tots", "progAZ", "", "") - progsXZ = FolderVideo("X-Z", "tots", "progAZ", "", "") - - list = [progsAC, progsDE, progsFI, progsJL, progsMP, progsQS, progsTV, - progsXZ] - return list \ No newline at end of file diff --git a/plugin.video.tv3.cat/resources/lib/tv3cat/Home.py b/plugin.video.tv3.cat/resources/lib/tv3cat/Home.py deleted file mode 100644 index f999d00aa4..0000000000 --- a/plugin.video.tv3.cat/resources/lib/tv3cat/Home.py +++ /dev/null @@ -1,18 +0,0 @@ -from resources.lib.video.FolderVideo import FolderVideo -from resources.lib.utils.Urls import url_coleccions, url_mesvist - - - -def getList(strings): - - avuidestaquem = FolderVideo(strings.get('avuidestaquem'), "", "destaquem", "", "") - #noperdis = FolderVideo(strings.get('noperdis'), url_coleccions, "noperdis", "", "") - mesvist = FolderVideo(strings.get('mesvist'), url_mesvist, "mesvist", "", "") - coleccions = FolderVideo(strings.get('coleccions'), "", "coleccions", "", "") - programes = FolderVideo(strings.get('programes'), "", "programes", "", "") - directe = FolderVideo(strings.get('directe'), "", "directe", "", "") - cercar = FolderVideo(strings.get('cercar'), "", "cercar", "", "") - - list = [avuidestaquem, mesvist, coleccions, programes, directe, cercar] - - return list \ No newline at end of file diff --git a/plugin.video.tv3.cat/resources/lib/tv3cat/Images.py b/plugin.video.tv3.cat/resources/lib/tv3cat/Images.py deleted file mode 100644 index e6f944a13e..0000000000 --- a/plugin.video.tv3.cat/resources/lib/tv3cat/Images.py +++ /dev/null @@ -1,12 +0,0 @@ -from builtins import object -import os - - -class Images(object): - - def __init__(self, addon_path): - - self.thumb_tv3 = os.path.join(addon_path, 'resources', 'media', 'tv3_thumbnail.png') - self.thumb_324 = os.path.join(addon_path, 'resources', 'media', '324_thumbnail.png') - self.thumb_c33s3 = os.path.join(addon_path, 'resources', 'media', 'c33-super3_thumbnail.png') - self.thumb_esp3 = os.path.join(addon_path, 'resources', 'media', 'esports3_thumbnail.png') diff --git a/plugin.video.tv3.cat/resources/lib/tv3cat/Sections.py b/plugin.video.tv3.cat/resources/lib/tv3cat/Sections.py deleted file mode 100644 index eeb826a517..0000000000 --- a/plugin.video.tv3.cat/resources/lib/tv3cat/Sections.py +++ /dev/null @@ -1,22 +0,0 @@ -from resources.lib.video.FolderVideo import FolderVideo - - - -def getList(strings): - - series = FolderVideo(strings.get('series'), "/series/", "sections", "", "") - information = FolderVideo(strings.get('informatius'), "/informatius/", "sections", "", "") - entreteniment = FolderVideo(strings.get('entreteniment'), "/entreteniment/", "sections", "", - "") - sports = FolderVideo(strings.get('esports'), "/esports/", "sections", "", "") - documentals = FolderVideo(strings.get('documentals'), "/documentals/", "sections", "", "") - divulgacio = FolderVideo(strings.get('divulgacio'), "/divulgacio/", "sections", "", "") - cultura = FolderVideo(strings.get('cultura'), "/cultura/", "sections", "", "") - musica = FolderVideo(strings.get('musica'), "/musica/", "sections", "", "") - emissio = FolderVideo(strings.get('emissio'), "/programes/", "dirAZemisio", "", "") - tots = FolderVideo(strings.get('tots'), "/programes-tots/", "dirAZtots", "", "") - - list = [series, information, entreteniment, sports, documentals, divulgacio, - cultura, musica, emissio, tots] - - return list diff --git a/plugin.video.tv3.cat/resources/lib/tv3cat/TV3Strings.py b/plugin.video.tv3.cat/resources/lib/tv3cat/TV3Strings.py deleted file mode 100644 index 8db27ff1f3..0000000000 --- a/plugin.video.tv3.cat/resources/lib/tv3cat/TV3Strings.py +++ /dev/null @@ -1,40 +0,0 @@ -from builtins import object -class TV3Strings(object): - - def __init__(self, addon): - self.addon = addon - self.strs = { - 'avuidestaquem': 30001, - 'noperdis': 30002, - 'mesvist': 30003, - 'programes': 30004, - 'series': 30005, - 'informatius': 30006, - 'entreteniment': 30007, - 'esports': 30008, - 'documentals': 30009, - 'divulgacio': 30010, - 'cultura': 30011, - 'musica': 30012, - 'tots': 30013, - 'emissio': 30014, - 'seguent': 30015, - 'anterior': 30016, - 'directe': 30017, - 'tv3': 30018, - 'canal324': 30019, - 'c33super3': 30020, - 'esport3': 30021, - 'cercar': 30022, - 'coleccions': 30023, - 'tv3_int': 30024, - 'canal324_int': 30025, - 'c33super3_int': 30026, - 'esport3_int': 30027 - } - - def get(self, string): - code = self.strs[string] - st = self.addon.getLocalizedString(code).encode("utf-8") - - return st \ No newline at end of file diff --git a/plugin.video.tv3.cat/resources/lib/tv3cat/TV3cat.py b/plugin.video.tv3.cat/resources/lib/tv3cat/TV3cat.py deleted file mode 100644 index 54d38e97dd..0000000000 --- a/plugin.video.tv3.cat/resources/lib/tv3cat/TV3cat.py +++ /dev/null @@ -1,694 +0,0 @@ -from __future__ import division - -from builtins import object -import re -import xbmc -import urllib.parse -from bs4 import BeautifulSoup - - -from resources.lib.tv3cat import DirAZemisio -from resources.lib.tv3cat import DirAZtots -from resources.lib.tv3cat import Home -from resources.lib.tv3cat.Images import Images -from resources.lib.tv3cat import Sections -from resources.lib.utils import Urls -from resources.lib.video.FolderVideo import FolderVideo -from resources.lib.video.Video import Video -from resources.lib.tv3cat.TV3Strings import TV3Strings -from resources.lib.utils.Utils import * - - -class TV3cat(object): - def __init__(self, addon_path, addon): - self.strs = TV3Strings(addon) - self.images = Images(addon_path) - self.addon_path = addon_path - - xbmc.log("plugin.video.tv3.cat classe TV3cat - init() ") - - # mode = None - def listHome(self): - xbmc.log("plugin.video.tv3.cat classe Tv3cat - listHome() ") - - return Home.getList(self.strs) - - # mode = destaquem - def listDestaquem(self): - xbmc.log("plugin.video.tv3.cat classe Tv3cat - listDestaquem() ") - html_destacats = getHtml(Urls.url_alacarta) - - lVideos = [] - - if html_destacats: - - soup = BeautifulSoup(html_destacats, "html.parser") - dest = None - - try: - - destacats = soup.findAll("article", {"class": re.compile("M-destacat")}) - - - destacats2 = soup.findAll("div", {"class": re.compile("swiper-slide")}) - - destacats.extend(destacats2) - - for c in destacats: - a = c.a["href"] - code = a[-8:-1] - - - html_data = getHtml(Urls.url_datavideos + code + '&profile=pc') - - html_data = html_data.decode("ISO-8859-1") - data = json.loads(html_data) - - if len(data) > 0: - video = self.getVideo(data) - lVideos.append(video) - - except AttributeError as e: - xbmc.log("Exception AtributeError Altres items: " + str(e)) - except KeyError as e: - xbmc.log("Exception KeyError Altres items: " + str(e)) - except Exception as e: - xbmc.log("Exception Item destacat: " + str(e)) - - xbmc.log("listDestaquem len: " + str(len(lVideos))) - - result = [None] * 2 - result[0] = lVideos - return result - - - # mode = noperdis - def listNoPerdis(self): - xbmc.log("--------------listNoPerdis----------") - - lVideos = [] - - link = getHtml(Urls.url_coleccions) - - if link: - - soup = BeautifulSoup(link, "html.parser") - - try: - links = soup.findAll("li", {"class": "sensePunt R-elementLlistat C-llistatVideo"}) - - if not links: - links = soup.findAll("li", {"class": "sensePunt R-elementLlistat C-llistatVideo "}) - - if not links: - links = soup.findAll("li", {"class": "sensePunt R-elementLlistat C-llistatVideo "}) - - for i in links: - a = i.a["href"] - code = a[-8:-1] - - link = getHtml(Urls.url_datavideos + code + '&profile=pc') - - link = link.decode("ISO-8859-1") - data = json.loads(link) - - if len(data) > 0: - video = self.getVideo(data) - lVideos.append(video) - - except AttributeError as e: - xbmc.log("Exception AtributeError NoPerdis: " + str(e)) - except KeyError as e: - xbmc.log("Exception KeyError NoPerdis: " + str(e)) - except Exception as e: - xbmc.log("Exception Item destacat: " + str(e)) - - result = [None] * 2 - result[0] = lVideos - return result - - - # mode = mesvist - def listMesVist(self): - xbmc.log("--------------listMesVist----------") - - lVideos = [] - - link = getHtml(Urls.url_mesvist) - - if link: - - soup = BeautifulSoup(link, "html.parser") - - try: - links = soup.findAll("li", {"class": re.compile("C-llistatVideo")}) - - for i in links: - a = i.a["href"] - code = a[-8:-1] - - link = getHtml(Urls.url_datavideos + code + '&profile=pc') - - link = link.decode("ISO-8859-1") - data = json.loads(link) - - - - if len(data) > 0: - video = self.getVideo(data) - lVideos.append(video) - - except AttributeError as e: - xbmc.log("Exception AtributeError listMesVist: " + str(e)) - except KeyError as e: - xbmc.log("Exception KeyError listMesVist: " + str(e)) - except Exception as e: - xbmc.log("Exception listMesVist: " + str(e)) - - result = [None] * 2 - result[0] = lVideos - return result - - - - # mode = coleccions - def listColeccions(self): - xbmc.log("--------------listColeccions----------") - - lFolderVideos = [] - - link = getHtml(Urls.url_coleccions) - - if link: - - soup = BeautifulSoup(link, "html.parser") - - try: - - colecc = soup.findAll("div", {"class": re.compile("M-destacat")}) - - - for el in colecc: - - url = el.a["href"] - url = Urls.url_base + url - t = el.div.h2.a.string - - titol = t.encode("utf-8") - - - img = el.figure.img["src"] - - - foldVideo = FolderVideo(titol,url, 'getlistvideos', img, img) - lFolderVideos.append(foldVideo) - - except AttributeError as e: - xbmc.log("Exception AtributeError listColeccions: " + str(e)) - except KeyError as e: - xbmc.log("Exception KeyError listColeccions: " + str(e)) - except Exception as e: - xbmc.log("Exception listColeccions: " + str(e)) - - - return lFolderVideos - - - # mode = programes - def dirSections(self): - - return Sections.getList(self.strs) - - # mode = dirAZemisio - def dirAZemisio(self): - - return DirAZemisio.getList() - - #mode = dirAZtots - def dirAZtots(self): - - return DirAZtots.getList() - - # mode = sections - def programsSections(self, url): - xbmc.log("-------------------------programsSections----------------------") - lFolderVideos = [] - - link = getHtml(Urls.url_programes_emisio + url) - - if link: - soup = BeautifulSoup(link) - - try: - # Grups programes de cada lletra - links = soup.findAll("ul", {"class": "R-abcProgrames"}) - - for i in links: - ls = i.findAll("li") - - for li in ls: - url = li.a["href"] - t = str(li.a.string) - titol = re.sub('^[\n\r\s]+', '', t) - - # test url - urlProg = Urls.url_base + url - if urlProg == Urls.urlApm or urlProg == Urls.urlZonaZaping: - url_final = urlProg + 'clips/' - - elif 'super3' in url: - if 'https:' not in url: - url_final = 'https:' + url - else: - url_final = url - - - else: - match = re.compile('(http://www.ccma.cat/tv3/alacarta/.+?/fitxa-programa/)(\d+/)').findall( - urlProg) - if len(match) != 0: - url1 = match[0][0] - urlcode = match[0][1] - - url_final = url1 + 'capitols/' + urlcode - else: - url_final = urlProg + 'capitols/' - - - foldVideo = FolderVideo(titol, url_final, 'getlistvideos', "", "") - lFolderVideos.append(foldVideo) - - except AttributeError as e: - xbmc.log("Exception AtributeError listSections: " + str(e)) - except KeyError as e: - xbmc.log("Exception KeyError listSections: " + str(e)) - except Exception as e: - xbmc.log("Exception listSections: " + str(e)) - - return lFolderVideos - - - # mode = directe - def listDirecte(self): - xbmc.log("-----------------listDirecte--------------------") - lVideos = [] - - data = getDataVideo(Urls.url_arafem) - - if data: - c = data.get('canal', None) - - if c: - - arafemtv3 = '' - arafem33 = '' - arafemesp3 = '' - arafem324 = '' - arafemtv3_sinop = '' - arafem33_sinop = '' - arafemesp3_sinop = '' - arafem324_sinop = '' - - i = 0 - while i < 5: - nameChannel = c[i].get('ara_fem', {}).get('codi_canal', None) - - if nameChannel == 'tv3': - arafemtv3 = c[i].get('ara_fem', {}).get('titol_programa', None) - arafemtv3_sinop = c[i].get('ara_fem', {}).get('sinopsi', None) - if nameChannel == 'cs3' or nameChannel == '33d': - arafem33 = c[i].get('ara_fem', {}).get('titol_programa', None) - arafem33_sinop = c[i].get('ara_fem', {}).get('sinopsi', None) - if nameChannel == 'esport3': - arafemesp3 = c[i].get('ara_fem', {}).get('titol_programa', None) - arafemesp3_sinop = c[i].get('ara_fem', {}).get('sinopsi', None) - if nameChannel == '324': - arafem324 = c[i].get('ara_fem', {}).get('titol_programa', None) - arafem324_sinop = c[i].get('ara_fem', {}).get('sinopsi', None) - - i = i + 1 - - infolabelstv3 = {} - infolabels324 = {} - infolabels33 = {} - infolabelsesp3 = {} - - if arafemtv3: - infolabelstv3['title'] = arafemtv3 - infotv3 = '[B]' + arafemtv3 + '[/B]' + '[CR]' - if arafemtv3_sinop: - if type(arafemtv3) is int or type(arafemtv3) is float: - arafemtv3 = str(arafemtv3) - infotv3 = infotv3 + arafemtv3_sinop - - infolabelstv3['plot'] = infotv3 - - if arafem33: - infolabels33['title'] = arafem33 - info33 = '[B]' + arafem33 + '[/B]' + '[CR]' - if arafem33_sinop: - if type(arafem33) is int or type(arafem33) is float: - arafem33 = str(arafem33) - info33 = info33 + arafem33_sinop - - infolabels33['plot'] = info33 - - if arafemesp3: - infolabelsesp3['title'] = arafemesp3 - infoesp3 = '[B]' + arafemesp3 + '[/B]' + '[CR]' - if arafemesp3_sinop: - if type(arafemesp3) is int or type(arafemesp3) is float: - arafemesp3 = str(arafemesp3) - infoesp3 = infoesp3 + arafemesp3_sinop - - infolabelsesp3['plot'] = infoesp3 - - if arafem324: - infolabels324['title'] = arafem324 - info324 = '[B]' + arafem324 + '[/B]' + '[CR]' - if arafem324_sinop: - if type(arafem324) is int or type(arafem324) is float: - arafem324 = str(arafem324) - info324 = info324 + arafem324_sinop - - infolabels324['plot'] = info324 - - tv3Directe = Video(self.strs.get('tv3'), self.images.thumb_tv3, self.images.thumb_tv3, infolabelstv3, Urls.url_directe_tv3, "") - c324Directe = Video(self.strs.get('canal324'), self.images.thumb_tv3, self.images.thumb_tv3, infolabels324, Urls.url_directe_324, "") - c33s3Directe = Video(self.strs.get('c33super3'), self.images.thumb_tv3, self.images.thumb_tv3, infolabels33, Urls.url_directe_c33s3, "") - sps3Directe = Video(self.strs.get('esport3'), self.images.thumb_tv3, self.images.thumb_tv3, infolabelsesp3, Urls.url_directe_esport3, "") - - tv3DirecteInt = Video(self.strs.get('tv3_int'), self.images.thumb_tv3, self.images.thumb_tv3, infolabelstv3, Urls.url_directe_tv3_int, "") - c324DirecteInt = Video(self.strs.get('canal324_int'), self.images.thumb_tv3, self.images.thumb_tv3, infolabels324, Urls.url_directe_324_int, "") - c33s3DirecteInt = Video(self.strs.get('c33super3_int'), self.images.thumb_tv3, self.images.thumb_tv3, infolabels33, Urls.url_directe_c33s3_int, "") - sps3DirecteInt = Video(self.strs.get('esport3_int'), self.images.thumb_tv3, self.images.thumb_tv3, infolabelsesp3, Urls.url_directe_esport3_int, "") - - lVideos = [tv3Directe, c33s3Directe, c324Directe, sps3Directe, tv3DirecteInt, c33s3DirecteInt, c324DirecteInt, sps3DirecteInt] - - result = [None] * 2 - result[0] = lVideos - return result - - - # mode = progAZ - def programesAZ(self, paramUrl, letters): - xbmc.log("--------------------programesAZ------------------") - letters = urllib.parse.unquote(letters) - lFolderVideos = [] - url = "" - - if paramUrl == "emisio": - url = Urls.url_programes_emisio - else: - url = Urls.url_programes_tots - - html = getHtml(url) - - - if html: - - soup = BeautifulSoup(html.decode('utf-8', 'ignore'), "html.parser") - - elements = soup.findAll("ul", {"class": "R-abcProgrames"}) - - li = None - - - if len(elements) > 0: - - if letters == "#A-C": - - li = elements[0:4] - - elif letters == "D-E": - - li = elements[4:6] - - elif letters == "F-I": - - li = elements[6:10] - - elif letters == "J-L": - - li = elements[10:13] - - elif letters == "M-P": - - li = elements[13:17] - - elif letters == "Q-S": - - li = elements[17:20] - - elif letters == "T-V": - - li = elements[20:23] - - elif letters == "X-Z": - - li = elements[23:] - - if li != None and len(li) > 0: - - for l in li: - - links = l.findAll("li") - - if len(links) > 0: - - for i in links: - #xbmc.log("progsAZ - li: " + str(i).encode('utf-8')) - - url = i.a["href"] - titol = i.a.string.strip().encode("utf-8") - - # test url - urlProg = Urls.url_base + url - if urlProg == Urls.urlApm or urlProg == Urls.urlZonaZaping: - url_final = urlProg + 'clips/' - - elif 'super3' in url: - if 'https:' not in url: - url_final = 'https:' + url - else: - url_final = url - - else: - match = re.compile( - '(http://www.ccma.cat/tv3/alacarta/.+?/fitxa-programa/)(\d+/)').findall(urlProg) - if len(match) != 0: - url1 = match[0][0] - urlcode = match[0][1] - - url_final = url1 + 'capitols/' + urlcode - else: - url_final = urlProg + 'capitols/' - - - folderVideo = FolderVideo(titol, url_final, 'getlistvideos', "", "") - lFolderVideos.append(folderVideo) - #xbmc.log("progsAZ - Titol: " + titol) - #xbmc.log("progsAZ - url: " + url_final) - - - return lFolderVideos - - # mode = getlistvideos - def getListVideos(self, url, cercar): - xbmc.log("---------------getListVideos------------------------------") - result = [None] * 2 - lVideos = [] - - xbmc.log('getListVideos--Url listvideos: ' + url) - - link = getHtml(url) - - if link: - - soup = BeautifulSoup(link.decode('utf-8', 'ignore'), "html.parser") - - links = None - try: - links = soup.findAll("div", {"class": "F-itemContenidorIntern C-destacatVideo"}) - - if not links: - links = soup.findAll("li", {"class": "F-llistat-item"}) - - # Coleccions - if not links: - links = soup.findAll("div", {"class": re.compile("M-destacat")}) - - # Zona Zapping - if not links: - links = soup.findAll("article", {"class": "M-destacat C-destacatVideo T-alacartaTema C-3linies "}) - - # Super 3 - if not links: - - links = soup.findAll("div", - {"class": "M-destacat super3 T-video ombres-laterals"}) - links2 = soup.findAll("div", - {"class": "M-destacat super3 noGapAfter T-video ombres-laterals"}) - links = links + links2 - - # Super 3 - if not links: - links = soup.findAll("article", - {"class": "M-destacat super3 noGapAfter T-video ombres-laterals"}) - - - except AttributeError as e: - xbmc.log("getListVideos--getLinks--Exception AtributeError listVideos: " + str(e)) - except KeyError as e: - xbmc.log("getListVideos--getLinks--Exception KeyError listVideos: " + str(e)) - except Exception as e: - xbmc.log("getListVideos--getLinks--Exception listVideos: " + str(e)) - - if links: - - for l in links: - - try: - - urlvideo = l.a["href"] - - code = urlvideo.split('/')[-1] - - if len(code) == 0: - code = urlvideo.split('/')[-2] - - - html_data = getHtml(Urls.url_datavideos + code + '&profile=pc') - - html_data = html_data.decode("ISO-8859-1") - data = json.loads(html_data) - - if len(data) > 0: - video = self.getVideo(data) - lVideos.append(video) - - - - - except AttributeError as e: - xbmc.log("getListVideos--bucle addVideo--Exception AtributeError: " + str(e)) - - except KeyError as e: - xbmc.log("getListVideos--bucle addVideo--Exception KeyError: " + str(e)) - - except Exception as e: - xbmc.log("getListVideos--bucle addVideo--Exception: " + str(e)) - - result[0] = lVideos - - ############################################################################### - - # Pagination - ht = rb'

P\xc3\xa0gina (\d+) de (\d+)

' - - match = re.compile(ht).findall(link) - if len(match) != 0: - actualPage = int(match[0][0]) - totalPages = int(match[0][1]) - - if actualPage < totalPages: - ntPage = str(actualPage + 1) - nextPage = '&pagina=' + ntPage - if cercar: - if actualPage == 1: - url_next = url + nextPage - else: - url_next = re.sub('&pagina=[\d]+', nextPage, url) - else: - url_next = url + '?text=&profile=&items_pagina=15' + nextPage - foldNext = FolderVideo(self.strs.get('seguent'), url_next, "getlistvideos", "","") - foldNext.hasNextPage = True - result[1] = foldNext - - return result - - - def getVideo(self, data): - linkvideo = None - media = data.get('media', {}) - - if type(media) is list and len(media) > 0: - media_dict = media[0] - linkvideo = media_dict.get('url', None) - else: - linkvideo = media.get('url', None) - - if linkvideo != None: - if type(linkvideo) is list and len(linkvideo) > 0: - linkvideo_item = linkvideo[0] - urlVideo = linkvideo_item.get('file', None) - - titol = data.get('informacio', {}).get('titol', None) - image = data.get('imatges', {}).get('url', None) - descripcio = data.get('informacio', {}).get('descripcio', None) - programa = data.get('informacio', {}).get('programa', None) - capitol = data.get('informacio', {}).get('capitol', None) - tematica = data.get('informacio', {}).get('tematica', {}).get('text', None) - data_emisio = data.get('informacio', {}).get('data_emissio', {}).get('text', None) - milisec = data.get('informacio', {}).get('durada', {}).get('milisegons', None) - durada = "" - - if milisec != None: - durada = milisec // 1000 - - - if descripcio == None: - descripcio = '' - else: - descripcio = descripcio.replace('
', '') - - header = "" - if programa != None: - if type(programa) is int or type(programa) is float: - programa = str(programa) - header = '[B]' + programa + '[/B]' + '[CR]' - - infolabels = {} - if data_emisio != None: - dt = data_emisio[0:10] - year = data_emisio[6:10] - infolabels['aired'] = dt - infolabels['year'] = year - header = header + dt + '[CR]' - - descripcio = header + descripcio - - if titol != None: - infolabels['title'] = titol - - - if capitol != None: - infolabels['episode'] = capitol - - - if descripcio != None: - infolabels['plot'] = descripcio - - if tematica != None: - infolabels['genre'] = tematica - - video = Video(titol, image, image, infolabels, urlVideo, durada ) - - return video - - else: - return None - - #mode = cercar - def search(self): - - keyboard = xbmc.Keyboard('', self.strs.get('cercar')) - keyboard.doModal() - if keyboard.isConfirmed() and keyboard.getText(): - search_string = keyboard.getText().replace(" ", "+") - url = "http://www.ccma.cat/tv3/alacarta/cercador/?items_pagina=15&profile=videos&text=" + search_string - - lVideos = self.getListVideos(url, True) - - return lVideos - diff --git a/plugin.video.tv3.cat/resources/lib/tv3cat/__init__.py b/plugin.video.tv3.cat/resources/lib/tv3cat/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/plugin.video.tv3.cat/resources/lib/ui/UI.py b/plugin.video.tv3.cat/resources/lib/ui/UI.py deleted file mode 100644 index f5782d77a6..0000000000 --- a/plugin.video.tv3.cat/resources/lib/ui/UI.py +++ /dev/null @@ -1,247 +0,0 @@ -from builtins import str -from builtins import object -from resources.lib.utils.Utils import buildUrl -from resources.lib.tv3cat.TV3cat import TV3cat -import xbmcaddon -import xbmcplugin -import xbmcgui -import xbmc -import xbmcvfs -import urllib.parse - - -class UI(object): - - def __init__(self, base_url, addon_handle, args): - addon = xbmcaddon.Addon() - addon_path = xbmcvfs.translatePath(addon.getAddonInfo('path')) - self.tv3 = TV3cat(addon_path, addon) - self.base_url = base_url - self.addon_handle = addon_handle - self.args = args - self.mode = args.get('mode', None) - self.url = args.get('url', ['']) - self.name = args.get('name', None) - xbmc.log("plugin.video.tv3.cat classe UI - init() ") - - - def run(self, mode, url): - xbmc.log("plugin.video.tv3.cat classe UI - run() mode = " + str(mode)) - - - if mode == None: - xbmc.log("plugin.video.tv3.cat classe UI - mode = None") - lFolder = self.tv3.listHome() - - if len(lFolder) > 0: - self.listFolder(lFolder) - else: - xbmc.log("UI.run() Home - No existeixen elements") - - elif mode[0] == 'destaquem': - xbmc.log("plugin.video.tv3.cat classe UI - mode = destaquem") - lVideos = self.tv3.listDestaquem() - - if len(lVideos) > 0: - self.listVideos(lVideos) - else: - xbmc.log("UI.run() destaquem - No existeixen videos") - - - elif mode[0] == 'noperdis': - - lVideos = self.tv3.listNoPerdis() - - if len(lVideos) > 0: - self.listVideos(lVideos) - else: - xbmc.log("UI.run() noperdis - No existeixen videos") - - elif mode[0] == 'mesvist': - - lVideos = self.tv3.listMesVist() - - if len(lVideos) > 0: - self.listVideos(lVideos) - else: - xbmc.log("UI.run() mesvist - No existeixen videos") - - elif mode[0] == 'programes': - - lFolder = self.tv3.dirSections() - - if len(lFolder) > 0: - self.listFolder(lFolder) - else: - xbmc.log("UI.run() programes - No existeixen elements") - - elif mode[0] == 'sections': - - lFolder = self.tv3.programsSections(url[0]) - - if len(lFolder) > 0: - self.listFolder(lFolder) - else: - xbmc.log("UI.run() sections - No existeixen elements") - - elif mode[0] == 'dirAZemisio': - - lFolder = self.tv3.dirAZemisio() - - if len(lFolder) > 0: - self.listFolder(lFolder) - else: - xbmc.log("UI.run() dirAZemisio - No existeixen elements") - - elif mode[0] == 'dirAZtots': - - lFolder = self.tv3.dirAZtots() - - if len(lFolder) > 0: - self.listFolder(lFolder) - else: - xbmc.log("UI.run() dirAZtots - No existeixen elements") - - elif mode[0] == 'progAZ': - letters = self.name[0] - lFolder = self.tv3.programesAZ(url[0], letters) - - if len(lFolder) > 0: - self.listFolder(lFolder) - else: - xbmc.log("UI.run() progAZ - No existeixen elements") - - elif mode[0] == 'directe': - - lVideos = self.tv3.listDirecte() - self.listVideos(lVideos) - - elif mode[0] == 'cercar': - - lVideos = self.tv3.search() - - if len(lVideos) > 0: - self.listVideos(lVideos) - else: - xbmc.log("UI.run() cercar - No s'ha trobat cap video") - - - elif mode[0] == 'getlistvideos': - - lVideos = self.tv3.getListVideos(url[0], None) - self.listVideos(lVideos) - - elif mode[0] == 'coleccions': - - lFolder = self.tv3.listColeccions() - self.listFolder(lFolder) - - elif mode[0] == 'playVideo': - - self.playVideo(url[0]) - - def listFolder(self, lFolderVideos): - xbmc.log("plugin.video.tv3.cat classe UI - listFolder") - for folder in lFolderVideos: - - mode = folder.mode - name = folder.name - nameQuoted = urllib.parse.quote(name) - url = folder.url - iconImage = folder.iconImage - thumbImage = folder.thumbnailImage - - urlPlugin = buildUrl({'mode': mode, 'name': nameQuoted, 'url': url}, self.base_url) - liz = xbmcgui.ListItem(name) - liz.setInfo(type="Video", infoLabels={"title": name}) - liz.setArt({'thumb': thumbImage, 'icon' : iconImage}) - - xbmcplugin.addDirectoryItem(handle=self.addon_handle, url=urlPlugin, listitem=liz, isFolder=True) - xbmcplugin.endOfDirectory(self.addon_handle) - - def listVideos(self, lVideos): - - xbmc.log("--------List videos ----------") - last = lVideos[1] - listVideos = lVideos[0] - if not listVideos: - xbmc.log("UI - listVideos - Numero videos: 0") - else: - xbmc.log("UI - listVideos - Numero videos: " + str(len(listVideos))) - - - - for video in listVideos: - if video: - urlVideo = video.url - xbmc.log("UI - listVideos - urlVideo: " + urlVideo) - iconImage = video.iconImage - thumbImage = video.thumbnailImage - durada = video.durada - titol = video.title - - urlPlugin = buildUrl({'mode':'playVideo','name':"",'url':urlVideo}, self.base_url) - - liz = xbmcgui.ListItem(titol) - - infolabels = video.information - - liz.setInfo('video', infolabels) - liz.setArt({'thumb': thumbImage, 'icon': "DefaultVideo.png"}) - liz.addStreamInfo('video', {'duration': durada}) - liz.setProperty('isPlayable', 'true') - xbmcplugin.addDirectoryItem(handle=self.addon_handle, url=urlPlugin, listitem=liz) - - if last: - mode = last.mode - name = last.name - url = last.url - #xbmc.log("UI - listVideos - urlNext: " + url) - iconImage = last.iconImage - thumbImage = last.thumbnailImage - - urlPlugin = buildUrl({'mode': mode, 'name': '', 'url': url}, self.base_url) - liz = xbmcgui.ListItem(name) - liz.setInfo(type="Video", infoLabels={"title": name}) - liz.setArt({'thumb': thumbImage, 'icon': iconImage}) - - xbmcplugin.addDirectoryItem(handle=self.addon_handle, url=urlPlugin, listitem=liz, isFolder=True) - - xbmcplugin.endOfDirectory(self.addon_handle) - - def playVideo(self,url): - code = url[-8:-1] - xbmc.log("UI - playVideo") - - - # html_data = getHtml(url_datavideos + code + '&profile=pc') - # - # if html_data: - # - # html_data = html_data.decode("ISO-8859-1") - # data = json.loads(html_data) - # - # urlvideo = None - # - # if len(data) > 0: - # - # media = data.get('media', {}) - # - # if type(media) is list and len(media) > 0: - # media_dict = media[0] - # urlvideo = media_dict.get('url', None) - # else: - # urlvideo = media.get('url', None) - # - # if urlvideo: - # if type(urlvideo) is list and len(urlvideo) > 0: - # urlvideo_item = urlvideo[0] - # video = urlvideo_item.get('file', None) - # - # else: - # video = url - # - # xbmc.log("Play video - url: " + video) - - item = xbmcgui.ListItem(path=url) - xbmcplugin.setResolvedUrl(self.addon_handle, True, item) \ No newline at end of file diff --git a/plugin.video.tv3.cat/resources/lib/ui/__init__.py b/plugin.video.tv3.cat/resources/lib/ui/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/plugin.video.tv3.cat/resources/lib/utils/Urls.py b/plugin.video.tv3.cat/resources/lib/utils/Urls.py deleted file mode 100644 index 5ea4d50327..0000000000 --- a/plugin.video.tv3.cat/resources/lib/utils/Urls.py +++ /dev/null @@ -1,23 +0,0 @@ -# -*- coding: utf-8 -*- - -url_base = 'http://www.ccma.cat' -url_alacarta = 'http://www.ccma.cat/tv3/alacarta/' -url_coleccions = 'http://www.ccma.cat/tv3/alacarta/coleccions/' -url_mesvist = 'http://www.ccma.cat/tv3/alacarta/mes-vist/' -url_datavideos = 'http://dinamics.ccma.cat/pvideo/media.jsp?media=video&version=0s&idint=' -url_programes_emisio = 'http://www.ccma.cat/tv3/alacarta/programes' -url_programes_tots = 'http://www.ccma.cat/tv3/alacarta/programes-tots/' -urlZonaZaping = 'http://www.ccma.cat/tv3/alacarta/zona-zaping/' -urlApm = 'http://www.ccma.cat/tv3/alacarta/apm/' -url_directe_tv3 = 'https://directes-tv-es.ccma.cat/es/ngrp:tvc_web/playlist.m3u8' -url_directe_324 = 'https://directes-tv-int.ccma.cat/int/ngrp:324_web/playlist.m3u8' -url_directe_c33s3 = 'https://directes-tv-es.ccma.cat/es/ngrp:c33_web/playlist.m3u8' -url_directe_esport3 = 'https://directes-tv-es.ccma.cat/es/ngrp:es3_web/playlist.m3u8' -#Feeds per a fer streaming des de l'estranger -url_directe_tv3_int = 'https://directes-tv-int.ccma.cat/int/ngrp:tvi_web/playlist.m3u8' -url_directe_324_int = 'https://directes-tv-int.ccma.cat/int/ngrp:324_web/playlist.m3u8' -url_directe_c33s3_int = 'https://directes-tv-int.ccma.cat/int/ngrp:c33_web/playlist.m3u8' -url_directe_esport3_int = 'https://directes-tv-int.ccma.cat/int/ngrp:es3_web/playlist.m3u8' - -url_arafem ='http://dinamics.ccma.cat/wsarafem/arafem/tv' - diff --git a/plugin.video.tv3.cat/resources/lib/utils/Utils.py b/plugin.video.tv3.cat/resources/lib/utils/Utils.py deleted file mode 100644 index 360f243307..0000000000 --- a/plugin.video.tv3.cat/resources/lib/utils/Utils.py +++ /dev/null @@ -1,90 +0,0 @@ -from future import standard_library -standard_library.install_aliases() -from builtins import str -import urllib.request, urllib.parse, urllib.error -import urllib.request, urllib.error, urllib.parse -import json -import xbmcgui -import xbmc - - -def buildUrl(query, base_url): - return base_url + '?' + urllib.parse.urlencode(query) - - -def getHtml(url): - try: - - req = urllib.request.Request(url) - response = urllib.request.urlopen(req) - link = response.read() - response.close() - - - return link - - except urllib.error.URLError as e: - xbmc.log("getHtml error - " + str(e)) - xbmc.log("getHtml url - " + url) - - return None - - -def getDataVideo(url): - link = getHtml(url) - - try: - - link = link.decode("ISO-8859-1") - data = json.loads(link) - - except ValueError: - return None - - except TypeError: - return None - - except: - return None - - else: - if len(data) > 0: - - return data - - else: - return None - - -def toSeconds(durada): - if durada: - - if len(durada) == 8: - # durada hh:mm:ss - - h = durada[0:2] - m = durada[3:5] - s = durada[6:] - - r = (int(h) * 3600) + (int(m) * 60) + int(s) - - return r - - elif len(durada) == 11: - # PT00H32M13S - - h = durada[2:4] - m = durada[5:7] - s = durada[8:10] - - r = (int(h) * 3600) + (int(m) * 60) + int(s) - - return r - - else: - - return None - - else: - - return None diff --git a/plugin.video.tv3.cat/resources/lib/utils/__init__.py b/plugin.video.tv3.cat/resources/lib/utils/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/plugin.video.tv3.cat/resources/lib/video/FolderVideo.py b/plugin.video.tv3.cat/resources/lib/video/FolderVideo.py deleted file mode 100644 index 519e58b04d..0000000000 --- a/plugin.video.tv3.cat/resources/lib/video/FolderVideo.py +++ /dev/null @@ -1,16 +0,0 @@ -from builtins import object -class FolderVideo(object): - def __init__(self, name, url, mode, iconImage, thumbnaiImage): - """ - - :rtype: object - """ - - self.name = name - self.url = url - self.mode = mode - self.iconImage = iconImage - self.thumbnailImage = thumbnaiImage - - - diff --git a/plugin.video.tv3.cat/resources/lib/video/Video.py b/plugin.video.tv3.cat/resources/lib/video/Video.py deleted file mode 100644 index 1708bf804a..0000000000 --- a/plugin.video.tv3.cat/resources/lib/video/Video.py +++ /dev/null @@ -1,12 +0,0 @@ -from builtins import object -class Video(object): - - def __init__(self, title, iconImage, thumbnailImage, information, url, durada): - - self.title = title - self.iconImage = iconImage - self.thumbnailImage = thumbnailImage - self.information = information - self.url = url - self.durada = durada - diff --git a/plugin.video.tv3.cat/resources/lib/video/__init__.py b/plugin.video.tv3.cat/resources/lib/video/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/plugin.video.tv3.cat/resources/media/324_thumbnail.png b/plugin.video.tv3.cat/resources/media/324_thumbnail.png deleted file mode 100644 index 9322ff08bd..0000000000 Binary files a/plugin.video.tv3.cat/resources/media/324_thumbnail.png and /dev/null differ diff --git a/plugin.video.tv3.cat/resources/media/c33-super3_thumbnail.png b/plugin.video.tv3.cat/resources/media/c33-super3_thumbnail.png deleted file mode 100644 index ce886a0658..0000000000 Binary files a/plugin.video.tv3.cat/resources/media/c33-super3_thumbnail.png and /dev/null differ diff --git a/plugin.video.tv3.cat/resources/media/esports3_thumbnail.png b/plugin.video.tv3.cat/resources/media/esports3_thumbnail.png deleted file mode 100644 index c2efd0701c..0000000000 Binary files a/plugin.video.tv3.cat/resources/media/esports3_thumbnail.png and /dev/null differ diff --git a/plugin.video.tv3.cat/resources/media/tv3_thumbnail.png b/plugin.video.tv3.cat/resources/media/tv3_thumbnail.png deleted file mode 100644 index 8c8fabccb4..0000000000 Binary files a/plugin.video.tv3.cat/resources/media/tv3_thumbnail.png and /dev/null differ