Update app.py

This commit is contained in:
alantang 2025-04-11 16:21:46 +08:00 committed by GitHub
parent 80d444d58e
commit fb83d8a359
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

29
app.py
View File

@ -96,21 +96,24 @@ def generate_m3u_output(channels):
return "\n".join(output)
def generate_txt_output(channels):
"""
Generates a plain text output for the given channels.
Each channel will be written in the format: "Channel Name: URL".
"""
output_lines = []
group_dict = defaultdict(list)
for channel in channels:
# Extract channel name from metadata
if match := re.search(r'tvg-name="([^"]+)"', channel["meta"]):
channel_name = match.group(1)
if match_name := re.search(r'tvg-name="([^"]+)"', channel["meta"]):
channel_name = match_name.group(1)
else:
channel_name = "Unknown Channel"
if match_group := re.search(r'group-title="([^"]+)"', channel["meta"]):
group_name = match_group.group(1)
else:
group_name = "Unknown Group"
group_dict[group_name].append(f"{channel_name}: {channel['url']}")
# Append formatted line to output
output_lines.append(f"{channel_name}: {channel['url']}")
output_lines = []
for group, channel_list in group_dict.items():
output_lines.append(f"{group}:")
for channel in channel_list:
output_lines.append(f" {channel}")
output_lines.append("")
return "\n".join(output_lines)
def save_file(content, filename):
@ -140,8 +143,7 @@ def main():
channels = parse_m3u(content)
processed = []
for ch in channels:
# 修复: 检查 "meta" 键是否存在
if "meta" in ch and (cleaned_meta := process_channel(ch["meta"])):
if cleaned_meta := process_channel(ch["meta"]):
processed.append({"meta": cleaned_meta, "url": ch["url"]})
all_channels.extend(processed)
@ -162,3 +164,4 @@ def main():
if __name__ == "__main__":
main()