1
0
Fork 0
mirror of https://github.com/LaQuay/TDTChannels.git synced 2024-11-01 07:01:12 +01:00

Adapt to new model

This commit is contained in:
Marc 2019-01-08 15:47:06 +01:00
parent 4e56653d1f
commit 1652145a3a
3 changed files with 70 additions and 61 deletions

View file

@ -5,7 +5,7 @@ class Ambito:
def add_channels(self, channels_to_add): def add_channels(self, channels_to_add):
if self.channels: if self.channels:
self.channels.append(channels_to_add) self.channels += channels_to_add
def __channels_to_json__(self): def __channels_to_json__(self):
channel_list = [] channel_list = []

View file

@ -1,71 +1,13 @@
# coding=utf-8 # coding=utf-8
import json import json
import re
import requests import requests
from ambit import Ambito from ambit import Ambito
from channel import Channel
from country import Country from country import Country
def stringbetween(text, start, end):
result = re.search('(?<=' + start + ')(.*)(?=' + end + ')', text, re.DOTALL)
return result.group(1)
def stringbetweenparantheses(text):
return text.split("(")[1].split(")")[0]
def get_channels_from_part(text):
line_where_first_channel_starts = 15
attributes_per_item = 6
channel_list = []
list_to_iterate = text.split("|")[line_where_first_channel_starts:]
while "\n" in list_to_iterate:
list_to_iterate.remove("\n")
while "\n\n" in list_to_iterate:
list_to_iterate.remove("\n\n")
for i in range(0, len(list_to_iterate), attributes_per_item):
item_name = list_to_iterate[i].strip()
item_options = list_to_iterate[i + 1].strip()
item_web = list_to_iterate[i + 2].strip()
if len(item_web) > 0 and item_web[0] != "-":
item_web = stringbetweenparantheses(item_web)
if len(item_web) == 1:
item_web = ""
item_resolution = list_to_iterate[i + 3].strip()
if len(item_resolution) == 1:
item_resolution = ""
item_logo = list_to_iterate[i + 4].strip()
if len(item_logo) > 0 and item_logo[0] != "-":
item_logo = stringbetweenparantheses(item_logo)
if len(item_logo) == 1:
item_logo = ""
item_epg = list_to_iterate[i + 5].strip()
if len(item_epg) == 1:
item_epg = ""
item_options = item_options.split(" - ")
channel = Channel(item_name, item_web, item_resolution, item_logo, item_epg)
if len(item_options) > 0 and item_options[0] != "-":
for option in item_options:
format = (option[1:5]).replace("]", "")
url = stringbetweenparantheses(option)
channel.add_option(format, url)
channel_list.append(channel)
return channel_list
# TODO Change this # TODO Change this
from public.utils import stringbetween, get_channels_from_part, get_license_info
page = requests.get('https://raw.githubusercontent.com/LaQuay/TDTChannels/add-local-m3u8/TELEVISION.md', page = requests.get('https://raw.githubusercontent.com/LaQuay/TDTChannels/add-local-m3u8/TELEVISION.md',
headers={'Cache-Control': 'no-cache'}) headers={'Cache-Control': 'no-cache'})
content = str(page.text) content = str(page.text)
@ -212,6 +154,8 @@ international.add_ambit(Ambito("Internacional", get_channels_from_part(canales_i
json_file = open('./public/output/channels.json', "w+") json_file = open('./public/output/channels.json', "w+")
# TODO Add license # TODO Add license
json_file.write("[") json_file.write("[")
json_file.write(json.dumps(get_license_info()))
json_file.write(", ")
json_file.write(json.dumps(spain.to_json())) json_file.write(json.dumps(spain.to_json()))
json_file.write(", ") json_file.write(", ")
json_file.write(json.dumps(international.to_json())) json_file.write(json.dumps(international.to_json()))

65
script/public/utils.py Normal file
View file

@ -0,0 +1,65 @@
import re
from channel import Channel
def get_license_info():
return {
"source": "https://github.com/LaQuay/TDTChannels",
"license": "https://github.com/LaQuay/TDTChannels/blob/master/LICENSE"
}
def stringbetween(text, start, end):
result = re.search('(?<=' + start + ')(.*)(?=' + end + ')', text, re.DOTALL)
return result.group(1)
def stringbetweenparantheses(text):
return text.split("(")[1].split(")")[0]
def get_channels_from_part(text):
line_where_first_channel_starts = 15
attributes_per_item = 6
channel_list = []
list_to_iterate = text.split("|")[line_where_first_channel_starts:]
while "\n" in list_to_iterate:
list_to_iterate.remove("\n")
while "\n\n" in list_to_iterate:
list_to_iterate.remove("\n\n")
for i in range(0, len(list_to_iterate), attributes_per_item):
item_name = list_to_iterate[i].strip()
item_options = list_to_iterate[i + 1].strip()
item_web = list_to_iterate[i + 2].strip()
if len(item_web) > 0 and item_web[0] != "-":
item_web = stringbetweenparantheses(item_web)
if len(item_web) == 1:
item_web = ""
item_resolution = list_to_iterate[i + 3].strip()
if len(item_resolution) == 1:
item_resolution = ""
item_logo = list_to_iterate[i + 4].strip()
if len(item_logo) > 0 and item_logo[0] != "-":
item_logo = stringbetweenparantheses(item_logo)
if len(item_logo) == 1:
item_logo = ""
item_epg = list_to_iterate[i + 5].strip()
if len(item_epg) == 1:
item_epg = ""
item_options = item_options.split(" - ")
channel = Channel(item_name, item_web, item_resolution, item_logo, item_epg)
if len(item_options) > 0 and item_options[0] != "-":
for option in item_options:
format = (option[1:5]).replace("]", "")
url = stringbetweenparantheses(option)
channel.add_option(format, url)
channel_list.append(channel)
return channel_list