From 494d3fc5d01c60fe7ee418c0c654856223ce0771 Mon Sep 17 00:00:00 2001 From: Siarhei Siniak Date: Sat, 4 Jun 2022 21:52:41 +0300 Subject: [PATCH] [~] Refactor --- d1/f1.sh | 1 + dotfiles/.local/bin/commands | 39 +++++++++++++++++++++++++++++++++++- 2 files changed, 39 insertions(+), 1 deletion(-) diff --git a/d1/f1.sh b/d1/f1.sh index edb7227..24dd745 100644 --- a/d1/f1.sh +++ b/d1/f1.sh @@ -1,5 +1,6 @@ #!/bin/sh +mkdir -p ~/.local/bin cp dotfiles/.local/bin/commands ~/.local/bin/commands mkdir -p ~/.sway cp dotfiles/.sway/config ~/.sway/config diff --git a/dotfiles/.local/bin/commands b/dotfiles/.local/bin/commands index 3b76c09..bc765e7 100755 --- a/dotfiles/.local/bin/commands +++ b/dotfiles/.local/bin/commands @@ -1,4 +1,4 @@ -#!/usr/bin/python3 +#!env python3 import os import json import traceback @@ -438,6 +438,38 @@ done' shell=True ) +def player_v1(folder_url, item_id): + import sys + import urllib.parse + import re + import subprocess + import os + import tqdm + t4 = folder_url + t1 = subprocess.check_output(['curl', '-s', t4]).decode('utf-8') + t2 = re.compile(r"href=\"(.*\.mp3)\""); + t3 = [o.group(1) for o in t2.finditer(t1)]; + t5 = ['%s/%s' % (t4, o) for o in t3] + t6 = item_id + t9 = range(t6, len(t5)) + with tqdm.tqdm( + total=len(t5), + ) as progress_bar: + progress_bar.update(t6) + for k in t9: + t7 = t5[k] + t9 = urllib.parse.unquote(os.path.split(t7)[1]) + progress_bar.set_description('%03d %s' % (k, t9)) + with subprocess.Popen(['ffprobe', '-hide_banner', '-i', t7], stderr=subprocess.PIPE, stdout=subprocess.PIPE) as p: + p.wait() + assert p.returncode == 0 + t8 = p.stderr.read().decode('utf-8') + #print(t8) + with subprocess.Popen(['ffplay', '-hide_banner', '-nodisp', '-autoexit', '-loop', '1', t7], stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL) as p: + p.wait() + assert p.returncode == 0 + progress_bar.update(1) + def status(): return ' | '.join([ subprocess.check_output(o, shell=True).decode('utf-8').strip() @@ -535,6 +567,11 @@ try: ip_addr=sys.argv[2], ethernet_device=sys.argv[3], ) + elif sys.argv[1] == 'player': + player_v1( + folder_url=sys.argv[2], + item_id=int(sys.argv[3]), + ) elif sys.argv[1] == 'desktop-services': assert all([ env_name in os.environ