diff --git a/PDMameUpdate.py b/PDMameUpdate.py index 74d205f..7fe70bd 100755 --- a/PDMameUpdate.py +++ b/PDMameUpdate.py @@ -26,6 +26,7 @@ Requirements: * A proper PDMameUpdate.json file (see PDMameUpdate.template.json) * Python3 with the libraries below - bs4 + - packaging - requests - transmission-clutch - tabulate @@ -53,6 +54,7 @@ from tabulate import tabulate from collections import defaultdict from pprint import pformat from urllib.parse import urlparse +from packaging import version def open_config_file(): @@ -93,16 +95,6 @@ def open_config_file(): return config -def get_magnet_link(link): - page = get(link) - html = bs(page.text, 'html.parser') - - for link in html.find_all('a'): - href = link.get('href') - if urlparse(href).scheme == 'magnet': - return link.string - - def fetch_local_torrents(): """Fetches local torrents versions""" @@ -139,7 +131,7 @@ def fetch_remote_torrents(): for regexp in regexps: match = regexp.search(link.string) if match: - if urlparse(link.get('href')).netloc == 'mgnet.me': + if urlparse(link.get('href')).scheme == 'magnet': matched_version = match.group(0) matched_torrent = torrents[regexp.sub('#', link.string)] remote_version = matched_torrent.get('remote-version', '') @@ -148,8 +140,8 @@ def fetch_remote_torrents(): matched_torrent['remote-link'] = link.get('href') matched_torrent['remote-name'] = link.string else: - logging.info("Skipping '{}' version '{}'".format( - match.group(0), + logging.debug("Skipping '{}' version '{}'".format( + link.string, matched_version )) logging.debug('Found the remote torrent versions: %s', pformat(torrents)) @@ -160,13 +152,11 @@ def filter_updatable_torrents(): for torrent, data in list(torrents.items()): keys_to_check = {'local-version', 'remote-version'} - if ( + if not ( keys_to_check.issubset(data.keys()) and - data['local-version'] < data['remote-version'] + version.parse(data['local-version']) < version.parse(data['remote-version']) ): - data['remote-link'] = get_magnet_link(data['remote-link']) - else: del torrents[torrent] logging.debug(