Skip to content

Commit

Permalink
[script.plexmod] 0.7.8
Browse files Browse the repository at this point in the history
  • Loading branch information
pannal committed May 20, 2024
1 parent 156fea7 commit 24fd54e
Show file tree
Hide file tree
Showing 151 changed files with 12,800 additions and 1,920 deletions.
62 changes: 62 additions & 0 deletions script.plexmod/LICENSE.txt
Original file line number Diff line number Diff line change
Expand Up @@ -485,8 +485,70 @@ apply, that proxy's public statement of acceptance of any version is
permanent authorization for you to choose that version for the
Library.

-------------------------------------------------------------------------

https://github.com/phihag/ipaddress

This package is a modified version of cpython's ipaddress module.
It is therefore distributed under the PSF license, as follows:

PYTHON SOFTWARE FOUNDATION LICENSE VERSION 2
--------------------------------------------

1. This LICENSE AGREEMENT is between the Python Software Foundation
("PSF"), and the Individual or Organization ("Licensee") accessing and
otherwise using this software ("Python") in source or binary form and
its associated documentation.

2. Subject to the terms and conditions of this License Agreement, PSF hereby
grants Licensee a nonexclusive, royalty-free, world-wide license to reproduce,
analyze, test, perform and/or display publicly, prepare derivative works,
distribute, and otherwise use Python alone or in any derivative version,
provided, however, that PSF's License Agreement and PSF's notice of copyright,
i.e., "Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
2011, 2012, 2013, 2014 Python Software Foundation; All Rights Reserved" are
retained in Python alone or in any derivative version prepared by Licensee.

3. In the event Licensee prepares a derivative work that is based on
or incorporates Python or any part thereof, and wants to make
the derivative work available to others as provided herein, then
Licensee hereby agrees to include in any such work a brief summary of
the changes made to Python.

4. PSF is making Python available to Licensee on an "AS IS"
basis. PSF MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR
IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, PSF MAKES NO AND
DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS
FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON WILL NOT
INFRINGE ANY THIRD PARTY RIGHTS.

5. PSF SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON
FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS
A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON,
OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF.

6. This License Agreement will automatically terminate upon a material
breach of its terms and conditions.

7. Nothing in this License Agreement shall be deemed to create any
relationship of agency, partnership, or joint venture between PSF and
Licensee. This License Agreement does not grant permission to use PSF
trademarks or trade name in a trademark sense to endorse or promote
products or services of Licensee, or any third party.

8. By copying, installing or otherwise using Python, Licensee
agrees to be bound by the terms and conditions of this License
Agreement.


-------------------------------------------------------------------------
Fontawesome
https://fontawesome.com/license/free
CC BY 4.0 License: https://creativecommons.org/licenses/by/4.0/#

-------------------------------------------------------------------------
Play queue by Sébastien Robaszkiewicz from <a href="https://thenounproject.com/browse/icons/term/play-queue/" target="_blank" title="Play queue Icons">Noun Project</a> (CC BY 3.0)
fast forward by Adiyogi from <a href="https://thenounproject.com/browse/icons/term/fast-forward/" target="_blank" title="fast forward Icons">Noun Project</a> (CC BY 3.0)
subtitle by YANDI RS from <a href="https://thenounproject.com/browse/icons/term/subtitle/" target="_blank" title="subtitle Icons">Noun Project</a> (CC BY 3.0)

Other unlisted icons under CC BY 3.0, https://creativecommons.org/licenses/by/3.0/
20 changes: 14 additions & 6 deletions script.plexmod/README.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
# PlexMod (for Kodi)
# PM4K / PlexMod for Kodi

