49 lines
1.2 KiB
Python
49 lines
1.2 KiB
Python
#!/usr/bin/env python3
|
|
import os
|
|
import sys
|
|
import fcntl
|
|
import asyncio
|
|
|
|
import package.twitch.video_info as video_info
|
|
import package.twitch.download_videos as download_videos
|
|
import package.twitch.download_thumbnails as download_thumbnails
|
|
|
|
import package.build_videos as build_videos
|
|
import package.process_uploads as process_uploads
|
|
|
|
def lock_file():
|
|
# Open a lock file
|
|
lock_file_path = "/tmp/python_script.lock"
|
|
fp = open(lock_file_path, 'w')
|
|
|
|
try:
|
|
# Try to grab an exclusive lock without blocking (LOCK_NB)
|
|
fcntl.lockf(fp, fcntl.LOCK_EX | fcntl.LOCK_NB)
|
|
except IOError:
|
|
print("Another instance is already running. Exiting.")
|
|
sys.exit(1)
|
|
|
|
# Your script logic goes here
|
|
print("Running exclusively on Linux/macOS...")
|
|
|
|
if __name__ == "__main__":
|
|
lock_file()
|
|
upload = True
|
|
|
|
if upload is False:
|
|
# Get Twitch Video Info
|
|
asyncio.run(video_info())
|
|
|
|
# Download Twitch Videos
|
|
download_videos()
|
|
|
|
download_thumbnails()
|
|
|
|
#Build
|
|
build_videos()
|
|
else:
|
|
process_uploads()
|
|
|
|
print("====================================================")
|
|
print(f"✅ Done.")
|
|
print("====================================================") |