forked from djib/PDMameUpdate
Initial commit.
Currently recovers remote versions and local versions. No comparison or automation is implemented yet.
This commit is contained in:
3
.gitignore
vendored
Normal file
3
.gitignore
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
config.json
|
||||
.project
|
||||
.pydevproject
|
56
PDMameUpdate.py
Normal file
56
PDMameUpdate.py
Normal file
@ -0,0 +1,56 @@
|
||||
#!/usr/bin/python3
|
||||
'''
|
||||
Checks available MAME Torrents on PleasureDome
|
||||
and updates the local versions if more recent
|
||||
versions are detected
|
||||
|
||||
Work in progress…
|
||||
|
||||
Requirements:
|
||||
* Python3 with the libraries below
|
||||
* Transmission for Bitorrent
|
||||
* A PleasureDome account
|
||||
|
||||
/!\/!\/!\/!\/!\/!\/!\/!\/!\/!\/!\/!\/!\/!\/!\
|
||||
/!\ Provided with no warranty whatsoever. /!\
|
||||
/!\ Use with caution. /!\
|
||||
/!\/!\/!\/!\/!\/!\/!\/!\/!\/!\/!\/!\/!\/!\/!\
|
||||
'''
|
||||
import feedparser
|
||||
import json
|
||||
import logging
|
||||
import os
|
||||
import re
|
||||
|
||||
if __name__ == '__main__':
|
||||
logging.basicConfig(level=logging.DEBUG, format=' %(asctime)s - %(levelname)s - %(message)s')
|
||||
re_mame_version = re.compile('MAME 0.(\d+) (.*)')
|
||||
|
||||
logging.info('Opening config file: config.json')
|
||||
with open('config.json') as config_file:
|
||||
config = json.load(config_file)
|
||||
|
||||
logging.info('Fetching current MAME versions')
|
||||
files = os.listdir(config['mame_directory'])
|
||||
torrent_versions = {}
|
||||
for file in files:
|
||||
match = re_mame_version.match(file)
|
||||
if match:
|
||||
torrent_versions[match[2]] = match[1]
|
||||
logging.info('Found the following Torrent version on disk: %s', torrent_versions)
|
||||
|
||||
logging.info('Opening PleasureDome RSS feed')
|
||||
d = feedparser.parse('http://www.pleasuredome.org.uk/rss.xml')
|
||||
for post in d.entries:
|
||||
match = re_mame_version.match(post.title)
|
||||
if match:
|
||||
print('Torrent {} is available with version {}.'.format(match[2], match[1]))
|
||||
if match[2] in torrent_versions:
|
||||
print('You have version {}'.format(torrent_versions[match[2]]))
|
||||
|
||||
# TODO: use user input to decide whether the torrent should be updated
|
||||
# TODO: connect to PleasureDome
|
||||
# TODO: remove local torrent from Transmission
|
||||
# TODO: rename local folder
|
||||
# TODO: add new torrent to Transmission
|
||||
# TODO: implement some error handling
|
3
config.template.json
Normal file
3
config.template.json
Normal file
@ -0,0 +1,3 @@
|
||||
{
|
||||
"mame_directory":"/path/to/your/locol/mame/torrent/target/folders"
|
||||
}
|
Reference in New Issue
Block a user