Вопрос или проблема
Написание скриптов для qBittorrent вызывает разочарование.
В последней версии нежелательные файлы в торрентах больше не перемещаются в директории .unwanted
для безопасного удаления. Это приводит к тому, что внешние скрипты навсегда ждут завершения загрузки, так как остаются нежелательные файлы *.!qb
, которые нельзя отличить от желаемых.
Я тоже не могу попытаться удалить каждый временный файл, так как не все временные файлы заблокированы. Этот код работал для версий qBittorrent до 4.2.5:
for /f "delims=" %%u in ('dir /ad /s /b .unwanted 2^>nul') do rd /s /q "%%u"
…после чего вы могли просто использовать dir /s *.!qb
, чтобы надежно определить, завершена ли загрузка.
Использование встроенного лаунчера скриптов qBittorrent не является решением, так как он известно ненадежен. Исправьте меня, если я не прав, но не все завершения запускают скрипт, что также приводит к тому, что загрузки остаются навсегда незавершенными.
Должно быть решение для полной автоматизации, кроме использования старой версии клиента qBittorrent, что затрудняет поиск пиров/источников и приводит на самом деле к незавершенным загрузкам.
Мне бы хотелось решение на Batch или PowerShell.
Ответ или решение
Чтобы решить проблему с автоматизацией скриптов для qBittorrent, вызванную изменениями в обращении с нежелательными файлами в последних версиях, необходимо найти обоснованный и эффективный подход. Давайте разберемся, как обойти затруднения, связанные с отсутствием директории .unwanted
, и обеспечим полное завершение загрузок с помощью Batch или PowerShell сценариев.
Проблема
В последних версиях qBittorrent нежелательные файлы больше не перемещаются в период .unwanted
, что затрудняет автоматизацию процессов работы с торрентами. В результате скрипты, ожидающие завершения загрузок, могут зависнуть из-за оставшихся нежелательных временных файлов *.!qb
, которые нельзя легко отличить от необходимых.
Решение
Чтобы наладить автоматизацию вашего рабочего процесса с использованием qBittorrent, можно воспользоваться следующими подходами.
1. Использование PowerShell для мониторинга и очистки
Вы можете создать PowerShell скрипт, который будет проверять наличие файлов *.!qb
и удалять их, если требуется. Вот пример такого скрипта:
# Укажите путь к директории загрузки
$DownloadPath = "C:\Path\To\Your\Downloads"
# Функция для очистки временных файлов
function Clean-UpTempFiles {
$tempFiles = Get-ChildItem -Path $DownloadPath -Recurse -Include *.!qb
foreach ($file in $tempFiles) {
try {
if (-not $file.IsReadOnly -and -not $file.LocksFile) {
Remove-Item $file.FullName -Force
}
} catch {
Write-Host "Ошибка при удалении файла $file: $_"
}
}
}
# Запускайте функцию в нужный момент
Clean-UpTempFiles
Этот скрипт рекурсивно проходит по директориям загрузки, находя файлы *.!qb
и удаляя их, если они не заблокированы другими процессами.
2. Мониторинг завершения загрузок
Поскольку встроенный скрипт qBittorrent может быть ненадежным, вы можете использовать другой метод по проверке статусов загрузок. Используйте qBittorrent API для отслеживания статуса загрузки. Вот пример на PowerShell для проверки завершенности загрузки:
# Установите URL qBittorrent API
$qbittorrentApiUrl = "http://localhost:8080/api/v2"
# Получите список загрузок
$response = Invoke-RestMethod -Uri "$qbittorrentApiUrl/torrents/info" -Method Get -Credential (Get-Credential)
$completedTorrents = $response | Where-Object { $_.progress -eq 1 } # 1 означает 100% завершенность
foreach ($torrent in $completedTorrents) {
Write-Host "Загрузка завершена: $($torrent.name)"
# Здесь можно добавить вашу логику обработки завершенного торрента
}
Заключение
С помощью предложенных решений на PowerShell вы сможете обойти проблемы с автоматизацией в qBittorrent, даже в условиях отсутствия директории .unwanted
. Эти скрипты позволяют организовать контроль за состоянием загрузок и автоматическую очистку временных файлов, что значительно улучшит вашу работу с программой. Таким образом, вы сможете гарантировать успешное завершение процессов и минимизировать время ожидания.
Отказ от использования устаревших версий qBittorrent не только обеспечит доступ к новым функциям, но и поможет улучшить общую производительность загрузок, что является ключевым фактором для успешной работы с торрентами.