28 lines
899 B
Python
28 lines
899 B
Python
#!/usr/bin/env python3
|
|
|
|
from qbittorrent import Client
|
|
|
|
class TorrentApi:
|
|
def __init__(self, ip, password, username='admin'):
|
|
# Initialize the qBittorrent client
|
|
self.qb = Client(ip)
|
|
self.qb.login(username, password)
|
|
|
|
def get_torrents(self):
|
|
return self.get_filtered_torrents('all')
|
|
|
|
def get_filtered_torrents(self, state):
|
|
# Retrieve torrents filtered by the given state
|
|
torrents = self.qb.torrents(filter=state)
|
|
# Extract relevant information
|
|
torrent_list = []
|
|
for torrent in torrents:
|
|
torrent_info = {
|
|
'name': torrent['name'],
|
|
'state': torrent['state'],
|
|
'progress': torrent['progress'] * 100, # Convert to percentage
|
|
'eta': torrent['eta']
|
|
}
|
|
torrent_list.append(torrent_info)
|
|
return torrent_list
|