1
0
mirror of https://github.com/fHDHR/fHDHR_NextPVR.git synced 2025-12-06 04:26:57 -05:00

Use session to detect if PlexMediaServer

This commit is contained in:
deathbybandaid 2020-12-20 11:13:00 -05:00
parent b12996b8bb
commit 2cd30a38ca
3 changed files with 22 additions and 9 deletions

View File

@ -62,7 +62,15 @@ class fHDHR_HTTP_Server():
self.fhdhr.logger.info("HTTP Server Online.")
def before_request(self):
session["is_mobile"] = self.detect_mobile(request)
if session["is_mobile"]:
self.fhdhr.logger.debug("Client is a mobile device.")
session["is_plexmediaserver"] = self.detect_plexmediaserver(request)
if session["is_plexmediaserver"]:
self.fhdhr.logger.debug("Client is a Plex Media Server.")
self.fhdhr.logger.debug("Client %s requested %s Opening" % (request.method, request.path))
def after_request(self, response):
@ -70,9 +78,16 @@ class fHDHR_HTTP_Server():
return response
def detect_mobile(self, request):
agent = request.headers.get('User-Agent')
user_agent = request.headers.get('User-Agent')
phones = ["iphone", "android", "blackberry"]
if any(phone in agent.lower() for phone in phones):
if any(phone in user_agent.lower() for phone in phones):
return True
else:
return False
def detect_plexmediaserver(self, request):
user_agent = request.headers.get('User-Agent')
if str(user_agent).lower().startswith("plexmediaserver"):
return True
else:
return False

View File

@ -1,4 +1,4 @@
from flask import redirect, request
from flask import redirect, request, session
class Root_URL():
@ -17,10 +17,10 @@ class Root_URL():
user_agent = request.headers.get('User-Agent')
# Client Devices Discovering Device Information
if not user_agent or str(user_agent).lower().startswith("plexmediaserver"):
if not user_agent or session["is_plexmediaserver"]:
# Plex Remote Media Grabber redirect
if self.fhdhr.config.dict["rmg"]["enabled"] and str(user_agent).lower().startswith("plexmediaserver"):
if self.fhdhr.config.dict["rmg"]["enabled"] and session["is_plexmediaserver"]:
return redirect("/rmg")
# Client Device is looking for HDHR type device

View File

@ -1,4 +1,4 @@
from flask import request, redirect
from flask import redirect, session
class Device_XML():
@ -13,9 +13,7 @@ class Device_XML():
def get(self, *args):
user_agent = request.headers.get('User-Agent')
if (self.fhdhr.config.dict["rmg"]["enabled"] and
str(user_agent).lower().startswith("plexmediaserver")):
if self.fhdhr.config.dict["rmg"]["enabled"] and session["is_plexmediaserver"]:
return redirect("/rmg/device.xml")
else:
return redirect("/hdhr/device.xml")