Pembaruan 2022
ultrasonik tidak ditinggalkan, tetapi saya tidak punya banyak waktu untuk mengembangkannya. Saya berencana untuk kembali melakukannya di masa depan, saya harap Anda dapat bersabar! Pembaruan penting yang akan datang adalah mengenai ultrasoniks-api . Saat ini saya menghosting versi publik di Heroku tingkat gratis, yang akan ditutup pada akhir November 2022 seperti yang diumumkan pada bulan Agustus. Ini diperlukan untuk semua layanan streaming publik (Spotify, Last.fm, dll).
Saya belum memiliki pengaturan alternatif apa pun, jadi sebelum waktunya tiba, saya mendorong Anda untuk menyiapkan instance ultrasoniks-api Anda sendiri bersama dengan ultrasoniks , dan kunci untuk layanan online apa pun yang ingin Anda sinkronkan. Semua instruksi tersedia di repo itu!
Ringkasan
Instalasi
sistemd
Opsi 1 (Instalasi Manual)
Opsi 2 (Pelabuhan Buruh)
Applet
masukan
Pengubah (Opsional)
Keluaran
Pemicu
Plugin
Mode Daftar Putar vs Mode Lagu
Berkontribusi
Menulis Plugin Anda Sendiri
Meningkatkan Kode Sumber ultrasonik
Selamat datang di ultrasonik !
ultrasonik adalah alat yang dirancang untuk membantu Anda mengendalikan perpustakaan musik dan daftar putar musik Anda. Lewatlah sudah hari-hari ketika daftar putar Anda tersebar di tiga layanan berbeda, atau dibatasi untuk menggunakan satu layanan karena Anda tidak punya waktu untuk membuat banyak salinan dari daftar putar yang sama secara manual.
ultrasonik menggunakan plugin untuk berinteraksi dengan layanan favorit Anda. Artinya fungsionalitas dapat ditambahkan hanya dengan menginstal plugin baru. Setiap plugin mungkin menyediakan kompatibilitas dengan suatu layanan, misalnya plugin Spotify resmi terhubung ke... yah, Spotify tentu saja. Plugin lain menyediakan fungsionalitas tambahan, seperti menggabungkan playlist dari lebih dari satu sumber.
Ikhtisar semua plugin yang disertakan dapat ditemukan di [dokumentasi tidak lengkap].
Untuk menjalankan ultrasonik Anda memiliki dua opsi:
Unduh dan jalankan ultrasonik secara langsung.
Tarik dan jalankan image buruh pelabuhan resmi.
ultrasonik dikembangkan di Linux. Ini harus kompatibel lintas platform, tetapi belum diuji jadi bersiaplah untuk bug atau masalah pada Windows/macOS!
Pastikan Anda telah menginstal Python 3
# Jika perintah ini tidak berhasil, instal Python 3callum di uluru di ~↪ python3 --version Python 3.8.2
Kloning repo ke direktori instalasi, mungkin /opt/ultrasonics
# Pindah ke direktori instalasi Andacallum di uluru di ~↪ cd /opt# Kloning repocallum ini di uluru di /opt ↪ git clone https://github.com/XDGFX/ultrasonics# Pastikan Anda memiliki kepemilikan foldercallum ultrasonik di uluru di /opt ↪ sudo chown -R callum:callum ultrasonik/
Buat lingkungan virtual, dan instal dependensi yang diperlukan di dalamnya.
# Pindah ke direktori ultrasonik callum di uluru di /opt ↪ cd ultrasoniks# Buat lingkungan virtual di folder '.venv'callum di uluru di /o/ultrasonics ↪ python3 -m venv .venv# Aktifkan lingkungan.# Jika Anda menggunakan shell yang berbeda gunakan aktifkan.# misalnya source .venv/bin/activate.fish untuk fish!callum di uluru di /o/ultrasonics ↪ source .venv/bin/activate# Pastikan venv Anda aktif (lihat .venv di awal baris)# Instal dependenciescallum Python di uluru di /o/ultrasonics (.venv) ↪ pip3 instal -r persyaratan.txt
Jalankan app.py
# Dengan venv masih aktif, jalankan app.pycallum di uluru di /o/ultrasonics (.venv) ↪ aplikasi python3.py
Jika Anda ingin menjalankan ini sebagai proses systemd, ikuti langkah-langkah di bawah ini:
Salin file layanan contoh ke /etc/systemd/system/ultrasonics.service
sudo cp ultrasoniks.service /etc/systemd/system/ultrasonics.service
Muat ulang daemon systemctl untuk mengambil layanan baru
sudo systemctl daemon-reload
Aktifkan dan mulai layanan
sudo systemctl aktifkan --sekarang ultrasonik
Anda dapat memeriksa status proses menggunakan:
ultrasonik status sistemctl
Gambar ultrasonik resmi terletak di xdgfx/ultrasonics. Anda dapat menarik dan menjalankannya secara manual, atau menempelkannya di file docker-compose.yml
Anda.
versi: "3.7" layanan: ultrasonik: gambar: xdgfx/ultrasonicscontainer_name: ultrasoniksrestart: kecuali-dihentikan port: - 5000:5000volume: - /path/to/config:/config - /path/to/plugins:/plugins # Digunakan untuk lingkungan plugin pihak ketiga: - PUID=${PUID} - PGID=${PGID}
Jika Anda pernah menggunakan IFTTT Anda sudah memahami dasar-dasarnya. ultrasonik bekerja dengan konsep 'applets'. Setiap applet yang Anda buat berisi plugin yang masuk ke dalam salah satu dari empat kategori:
Plugin ini terhubung ke layanan untuk mendapatkan daftar lagu atau playlist, dan meneruskan daftar tersebut ke plugin Pengubah dan Output.
Plugin ini mengambil daftar lagu atau playlist dari satu atau lebih plugin input, dan memodifikasi daftar tersebut dengan cara tertentu. Misalnya, mereka mungkin menggabungkan daftar putar duplikat, atau mengganti lagu dengan lagu serupa menggunakan api penemuan musik.
Plugin ini mengambil daftar playlist yang diberikan kepada mereka, dan menyimpannya ke layanan. Mungkin mereka memperbarui atau membuat daftar putar Anda di Plex, atau menyimpannya ke file .m3u di server rumah Anda.
Plugin ini bukan bagian dari alur lagu/playlist, melainkan menentukan kapan applet benar-benar berjalan. Pemicu yang paling sederhana adalah berdasarkan waktu, misalnya 'Jalankan setiap 6 jam sekali'.
Anda dapat membuat applet khusus menggunakan plugin yang terinstal, menyimpannya ke database, dan kemudian akan dijalankan secara otomatis dari plugin Trigger, atau dengan menjalankan applet secara manual dari beranda.
ultrasonik hadir dibundel dengan beberapa plugin resmi. Untuk info lebih lanjut, lihat [dokumentasi tidak lengkap].
Plugin baru dapat diinstal hanya dengan menyalin folder yang berisi plugin ke dalam direktori plugins
.
Setiap applet membutuhkan setidaknya satu plugin input dan satu output. Untuk berjalan secara otomatis, ini juga memerlukan plugin trigger.
Sebagian besar plugin memiliki pengaturan untuk dikonfigurasi, yang dapat berupa pengaturan persisten global (umum untuk semua plugin, di semua applet Anda), atau spesifik untuk plugin ini.
Anda akan diminta untuk memasukkan pengaturan apa pun yang diperlukan saat Anda membuat applet.
Pengaturan selalu boleh dikosongkan! Dalam beberapa kasus, hal ini baik-baik saja atau diharapkan, namun dalam kasus lain hal ini dapat mengakibatkan kesalahan plugin yang mungkin memerlukan perbaikan manual pada database ultrasonik! Pastikan Anda mengisi pengaturan apa pun yang seharusnya!
Beberapa plugin dirancang untuk berfungsi dengan daftar putar - misalnya plugin Spotify berinteraksi dengan daftar putar Spotify Anda. Beberapa plugin dirancang untuk bekerja dengan lagu, misalnya 100 lagu teratas Anda di Last.fm.
Jika sebuah plugin hanya berfungsi dalam mode lagu, peringatan akan ditampilkan di layar "pilih plugin".
Menambahkan plugin mode lagu ke input akan bekerja secara efektif dengan menambahkan satu playlist ke aliran applet. Ini seharusnya berfungsi tanpa masalah, selama plugin yang dimaksud memberikan nama untuk playlist tunggal ini.
Mencoba memasukkan beberapa daftar putar ke dalam satu plugin keluaran mode lagu kemungkinan akan menyebabkan masalah, hal ini tidak disarankan.
Jadi Anda ingin membantu meningkatkan ultrasonik? Pertama-tama - terima kasih! Sebagai seseorang yang bukan seorang insinyur perangkat lunak, ini adalah salah satu proyek terbesar yang pernah saya kerjakan. Setiap bantuan atau saran sangat dihargai!
Memperluas fungsi ultrasonik itu mudah! Plugin adalah instalasi drag-and-drop, sehingga dapat meningkatkan proyek secara signifikan dengan kompleksitas minimal. Cara terbaik untuk belajar adalah melalui wiki. Anda dapat melakukan fork proyek ini, atau membuat repo Anda sendiri khusus untuk plugin Anda. Itu dapat disimpan secara terpisah, atau jika Anda merasa itu akan bermanfaat bagi komunitas dengan menjadikannya sebagai plugin default, beri tahu saya melalui masalah GitHub!
Saya akan mencantumkan rencana masa depan, masalah yang diketahui, atau perbaikan umum dalam masalah tersebut. Lihat juga papan proyek, yang seharusnya menunjukkan isu-isu yang menjadi prioritas utama.
Atau, jika Anda punya ide baru, cobalah dan beri tahu saya jika ada permintaan atau masalah! ?