Soulseek 網路的 .NET Standard 用戶端程式庫。
從 NuGet 安裝。
var client = new SoulseekClient();await client.ConnectAsync("使用者名稱", "密碼");
IEnumerable<SearchResponse> 回應 =等待 Client.SearchAsync(SearchQuery.FromText("某些搜尋"));
注意: SearchAsync
接受帶有建構子SearchQuery
SearchQuery(string query, IEnumerable<string> exclusions, int? minimumBitrate, int? minimumFileSize, int? minimumFilesInFolder, bool isVBR, bool isCBR)
官方客戶端提供的官方選項。
SearchResponse
具有以下形狀:
int FileCountIReadOnlyCollection<File> Filesint LockedFileCount IReadOnlyCollection<File> LockedFilesint FreeUploadSlots long QueueLengthint 令牌 int UploadSpeedstring 使用者名稱
File
有許多屬性;您需要Filename
和Size
才能下載。
byte[] file = wait Client.DownloadAsync(username: "某個使用者名稱", filename: "某個完全限定的檔案名稱", size: 42);
或(理想情況下)
var fs = new FileStream("c:downloadslocal filename", FileMode.Create);await Client.DownloadAsync(使用者名稱:“某個使用者名稱”,檔案名稱:“某個完全限定的檔案名稱”,outputStream :fs,大小:42) ;
注意:盡可能下載到流以減少記憶體開銷。
庫的外部介面稀疏且文檔齊全;最好的資源就是程式碼本身。 特別感興趣的是:
靈魂尋求客戶
Soulseek客戶選項
搜尋選項
轉帳選項
從 2024 年初開始,Soulseek 伺服器已開始發送「排除的搜尋短語」列表,作為限制網路上交換的內容並安撫版權巨魔的一種方式。
此短語清單是在事件ExcludedSearchPhrassReceived
中傳遞的,我期望必須過濾任何傳出的搜尋結果以排除在路徑或檔案名稱中包含任何已排除短語的檔案。
我感謝大家為確保 Soulseek 網路長期健康而付出的合作和承諾。
請注意,範例應用程式已被 slskd 取代,並且將不再維護。
其中包括一個小型 Web 應用程式作為範例。
需要注意的是,目前沒有對上傳的控制;您共享的任何內容都可以在任何給定時間被任意數量的人下載。 考慮到這一點,請考慮共用範例中的少量文件。
還需要注意的是,應用程式中的某些顯示會輪詢守護程式以獲取更新;這是低效的,您確實不應該透過行動數據連線使用此應用程式。
可以從 jpdillingham/slsk-web-example 中提取包含應用程式的 Docker 映像。
最小run
如下所示:
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
然後可以透過連接埠 5000(例如 http://localhost:5000)存取該應用程式。 使用此配置,應用程式將無法接受傳入連接,也不會連接到分散式網路。 您可能會收到有限的搜尋結果,且使用者無法透過搜尋找到您的檔案。 其他用戶可能難以瀏覽您的分享。
完整的選項集如下:
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
透過此配置,應用程式將偵聽連接埠 50000 並連接到分散式網絡,最多允許 10 個子連接。 如果您已正確轉送連接埠 50000,並且將接收和回應分散式搜尋要求,則應用程式不應出現任何連線問題。
如果SLSK_ENABLE_SECURITY
為true
, SLSK_PASSWORD
會提示SLSK_USERNAME
登入。 將此選項設為false
將停用提示。
如果您想在反向代理程式後面執行應用程序,請將SLSK_BASE_PATH
設定為您的代理程式路徑。
為方便起見, examples/Web/bin
包含了兩個腳本run
和start
,分別用於互動式執行範例和作為守護程式執行。
範例應用程式分為兩個項目; .NET 5.0 WebAPI 和使用 create-react-app 引導的 React 應用程式。 如果您想在 Docker 之外運行這些應用程序,您需要啟動這兩個應用程式; dotnet run
用於 API, yarn|npm start
用於 React 應用程式。 您可以連線到 http://localhost:3000,或者 API 透過 http://localhost:5000/swagger 提供 Swagger UI。
範例bin
目錄中包含的建置腳本將建置 React 應用程序,將靜態檔案複製到 API 的 wwwroot 目錄,建置 API,然後嘗試建置 Docker 映像。
尼古丁+(最新)
SoulseekProtocol - Museek+
Soulseek 協議文件(鏡像)
Soulseek.NET 的大部分內容都是透過其他人的工作而得以實現的。使用以下資源作為參考:
加上尼古丁
現場觀看@misterhat
museek-plus by @eLvErDe
slsk-client,作者:@f-hj。