| 92 | |
| 93 | |
| 94 | class Channel: |
| 95 | def __init__(self, group, md_line, country_code=""): |
| 96 | self.group = group |
| 97 | self.country_code = country_code |
| 98 | md_line = md_line.strip() |
| 99 | parts = md_line.split("|") |
| 100 | self.number = parts[1].strip() |
| 101 | self.name = parts[2].strip() |
| 102 | self.url = parts[3].strip() |
| 103 | self.url = self.url[self.url.find("(")+1:self.url.rfind(")")] |
| 104 | self.logo = parts[4].strip() |
| 105 | self.logo = self.logo[self.logo.find('src="')+5:self.logo.rfind('"')] |
| 106 | |
| 107 | self.chno = self.number if self.number and self.number != "0" else None |
| 108 | |
| 109 | if len(parts) > 6: |
| 110 | self.epg = parts[5].strip() |
| 111 | else: |
| 112 | self.epg = None |
| 113 | |
| 114 | def to_m3u_line(self): |
| 115 | country = f' tvg-country="{self.country_code}"' if self.country_code else "" |
| 116 | chno = f' tvg-chno="{self.chno}"' if self.chno else "" |
| 117 | if self.epg is None: |
| 118 | return (f'#EXTINF:-1 tvg-name="{self.name}" tvg-logo="{self.logo}"{chno}{country} group-title="{self.group}",{self.name}\n{self.url}') |
| 119 | else: |
| 120 | return (f'#EXTINF:-1 tvg-name="{self.name}" tvg-logo="{self.logo}" tvg-id="{self.epg}"{chno}{country} group-title="{self.group}",{self.name}\n{self.url}') |
| 121 | |
| 122 | |
| 123 | def main(): |