1
0
mirror of https://github.com/fHDHR/fHDHR_NextPVR.git synced 2025-12-06 09:16:58 -05:00

Improve Channel Update from Web Interface

This commit is contained in:
deathbybandaid 2020-11-30 08:38:44 -05:00
parent 8186e687b2
commit f45fdf7719
4 changed files with 26 additions and 10 deletions

View File

@ -1,4 +1,5 @@
from multiprocessing import Process import multiprocessing
import threading
class Station_Scan(): class Station_Scan():
@ -10,16 +11,24 @@ class Station_Scan():
self.fhdhr.db.delete_fhdhr_value("station_scan", "scanning") self.fhdhr.db.delete_fhdhr_value("station_scan", "scanning")
def scan(self): def scan(self, waitfordone=False):
self.fhdhr.logger.info("Channel Scan Requested by Client.") self.fhdhr.logger.info("Channel Scan Requested by Client.")
scan_status = self.fhdhr.db.get_fhdhr_value("station_scan", "scanning") scan_status = self.fhdhr.db.get_fhdhr_value("station_scan", "scanning")
if not scan_status: if scan_status:
self.fhdhr.db.set_fhdhr_value("station_scan", "scanning", 1)
chanscan = Process(target=self.runscan)
chanscan.start()
else:
self.fhdhr.logger.info("Channel Scan Already In Progress!") self.fhdhr.logger.info("Channel Scan Already In Progress!")
else:
self.fhdhr.db.set_fhdhr_value("station_scan", "scanning", 1)
if waitfordone:
self.runscan()
else:
if self.fhdhr.config.dict["main"]["thread_method"] in ["multiprocessing"]:
chanscan = multiprocessing.Process(target=self.runscan)
elif self.fhdhr.config.dict["main"]["thread_method"] in ["threading"]:
chanscan = threading.Thread(target=self.runscan)
if self.fhdhr.config.dict["main"]["thread_method"] in ["multiprocessing", "threading"]:
chanscan.start()
def runscan(self): def runscan(self):
self.channels.get_channels(forceupdate=True) self.channels.get_channels(forceupdate=True)

View File

@ -94,7 +94,7 @@ class Channels():
self.fhdhr.device.channels.set_channel_status("id", channel_id, updatedict) self.fhdhr.device.channels.set_channel_status("id", channel_id, updatedict)
elif method == "scan": elif method == "scan":
self.fhdhr.device.station_scan.scan() self.fhdhr.device.station_scan.scan(waitfordone=True)
else: else:
return "Invalid Method" return "Invalid Method"

View File

@ -17,7 +17,7 @@ class Lineup_Post():
if 'scan' in list(request.args.keys()): if 'scan' in list(request.args.keys()):
if request.args['scan'] == 'start': if request.args['scan'] == 'start':
self.fhdhr.device.station_scan.scan() self.fhdhr.device.station_scan.scan(waitfordone=False)
return Response(status=200, mimetype='text/html') return Response(status=200, mimetype='text/html')
elif request.args['scan'] == 'abort': elif request.args['scan'] == 'abort':

View File

@ -13,11 +13,18 @@ class Channels_HTML():
def get(self, *args): def get(self, *args):
channels_dict = {
"Total Channels": len(list(self.fhdhr.device.channels.list.keys())),
"enabled": 0,
}
channelslist = [] channelslist = []
for fhdhr_id in list(self.fhdhr.device.channels.list.keys()): for fhdhr_id in list(self.fhdhr.device.channels.list.keys()):
channel_obj = self.fhdhr.device.channels.list[fhdhr_id] channel_obj = self.fhdhr.device.channels.list[fhdhr_id]
channel_dict = channel_obj.dict.copy() channel_dict = channel_obj.dict.copy()
channel_dict["play_url"] = channel_obj.play_url() channel_dict["play_url"] = channel_obj.play_url()
channelslist.append(channel_dict) channelslist.append(channel_dict)
if channel_dict["enabled"]:
channels_dict["enabled"] += 1
return render_template('channels.html', request=request, fhdhr=self.fhdhr, channelslist=channelslist) return render_template('channels.html', request=request, fhdhr=self.fhdhr, channelslist=channelslist, channels_dict=channels_dict)