JBOPS/killstream/kill_device.py

55 lines
1.6 KiB
Python
Raw Normal View History

2017-12-05 12:16:20 +00:00
"""
Kill Plex streams based on device.
PlexPy > Settings > Notification Agents > Scripts > Bell icon:
[X] Notify on playback start
PlexPy > Settings > Notification Agents > Scripts > Gear icon:
Playback Start: kill_device.py
"""
import requests
from plexapi.server import PlexServer
## EDIT THESE SETTINGS ##
PLEX_TOKEN = 'xxxx'
PLEX_URL = 'http://localhost:32400'
DEFAULT_REASON = 'This stream has ended due to your device type.'
# Find platforms that have history in PlexPy in Play count by platform and stream type Graph
DEVICES = {'Android':
{ 'message': 'Andriod message', 'kill': False},
'Chrome':
{ 'message': 'Chrome message', 'kill': True},
'Plex Media Player':
{ 'message': 'PMP message', 'kill': False},
'Chromecast':
{ 'message': 'Chromecast message', 'kill': True}}
USER_IGNORE = ('') # ('Username','User2')
##/EDIT THESE SETTINGS ##
sess = requests.Session()
sess.verify = False
plex = PlexServer(PLEX_URL, PLEX_TOKEN, session=sess)
def kill_session():
for session in plex.sessions():
user = session.usernames[0]
if user in USER_IGNORE:
print('Ignoring {}\'s stream.'.format(user))
exit()
platform = session.players[0].platform
if DEVICES[platform]['kill'] is True:
2017-12-06 17:05:20 +00:00
MESSAGE = DEVICES[platform].get(platform, DEFAULT_REASON)
2017-12-05 12:16:20 +00:00
print('Killing {user}\'s stream on {plat}.'.format(user=user, plat=platform))
session.stop(reason=MESSAGE)
if __name__ == '__main__':
kill_session()