Jawz I have just been playing with Huevos code if you want to delete all none indext channels and have ITV Regions you can tweak the delete sections hack and use ITV Regions hack I have just done it with this
Code:
# Add ITV regions Bouquet
ITVs = []
ITVsPlusOne = []
rest = []
last_section = max(sections.keys())
last_section_name = sections[last_section]
for service in sorted(services["sat_282_sky_uk"]["video"].keys()):
if service in range(last_section, 1450) or service in [103, 133, 178]:
# ITV regions
if 'interactive_name' in services["sat_282_sky_uk"]["video"][service] and (service in [103,178] or (service in range(last_section, 1450) and '+1' not in services["sat_282_sky_uk"]["video"][service]["interactive_name"] and ('ITV' in services["sat_282_sky_uk"]["video"][service]["interactive_name"] or 'STV' in services["sat_282_sky_uk"]["video"][service]["interactive_name"] or 'UTV' in services["sat_282_sky_uk"]["video"][service]["interactive_name"]))):
ITVs.append(services["sat_282_sky_uk"]["video"][service])
# ITV +1 regions
elif 'interactive_name' in services["sat_282_sky_uk"]["video"][service] and (service in [133] or (service in range(last_section, 1450) and '+1' in services["sat_282_sky_uk"]["video"][service]["interactive_name"] and ('ITV' in services["sat_282_sky_uk"]["video"][service]["interactive_name"] or 'STV' in services["sat_282_sky_uk"]["video"][service]["interactive_name"] or 'UTV' in services["sat_282_sky_uk"]["video"][service]["interactive_name"]))):
ITVsPlusOne.append(services["sat_282_sky_uk"]["video"][service])
else:
rest.append(services["sat_282_sky_uk"]["video"][service])
i = last_section
sections[i] = "ITV Regions"
sort_list = []
for x in ITVs:
sort_list.append((x, re.sub('^(?![a-z])', 'zzzzz', x['interactive_name'].lower())))
sort_list = sorted(sort_list, key=lambda listItem: listItem[1])
for service in sort_list:
customised["video"][i] = service[0]
i += 1
sort_list = []
for x in ITVsPlusOne:
sort_list.append((x, re.sub('^(?![a-z])', 'zzzzz', x['interactive_name'].lower())))
sort_list = sorted(sort_list, key=lambda listItem: listItem[1])
for service in sort_list:
customised["video"][i] = service[0]
i += 1
sections[i] = last_section_name
sort_list = []
for x in rest:
sort_list.append((x, re.sub('^(?![a-z])', 'zzzzz', x['service_name'].lower())))
sort_list = sorted(sort_list, key=lambda listItem: listItem[1])
for service in sort_list:
customised["video"][i] = service[0]
i += 1
# Delete sections
del sections[1094]
for number in customised["video"].keys():
if number > 1093:
del customised["video"][number]
This delete all not indexed channels.
Im not sure if it will be the same fore you, for some reason the bouquet before (BT Sports Interactive) ends at channel number 1037 but the ITV Regions bouquet starts at 1050 maybe it needs tweaking to get the ITV Regions bouquet to start at 1040