forked from djib/PDMameUpdate
Merge pull request 'Update for direct magnet links, add support for versions with multiple minor versions' (#10) from sebastian404/PDMameUpdate:master into master
Reviewed-on: https://djib.fr/djib/PDMameUpdate/pulls/10
This commit is contained in:
@ -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(
|
||||
|
Reference in New Issue
Block a user