Package: plexhints
github_url:https://github.com/LizardByte/plexhints/tree/nightly/README.rstOverviewLizardByte has the full documentation hosted onRead the Docs.AboutPlexhints is a set of tools to aid in the development of plugins for Plex Media Server. It is not a framework, but
rather a set of tools that can be used to make your life easier.FeaturesPython library providing type hints to aid in the development of Plex plugins. Get rid of all those IDE warnings
and errors!A GitHub Action that will install and bootstrap a Plex Media Server in a CI environment. The action can install
plugins and setup dummy libraries. Additionally the Plex token is provided as an output. This is useful for testing
your plugin or other Plex project in a CI environment.Integrationsgithub_url:https://github.com/LizardByte/plexhints/tree/nightly/docs/source/about/installation.rstInstallationPython PackageThis library is available on PyPI asplexhints. It can be installed in several ways.PyPIpython-mpipinstallplexhintsgitpython-mpipinstallgit+https://github.com/lizardbyte/plexhints.git@dist#egg=plexhintsgithub archivepython-mpipinstallhttps://github.com/lizardbyte/plexhints/archive/dist.zip#egg=plexhintsgithub_url:https://github.com/LizardByte/plexhints/tree/nightly/docs/source/about/usage.rstUsagePlexhints can be used by just importing theplexhintsmodule and running a couple of functions. After doing so
you can use plexhints in your IDE and run most of your code outside of Plex. This is useful for debugging and testing.Main Entry PointPlace this at the top of yourContents/Code/__init__.pyfile. It is important to only import these when running
outside of Plex.# plex debuggingtry:importplexhints# noqa: F401exceptImportError:passelse:# the code is running outside of Plexfromplexhintsimportplexhints_setup,update_sys_pathplexhints_setup()# reads the plugin plist file and determine if plexhints should use elevated policy or notupdate_sys_path()# when running outside plex, append the pathSubmodulesIn files other than the main__init__.pyfile, you can simply import theplexhintsmodule and use it as shown.# plex debuggingtry:importplexhints# noqa: F401exceptImportError:passelse:# the code is running outside of Plexfromplexhints.log_kitimportLogAvailable Importsfromplexhints.agent_kitimportAgent,Media# agent kitfromplexhints.core_kitimportCore# core kitfromplexhints.decorator_kitimporthandler,indirect,route# decorator kitfromplexhints.exception_kitimportEx# exception kitfromplexhints.locale_kitimportLocale# locale kitfromplexhints.log_kitimportLog# log kitfromplexhints.model_kitimportMovie,VideoClip,VideoClipObject# model kitfromplexhints.network_kitimportHTTP# network kitfromplexhints.object_kitimportCallback,IndirectResponse,MediaObject,MessageContainer,MetadataItem,\MetadataSearchResult,PartObject,SearchResult# object kitfromplexhints.parse_kitimportHTML,JSON,Plist,RSS,XML,YAML# parse kitfromplexhints.prefs_kitimportPrefs# prefs kitfromplexhints.proxy_kitimportProxy# proxy kitfromplexhints.resource_kitimportResource# resource kitfromplexhints.shortcut_kitimportL,E,D,R,S# shortcut kitfromplexhints.util_kitimportString,Util# util kitfromplexhints.constant_kitimportCACHE_1MINUTE,CACHE_1HOUR,CACHE_1DAY,CACHE_1WEEK,CACHE_1MONTH# constant kitfromplexhints.constant_kitimportClientPlatforms,Protocols,OldProtocols,ServerPlatforms,ViewTypes,\SummaryTextTypes,AudioCodecs,VideoCodecs,Containers,ContainerContents,\StreamTypes# constant kit, more commonly used in URL services# extra objectsfromplexhints.extras_kitimportBehindTheScenesObject,\ConcertVideoObject,\DeletedSceneObject,\FeaturetteObject,\InterviewObject,\LiveMusicVideoObject,\LyricMusicVideoObject,\MusicVideoObject,\OtherObject,\SceneOrSampleObject,\ShortObject,\TrailerObject