предисловие
Что-ж, вот и первый пост в этой коммунне, начну пожалуй со своего поделия, которое было когда-то в начале написано на скриптовом языке-клею bash со смесью jj (парсер JSON), mpv (рекомендуемый плеер), fzy (менюшка-селектор), curl (ну вы знаете что это). Был в общем, простой тупой плеер для фанки, чтобы искать треки по названиям, исполнителям и так далее. Но, мне этого было мало...
В общем, спустя время я это откинул в ящик и решил переписать на python3, по причинам связанных с тем, что я начал чуть-чуть усложнять этот проект, я хотел завезти например funkwhale радио прямо из консоли, реализовать некоторые костыли, которые доступны только в питоне и в целом, питон стоит того, хотя бы ради встроенного нормального JSON парсера.
В первую очередь "проект" скорее персональный, поэтому не удивляйтесь странностям в интерфейсе (хоть я лично декларирую его как простой) или тем более в коде (TW: профессиональные питон-программист_ки не рекомендую смотреть). А ещё этот проект конфликтует с названием другого проекта, непосредственно от funlwhale devs. И вообще, имейте ввиду, что тут полно багов, недочётиков и так далее, используйте на ваш страх и нервы, если вы любите самопал и хтонический ужас :3
Что умеет на данный момент, по сути всё тоже что башовый скрипт, который ушёл в историю, но теперь больше:
-Можно слушать радио по тегам, пользователям и их библиотекам, радио генерируется самой фанкой по сути, что интересно, если вы не авторизованы, то радио не работает, но это легко обойти, я в коде беру печеньки у инстанса при подключении :)
-Искать исполнителей, альбомы, треки, есть возможность ограничить результаты по одной библиотеке
-Слушать треки из recently listenings и favorites (они между прочим общедоступны частенько, опционально можно ещё включить репортинг своей активности в recently listening)
-Подгружает инстансы с сервера статистики и сбора инстансов от разработчиков FunkWhale и их можно менять как перчатки
-Собственно войти на свой инстанс (потребуется браузер)
-Послушать музыку из готовых плейлистов фанки и треки с каналов (подкасты например, но это костыль)
-Есть возможность включить persistent cache, чтобы сохранять треки во время прослушивания, cache дампится напрямую из mpv, он может быть сломан.
Остальной функционал и в целом основной тоже, работает не всегда хорошо и может не сооветствовать ожиданиям, отчасти из-за конкретного инстанса фанки, отчасти из-за моих кривых лап :)
Собственно, что потребуется для запуска этой шайтан машины:
Система: рекомендуется GNU/Linux или её эмулятор, работа на изолированных окружениях тотально не гарантированна
Эмулятор терминала: любой, который понимает возвратную каретку, чтобы переписать текст в конкретной строчке, TTY тоже сойдёт
Установить в систему: git python3 pip3 fzf mpv
git clone https://git.phreedom.club/localhost_frssoft/funkwhale-cli
cd funkwhale-cli
pip install -r requirements.txt
Запуск (очень рекомендую сделать сначала cd в папку с ним):
./funkwhale_cli
Конфигурирование: настройки хранятся в сгенерированном конфиге config.json, там довольно очевидные названия, но если что спросите, настройки могут не применяться без перезапуска.
Обновление: просто в каталоге с ним выполните git pull
Проверена работоспособность в: termux и void
Спасибо за прочтение :3
