diff --git a/PDMameUpdate.py b/PDMameUpdate.py index 3ce69fb..205405d 100755 --- a/PDMameUpdate.py +++ b/PDMameUpdate.py @@ -25,7 +25,8 @@ Requirements: * Transmission for Bitorrent * A proper PDMameUpdate.json file (see PDMameUpdate.template.json) * Python3 with the libraries below - - feedparser + - bs4 + - requests - transmission-clutch - tabulate * Linux (untested on other OS, but it might work) @@ -47,11 +48,11 @@ import re from requests import get import time import pathlib -from clutch.core import Client +from clutch import Client from tabulate import tabulate from collections import defaultdict from pprint import pformat -from urllib.parse import quote, urlparse +from urllib.parse import urlparse def open_config_file(): @@ -98,7 +99,7 @@ def get_magnet_link(link): for link in html.find_all('a'): href = link.get('href') - if urlparse(href).scheme=='magnet': + if urlparse(href).scheme == 'magnet': return link.string @@ -132,7 +133,8 @@ def fetch_remote_torrents(): if urlparse(link.get('href')).netloc == 'mgnet.me': matched_version = match.group(0) matched_torrent = torrents[regexp.sub('#', link.string)] - if matched_version > matched_torrent.get('remote-version', ''): + remote_version = matched_torrent.get('remote-version', '') + if matched_version > remote_version: matched_torrent['remote-version'] = matched_version matched_torrent['remote-link'] = link.get('href') matched_torrent['remote-name'] = link.string @@ -177,7 +179,12 @@ def prompt_for_update(): data['remote-version'], data.get('transmission-id', 'N/A') ]) - print(tabulate(output, headers=output_header, tablefmt="simple", disable_numparse=True)) + print(tabulate( + output, + headers=output_header, + tablefmt="simple", + disable_numparse=True + )) print('Should I update the torrents listed above? (y/N)') answer = input() if answer.lower() != 'y': @@ -206,7 +213,11 @@ def fetch_transmission_torrents(): """Gets the torrents id from Transmission""" logging.info('Listing Transmission torrents') - for torrent in client.list().values(): + local_torrents = client.torrent.accessor( + fields=['id', 'name'] + ).arguments.torrents + for local_torrent in local_torrents: + torrent = local_torrent.dict(exclude_none=True) for regexp in regexps: match = regexp.search(torrent['name']) if match: @@ -235,9 +246,12 @@ def update_torrents(): torrent['remote-name'] ) if 'transmission-id' in torrent: - logging.debug('Removing from transmission : %s',torrent['transmission-id']) + logging.debug( + 'Removing from transmission : %s', + torrent['transmission-id'] + ) client.torrent.remove(torrent['transmission-id']) - logging.debug('Renaming %s to %s',old_name, new_name) + logging.debug('Renaming %s to %s', old_name, new_name) os.rename(old_name, new_name) logging.debug('Adding to transmission : %s', torrent['remote-link']) diff --git a/Pipfile b/Pipfile index 85afabf..5e23423 100644 --- a/Pipfile +++ b/Pipfile @@ -1,14 +1,16 @@ [[source]] -name = "pypi" -url = "https://pypi.org/simple" +url = "https://pypi.python.org/simple" verify_ssl = true - -[dev-packages] +name = "pypi" [packages] -feedparser = "*" +bs4 = "*" +requests = "*" +clutch = "*" transmission-clutch = "*" tabulate = "*" +[dev-packages] + [requires] -python_version = "3.7" +python_version = "3.9" diff --git a/Pipfile.lock b/Pipfile.lock deleted file mode 100644 index 7ffe34a..0000000 --- a/Pipfile.lock +++ /dev/null @@ -1,86 +0,0 @@ -{ - "_meta": { - "hash": { - "sha256": "e3d43ff4830ae48696b6a19aa3a6766e8dbfafe9290959dfc620deb9e4258e7f" - }, - "pipfile-spec": 6, - "requires": { - "python_version": "3.7" - }, - "sources": [ - { - "name": "pypi", - "url": "https://pypi.org/simple", - "verify_ssl": true - } - ] - }, - "default": { - "certifi": { - "hashes": [ - "sha256:14131608ad2fd56836d33a71ee60fa1c82bc9d2c8d98b7bdbc631fe1b3cd1296", - "sha256:edbc3f203427eef571f79a7692bb160a2b0f7ccaa31953e99bd17e307cf63f7d" - ], - "version": "==2018.1.18" - }, - "chardet": { - "hashes": [ - "sha256:84ab92ed1c4d4f16916e05906b6b75a6c0fb5db821cc65e70cbd64a3e2a5eaae", - "sha256:fc323ffcaeaed0e0a02bf4d117757b98aed530d9ed4531e3e15460124c106691" - ], - "version": "==3.0.4" - }, - "feedparser": { - "hashes": [ - "sha256:bd030652c2d08532c034c27fcd7c85868e7fa3cb2b17f230a44a6bbc92519bf9", - "sha256:cd2485472e41471632ed3029d44033ee420ad0b57111db95c240c9160a85831c", - "sha256:ce875495c90ebd74b179855449040003a1beb40cd13d5f037a0654251e260b02" - ], - "index": "pypi", - "version": "==5.2.1" - }, - "idna": { - "hashes": [ - "sha256:2c6a5de3089009e3da7c5dde64a141dbc8551d5b7f6cf4ed7c2568d0cc520a8f", - "sha256:8c7309c718f94b3a625cb648ace320157ad16ff131ae0af362c9f21b80ef6ec4" - ], - "version": "==2.6" - }, - "requests": { - "hashes": [ - "sha256:6a1b267aa90cac58ac3a765d067950e7dbbf75b1da07e895d1f594193a40a38b", - "sha256:9c443e7324ba5b85070c4a818ade28bfabedf16ea10206da1132edaa6dda237e" - ], - "version": "==2.18.4" - }, - "six": { - "hashes": [ - "sha256:70e8a77beed4562e7f14fe23a786b54f6296e34344c23bc42f07b15018ff98e9", - "sha256:832dc0e10feb1aa2c68dcc57dbb658f1c7e65b9b61af69048abc87a2db00a0eb" - ], - "version": "==1.11.0" - }, - "tabulate": { - "hashes": [ - "sha256:5470cc6687a091c7042cee89b2946d9235fe9f6d49c193a4ae2ac7bf386737c8" - ], - "index": "pypi", - "version": "==0.8.6" - }, - "transmission-clutch": { - "hashes": [ - "sha256:dbe9673420ae9bf07c00c249c59346d1a0f71023b29297e816d3a2afa1aa716a" - ], - "index": "pypi", - "version": "==1.0.5" - }, - "urllib3": { - "hashes": [ - "sha256:06330f386d6e4b195fbfc736b297f58c5a892e4440e54d294d7004e3a9bbea1b", - "sha256:cc44da8e1145637334317feebd728bd869a35285b93cbb4cca2577da7e62db4f" - ], - "version": "==1.22" - } - }, - "develop": {} -}