99
1010
1111from resources .lib .session import load_session
12- from resources .lib .channels import load_channels
12+ from resources .lib .channels import load_channels , load_diasbled_channels , save_disabled_channels
1313from resources .lib .epg import get_epg , load_epg , get_live_epg , get_channel_epg
1414from resources .lib .stream import get_live , get_archive
1515from resources .lib .utils import get_config_value , get_script_path , get_version , check_client_network , check_ip_whitelist
@@ -98,21 +98,22 @@ def playlist():
9898 base_url = get_base_url ()
9999 output = '#EXTM3U x-tvg-url="' + base_url + '/epg"\n '
100100 for channel in channels :
101- if channels [channel ]['logo' ] == None :
102- logo = ''
103- else :
104- logo = channels [channel ]['logo' ]
105- if get_config_value ('odstranit_hd' ) == 1 or get_config_value ('odstranit_hd' ) == '1' or get_config_value ('odstranit_hd' ) == 'true' :
106- channel_name = channels [channel ]['name' ].replace (' HD' , '' )
107- else :
108- channel_name = channels [channel ]['name' ]
109- output += '#EXTINF:-1 provider="Oneplay" tvg-chno="' + str (channels [channel ]['channel_number' ]) + '" tvg-name="' + channel_name + '" tvg-logo="' + logo + '" catchup-days="7" catchup="shift", ' + channel_name + '\n '
110- output += '#KODIPROP:inputstream.adaptive.stream_headers=' + urlencode (headers ) + '\n '
111- output += '#KODIPROP:inputstream.adaptive.manifest_headers=' + urlencode (headers ) + '\n '
112- if get_config_value ('pouzivat_cisla_kanalu' ) == None or get_config_value ('pouzivat_cisla_kanalu' ) == 0 or get_config_value ('pouzivat_cisla_kanalu' ) == '0' or get_config_value ('pouzivat_cisla_kanalu' ) == 'false' :
113- output += base_url + '/play/' + quote (channel_name .replace ('/' , 'sleš' )) + '.m3u8\n '
114- else :
115- output += base_url + '/play_num/' + str (channels [channel ]['channel_number' ]) + '.m3u8\n '
101+ if channels [channel ]['visible' ] == True :
102+ if channels [channel ]['logo' ] == None :
103+ logo = ''
104+ else :
105+ logo = channels [channel ]['logo' ]
106+ if get_config_value ('odstranit_hd' ) == 1 or get_config_value ('odstranit_hd' ) == '1' or get_config_value ('odstranit_hd' ) == 'true' :
107+ channel_name = channels [channel ]['name' ].replace (' HD' , '' )
108+ else :
109+ channel_name = channels [channel ]['name' ]
110+ output += '#EXTINF:-1 provider="Oneplay" tvg-chno="' + str (channels [channel ]['channel_number' ]) + '" tvg-name="' + channel_name + '" tvg-logo="' + logo + '" catchup-days="7" catchup="shift", ' + channel_name + '\n '
111+ output += '#KODIPROP:inputstream.adaptive.stream_headers=' + urlencode (headers ) + '\n '
112+ output += '#KODIPROP:inputstream.adaptive.manifest_headers=' + urlencode (headers ) + '\n '
113+ if get_config_value ('pouzivat_cisla_kanalu' ) == None or get_config_value ('pouzivat_cisla_kanalu' ) == 0 or get_config_value ('pouzivat_cisla_kanalu' ) == '0' or get_config_value ('pouzivat_cisla_kanalu' ) == 'false' :
114+ output += base_url + '/play/' + quote (channel_name .replace ('/' , 'sleš' )) + '.m3u8\n '
115+ else :
116+ output += base_url + '/play_num/' + str (channels [channel ]['channel_number' ]) + '.m3u8\n '
116117 response .content_type = 'text/plain; charset=UTF-8'
117118 return output
118119
@@ -125,19 +126,20 @@ def playlist_tvheadend():
125126 if ffmpeg == None or len (ffmpeg ) == 0 :
126127 ffmpeg = '/usr/bin/ffmpeg'
127128 for channel in channels :
128- if channels [channel ]['logo' ] == None :
129- logo = ''
130- else :
131- logo = channels [channel ]['logo' ]
132- if get_config_value ('odstranit_hd' ) == 1 or get_config_value ('odstranit_hd' ) == '1' or get_config_value ('odstranit_hd' ) == 'true' :
133- channel_name = channels [channel ]['name' ].replace (' HD' , '' )
134- else :
135- channel_name = channels [channel ]['name' ]
136- output += '#EXTINF:-1 provider="Oneplay" tvg-chno="' + str (channels [channel ]['channel_number' ]) + '" tvg-name="' + channel_name + '" tvg-logo="' + logo + '", ' + channel_name + '\n '
137- if get_config_value ('pouzivat_cisla_kanalu' ) == None or get_config_value ('pouzivat_cisla_kanalu' ) == 0 or get_config_value ('pouzivat_cisla_kanalu' ) == '0' or get_config_value ('pouzivat_cisla_kanalu' ) == 'false' :
138- output += 'pipe://' + ffmpeg + ' -loglevel error -fflags +genpts -i "' + base_url + '/play/' + quote (channel_name .replace ('/' , 'sleš' )) + '.m3u8" -f mpegts -c copy -vcodec copy -acodec copy -metadata service_provider=Oneplay -metadata service_name="' + channel_name + '" pipe:1\n '
139- else :
140- output += 'pipe://' + ffmpeg + ' -loglevel error -fflags +genpts -i "' + base_url + '/play_num/' + str (channels [channel ]['channel_number' ]) + '.m3u8" -f mpegts -c copy -vcodec copy -acodec copy -metadata service_provider=Oneplay -metadata service_name="' + channel_name + '" pipe:1\n '
129+ if channels [channel ]['visible' ] == True :
130+ if channels [channel ]['logo' ] == None :
131+ logo = ''
132+ else :
133+ logo = channels [channel ]['logo' ]
134+ if get_config_value ('odstranit_hd' ) == 1 or get_config_value ('odstranit_hd' ) == '1' or get_config_value ('odstranit_hd' ) == 'true' :
135+ channel_name = channels [channel ]['name' ].replace (' HD' , '' )
136+ else :
137+ channel_name = channels [channel ]['name' ]
138+ output += '#EXTINF:-1 provider="Oneplay" tvg-chno="' + str (channels [channel ]['channel_number' ]) + '" tvg-name="' + channel_name + '" tvg-logo="' + logo + '", ' + channel_name + '\n '
139+ if get_config_value ('pouzivat_cisla_kanalu' ) == None or get_config_value ('pouzivat_cisla_kanalu' ) == 0 or get_config_value ('pouzivat_cisla_kanalu' ) == '0' or get_config_value ('pouzivat_cisla_kanalu' ) == 'false' :
140+ output += 'pipe://' + ffmpeg + ' -loglevel error -fflags +genpts -i "' + base_url + '/play/' + quote (channel_name .replace ('/' , 'sleš' )) + '.m3u8" -f mpegts -c copy -vcodec copy -acodec copy -metadata service_provider=Oneplay -metadata service_name="' + channel_name + '" pipe:1\n '
141+ else :
142+ output += 'pipe://' + ffmpeg + ' -loglevel error -fflags +genpts -i "' + base_url + '/play_num/' + str (channels [channel ]['channel_number' ]) + '.m3u8" -f mpegts -c copy -vcodec copy -acodec copy -metadata service_provider=Oneplay -metadata service_name="' + channel_name + '" pipe:1\n '
141143 response .content_type = 'text/plain; charset=UTF-8'
142144 return output
143145
@@ -212,6 +214,16 @@ def config():
212214 response .content_type = 'application/json'
213215 return json .dumps (config )
214216
217+ @route ('/channel/<channel>/<status>' )
218+ def channel (channel , status ):
219+ disabled_channels = load_diasbled_channels ()
220+ if status == 'disable' and channel not in disabled_channels :
221+ disabled_channels .append (channel )
222+ save_disabled_channels (disabled_channels )
223+ elif status == 'enable' and channel in disabled_channels :
224+ disabled_channels .remove (channel )
225+ save_disabled_channels (disabled_channels )
226+
215227@route ('/' )
216228@post ('/' )
217229def page ():
@@ -240,14 +252,15 @@ def page():
240252 channel_name = channels [channel ]['name' ].replace (' HD' , '' )
241253 else :
242254 channel_name = channels [channel ]['name' ]
243- playlist .append ({'name' : channel_name , 'url' : base_url_with_auth + '/play/' + quote (channel_name .replace ('/' , 'sleš' )) + '.m3u8' , 'slug' : quote (channel_name .replace ('/' , 'sleš' )) + '.m3u8' , 'logo' : channels [channel ]['logo' ], 'channel_id' : channel , 'liveOnly' : channels [channel ].get ('liveOnly' , False )})
255+ playlist .append ({'name' : channel_name , 'url' : base_url_with_auth + '/play/' + quote (channel_name .replace ('/' , 'sleš' )) + '.m3u8' , 'slug' : quote (channel_name .replace ('/' , 'sleš' )) + '.m3u8' , 'logo' : channels [channel ]['logo' ], 'channel_id' : channel , 'liveOnly' : channels [channel ].get ('liveOnly' , False ), 'visible' : channels [ channel ][ 'visible' ] })
244256 else :
245257 for channel in channels :
246258 if get_config_value ('odstranit_hd' ) == 1 or get_config_value ('odstranit_hd' ) == '1' or get_config_value ('odstranit_hd' ) == 'true' :
247259 channel_name = channels [channel ]['name' ].replace (' HD' , '' )
248260 else :
249261 channel_name = channels [channel ]['name' ]
250- playlist .append ({'name' : channel_name , 'url' : base_url_with_auth + '/play_num/' + str (channels [channel ]['channel_number' ]) + '.m3u8' , 'slug' : quote (channel_name .replace ('/' , 'sleš' )) + '.m3u8' , 'logo' : channels [channel ]['logo' ], 'channel_id' : channel , 'liveOnly' : channels [channel ].get ('liveOnly' , False )})
262+ playlist .append ({'name' : channel_name , 'url' : base_url_with_auth + '/play_num/' + str (channels [channel ]['channel_number' ]) + '.m3u8' , 'slug' : quote (channel_name .replace ('/' , 'sleš' )) + '.m3u8' , 'logo' : channels [channel ]['logo' ], 'channel_id' : channel , 'liveOnly' : channels [channel ].get ('liveOnly' , False ), 'visible' : channels [channel ]['visible' ]})
263+ print (channels [channel ]['visible' ])
251264 TEMPLATE_PATH .append (os .path .join (get_script_path (), 'resources' , 'templates' ))
252265 auth_enabled = bool (get_config_value ('auth_user' ) and get_config_value ('auth_pass' ))
253266 return template ('form.tpl' , version = get_version (), message = message , warning = warning , playlist_url = playlist_url , playlist_tvheadend_url = playlist_tvheadend_url , epg_url = epg_url , playlist = playlist , auth_enabled = auth_enabled , player_enabled = player_enabled )
0 commit comments