クエリするバッチ/スクリプトファイルを作成するにはどうすればよいですか qBittorrent 何かをダウンロードしているかどうかを確認するには?
結果に応じて、さらにコマンドを実行したいと思います。
以下は、 qBittorrent v4.1(またはそれ以降)API を使用して、何かがダウンロードされているかどうかに応じてメッセージを返す2つのコード(1つはWindows用、もう1つはLinux用)です。
@echo off
rem Remove existing cookie jar
del /F %temp%\cookies.txt 2>nul
rem Login to qBittorrent
curl -s -b %temp%\cookies.txt -c %temp%\cookies.txt --header "Referer: http://localhost:8080" --data "username=admin&password=secret" http://localhost:8080/api/v2/auth/login >nul
rem Get list of downloading torrents
curl -s -b %temp%\cookies.txt -c %temp%\cookies.txt --header "Referer: http://localhost:8080" "http://localhost:8080/api/v2/torrents/info" | jq | findstr """state""" | findstr /R "stalledDL downloading metaDL" >nul
if errorlevel 0 (
echo Something downloading
) else (
echo Nothing downloading
)
rem Remove used cookie jar
del /F %temp%\cookies.txt 2>nul
#!/bin/bash
# Remove existing cookie jar
rm -f ~/.cookies.txt
# Login to qbittorrent
curl -s -b ~/.cookies.txt -c ~/.cookies.txt --header "Referer: http://localhost:8080" --data "username=admin&password=secret" http://localhost:8080/api/v2/auth/login >/dev/null 2>&1
# Get list of downloading torrents
if [[ $(curl -s -b ~/.cookies.txt -c ~/.cookies.txt --header "Referer: http://localhost:8080" "http://localhost:8080/api/v2/torrents/info" | jq . | grep "state" | egrep "(stalledDL|downloading|metaDL)") ]]; then
echo "Something downloading"
else
echo "Nothing downloading"
fi
# Remove used cookie jar
rm -f ~/.cookies.txt
admin
、パスワードはsecret
です。これらは、変更する必要があります。localhost:8080
に接続します。これのすべてのインスタンスを、正しいマシン名/ IPおよびポート番号に変更する必要がありますcookies.txt
と呼ばれる)を作成します。これは、ログインが成功した後に提供され、さらにコマンドを実行するときに送信する必要があります。それが終了すると、クッキージャーは削除されます。stalledDL
、downloading
、およびmetaDL
の状態がダウンロードされていると見なします。これは、文書化されているさまざまな状態を確認することで変更できます ここ 。jq
は、qBittorrent APIからJSON出力を取得し、読み取り/解析しやすい方法でフォーマットします。jq.exe
に変更し、このスクリプトと同じフォルダーに配置します-個人的にはC:\Windows\System32
に配置するので、どの場所からでも機能しますフォルダjq
は不可欠です。これは、findstr
では処理できません(エラーをスローします)。Sudo apt-get install curl
を使用できますjq
をインストールする必要があり、ほとんどのリポジトリで利用できます。 DebianではこれはSudo apt-get install jq
ですjq
は技術的に必要ではなく、egrep
を変更して状態と値の両方をフィルタリングできます。