Created
August 21, 2023 23:37
-
-
Save onedr0p/76f968ce43910c18309b47098dd24032 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import os | |
import qbittorrentapi | |
torrent_client = qbittorrentapi.Client(host='https://qb.devbu.io') | |
download_directory = '/eros/Media/Downloads/qbittorrent/complete' | |
def get_qbittorrent_files(): | |
torrent_list = torrent_client.torrents.info() | |
download_directory_list = download_directory.split(os.sep) | |
qbittorrent_files = set() | |
for torrent in torrent_list: | |
torrent_files = torrent['content_path'].replace('/media', '/eros/Media') # replace container path with nas path | |
if os.path.isfile(torrent_files): | |
torrent_path_list = torrent_files.split(os.sep) | |
merged_list = [value for value in torrent_path_list if value not in download_directory_list] | |
if len(merged_list) > 2: | |
torrent_files = os.path.dirname(torrent_files) | |
qbittorrent_files.add(torrent_files) | |
if os.path.isdir(torrent_files): | |
qbittorrent_files.add(torrent_files) | |
return qbittorrent_files | |
def delete_extra_files(qbittorrent_files, download_directory): | |
folders = [folder for folder in os.listdir(download_directory) if os.path.isdir(os.path.join(download_directory, folder))] | |
for folder in folders: | |
folder_path = os.path.join(download_directory, folder) | |
contents = os.listdir(folder_path) | |
print(f"Contents of '{folder_path}':") | |
for item in contents: | |
item_path = os.path.join(folder_path, item) | |
if item_path not in qbittorrent_files: | |
print(f"delete: {item_path}") | |
def main(): | |
try: | |
torrent_client.auth_log_in() | |
qbittorrent_files = get_qbittorrent_files() | |
delete_extra_files(qbittorrent_files, download_directory) | |
except qbittorrentapi.LoginFailed as e: | |
print("Failed to log in to qBittorrent.") | |
except Exception as e: | |
print(f"An error occurred: {str(e)}") | |
finally: | |
torrent_client.auth_log_out() | |
if __name__ == '__main__': | |
main() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment