diff --git a/PDMameUpdate.py b/PDMameUpdate.py index 415a992..c2310e5 100755 --- a/PDMameUpdate.py +++ b/PDMameUpdate.py @@ -20,7 +20,7 @@ Work in progress… Requirements: * Transmission for Bitorrent * A PleasureDome account - * A proper config.json file (see config.template.json) + * A proper PDMameUpdate.json file (see PDMameUpdate.template.json) * Python3 with the libraries below - feedparser - transmission-clutch @@ -48,6 +48,7 @@ import os import re import requests import time +import pathlib from clutch.core import Client from tabulate import tabulate from collections import defaultdict @@ -56,10 +57,18 @@ from urllib.parse import quote def open_config_file(): - """Reads configuration from config.json file""" + """Reads configuration from PDMameUpdate.json file""" - logging.info('Opening config file: config.json') - with open('config.json') as config_file: + for loc in os.environ.get("PDMAMEUPDATE_CONF"), "/etc", os.path.expanduser("~"), os.curdir: + if loc is not None: + config_path = loc + '/PDMameUpdate.json' + if pathlib.Path(config_path).is_file(): + config_file_loc = config_path + break + + logging.info('Opening config file: '+config_file_loc) + config_file = None; + with open(config_file_loc, 'r') as config_file: config = json.load(config_file) return config @@ -224,6 +233,10 @@ def update_torrents(): config['mame-directory'], torrent['remote-name'] ) + new_torrent = os.path.join( + config['torrent-directory'], + torrent['remote-name']+'.torrent' + ) client.torrent.remove(torrent['transmission-id']) os.rename(old_name, new_name) @@ -234,6 +247,9 @@ def update_torrents(): paused=False ) + if args.keep: + t = requests.get(torrent['remote-link'], verify=False) + open(new_torrent, 'wb').write(t.content) if __name__ == '__main__': logging.basicConfig( @@ -253,6 +269,11 @@ if __name__ == '__main__': action='store_true', help='Display debugging messages' ) + parser.add_argument( + '-k', '--keep', + action='store_true', + help='Keep torrent files localy' + ) parser.add_argument( '-c', '--countdown', action='store_true', diff --git a/config.template.json b/PDMameUpdate.template.json similarity index 53% rename from config.template.json rename to PDMameUpdate.template.json index b02c56d..6198946 100644 --- a/config.template.json +++ b/PDMameUpdate.template.json @@ -1,8 +1,9 @@ { - "mame-directory":"/path/to/your/locol/mame/torrent/target/folders", + "mame-directory":"/path/to/your/local/mame/files/target/folder", + "torrent-directory":"/path/to/your/local/mame/torrent/target/folder", "transmission-user":"user", "transmission-password":"pass", "pleasuredome-user":"user", "pleasuredome-password":"pass", "transmission-port":8080 -} \ No newline at end of file +} diff --git a/README.md b/README.md index 2cf3ae5..6277ea2 100644 --- a/README.md +++ b/README.md @@ -1,13 +1,13 @@ # PDMameUpdate -Checks available MAME Torrents on PleasureDome -and updates the local versions if more recent +Checks available MAME Torrents on PleasureDome +and updates the local versions if more recent versions are detected ![Sample output](https://djib.fr/djib/PDMameUpdate/raw/branch/master/screenshot.png) ## Installation -You need to rename `config.template.json` to `config.json` and modify it with the proper information. +You need to rename `PDMameUpdate.template.json` to `PDMameUpdate.json` and modify it with the proper information. You should have Python3 and a few libraries installed (see header in source code). @@ -20,7 +20,7 @@ pipenv run python3 PDMameUpdate.py ## Usage ```shell -usage: PDMameUpdate.py [-h] [-l] [-d] [-c] +usage: PDMameUpdate.py [-h] [-l] [-d] [-k] [-c] Update PleasureDome MAME Torrents @@ -28,5 +28,6 @@ optional arguments: -h, --help show this help message and exit -l, --log Display more log messages -d, --debug Display debugging messages + -k, --keep Keep torrent files localy -c, --countdown Start with a 5 second countdown ```