Compare commits

...

2 Commits

Author SHA1 Message Date
4218dc827f Clean up 2024-04-07 15:57:03 -04:00
660b7f1e82 Clean up 2024-04-07 15:55:49 -04:00

30
main.py
View File

@ -1,46 +1,44 @@
#!/usr/bin/env python3 #!/usr/bin/env python3
import configparser import configparser
import os import os
import requests
import shutil import shutil
import subprocess import subprocess
import sys import sys
import time import time
from datetime import datetime from datetime import datetime
from pathlib import Path from pathlib import Path
import requests
channel_list = [] channel_list = []
downloading = {} downloading = {}
# Default Config Settings # Default Config Settings
config = configparser.ConfigParser() streamlink_location: str = "streamlink"
streamlink_location = "streamlink" download_location: str = f"{Path.home()}/Downloads/Streams"
download_location = f"{Path.home()}/Downloads/Streams" skip_ads: bool = False
skip_ads = False
def load_config(): def load_config():
print("Reading config file...") print("Reading config file...")
if os.path.exists("config.ini"): config = configparser.ConfigParser()
config.read("config.ini") config.read("config.ini")
if ( if (
config.has_option("settings", "streamlink_location") config.has_option("settings", "streamlink_location")
and not config["settings"]["streamlink_location"].strip() and not config["settings"]["streamlink_location"].strip()
): ):
streamlink_location = config["settings"]["streamlink_location"] streamlink_location = config["settings"]["streamlink_location"]
print(f"Streamlink location: {streamlink_location}")
if ( if (
config.has_option("settings", "download_location") config.has_option("settings", "download_location")
and not config["settings"]["download_location"].strip() and not config["settings"]["download_location"].strip()
): ):
download_location = config["settings"]["download_location"] download_location = config["settings"]["download_location"]
if ( print(f"Download location: {download_location}")
config.has_option("settings", "skip_ads") if config.has_option("settings", "skip_ads") and not config["settings"]["skip_ads"]:
and not config["settings"]["skip_ads"]
):
skip_ads = bool(config["settings"]["skip_ads"]) skip_ads = bool(config["settings"]["skip_ads"])
print(f"Skip ads: {skip_ads}")
print("Config file loaded") print("Config file loaded")
else:
print("No config file found using default values!")
def write_log(channel): def write_log(channel):
@ -55,6 +53,7 @@ def download_stream(channel):
"""Downloads a given channel name in its own subprocess""" """Downloads a given channel name in its own subprocess"""
# TODO: Just clean this up at somepoint # TODO: Just clean this up at somepoint
addtional_parms = "" addtional_parms = ""
print(str(skip_ads))
if skip_ads: if skip_ads:
addtional_parms = "--twitch-proxy-playlist=https://lb-eu.cdn-perfprod.com,https://lb-eu2.cdn-perfprod.com,https://lb-na.cdn-perfprod.com,https://lb-as.cdn-perfprod.com,https://as.luminous.dev --twitch-disable-ads" addtional_parms = "--twitch-proxy-playlist=https://lb-eu.cdn-perfprod.com,https://lb-eu2.cdn-perfprod.com,https://lb-na.cdn-perfprod.com,https://lb-as.cdn-perfprod.com,https://as.luminous.dev --twitch-disable-ads"
file_name = f"{channel}_{datetime.now().strftime('%Y-%m-%d_%H-%M-%S')}.ts" file_name = f"{channel}_{datetime.now().strftime('%Y-%m-%d_%H-%M-%S')}.ts"
@ -71,6 +70,11 @@ def download_stream(channel):
def check_system(): def check_system():
"""Makes sure everything is place for the script to run""" """Makes sure everything is place for the script to run"""
# Checks for config file
if not os.path.exists("config.ini"):
sys.exit("ERROR: config.ini is not found! See README.md for more info.")
# Checks if streamlink is in the systems path # Checks if streamlink is in the systems path
if not shutil.which("streamlink"): if not shutil.which("streamlink"):
sys.exit("ERROR: streamlink is not found in the systems path!") sys.exit("ERROR: streamlink is not found in the systems path!")
@ -143,8 +147,8 @@ def main():
if __name__ == "__main__": if __name__ == "__main__":
"""This is executed when run from the command line""" """This is executed when run from the command line"""
try: try:
load_config()
check_system() check_system()
load_config()
main() main()
finally: finally:
stop_downloads() stop_downloads()