[![ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/Z8Z8X6P9T)

This is a modification of the official open-source Plex client for Kodi "plex-for-kodi" (Plex4Kodi) semi-maintained by me (pannal).

Contrary to how this repository was handled before, this client does _not_ claim to adhere to the Plex Inc. design guidelines, all the time.

It implements features that are not implemented in other official Plex clients and may implement others in non-conform ways.

It is still based off of the original P4K source and critical bugfixes will be PR'd back.
It is still based off of the original P4K source and critical bugfixes might be PR'd back.

## Active branches
* [develop-kodi21](https://github.com/pannal/plex-for-kodi/tree/develop_kodi21) (Kodi 19, 20, 21 cross-compatible)
Expand All @@ -16,15 +18,21 @@ Master branch is based off of the official plex-for-kodi master branch.

## Installation

### Via repository
### Via repository (recommended)
* Add `https://pannal.github.io/dontpanickodi/` to your Kodi installation as a file source
* Go back to addons, choose zip file, choose the file source you added and install the repository
* Install Plex via Addons->Install from repository->Don’t Panic->Video add-ons->Plex
* Optional, recommended: Install Plextuary via Addons->Install from repository->Don’t Panic->Look and Feel->Skin->Plextuary
* Go to Settings->Addons, choose "Install from zip file", choose the file source you added and install the repository
* Install Plex via Settings->Addons->Install from repository->Don't Panic->Video add-ons->Plex
* Optional, recommended: Install Plextuary via Settings->Addons->Install from repository->Don't Panic->Look and Feel->Skin->Plextuary

### Installation (stable only, not optimized, possibly outdated)
* Install "PM4K for Kodi" from the official Kodi repository
* Optional, recommended: Install Plextuary skin using the above

### Manual
* Checkout any branch of this GitHub repository, rename to `script.plexmod` and use as an addon

## Translation
You can help! Join the translation effort at [POEditor](https://poeditor.com/join/project/ASOl50YAXg) (thanks for the free open source license, guys).

## Help/Bug Reports
https://forums.plex.tv/t/plexmod-for-kodi-18-19-20-21/481208
Expand Down
10 changes: 5 additions & 5 deletions script.plexmod/addon.xml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<addon id="script.plexmod"
name="PM4K for Plex"
version="0.7.6"
version="0.7.8"
provider-name="pannal">
<requires>
<import addon="xbmc.python" version="3.0.0"/>
Expand Down Expand Up @@ -33,11 +33,11 @@
<source>https://github.com/pannal/plex-for-kodi</source>
<platform>all</platform>
<news>
- Based on 0.7.6-rev2
- 0.7.8
</news>
<assets>
<icon>icon.png</icon>
<fanart>fanart.jpg</fanart>
<icon>icon2.png</icon>
<fanart>fanart.png</fanart>
</assets>
</extension>
</addon>
</addon>
121 changes: 118 additions & 3 deletions script.plexmod/changelog.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,122 @@
[-0.7.6-rev2 -]
- Core: Avoid DNS rebind protection issues for plex.direct
[-0.7.8-]
- Global: Use watched markers instead of unwatched markers (green checkmark vs. yellow triangle)
- Home: Blur in-progress episode thumbnails if Addon Setting “Use episode thumbnails in continue hub” is enabled and titles if requested
- Home: Refresh hubs when no episode spoiler setting changed
- Home/Settings: After changing home-relevant settings, reload Home on revisit, not immediately
- Home: Dynamically reload home when relevant settings have changed
- Home/Sections: Improve handling for sections that errored out once, and retry loading them just like any stale section every 5 minutes
- Home: Fix hubs not coming back after disconnect
- Home: Harden disconnect handling in general; PM4K should be able to "live" forever now
- Home: Refresh last section on: screensaver deactivated, DPMS deactivated, system wakeup after sleep
- Home/PowerEvents: Disable updates when system goes to sleep, enable them when it wakes up; force a hubs update when waking up
- Home: Probably fix long-running section change issue (partially reverting a previous change and being a little smarter about the current selection state); add debug logging for when we detect the "anomaly"
- Home: Don't let any tasks remain in a crashed state
- Core/Home: Add easy path mapping
- Core/Home: Add library context option to hide them for current user/server; Add context option for "Home" to unhide hidden libraries
- Home: Hide hidden library content from home hubs as well
- Home: Add library reordering functionality
- Home: Remove Hub round-robining altogether
- Home: Use ACTION_NAV_BACK/ACTION_PREVIOUS_MENU in home hubs to select the first item when any item other than the first item is selected
- Home: After refreshing stale section hubs (every 5m), re-select the last selected position in every hub, possibly re-extending the hubs to match the last position
- Episodes: Blur unwatched/in-progress episode thumbnails and redact spoiler texts, and episode titles if requested
- Episodes: Possibly use correct episode when playing TV Show from TV Show overview; always play latest in progress, unwatched, deprioritize specials
- Episodes: after watching an episode, remove chevron immediately
- Episodes: After watching multiple episodes in a row that span more than one season (e.g. watched S01E10, S02E01), properly redirect to the latest correct season view of the just watched episodes
- Episodes: Inject watched/progress state into listitem datasource (fixes wrong "Mark as (Un) Played" menu item behaviour immediately after watching an episode)
- Episodes: Don't play theme music when coming back from Home-Direct-Play (pressed P or ACTION_PLAYER_PLAY)
- Episodes: Select the correct episode after returning from direct playback from home (P/PLAY pressed)
- SeekDialog: Hide episode title if wanted
- SeekDialog: Properly update VideoPlaylist when using next/prev
- SeekDialog: Improve chapter visibility (selected and deselected (current))
- SeekDialog: Throw away intro markers with an unreasonably late start offset (>10m)
- SeekDialog: Throw invalid markers away once, not every tick
- SeekDialog/Settings/Video Playlists: change the setting options for showing the prev/next and playlist buttons from "Only for Episodes" to "Only for Episodes/Playlists"; Show next/prev/playlist buttons in player for video playlists if wanted
- Core/Players: Remove all Kodi media-loading spinners when using Plextuary skin
- Core/Player: Always set infolabel "year" and remove it when downloading subtitles; don't set infolabels "episode" and "season" at all for non-TV-shows (fixes scrobbling issues with trakt plugin)
- Core/Player: Report all known Guids to script.trakt if it's installed; generate slug for movies
- Player/SeekDialog: Properly handle a manual stop action on episodes when OSD was visible (possibly other occasions)
- Player/PostPlay: Hide spoilers as well, if configured
- Postplay: Don't show the same episode on deck which is going to be played next
- TV Shows/Seasons: Try reloading instead of exiting to home when deleting a season if possible
- Libraries: Add movie/show year to label (thanks @bowlingbeeg)
- Libraries: Fix year display, fix Art display in listview 16x9; make small posters view a little less cramped
- VideoPlaylists: Show playback menu when an item can be resumed
- VideoPlaylists: Show playback menu when CONTEXT_MENU action is detected
- VideoPlaylists: Allow resuming, or, if possible, Start from Beginning
- Core: Ignore local IPv4 docker plex.direct hosts when checking for host mapping
- Core: Unify spoiler handling across multiple windows
- Core: API requests: Don't generally include markers, only for PlayableVideos
- Core: Open up translations to everyone, using POEditor
- Core/AddonSettings: Remove old compatibility profile code and setting
- Core/AddonSettings: Make caching home users optional; add setting (default: on)
- Core/Home: When home user caching is disabled, refresh home users when opening the user dropdown (once)
- Core: Add support for Guids in new library agents
- Core/Episodes/Player: Inject Show reference into episodes to speed up playback start and avoid additional API hits; Don't initiate a playlist if only one episode is being played
- Core: Compatibility with script.trakt
- Core: Add automated generic JSON data cache, stored as addon_data/script.plexmod/data_cache.json
- Core/TV: Store and use "once seen" genres for a show in the data cache to speed up certain views (such as postplay and continue watching, with no spoiler mode active)
- Core: Automatically clean up old unused data cache entries which haven't been accessed for 30 days
- Core/Settings: Add option to use watched markers instead of unwatched markers (default: on)
- Core/Settings: Add option to hide the black background on inverted watched markers (default: off)
- Core: Fix dialogs reverting the underlying window's watched marker setting temporarily
- Core: Memory usage and performance optimizations (possibly >10% in py3 and >30% in py2 by using __slots__ on massively used classes)
- Core: Allow for custom watched.png, unwatched.png, unwatched-rounded.png in addon_data/script.plexmod/media/
- Core: Improve delete media clarity
- Core/Playlists: Fix context menu "play" action on playlist items when addonSetting playlist visit media is on
- Core/Windows: Optimize Imports
- Settings: Add setting to show indicators for libraries with active path mapping (default: on)
- Settings: Add setting to blur episode thumbnails and preview images, as well as redact spoilers for unwatched or unwatched+in progress episodes
- Settings: Add setting to also hide episode titles based on the above
- AddonSettings: Add setting to configure the blur amount for unwatched episodes (default: 16/255)
- AddonSettings: Add setting for ignoring local docker IPv4 hosts when checking for host mapping (default: enabled)
- AddonSettings: Change default of "Visit media in video playlist instead of playing it" to False
- AddonSettings: Add setting to define the maximum start offset of an intro marker to consider it (default: 600s/10m)
- Theme: Bump theme version to 3


[-0.7.7-rev2-]
- UserSelect: When not switching user (startup), close the addon on cancel actions
- Libraries/Photos: Do autoplay when Play or Shuffle buttons are pressed in photo library view
- Libraries/Photos: Fix wonky thumbnail display on photodirectories
- SeekDialog: Fix final credits marker skipping wrongly on manual marker skip
- SeekDialog: Fix several marker issues (over-jumping, invalid markers)
- SeekDialog: Show stream transport type in video session info (smb, nfs, path mapped, http(s))
- SeekDialog: Fix empty chapters list shown when watching an episode without markers via NEXT after watching one with markers
- SeekDialog/Settings: Add option to hide all time-related information from the user when the OSD isn't open
- SeekDialog: Transcode Session Only: Don't show subtitle download option in subtitle quick actions; properly show subtitles when toggling them via subtitle quick actions
- Core: Advanced/Addon settings: Set default Plex requests timeout to 10 (was 5)
- Core/Mainloop: Make sure we were able to open the Home/UserSelect window after our BACKGROUND successfully opened, even if another modal dialog opened in the meantime
- Core: Firstrun: Refresh resources after signin and/or home user switch, otherwise the first time the addon's run the user sees no servers
- Core: UI: Fall back to black background image when we have backgrounds set but they didn't load
- Core: Finally fix and handle plex.direct mappings via advancedsettings.xml
- Core: Fix issues resulting in new devices being registered with plex.tv on every plugin start
- Core: Only use mapped file path if mapped file exists or verification is off
- Core: Backgrounds: More concise fallback handling
- Core/Player: Add optional DirectPlay path mapping via addon_data/script.plexmod/path_mapping.json (path_mapping.example.json included in addon directory). Allows for arbitrary replacements of HTTP playback with SMB, NFS, local mounts etc.
- Home: Rework and simplify section/library change logic
- Home: Never update hubs while playing a video to avoid hickups in high bitrate scenarios
- Home: Properly cache user thumbnail (by removing the ?c timestamp from the URL), increasing performance
- Home: Fix round robining on hubs (going left once before the last item, then right falsely round-robined to the start, early)
- Home: Add virtual hub 'home.VIRTUAL.movies.recentlyreleased' on index 3 if we encounter 'movie.recentlyreleased' on the home hubs
- Home/Settings: Add setting to use the modern Continue Watching hub on Home instead of the separated In Progress/On Deck hubs
- Episodes: Complete rework of the watch-state handler for TV; instantly update progress while watching
- Theme: Update assets, icon, splash
- Music: Rework music player and handler; remove plugin:// path and handle tracks directly; fixed all stability issues; massively improve performance
- Player: Add button theme support, use new modern colored theme; support custom themes
- Player: Improve handling when postplay screen is not wanted and we're at the end of a show; harden progressEvent handler
- Player: Remove all /file.xxx instances instead of just .mkv and .mp4 from non mapped stream URLs
- Musicplayer: Partially fix "dangling" playing tracks in Plex Dashboard after stopping playback
- Music: Hide spinner on prev/next button clicks as well (only with Plextuary skin 4.0.0-pm4k0.9 (omega), 3.0.10-pm4k0.8 (nexus and older))
- Settings: Add setting to toggle path mapping dynamically
- Settings: Adjust cache recommendations down from 100MB to 50MB
- AddonSettings: Add advanced setting to verify mapped files before playing them (default: on)
- Account/HomeUsers: Use new API to determine the PlexPass subscription status of the Plex Home
- Account/HomeUsers: Refresh home users once a week if we've never seen a plex home
- Home/RefreshUsers/UserSelect: Refresh subscription state


[-0.7.6-]
- Core: Avoid DNS rebind protection issues for plex.direct
- Core: Support ipv6 plex.direct hosts when checking for locality/LAN
- Core: Network: Massively speed up local connection checks
- Core: Network: Skip local connection checks for plex.tv
Expand All @@ -25,7 +141,6 @@
- SeekDialog: Autoscroll episode/movie title lines for too long titles
- SeekDialog: Hide non-autoskipping marker into the OSD using NAV_BACK/PREVIOUS_MENU
- SeekDialog: Apply positive marker endtime offset to manually skipping markers as well (unifying with the autoskip handling), to avoid re-showing the marker occasionally after seeking
- SeekDialog: Fix final credits marker skipping wrongly on manual marker skip
- Library: Show current total item count in title
- Settings: Add description for Direct Stream

Expand Down
Binary file removed script.plexmod/fanart.jpg
Binary file not shown.
Binary file added script.plexmod/fanart.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file removed script.plexmod/icon.png
Binary file not shown.
Binary file added script.plexmod/icon2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading

0 comments on commit 24fd54e

Please sign in to comment.