From 18072248488aac8250acc6db2fb5cadbec1ad625 Mon Sep 17 00:00:00 2001 From: Lunatixz <128316+Lunatixz@users.noreply.github.com> Date: Mon, 6 Jan 2025 14:42:35 -0500 Subject: [PATCH] [plugin.program.smartplaylist.generator] v.0.1.8 --- .../LICENSE.md | 675 ++++++++++++++++++ .../addon.xml | 29 + .../resources/images/fanart.jpg | Bin 0 -> 171636 bytes .../resources/images/icon.png | Bin 0 -> 138063 bytes .../resources/images/imdb.png | Bin 0 -> 8837 bytes .../resources/images/trakt.png | Bin 0 -> 60469 bytes .../resource.language.en_gb/strings.po | 170 +++++ .../resources/lib/default.py | 227 ++++++ .../resources/lib/globals.py | 154 ++++ .../resources/lib/kodi.py | 257 +++++++ .../resources/lib/parsers/imdb.py | 107 +++ .../resources/lib/parsers/trakt.py | 102 +++ .../resources/lib/service.py | 49 ++ .../resources/settings.xml | 143 ++++ 14 files changed, 1913 insertions(+) create mode 100644 plugin.program.smartplaylist.generator/LICENSE.md create mode 100644 plugin.program.smartplaylist.generator/addon.xml create mode 100644 plugin.program.smartplaylist.generator/resources/images/fanart.jpg create mode 100644 plugin.program.smartplaylist.generator/resources/images/icon.png create mode 100644 plugin.program.smartplaylist.generator/resources/images/imdb.png create mode 100644 plugin.program.smartplaylist.generator/resources/images/trakt.png create mode 100644 plugin.program.smartplaylist.generator/resources/language/resource.language.en_gb/strings.po create mode 100644 plugin.program.smartplaylist.generator/resources/lib/default.py create mode 100644 plugin.program.smartplaylist.generator/resources/lib/globals.py create mode 100644 plugin.program.smartplaylist.generator/resources/lib/kodi.py create mode 100644 plugin.program.smartplaylist.generator/resources/lib/parsers/imdb.py create mode 100644 plugin.program.smartplaylist.generator/resources/lib/parsers/trakt.py create mode 100644 plugin.program.smartplaylist.generator/resources/lib/service.py create mode 100644 plugin.program.smartplaylist.generator/resources/settings.xml diff --git a/plugin.program.smartplaylist.generator/LICENSE.md b/plugin.program.smartplaylist.generator/LICENSE.md new file mode 100644 index 0000000000..733c072369 --- /dev/null +++ b/plugin.program.smartplaylist.generator/LICENSE.md @@ -0,0 +1,675 @@ + GNU 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. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. 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 +them 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 prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. 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. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey 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; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If 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 convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU 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 that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + 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. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +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. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + 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 +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + {one line to give the program's name and a brief idea of what it does.} + Copyright (C) {year} {name of author} + + 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 3 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, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + {project} Copyright (C) {year} {fullname} + This program 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, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU 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. But first, please read +. + diff --git a/plugin.program.smartplaylist.generator/addon.xml b/plugin.program.smartplaylist.generator/addon.xml new file mode 100644 index 0000000000..5cc60820cb --- /dev/null +++ b/plugin.program.smartplaylist.generator/addon.xml @@ -0,0 +1,29 @@ + + + + + + + + + + + + executable + + + + Generate Smartplaylists from third-party lists. + Generate Smartplaylists from third-party lists. + all + GPL-3.0-or-later + https://github.com/Lunatixz/KODI_Addons/tree/master/plugin.program.smartplaylist.generator + https://forum.kodi.tv/showthread.php?tid=379825 + BETA PROJECT; SUBJECT TO BUGS + false + + resources/images/icon.png + resources/images/fanart.jpg + + + diff --git a/plugin.program.smartplaylist.generator/resources/images/fanart.jpg b/plugin.program.smartplaylist.generator/resources/images/fanart.jpg new file mode 100644 index 0000000000000000000000000000000000000000..28675278d9a59cc7a487c30588dfe0618863190c GIT binary patch literal 171636 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 Su%q|G7ytkE#i#x?@qYl>9&rHx literal 0 HcmV?d00001 diff --git a/plugin.program.smartplaylist.generator/resources/images/icon.png b/plugin.program.smartplaylist.generator/resources/images/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..b7526e6fbf184260c4dac15dc63fd6336ef02e56 GIT binary patch literal 138063 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 z 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 bmmi_04(Dt1bhI!5M*)45R+6feFbVn}xL>ar literal 0 HcmV?d00001 diff --git a/plugin.program.smartplaylist.generator/resources/images/imdb.png b/plugin.program.smartplaylist.generator/resources/images/imdb.png new file mode 100644 index 0000000000000000000000000000000000000000..0ae4b9163fc89a9320a467e9a938b691c4f57788 GIT binary patch literal 8837 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 literal 0 HcmV?d00001 diff --git a/plugin.program.smartplaylist.generator/resources/images/trakt.png b/plugin.program.smartplaylist.generator/resources/images/trakt.png new file mode 100644 index 0000000000000000000000000000000000000000..29bcf7ba3a7e43b43cacdcb1396db353330bf776 GIT binary patch literal 60469 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 aZrsb~y^u_er2}ICzZdFyYPBkMQU3!7(;x`| literal 0 HcmV?d00001 diff --git a/plugin.program.smartplaylist.generator/resources/language/resource.language.en_gb/strings.po b/plugin.program.smartplaylist.generator/resources/language/resource.language.en_gb/strings.po new file mode 100644 index 0000000000..7e734fe74b --- /dev/null +++ b/plugin.program.smartplaylist.generator/resources/language/resource.language.en_gb/strings.po @@ -0,0 +1,170 @@ +# XBMC Media Center language file +# Addon Name: Smartplaylist Generator +# Addon id: plugin.program.smartplaylist.generator +# Addon Provider: Lunatixz +msgid "" +msgstr "" +"Project-Id-Version: XBMC Addons\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: XBMC Translation Team\n" +"Language-Team: English" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: en\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgctxt "#32000" +msgid "General" +msgstr "" + +msgctxt "#32001" +msgid "Enable Debugging" +msgstr "" + +msgctxt "#32002" +msgid "Include Missing Titles" +msgstr "" + +msgctxt "#32003" +msgid "Smartplaylist Field Type" +msgstr "" + +msgctxt "#32004" +msgid "Title" +msgstr "" + +msgctxt "#32005" +msgid "File" +msgstr "" + +msgctxt "#32006" +msgid "Last Update" +msgstr "" + +msgctxt "#32007" +msgid "Smartplaylist match content based on Title or File." +msgstr "" + +msgctxt "#32008" +msgid "Run every" +msgstr "" + +msgctxt "#32009" +msgid "6 hours" +msgstr "" + +msgctxt "#32010" +msgid "12 hours" +msgstr "" + +msgctxt "#32011" +msgid "24 hours" +msgstr "" + +msgctxt "#32012" +msgid "48 hours" +msgstr "" + +msgctxt "#32013" +msgid "Disabled" +msgstr "" + +msgctxt "#32014" +msgid "Service" +msgstr "" + +msgctxt "#32015" +msgid "Finished!" +msgstr "" + +msgctxt "#32016" +msgid "SmartPlaylst Video Folder" +msgstr "" + +msgctxt "#32017" +msgid "SmartPlaylists" +msgstr "" + +msgctxt "#32018" +msgid "Notifications" +msgstr "" + +msgctxt "#32019" +msgid "Path" +msgstr "" + +msgctxt "#32020" +msgid "Updated" +msgstr "" + +msgctxt "#32021" +msgid "Created" +msgstr "" + +msgctxt "#32022" +msgid "Matching" +msgstr "" + +msgctxt "#32023" +msgid "No %s User Lists Selected!" +msgstr "" + +msgctxt "#32024" +msgid "%s: No Matches Found!" +msgstr "" + +msgctxt "#32025" +msgid "%s Currently Running..." +msgstr "" + +msgctxt "#32100" +msgid "Trakt" +msgstr "" + +msgctxt "#32101" +msgid "Username" +msgstr "" + +msgctxt "#32102" +msgid "Enter Trakt Username" +msgstr "" + +msgctxt "#32103" +msgid "Client ID" +msgstr "" + +msgctxt "#32104" +msgid "Enter Client ID found on the Trakt Website under API Settings." +msgstr "" + +msgctxt "#32105" +msgid "Select User Lists" +msgstr "" + +msgctxt "#32106" +msgid "Build SmartPlaylst" +msgstr "" + +msgctxt "#32107" +msgid "Enable Trakt" +msgstr "" + +msgctxt "#32108" +msgid "SmartPlaylst included Titles not found in your collection." +msgstr "" + +msgctxt "#32109" +msgid "Select User Lists convert into SmartPlaylst" +msgstr "" + +msgctxt "#32110" +msgid "Manually Start SmartPlaylists Service" +msgstr "" + +msgctxt "#32111" +msgid "Auto Enable all lists" +msgstr "" + diff --git a/plugin.program.smartplaylist.generator/resources/lib/default.py b/plugin.program.smartplaylist.generator/resources/lib/default.py new file mode 100644 index 0000000000..37ff91bfe8 --- /dev/null +++ b/plugin.program.smartplaylist.generator/resources/lib/default.py @@ -0,0 +1,227 @@ +# Copyright (C) 2024 Lunatixz +# +# +# This file is part of Smartplaylist Generator. +# +# Smartplaylist Generator 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 3 of the License, or +# (at your option) any later version. +# +# Smartplaylist Generator 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 PseudoTV Live. If not, see . +# +# -*- coding: utf-8 -*- +from globals import * +from parsers import trakt +from kodi import Kodi + +try: from simplecache import SimpleCache +except: from simplecache.simplecache import SimpleCache #pycharm stub + +class SPGenerator: + def __init__(self, sysARG=sys.argv): + self.log('__init__, sysARG = %s'%(sysARG)) + self.cache = SimpleCache() + self.cache.enable_mem_cache = False + + self.dia = None + self.msg = '' + self.pct = 0 + self.tot = 0 + self.cnt = 0 + self.cntpct = 0 + self.sysARG = sysARG + self.kodi = Kodi(self.cache) + self.modules = {LANGUAGE(32100):trakt.Trakt(self.cache)} + self.hasPseudo = xbmc.getCondVisibility('System.HasAddon(plugin.video.pseudotv.live)') + + + def log(self, msg, level=xbmc.LOGDEBUG): + return log('%s: %s'%(self.__class__.__name__,msg),level) + + + def auto_lists(self): + for source, module in list(self.modules.items()): + self.log('auto_lists, source = %s, saving = %s'%(source,self.kodi.setCacheSetting('%s.%s'%(ADDON_ID,source),[{'name':item.get('name'),'id':item.get('id'),'icon':item.get('icon',ICON)} for item in module.get_lists()]))) + + + def build_lists(self, source, lists): + def __buildMenu(item): return self.kodi.buildMenuListItem(item.get('name'),item.get('description'),item.get('icon',ICON),url=item.get('id')) + with self.kodi.busy_dialog(): + listitems = poolit(__buildMenu)(lists) + selects = self.kodi.selectDialog(listitems,header='%s %s'%(source,ADDON_NAME),preselect=self.kodi.findItemsInLST(listitems, self.kodi.getCacheSetting('%s.%s'%(ADDON_ID,source)), item_key='getPath', val_key='id'),) + if not selects is None: self.log('build_lists, source = %s, saving = %s'%(source,self.kodi.setCacheSetting('%s.%s'%(ADDON_ID,source),[{'name':listitems[select].getLabel(),'id':listitems[select].getPath(),'icon':listitems[select].getArt('icon')} for select in selects]))) + + + def match_items(self, source_items): + matches = {} + func_list = {'movies' : self.kodi.get_kodi_movies, + 'tvshows' : self.kodi.get_kodi_tvshows, + 'seasons' : self.kodi.get_kodi_tvshows, + 'episodes': self.kodi.get_kodi_episodes, + 'persons' : log} + + def __match(list_item, type, kodi_items): + self.cntpct = round(self.cnt*100//self.tot) + for kodi_item in kodi_items: + match = None + if self.dia: self.dia = self.kodi.progressBGDialog(self.pct, self.dia, '%s (%s%%)'%(self.msg, self.cntpct)) + for key in (list(list_item.get('uniqueid',{}).keys())): + if list_item.get('uniqueid',{}).get(key) == kodi_item.get('uniqueid',{}).get(key,random.random()): match = kodi_item + if match: + self.log('match_items, __match found! type %s | %s -> %s'%(type,kodi_item.get('uniqueid'),list_item.get('uniqueid'))) + if type == "seasons": matches.setdefault(type,[]).extend(self.kodi.get_kodi_seasons(kodi_item, list_item)) + else: matches.setdefault(type,[]).append(match) + break + self.cnt += 1 + + for type, list_items in list(source_items.items()): + self.log('match_items, type %s | list_items = %s'%(type, len(list_items))) + kodi_items = func_list.get(type)() + self.msg = '%s %s'%(LANGUAGE(32022),type.title().replace('Tvshows','TV Shows')) + self.cntpct = 0 + self.cnt = 0 + self.tot = len(list(list_items)) + poolit(__match)(list_items, **{'type':type,'kodi_items':kodi_items}) + return matches + + + def create_xsp(self, list_name, match_items, pretty_print=True): + def __indent(elem, level=0): + """ + Indent XML for pretty printing + """ + i = "\n" + level*" " + if len(elem): + if not elem.text or not elem.text.strip(): + elem.text = i + " " + if not elem.tail or not elem.tail.strip(): + elem.tail = i + for elem in elem: + __indent(elem, level+1) + if not elem.tail or not elem.tail.strip(): + elem.tail = i + else: + if level and (not elem.tail or not elem.tail.strip()): + elem.tail = i + + + mixed_names = [] + for type, items in (list(match_items.items())): + if len(items) == 0: continue + match_item = {'movies' :{'match_type':type , 'match_field':'title' ,'match_key':'title','match_opr':'is'}, + 'tvshows' :{'match_type':type , 'match_field':'title' ,'match_key':'title','match_opr':'is'}, + 'seasons' :{'match_type':'episodes', 'match_field':'path' ,'match_key':'file' ,'match_opr':'contains'}, + 'episodes':{'match_type':type , 'match_field':'filename','match_key':'file' ,'match_opr':'contains'}}[type] + + self.log('create_xsp, type = %s, name = %s, items = %s, key = %s, field = %s'%(type,list_name,len(items),match_item.get('match_key'),match_item.get('match_field'))) + root = ET.Element("smartplaylist") + root.set("type",match_item.get('match_type')) + name = ET.SubElement(root, "name") + name.text = "%s - %s"%(list_name,type.title().replace('Tvshows','TV Shows')) + mixed_names.append("%s - %s"%(list_name,type.title().replace('Tvshows','TV Shows'))) + match = ET.SubElement(root, "match") + match.text = "all" + rule = ET.SubElement(root, "rule") + rule.set("field", match_item.get('match_field')) + rule.set("operator", match_item.get('match_opr')) + + values = [] + for idx, item in enumerate(items): + if item.get(match_item.get('match_key')): + values.append(item) + value = ET.SubElement(rule, "value") + match_value = item.get(match_item.get('match_key')) + if match_item.get('match_field') == "filename": match_value = os.path.split(match_value)[1] + elif match_item.get('match_field') == "path": match_value = os.path.split(match_value)[0] + value.text = match_value + + if len(values) > 0: + self.log('create_xsp, Out: %s'%(ET.tostring(root, encoding='unicode'))) + if pretty_print: __indent(root) + tree = ET.ElementTree(root) + path = os.path.join(xbmcvfs.translatePath(REAL_SETTINGS.getSetting('XSP_LOC')),'%s.xsp'%("%s - %s"%(validString(list_name),type.title().replace('Tvshows','TV Shows')))) + self.log('create_xsp, File: %s'%(path)) + fle = xbmcvfs.File(path, 'w') + tree.write(fle, encoding='utf-8', xml_declaration=True) + fle.close() + + if REAL_SETTINGS.getSetting('Notify_Enable') == "true": self.kodi.notificationDialog('%s %s:\n%s'%(LANGUAGE(32017),{True:LANGUAGE(32020),False:LANGUAGE(32021)}[xbmcvfs.exists(path)],list_name)) + else: self.kodi.notificationDialog(LANGUAGE(32024)%(validString(list_name))) + + if self.hasPseudo and len(mixed_names) > 1: + root = ET.Element("smartplaylist") + root.set("type","mixed") + name = ET.SubElement(root, "name") + name.text = "%s - Mixed (PseudoTV)"%(list_name) + match = ET.SubElement(root, "match") + match.text = "all" + + values = [] + for idx, name in enumerate(mixed_names): + rule = ET.SubElement(root, "rule") + rule.set("field", "playlist") + rule.set("operator", "is") + values.append(name) + value = ET.SubElement(rule, "value") + value.text = name + + if len(values) > 0: + self.log('create_xsp, Out: %s'%(ET.tostring(root, encoding='unicode'))) + if pretty_print: __indent(root) + tree = ET.ElementTree(root) + path = REAL_SETTINGS.getSetting('XSP_LOC').replace(os.path.basename(os.path.normpath(REAL_SETTINGS.getSetting('XSP_LOC'))),"Mixed") + path = os.path.join(xbmcvfs.translatePath(path),'%s.xsp'%("%s - %s"%(validString(list_name),"Mixed"))) + self.log('create_xsp, File: %s'%(path)) + fle = xbmcvfs.File(path, 'w') + tree.write(fle, encoding='utf-8', xml_declaration=True) + fle.close() + + if REAL_SETTINGS.getSetting('Notify_Enable') == "true": self.kodi.notificationDialog('%s %s:\n%s'%(LANGUAGE(32017),{True:LANGUAGE(32020),False:LANGUAGE(32021)}[xbmcvfs.exists(path)],list_name)) + else: self.kodi.notificationDialog(LANGUAGE(32024)%(validString(list_name))) + + + def run(self): + try: param = self.sysARG[1] + except: param = None + if param.startswith(('Build_','Select_')): + source = param.split('_')[1] + module = self.modules.get(source) + if not module: return + self.log('run, %s source = %s, module = %s'%(param.split('_')[0], source,module.__class__.__name__)) + + if 'Select_' in param and not self.kodi.isRunning(source): + with self.kodi.busy_dialog(), self.kodi.setRunning(source): + self.build_lists(source,module.get_lists()) + REAL_SETTINGS.openSettings() + + elif 'Build_' in param and not self.kodi.isRunning(source): + with self.kodi.setRunning(source): + list_items = self.kodi.getCacheSetting('%s.%s'%(ADDON_ID,source)) + if len(list_items) > 0: + self.dia = self.kodi.progressBGDialog(self.pct) + for idx, list_item in enumerate(list_items): + self.pct = int((idx+1)*100//len(list_items)) + self.dia = self.kodi.progressBGDialog(self.pct, self.dia, message='%s:\n%s'%(ADDON_NAME,list_item.get('name'))) + self.create_xsp(list_item.get('name'),self.match_items(module.get_list_items(list_item.get('id')))) + REAL_SETTINGS.setSetting('Build_%s'%(source),datetime.datetime.fromtimestamp(time.time()).strftime(DTFORMAT)) + else: self.kodi.notificationDialog(LANGUAGE(32023)%(source)) + + else: self.kodi.notificationDialog(LANGUAGE(32025)%(ADDON_NAME)) + + elif param == 'Run_All': + if REAL_SETTINGS.getSetting('Auto_Enable') == 'true': self.auto_lists() + for source in list(self.modules.keys()): + self.kodi.executebuiltin('RunScript(special://home/addons/%s/resources/lib/default.py, Build_%s)'%(ADDON_ID,source)) + REAL_SETTINGS.setSetting('Last_Update',datetime.datetime.fromtimestamp(time.time()).strftime(DTFORMAT)) + elif self.kodi.yesnoDialog('%s?'%(LANGUAGE(32110))): self.kodi.executebuiltin('RunScript(special://home/addons/%s/resources/lib/default.py, Run_All)'%(ADDON_ID)) + else: REAL_SETTINGS.openSettings() + +if __name__ == '__main__': SPGenerator(sys.argv).run() + diff --git a/plugin.program.smartplaylist.generator/resources/lib/globals.py b/plugin.program.smartplaylist.generator/resources/lib/globals.py new file mode 100644 index 0000000000..54e5972982 --- /dev/null +++ b/plugin.program.smartplaylist.generator/resources/lib/globals.py @@ -0,0 +1,154 @@ +# Copyright (C) 2024 Lunatixz +# +# +# This file is part of Smartplaylist Generator. +# +# Smartplaylist Generator 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 3 of the License, or +# (at your option) any later version. +# +# Smartplaylist Generator 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 PseudoTV Live. If not, see . +# +# -*- coding: utf-8 -*- + +import os, sys, re +import requests +import json, random, traceback +import uuid, zlib, base64 +import time, datetime +import xml.etree.ElementTree as ET + + +from operator import itemgetter +from functools import wraps +from contextlib import contextmanager, closing +from infotagger.listitem import ListItemInfoTag +from kodi_six import xbmc, xbmcaddon, xbmcplugin, xbmcgui, xbmcvfs +from concurrent.futures import ThreadPoolExecutor, TimeoutError +from itertools import repeat, count +from functools import partial, wraps, reduce, update_wrapper + +try: from simplecache import SimpleCache +except: from simplecache.simplecache import SimpleCache #pycharm stub + +#info +ADDON_ID = 'plugin.program.smartplaylist.generator' +REAL_SETTINGS = xbmcaddon.Addon(id=ADDON_ID) +ADDON_NAME = REAL_SETTINGS.getAddonInfo('name') +ADDON_VERSION = REAL_SETTINGS.getAddonInfo('version') +ICON = REAL_SETTINGS.getAddonInfo('icon') +FANART = REAL_SETTINGS.getAddonInfo('fanart') +SETTINGS_LOC = REAL_SETTINGS.getAddonInfo('profile') +ADDON_PATH = REAL_SETTINGS.getAddonInfo('path') +DUMMY_ICON = 'https://dummyimage.com/512x512/%s/%s.png&text={text}'%('01416b','ffffff') +LANGUAGE = REAL_SETTINGS.getLocalizedString + +#api +MONITOR = xbmc.Monitor +PLAYER = xbmc.Player + +SELECT_DELAY = 900 #secs +AUTOCLOSE_DELAY = 300 #secs +PROMPT_DELAY = 4000 #msecs +DTFORMAT = '%Y-%m-%d %I:%M %p' + +def log(event, level=xbmc.LOGDEBUG): + if REAL_SETTINGS.getSetting('Debug_Enable') == 'true' or level >= 3: + if level >= 3: event = '%s\n%s'%(event, traceback.format_exc()) + event = '%s-%s-%s'%(ADDON_ID, ADDON_VERSION, event) + xbmc.log(event,level) + +def poolit(method): + @wraps(method) + def wrapper(items=[], *args, **kwargs): + try: + pool = ThreadPool() + name = '%s.%s'%('poolit',method.__qualname__.replace('.',': ')) + log('%s, starting %s'%(method.__qualname__.replace('.',': '),name)) + results = pool.executors(method, items, *args, **kwargs) + except Exception as e: + log('poolit, failed! %s'%(e), xbmc.LOGERROR) + results = pool.generator(method, items, *args, **kwargs) + log('%s poolit => %s'%(pool.__class__.__name__, method.__qualname__.replace('.',': '))) + return list([_f for _f in results if _f]) + return wrapper + +def cacheit(expiration=datetime.timedelta(hours=int(REAL_SETTINGS.getSetting('Run_Every')), minutes=15), checksum=ADDON_VERSION, json_data=True): + def internal(method): + @wraps(method) + def wrapper(*args, **kwargs): + method_class = args[0] + cacheName = "%s.%s"%(method_class.__class__.__name__, method.__name__) + for item in args[1:]: cacheName += u".%s"%item + for k, v in list(kwargs.items()): cacheName += u".%s"%(v) + results = method_class.cache.get(cacheName.lower(), checksum, json_data) + if results: return results + value = method(*args, **kwargs) + method_class.cache.set(cacheName.lower(), value, checksum, expiration, json_data) + return value + return wrapper + return internal + +def encodeString(text): + base64_bytes = base64.b64encode(zlib.compress(text.encode(DEFAULT_ENCODING))) + return base64_bytes.decode(DEFAULT_ENCODING) + +def decodeString(base64_bytes): + try: + message_bytes = zlib.decompress(base64.b64decode(base64_bytes.encode(DEFAULT_ENCODING))) + return message_bytes.decode(DEFAULT_ENCODING) + except Exception as e: return '' + +def validString(s): + return "".join(x for x in s if (x.isalnum() or x not in '\/:*?"<>|')).rstrip() + +def strpTime(datestring, format=DTFORMAT): + try: return datetime.datetime.strptime(datestring, format) + except TypeError: return datetime.datetime.fromtimestamp(time.mktime(time.strptime(datestring, format))) + except: return datetime.datetime.now() + +class ThreadPool: + CPUCount = 4 + ThreadCount = CPUCount*8 + + def __init__(self): + self.log("__init__, ThreadPool Threads = %s, CPU's = %s"%(self.ThreadCount, self.CPUCount)) + + + def log(self, msg, level=xbmc.LOGDEBUG): + return log('%s: %s'%(self.__class__.__name__,msg),level) + + + def wrapped_partial(self, func, *args, **kwargs): + partial_func = partial(func, *args, **kwargs) + update_wrapper(partial_func, func) + return partial_func + + + def executor(self, func, timeout=None, *args, **kwargs): + self.log("executor, func = %s, timeout = %s"%(func.__name__,timeout)) + with ThreadPoolExecutor(self.ThreadCount) as executor: + try: return executor.submit(func, *args, **kwargs).result(timeout) + except Exception as e: self.log("executor, func = %s failed! %s\nargs = %s, kwargs = %s"%(func.__name__,e,args,kwargs), xbmc.LOGERROR) + + + def executors(self, func, items=[], *args, **kwargs): + self.log("executors, func = %s, items = %s"%(func.__name__,len(items))) + results = [] + with ThreadPoolExecutor(self.ThreadCount) as executor: + try: [results.append(result) for result in executor.map(self.wrapped_partial(func, *args, **kwargs), items)] + except Exception as e: self.log("executors, func = %s, items = %s failed! %s\nargs = %s, kwargs = %s"%(func.__name__,len(items),e,args,kwargs), xbmc.LOGERROR) + return results + + + def generator(self, func, items=[], *args, **kwargs): + self.log("generator, items = %s"%(len(items))) + try: return [self.wrapped_partial(func, *args, **kwargs)(i) for i in items] + except Exception as e: self.log("generator, func = %s, items = %s failed! %s\nargs = %s, kwargs = %s"%(func.__name__,len(items),e,args,kwargs), xbmc.LOGERROR) \ No newline at end of file diff --git a/plugin.program.smartplaylist.generator/resources/lib/kodi.py b/plugin.program.smartplaylist.generator/resources/lib/kodi.py new file mode 100644 index 0000000000..ce933d4a65 --- /dev/null +++ b/plugin.program.smartplaylist.generator/resources/lib/kodi.py @@ -0,0 +1,257 @@ +# Copyright (C) 2024 Lunatixz +# +# +# This file is part of Smartplaylist Generator. +# +# Smartplaylist Generator 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 3 of the License, or +# (at your option) any later version. +# +# Smartplaylist Generator 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 PseudoTV Live. If not, see . +# +# -*- coding: utf-8 -*- +from globals import * + +class Kodi: + def __init__(self, cache=None): + if cache is None: self.cache = SimpleCache() + else: + self.cache = cache + self.cache.enable_mem_cache = False + + + def log(self, msg, level=xbmc.LOGDEBUG): + return log('%s: %s'%(self.__class__.__name__,msg),level) + + + def getEXTProperty(self, key): + return xbmcgui.Window(10000).getProperty(key) + + + def getEXTPropertyBool(self, key): + return (self.getEXTProperty(key) or '').lower() == "true" + + + def setEXTProperty(self, key, value): + xbmcgui.Window(10000).setProperty(key,str(value)) + return value + + + def setEXTPropertyBool(self, key, value): + return self.setEXTProperty(key,str(value).lower()) == 'true' + + + def isRunning(self, key): + return self.getEXTPropertyBool('%s.Running.%s'%(ADDON_ID,key)) + + + @contextmanager + def setRunning(self, key): + if not self.isRunning(key): + self.setEXTPropertyBool('%s.Running.%s'%(ADDON_ID,key),True) + try: yield + finally: self.setEXTPropertyBool('%s.Running.%s'%(ADDON_ID,key),False) + else: yield + + + def setCacheSetting(self, key, value, checksum=1, life=datetime.timedelta(days=84), json_data=False): + self.log('setCacheSetting, key = %s, value = %s'%(key, value)) + self.cache.set(key, value, checksum, life, json_data) + return value + + + def getCacheSetting(self, key, checksum=1, json_data=False, revive=True, default=[]): + if revive: value = self.setCacheSetting(key, self.cache.get(key, checksum, json_data), checksum, json_data=json_data) + else: value = self.cache.get(key, checksum, json_data) + self.log('getCacheSetting, key = %s, value = %s'%(key, value)) + return (value or default) + + + def getInfoBool(self, key, param='Library', default=False): + value = (xbmc.getCondVisibility('%s.%s'%(param,key)) or default) + self.log('getInfoBool, key = %s.%s, value = %s'%(param,key,value)) + return value + + + def executebuiltin(self, key, wait=False): + self.log('executebuiltin, key = %s, wait = %s'%(key,wait)) + xbmc.executebuiltin('%s'%(key),wait) + return True + + @contextmanager + def busy_dialog(self): + if not self.isBusyDialog() and not self.getInfoBool('Playing','Player'): + self.executebuiltin('ActivateWindow(busydialognocancel)') + try: + if self.getInfoBool('Playing','Player'): + self.executebuiltin('Dialog.Close(busydialognocancel)') + yield + finally: + self.executebuiltin('Dialog.Close(busydialognocancel)') + else: yield + + + def isBusyDialog(self): + return (self.getInfoBool('IsActive(busydialognocancel)','Window') | self.getInfoBool('IsActive(busydialog)','Window')) + + + def closeBusyDialog(self): + if self.getInfoBool('IsActive(busydialognocancel)','Window'): + self.executebuiltin('Dialog.Close(busydialognocancel)') + elif self.getInfoBool('IsActive(busydialog)','Window'): + self.executebuiltin('Dialog.Close(busydialog)') + + + def notificationDialog(self, message, header=ADDON_NAME, sound=False, time=PROMPT_DELAY, icon=ICON): + self.log('notificationDialog: %s'%(message)) + ## - Builtin Icons: + ## - xbmcgui.NOTIFICATION_INFO + ## - xbmcgui.NOTIFICATION_WARNING + ## - xbmcgui.NOTIFICATION_ERROR + try: xbmcgui.Dialog().notification(header, message, icon, time, sound=False) + except: self.executebuiltin("Notification(%s, %s, %d, %s)" % (header, message, time, icon)) + return True + + + def progressBGDialog(self, percent=0, control=None, message='', header=ADDON_NAME): + if control is None and int(percent) == 0: + control = xbmcgui.DialogProgressBG() + control.create(header, message) + elif control: + if int(percent) == 100 or control.isFinished(): + if hasattr(control, 'close'): + control.close() + return None + elif hasattr(control, 'update'): control.update(int(percent), header, message) + return control + + + def yesnoDialog(self, message, heading=ADDON_NAME, nolabel='', yeslabel='', customlabel='', autoclose=AUTOCLOSE_DELAY): + if customlabel: + # Returns the integer value for the selected button (-1:cancelled, 0:no, 1:yes, 2:custom) + return xbmcgui.Dialog().yesnocustom(heading, message, customlabel, nolabel, yeslabel, (autoclose*1000)) + else: + # Returns True if 'Yes' was pressed, else False. + return xbmcgui.Dialog().yesno(heading, message, nolabel, yeslabel, (autoclose*1000)) + + + def selectDialog(self, items, header=ADDON_NAME, preselect=None, useDetails=True, autoclose=SELECT_DELAY, multi=True): + self.log('selectDialog, items = %s, header = %s, preselect = %s, useDetails = %s, autoclose = %s, multi = %s'%(len(items),header,preselect,useDetails,autoclose,multi)) + if multi == True: + if not preselect: preselect = [-1] + select = xbmcgui.Dialog().multiselect(header, items, (autoclose*1000), preselect, useDetails) + if select == [-1]: return + else: + if not preselect: preselect = -1 + elif isinstance(preselect,list) and len(preselect) > 0: preselect = preselect[0] + select = xbmcgui.Dialog().select(header, items, (autoclose*1000), preselect, useDetails) + if select == -1: return + return select + + + def getListItem(self, label='', label2='', path='', offscreen=False): + return xbmcgui.ListItem(label,label2,path,offscreen) + + + def infoTagVideo(self, offscreen=False): + return xbmc.InfoTagVideo(offscreen) + + + def findItemsInLST(self, items, values, item_key='getLabel', val_key='', index=True): + if not values: return [-1] + if not isinstance(values,list): values = [values] + matches = [] + def _match(fkey,fvalue): + if str(fkey).lower() == str(fvalue).lower(): + matches.append(idx if index else item) + + for value in values: + if isinstance(value,dict): + value = value.get(val_key,'') + + for idx, item in enumerate(items): + if isinstance(item,xbmcgui.ListItem): + if item_key == 'getLabel': + _match(item.getLabel() ,value) + elif item_key == 'getLabel2': + _match(item.getLabel2(),value) + elif item_key == 'getPath': + _match(item.getPath(),value) + elif isinstance(item,dict): + _match(item.get(item_key,''),value) + else: _match(item,value) + return matches + + + def buildMenuListItem(self, label="", label2="", icon=ICON, url="", info={}, art={}, props={}, oscreen=False, media='video'): + if not art: art = {'thumb':icon,'logo':icon,'icon':icon} + listitem = self.getListItem(label, label2, url, offscreen=oscreen) + listitem.setIsFolder(True) + listitem.setArt(art) + if info: + infoTag = ListItemInfoTag(listitem, media) + infoTag.set_info(self.cleanInfo(info,media)) + [listitem.setProperty(key, self.cleanProp(pvalue)) for key, pvalue in list(props.items())] + return listitem + + + def cleanInfo(self, ninfo, media='video', properties={}): + LISTITEM_TYPES = MUSIC_LISTITEM_TYPES if media == 'music' else VIDEO_LISTITEM_TYPES + tmpInfo = ninfo.copy() + for key, value in list(tmpInfo.items()): + types = LISTITEM_TYPES.get(key,None) + if not types:# key not in json enum schema, add to customproperties + ninfo.pop(key) + properties[key] = value + continue + + elif not isinstance(value,types):# convert to schema type + for type in types: + try: ninfo[key] = type(value) + except Exception as e: self.log("cleanInfo failed! %s\nkey = %s, value = %s, type = %s\n%s"%(e,key,value,type,ninfo), xbmc.LOGWARNING) + + if isinstance(ninfo[key],list): + for n in ninfo[key]: + if isinstance(n,dict): n, properties = self.cleanInfo(n,media,properties) + if isinstance(ninfo[key],dict): ninfo[key], properties = self.cleanInfo(ninfo[key],media,properties) + return ninfo, properties + + + def cleanProp(self, pvalue): + if isinstance(pvalue,dict): return dumpJSON(pvalue) + elif isinstance(pvalue,list): return '|'.join(map(str, pvalue)) + elif not isinstance(pvalue,str): return str(pvalue) + else: return pvalue + + + @cacheit() + def get_kodi_movies(self): + return json.loads(xbmc.executeJSONRPC(json.dumps({"jsonrpc":"2.0","id":"test","method":"VideoLibrary.GetMovies","params":{"properties":["title","genre","year","tagline","playcount","studio","file","thumbnail","uniqueid","imdbnumber","runtime","mpaa"]}}))).get('result', {}).get('movies', []) + + + @cacheit() + def get_kodi_tvshows(self): + return json.loads(xbmc.executeJSONRPC(json.dumps({"jsonrpc": "2.0", "id": "test", "method": "VideoLibrary.GetTVShows", "params": {"properties": ["title", "genre", "year", "playcount", "studio", "file", "thumbnail","uniqueid", "imdbnumber", "mpaa"]}}))).get('result', {}).get('tvshows', []) + + + @cacheit() + def get_kodi_episodes(self, tvshowid=None, season=None): + if tvshowid is None: return json.loads(xbmc.executeJSONRPC(json.dumps({"jsonrpc": "2.0", "id": "test", "method": "VideoLibrary.GetEpisodes", "params": {"properties": ["title", "genre", "firstaired", "season", "episode", "showtitle", "studio", "file", "thumbnail","uniqueid", "tvshowid", "runtime", "rating"]}}))).get('result', {}).get('episodes', []) + return json.loads(xbmc.executeJSONRPC(json.dumps({"jsonrpc": "2.0", "id": "test", "method": "VideoLibrary.GetEpisodes", "params": {"tvshowid": tvshowid, "season":season, "properties": ["title", "genre", "firstaired", "season", "episode", "showtitle", "studio", "file", "thumbnail","uniqueid", "tvshowid", "runtime", "rating"], "sort":{"ignorearticle":True,"method":"episode","order":"ascending","useartistsortname":True}}}))).get('result', {}).get('episodes', []) + + + @cacheit() + def get_kodi_seasons(self, kodi_item, list_item): + def __match(kodi_item, list_item): + for key in (list(list_item.get('uniqueid',{}).keys())): + if list_item.get('uniqueid',{}).get(key) == kodi_item.get('uniqueid',{}).get(key,random.random()): return kodi_item + if not __match(kodi_item, list_item): return {} + return self.get_kodi_episodes(kodi_item.get('tvshowid'),list_item.get('season')) + \ No newline at end of file diff --git a/plugin.program.smartplaylist.generator/resources/lib/parsers/imdb.py b/plugin.program.smartplaylist.generator/resources/lib/parsers/imdb.py new file mode 100644 index 0000000000..d84391a83d --- /dev/null +++ b/plugin.program.smartplaylist.generator/resources/lib/parsers/imdb.py @@ -0,0 +1,107 @@ +# Copyright (C) 2024 Lunatixz +# +# +# This file is part of Smartplaylist Generator. +# +# Smartplaylist Generator 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 3 of the License, or +# (at your option) any later version. +# +# Smartplaylist Generator 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 PseudoTV Live. If not, see . +# +# -*- coding: utf-8 -*- +from globals import * + +# class IMDB: + # def __init__(self, cache=None): + # if cache is None: self.cache = SimpleCache() + # else: + # self.cache = cache + # self.cache.enable_mem_cache = False + + # self.enabled = REAL_SETTINGS.getSetting('Enable_Trakt') == 'true' + # self.name = LANGUAGE(32100) + # self.logo = os.path.join(ADDON_PATH,'resources','images','trakt.png') + + + # def log(self, msg, level=xbmc.LOGDEBUG): + # return log('%s: %s'%(self.__class__.__name__,msg),level) + + + # def convert_type(self, list_type): + # return {'movie':'movies','show':'tvshows','episode':'episodes'}[list_type] + + + # def clean_string(self, string): + # return string.replace('copy','').replace('\r\n\t','') + + + # @cacheit(expiration=datetime.timedelta(minutes=15)) + # def get_lists(self, trakt_user=REAL_SETTINGS.getSetting('Trakt_Username'), client_id=REAL_SETTINGS.getSetting('Trakt_ClientID')): + # self.log('get_lists, trakt_user = %s'%(trakt_user)) + # tmp = [] + # url = f"https://api.trakt.tv/users/{trakt_user}/lists" + # headers = { 'Content-Type': 'application/json', + # 'trakt-api-version': '2', + # 'trakt-api-key': client_id} + # response = requests.get(url, headers=headers) + # if response.status_code == 200: + # for item in response.json(): + # tmp.append({'name':self.clean_string(item.get('name')),'description':self.clean_string(item.get('description')),'id':str(item.get('ids',{}).get('trakt')),'icon':self.logo}) + # else: self.log("get_lists, failed! to fetch data from Trakt:", response.status_code) + # if len(tmp) > 0: return tmp + # else: return None + + +# import requests +# from bs4 import BeautifulSoup + +# class IMDBSearch: + # BASE_URL = "https://www.imdb.com" + + # def __init__(self, user_id): + # self.user_id = user_id + + # def get_user_list(self, list_id): + # url = f"{self.BASE_URL}/user/{self.user_id}/lists/{list_id}" + # response = requests.get(url) + # if response.status_code == 200: + # soup = BeautifulSoup(response.content, "html.parser") + # movies = [] + # for item in soup.select(".lister-item"): + # title = item.select_one(".lister-item-header a").text + # movies.append(title) + # return movies + # else: + # print(f"Failed to retrieve list: {response.status_code}") + # return [] + +# # Example usage +# imdb_search = IMDBSearch("ur12345678") +# movies = imdb_search.get_user_list("ls123456789") +# print(movies) + + + # @cacheit(expiration=datetime.timedelta(hours=int(REAL_SETTINGS.getSetting('Run_Every')), minutes=15)) + # def get_list_items(self, list_id, client_id=REAL_SETTINGS.getSetting('Trakt_ClientID')): + # self.log('get_list_items, list_id = %s'%(list_id)) + # tmp = {} + # for list_type in ['movie','show','episode']: + # url = f"https://api.trakt.tv/lists/{list_id}/items/{list_type}" + # headers = { 'Content-Type': 'application/json', + # 'trakt-api-version': '2', + # 'trakt-api-key': client_id} + # response = requests.get(url, headers=headers) + # if response.status_code == 200: + # for item in response.json(): + # tmp.setdefault(self.convert_type(list_type),[]).append({'type':item.get('type'),'title':item.get(list_type,{}).get('title'),'year':item.get(list_type,{}).get('title'),'uniqueid':item.get(list_type,{}).get('ids'),'data':item}) + # else: self.log("get_list_items, failed! to fetch data from Trakt:", response.status_code) + # if len(tmp) > 0: return tmp + # else: return None diff --git a/plugin.program.smartplaylist.generator/resources/lib/parsers/trakt.py b/plugin.program.smartplaylist.generator/resources/lib/parsers/trakt.py new file mode 100644 index 0000000000..e086296ce8 --- /dev/null +++ b/plugin.program.smartplaylist.generator/resources/lib/parsers/trakt.py @@ -0,0 +1,102 @@ +# Copyright (C) 2024 Lunatixz +# +# +# This file is part of Smartplaylist Generator. +# +# Smartplaylist Generator 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 3 of the License, or +# (at your option) any later version. +# +# Smartplaylist Generator 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 PseudoTV Live. If not, see . +# +# -*- coding: utf-8 -*- +from globals import * + +class Trakt: + def __init__(self, cache=None): + if cache is None: self.cache = SimpleCache() + else: + self.cache = cache + self.cache.enable_mem_cache = False + + self.enabled = REAL_SETTINGS.getSetting('Enable_Trakt') == 'true' + self.name = LANGUAGE(32100) + self.logo = os.path.join(ADDON_PATH,'resources','images','trakt.png') + + + def log(self, msg, level=xbmc.LOGDEBUG): + return log('%s: %s'%(self.__class__.__name__,msg),level) + + + def convert_type(self, list_type): + return {'movie':'movies','show':'tvshows','season':'seasons','episode':'episodes'}[list_type] + + + def clean_string(self, string): + return string.replace('copy','').replace('\r\n\t','').rstrip() + + + @cacheit(expiration=datetime.timedelta(minutes=15)) + def get_lists(self, trakt_user=REAL_SETTINGS.getSetting('Trakt_Username'), client_id=REAL_SETTINGS.getSetting('Trakt_ClientID')): + tmp = [] + url = f"https://api.trakt.tv/users/{trakt_user}/lists" + self.log('get_lists, trakt_user = %s, url = %s'%(trakt_user,url)) + headers = { 'Content-Type': 'application/json', + 'trakt-api-version': '2', + 'trakt-api-key': client_id} + response = requests.get(url, headers=headers) + if response.status_code == 200: + for item in response.json(): + tmp.append({'name':self.clean_string(item.get('name')),'description':self.clean_string(item.get('description')),'id':str(item.get('ids',{}).get('trakt')),'icon':self.logo}) + else: self.log("get_lists, failed! to fetch data from Trakt:", response.status_code) + if len(tmp) > 0: return sorted(tmp,key=itemgetter('name')) + else: return None + + + @cacheit() + def get_list_items(self, list_id, client_id=REAL_SETTINGS.getSetting('Trakt_ClientID')): + tmp = {} + for list_type in ['movie','show','season','episode','person']: + url = f"https://api.trakt.tv/lists/{list_id}/items/{list_type}" + self.log('get_list_items, list_id = %s, url = %s'%(list_id,url)) + headers = { 'Content-Type': 'application/json', + 'trakt-api-version': '2', + 'trakt-api-key': client_id} + response = requests.get(url, headers=headers) + if response.status_code == 200: + for item in response.json(): + if list_type == 'person': + for type, items in list(self.get_trakt_person(item.get(list_type,{}).get('ids',{}).get('trakt')).items()): + tmp.setdefault(type,[]).extend(items) + else: + if list_type == 'season' and 'show' in item: item[list_type].update(item.pop('show')) + tmp.setdefault(self.convert_type(list_type),[]).append({'type':item.get('type'),'title':item.get(list_type,{}).get('title'),'year':item.get(list_type,{}).get('year'),'season':item.get(list_type,{}).get('number'),'uniqueid':item.get(list_type,{}).get('ids'),'data':item}) + else: self.log("get_list_items, failed! to fetch data from Trakt:", response.status_code) + if len(tmp) > 0: return tmp + else: return None + + + @cacheit() + def get_trakt_person(self, trakt_id, client_id=REAL_SETTINGS.getSetting('Trakt_ClientID')): + tmp = {} + urls = {'movie':f"https://api.trakt.tv/people/{trakt_id}/movies", + 'show' :f"https://api.trakt.tv/people/{trakt_id}/shows"} + headers = { 'Content-Type': 'application/json', + 'trakt-api-version': '2', + 'trakt-api-key': client_id} + for list_type, url in list(urls.items()): + self.log('get_trakt_person, trakt_id = %s, url = %s'%(trakt_id,url)) + response = requests.get(url, headers=headers) + if response.status_code == 200: + for item in response.json().get('cast',[]): + tmp.setdefault(self.convert_type(list_type),[]).append({'type':list_type,'title':item.get(list_type,{}).get('title'),'year':item.get(list_type,{}).get('year'),'season':item.get(list_type,{}).get('number'),'uniqueid':item.get(list_type,{}).get('ids'),'data':item}) + else: self.log("get_trakt_person, failed! to fetch data from Trakt:", response.status_code) + if len(tmp) > 0: return tmp + else: return None \ No newline at end of file diff --git a/plugin.program.smartplaylist.generator/resources/lib/service.py b/plugin.program.smartplaylist.generator/resources/lib/service.py new file mode 100644 index 0000000000..4a75528d7e --- /dev/null +++ b/plugin.program.smartplaylist.generator/resources/lib/service.py @@ -0,0 +1,49 @@ +# Copyright (C) 2024 Lunatixz +# +# +# This file is part of Smartplaylist Generator. +# +# Smartplaylist Generator 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 3 of the License, or +# (at your option) any later version. +# +# Smartplaylist Generator 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 PseudoTV Live. If not, see . +# +# -*- coding: utf-8 -*- +from globals import * +from kodi import Kodi + +class Service(): + def __init__(self): + self.log('__init__') + self.monitor = MONITOR() + self.kodi = Kodi() + + + def log(self, msg, level=xbmc.LOGDEBUG): + return log('%s: %s'%(self.__class__.__name__,msg),level) + + + def _start(self): + self.log('_start') + while not self.monitor.abortRequested(): + if self.monitor.waitForAbort(300): break + else: self._run(int(REAL_SETTINGS.getSetting('Run_Every')),strpTime(REAL_SETTINGS.getSetting('Last_Update'))) + + + def _run(self, run_every, last_update): + if run_every > 0: + run_seconds = ((run_every * 3600) + 1800) #service run time in seconds with 30min padding to allow cache time to clear before run + run_time = (last_update + datetime.timedelta(seconds=run_seconds)) + if datetime.datetime.now() >= run_time: + self.log('_run, Starting %s Service'%(ADDON_NAME)) + self.kodi.executebuiltin('RunScript(special://home/addons/%s/resources/lib/default.py, Run_All)'%(ADDON_ID)) + +if __name__ == '__main__': Service()._start() diff --git a/plugin.program.smartplaylist.generator/resources/settings.xml b/plugin.program.smartplaylist.generator/resources/settings.xml new file mode 100644 index 0000000000..2f04d80ff2 --- /dev/null +++ b/plugin.program.smartplaylist.generator/resources/settings.xml @@ -0,0 +1,143 @@ + + +
+ + + + 0 + true + + + + 0 + special://profile/playlists/video/ + + true + + + 32016 + + + + 0 + false + + + + + + + + 0 + true + + + + 0 + 0 + + + + + + + + + + + + + 0 + + true + + + + 0 + + + + + false + + + + + + + + 0 + false + + + + 0 + + + true + + + + true + + + + 32102 + + + + 0 + + + true + + + + true + + + + 32104 + true + + + + 0 + + true + + + + + true + + + + + + RunScript(special://home/addons/plugin.program.smartplaylist.generator/resources/lib/default.py, Select_Trakt) + true + + + + 0 + + true + + + + + true + + + + + + RunScript(special://home/addons/plugin.program.smartplaylist.generator/resources/lib/default.py, Build_Trakt) + true + + + + +
+
\ No newline at end of file