Pustaka klien .NET Standard untuk jaringan Soulseek.
Instal dari NuGet.
var client = new SoulseekClient();menunggu client.ConnectAsync("Nama Pengguna", "Kata Sandi"); IEnumerable<SearchResponse> tanggapan = menunggu Client.SearchAsync(SearchQuery.FromText("beberapa pencarian")); Catatan: SearchAsync menerima SearchQuery dengan konstruktor SearchQuery(string query, IEnumerable<string> exclusions, int? minimumBitrate, int? minimumFileSize, int? minimumFilesInFolder, bool isVBR, bool isCBR) , mengizinkan semua opsi yang disediakan oleh klien resmi.
SearchResponse memiliki bentuk sebagai berikut:
int FileCountIReadOnlyCollection<File> Filesint LockedFileCount IReadOnlyCollection<File> LockedFilesint FreeUploadSlots Token Panjang Antrean yang panjang int Nama Pengguna UploadSpeedstring
File memiliki sejumlah properti; Anda memerlukan Filename dan Size untuk mengunduh.
byte[] file = menunggu Klien.DownloadAsync(nama pengguna: "beberapa nama pengguna", nama file: "beberapa nama file yang sepenuhnya memenuhi syarat", ukuran: 42);
ATAU (idealnya)
var fs = new FileStream("c:downloadsnama file lokal", FileMode.Create);menunggu Client.DownloadAsync(nama pengguna: "beberapa nama pengguna", nama file: "beberapa nama file yang sepenuhnya memenuhi syarat", outputStream: fs, ukuran: 42) ;Catatan: Unduh ke aliran jika memungkinkan untuk mengurangi overhead memori.
Antarmuka eksternal perpustakaan jarang dan terdokumentasi dengan baik; sumber daya terbaik adalah kode itu sendiri. Yang menarik:
Klien ISoulseek
Opsi Klien Pencarian Jiwa
Opsi Pencarian
Opsi Transfer
Mulai sekitar awal tahun 2024, server Soulseek telah mulai mengirimkan daftar 'frasa pencarian yang dikecualikan' sebagai cara untuk membatasi pertukaran konten di jaringan dan menenangkan troll hak cipta.
Daftar frasa ini dikirimkan dalam acara ExcludedSearchPhrassReceived , dan saya berharap bahwa setiap hasil pencarian keluar harus disaring untuk mengecualikan file yang berisi frasa yang dikecualikan di jalur atau nama file.
Saya menghargai kerja sama dan komitmen semua orang untuk memastikan kesehatan jaringan Soulseek dalam jangka panjang.
Perhatikan bahwa contoh aplikasi telah digantikan oleh slskd dan tidak akan dipertahankan lagi.
Termasuk adalah aplikasi web kecil yang berfungsi sebagai contoh.
Penting untuk diingat bahwa saat ini tidak ada kontrol atas unggahan; apa pun yang Anda bagikan dapat diunduh oleh sejumlah orang pada waktu tertentu. Dengan mengingat hal ini, pertimbangkan untuk berbagi sejumlah kecil file dari contoh.
Penting juga untuk dicatat bahwa beberapa tampilan dalam aplikasi melakukan polling terhadap daemon untuk pembaruan; ini tidak efisien, dan Anda sebaiknya tidak menggunakan aplikasi ini melalui koneksi data seluler.
Gambar Docker yang berisi aplikasi dapat diambil dari jpdillingham/slsk-web-example.
run minimal akan terlihat seperti:
docker run -i -p 5000:5000 -v <path/to/downloads>:/var/slsk/download -v <path/to/shared>:/var/slsk/shared -e "SLSK_USERNAME=<your username>" -e "SLSK_PASSWORD=<your password>" jpdillingham/slsk-web-example:latest
Aplikasi kemudian dapat diakses pada port 5000 (misalnya http://localhost:5000). Dengan konfigurasi ini aplikasi tidak akan dapat menerima koneksi masuk dan tidak akan terhubung ke jaringan terdistribusi. Anda mungkin menerima hasil pencarian yang terbatas dan pengguna tidak akan menemukan file Anda melalui pencarian. Pengguna lain mungkin mengalami kesulitan menelusuri share Anda.
Pilihan lengkapnya adalah sebagai berikut:
docker run -i -p 5000:5000 -p 50000:50000 -v <path/to/downloads>:/var/slsk/download -v <path/to/shared>:/var/slsk/shared -e "SLSK_USERNAME=<your username>" -e "SLSK_PASSWORD=<your password>" -e "SLSK_LISTEN_PORT=50000" -e "SLSK_CONNECT_TIMEOUT=5000" -e "SLSK_INACTIVITY_TIMEOUT=15000" -e "SLSK_READ_BUFFER_SIZE=16384" -e "SLSK_WRITE_BUFFER_SIZE=16384" -e "SLSK_ENABLE_DNET=true" -e "SLSK_DNET_CHILD_LIMIT=10" -e "SLSK_DIAGNOSTIC=Info" -e "SLSK_SHARED_CACHE_TTL=3600000" -e "SLSK_ENABLE_SECURITY=true" -e "SLSK_SECURITY_TOKEN_TTL=604800000" -e "SLSK_ROOM_MESSAGE_LIMIT=250" -e "SLSK_BASE_PATH=/" jpdillingham/slsk-web-example:latest
Dengan konfigurasi ini aplikasi akan mendengarkan pada port 50000 dan akan terhubung ke jaringan terdistribusi, memungkinkan hingga 10 koneksi anak. Aplikasi seharusnya tidak mengalami masalah koneksi asalkan Anda meneruskan port 50000 dengan benar, dan akan menerima serta merespons permintaan pencarian terdistribusi.
Jika SLSK_ENABLE_SECURITY adalah true , Anda akan diminta untuk login. Berikan nilai yang Anda tentukan untuk bidang SLSK_USERNAME dan SLSK_PASSWORD . Menyetel opsi ini ke false akan menonaktifkan prompt.
Jika Anda ingin menjalankan aplikasi di belakang proksi terbalik, setel SLSK_BASE_PATH ke jalur proksi Anda.
Untuk kenyamanan, dua skrip, run dan start , telah disertakan dalam examples/Web/bin untuk menjalankan contoh secara interaktif dan sebagai daemon.
Contoh aplikasi dibagi menjadi dua proyek; .NET 5.0 WebAPI dan aplikasi React yang di-bootstrap dengan create-react-app. Jika Anda ingin menjalankannya di luar Docker, Anda harus memulai kedua aplikasi; dotnet run untuk API dan yarn|npm start untuk aplikasi React. Anda dapat terhubung ke http://localhost:3000, atau API menyajikan UI Swagger di http://localhost:5000/swagger.
Skrip build disertakan dalam direktori bin pada contoh yang akan membangun aplikasi React, menyalin file statis ke direktori wwwroot API, membangun API, lalu mencoba membuat image Docker.
Nikotin+ (paling mutakhir)
Protokol Soulseek - Museek+
Dokumentasi Protokol Soulseek (dicerminkan)
Sebagian besar Soulseek.NET dimungkinkan oleh karya orang lain. Sumber daya berikut digunakan sebagai referensi:
nikotin-plus
tampilan langsung oleh @misterhat
museek-plus oleh @eLvErDe
slsk-klien oleh @f-hj.