dotfiles/.config/rofi/scripts/rofi-metube.py
2025-05-03 22:50:43 -07:00

48 lines
1.3 KiB
Python
Executable File

#!/usr/bin/env python3
from pathlib import Path
from subprocess import PIPE, Popen
from sys import exit as sysexit
from rofi import Rofi
CFG_FILE = "~/.config/rofi/aniwrapper-dracula.rasi"
def send_notification(title, message):
Popen(["notify-send", title, message])
if __name__ == "__main__":
cfg = Path(CFG_FILE).expanduser()
if not cfg.exists():
print("Config file not found:", cfg)
sysexit(1)
# make sure rofi cfg file is valid
rofi = Rofi(
config_file="",
theme_str="window { width: 35%; height: 10%; anchor: north; location: north;}",
)
url = rofi.text_entry("Enter YouTube URL:")
# Make sure the URL is valid
if not url.startswith("https://www.youtube.com/watch?v="):
print("Invalid URL")
sysexit(1)
# Send video to metube using ~/.bin/metube
with Popen(
["/home/sudacode/.bin/metube", f"{url}"],
stdout=PIPE,
stderr=PIPE,
) as proc:
res = proc.communicate()
if proc.returncode != 0:
send_notification("Metube Upload Failed", res[1].decode("utf-8"))
print(res[1].decode("utf-8"))
sysexit(1)
print(res[0].decode("utf-8"))
send_notification("Metube Upload Successful", res[0].decode("utf-8"))
sysexit(0)