aboutsummaryrefslogtreecommitdiff
path: root/scripts/tag-based-on-dir.py
blob: 8cec41ba0e54784e2e77faa32755e01c7bac37ff (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#!/usr/bin/env python3
import click
from transmission_rpc import Client


@click.command()
@click.option('--port', default=9091)
@click.option('--root-dir', default="/downloads/complete")
@click.option('--host', default="localhost")
def main(host, port, root_dir):
    """Adds tags to torrents based on their download directory."""

    c = Client(host=host, port=port)
    torrents = c.get_torrents()
    for torrent in torrents:
        dir = torrent.download_dir.replace(root_dir, '')
        label = 'none'
        if dir != '':
            label = dir.split('/')[1]

        labels = list([label])
        labels.extend(x for x in torrent.labels if x not in labels)

        if set(labels) != set(torrent.labels):
            print(f"Tagging {torrent.name}")
            c.change_torrent(torrent.id, labels=labels)


if __name__ == '__main__':
    main()