mirror of
https://github.com/rembo10/headphones.git
synced 2026-06-18 16:43:51 +01:00
Torrent seed ratio
This commit is contained in:
@@ -382,66 +382,117 @@
|
||||
<td>
|
||||
<fieldset>
|
||||
<legend>Torrents</legend>
|
||||
<div class="row checkbox">
|
||||
<input id="usepiratebay" type="checkbox" name="use_piratebay" value="1" ${config['use_piratebay']} /><label>The Pirate Bay</label>
|
||||
</div>
|
||||
<div class="config">
|
||||
<div class="row">
|
||||
<label>Proxy URL (Optional): </label>
|
||||
<input type="text" name="piratebay_proxy_url" value="${config['piratebay_proxy_url']}" size="36">
|
||||
|
||||
<fieldset>
|
||||
<legend>The Pirate Bay</legend>
|
||||
<div class="row checkbox">
|
||||
<input id="usepiratebay" type="checkbox" name="use_piratebay" value="1" ${config['use_piratebay']} /><label>Use The Pirate Bay</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row checkbox">
|
||||
<input type="checkbox" name="use_mininova" value="1" ${config['use_mininova']} /><label>Mininova</label>
|
||||
</div>
|
||||
<div class="row checkbox">
|
||||
<input id="usekat" type="checkbox" name="use_kat" value="1" ${config['use_kat']} /><label>Kick Ass Torrents</label>
|
||||
</div>
|
||||
<div class="config">
|
||||
<div class="row">
|
||||
<label>Proxy URL (Optional): </label>
|
||||
<input type="text" name="kat_proxy_url" value="${config['kat_proxy_url']}" size="36">
|
||||
<div class="config">
|
||||
<div class="row">
|
||||
<label>Proxy URL (Optional): </label>
|
||||
<input type="text" name="piratebay_proxy_url" value="${config['piratebay_proxy_url']}" size="36">
|
||||
</div>
|
||||
<div class="row">
|
||||
<label>Seed Ratio: </label>
|
||||
<input type="text" class="override-float" name="piratebay_ratio" value="${config['piratebay_ratio']}" size="10" title="Stop seeding when ratio met, 0 = unlimited">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row checkbox">
|
||||
<input id="usewaffles" type="checkbox" name="waffles" onclick="initConfigCheckbox($(this));" value="1" ${config['use_waffles']} /><label>Waffles.fm</label>
|
||||
</div>
|
||||
<div class="config">
|
||||
<div class="row">
|
||||
<label>Waffles UID Number: </label>
|
||||
<input type="text" name="waffles_uid" value="${config['waffles_uid']}" size="36">
|
||||
</fieldset>
|
||||
|
||||
<fieldset>
|
||||
<legend>Kick Ass Torrents</legend>
|
||||
<div class="row checkbox">
|
||||
<input id="usekat" type="checkbox" name="use_kat" value="1" ${config['use_kat']} /><label>Use Kick Ass Torrents</label>
|
||||
</div>
|
||||
<div class="row">
|
||||
<label>Waffles Passkey: </label>
|
||||
<input type="password" name="waffles_passkey" value="${config['waffles_passkey']}" size="36">
|
||||
<div class="config">
|
||||
<div class="row">
|
||||
<label>Proxy URL (Optional): </label>
|
||||
<input type="text" name="kat_proxy_url" value="${config['kat_proxy_url']}" size="36">
|
||||
</div>
|
||||
<div class="row">
|
||||
<label>Seed Ratio: </label>
|
||||
<input type="text" class="override-float" name="kat_ratio" value="${config['kat_ratio']}" size="10" title="Stop seeding when ratio met, 0 = unlimited">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row checkbox">
|
||||
<input id="userutracker" type="checkbox" name="rutracker" onclick="initConfigCheckbox($(this));" value="1" ${config['use_rutracker']} /><label>rutracker.org</label>
|
||||
</div>
|
||||
<div class="config">
|
||||
<div class="row">
|
||||
<label>rutracker User Name: </label>
|
||||
<input type="text" name="rutracker_user" value="${config['rutracker_user']}" size="36">
|
||||
</fieldset>
|
||||
|
||||
<fieldset>
|
||||
<legend>Waffles.fm</legend>
|
||||
<div class="row checkbox">
|
||||
<input id="usewaffles" type="checkbox" name="waffles" onclick="initConfigCheckbox($(this));" value="1" ${config['use_waffles']} /><label>Use Waffles.fm</label>
|
||||
</div>
|
||||
<div class="row">
|
||||
<label>rutracker Password: </label>
|
||||
<input type="password" name="rutracker_password" value="${config['rutracker_password']}" size="36">
|
||||
<div class="config">
|
||||
<div class="row">
|
||||
<label>UID Number: </label>
|
||||
<input type="text" name="waffles_uid" value="${config['waffles_uid']}" size="36">
|
||||
</div>
|
||||
<div class="row">
|
||||
<label>Passkey: </label>
|
||||
<input type="password" name="waffles_passkey" value="${config['waffles_passkey']}" size="36">
|
||||
</div>
|
||||
<div class="row">
|
||||
<label>Seed Ratio: </label>
|
||||
<input type="text" class="override-float" name="waffles_ratio" value="${config['waffles_ratio']}" size="10" title="Stop seeding when ratio met, 0 = unlimited">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row checkbox">
|
||||
<input id="usewhatcd" type="checkbox" name="whatcd" onclick="initConfigCheckbox($(this));" value="1" ${config['use_whatcd']} /><label>What.cd</label>
|
||||
</div>
|
||||
<div class="config">
|
||||
<div class="row">
|
||||
<label>What.cd Username: </label>
|
||||
<input type="text" name="whatcd_username" value="${config['whatcd_username']}" size="36">
|
||||
</fieldset>
|
||||
|
||||
<fieldset>
|
||||
<legend>rutracker.org</legend>
|
||||
<div class="row checkbox">
|
||||
<input id="userutracker" type="checkbox" name="rutracker" onclick="initConfigCheckbox($(this));" value="1" ${config['use_rutracker']} /><label>Use rutracker.org</label>
|
||||
</div>
|
||||
<div class="row">
|
||||
<label>What.cd Password: </label>
|
||||
<input type="password" name="whatcd_password" value="${config['whatcd_password']}" size="36">
|
||||
<div class="config">
|
||||
<div class="row">
|
||||
<label>User Name: </label>
|
||||
<input type="text" name="rutracker_user" value="${config['rutracker_user']}" size="36">
|
||||
</div>
|
||||
<div class="row">
|
||||
<label>Password: </label>
|
||||
<input type="password" name="rutracker_password" value="${config['rutracker_password']}" size="36">
|
||||
</div>
|
||||
<div class="row">
|
||||
<label>Seed Ratio: </label>
|
||||
<input type="text" class="override-float" name="rutracker_ratio" value="${config['rutracker_ratio']}" size="10" title="Stop seeding when ratio met, 0 = unlimited">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</fieldset>
|
||||
|
||||
<fieldset>
|
||||
<legend>What.cd</legend>
|
||||
<div class="row checkbox">
|
||||
<input id="usewhatcd" type="checkbox" name="whatcd" onclick="initConfigCheckbox($(this));" value="1" ${config['use_whatcd']} /><label>Use What.cd</label>
|
||||
</div>
|
||||
<div class="config">
|
||||
<div class="row">
|
||||
<label>Username: </label>
|
||||
<input type="text" name="whatcd_username" value="${config['whatcd_username']}" size="36">
|
||||
</div>
|
||||
<div class="row">
|
||||
<label>Password: </label>
|
||||
<input type="password" name="whatcd_password" value="${config['whatcd_password']}" size="36">
|
||||
</div>
|
||||
<div class="row">
|
||||
<label>Seed Ratio: </label>
|
||||
<input type="text" class="override-float" name="whatcd_ratio" value="${config['whatcd_ratio']}" size="10" title="Stop seeding when ratio met, 0 = unlimited">
|
||||
</div>
|
||||
</div>
|
||||
</fieldset>
|
||||
|
||||
<fieldset>
|
||||
<legend>Mininova</legend>
|
||||
<div class="row checkbox">
|
||||
<input id="usemininova" type="checkbox" name="use_mininova" value="1" ${config['use_mininova']} /><label>Use Mininova</label>
|
||||
</div>
|
||||
<div class="config">
|
||||
<div class="row">
|
||||
<label>Seed Ratio: </label>
|
||||
<input type="text" class="override-float" name="mininova_ratio" value="${config['mininova_ratio']}" size="10" title="Stop seeding when ratio met, 0 = unlimited">
|
||||
</div>
|
||||
</div>
|
||||
</fieldset>
|
||||
|
||||
</fieldset>
|
||||
</td>
|
||||
</tr>
|
||||
@@ -1745,6 +1796,7 @@
|
||||
initConfigCheckbox("#useomgwtfnzbs");
|
||||
initConfigCheckbox("#usekat");
|
||||
initConfigCheckbox("#usepiratebay");
|
||||
initConfigCheckbox("#usemininova");
|
||||
initConfigCheckbox("#usewaffles");
|
||||
initConfigCheckbox("#userutracker");
|
||||
initConfigCheckbox("#usewhatcd");
|
||||
|
||||
+43
-12
@@ -190,18 +190,24 @@ TORRENTBLACKHOLE_DIR = None
|
||||
NUMBEROFSEEDERS = 10
|
||||
KAT = None
|
||||
KAT_PROXY_URL = None
|
||||
KAT_RATIO = None
|
||||
MININOVA = None
|
||||
MININOVA_RATIO = None
|
||||
PIRATEBAY = None
|
||||
PIRATEBAY_PROXY_URL = None
|
||||
PIRATEBAY_RATIO = None
|
||||
WAFFLES = None
|
||||
WAFFLES_UID = None
|
||||
WAFFLES_PASSKEY = None
|
||||
WAFFLES_RATIO = None
|
||||
RUTRACKER = None
|
||||
RUTRACKER_USER = None
|
||||
RUTRACKER_PASSWORD = None
|
||||
RUTRACKER_RATIO = None
|
||||
WHATCD = None
|
||||
WHATCD_USERNAME = None
|
||||
WHATCD_PASSWORD = None
|
||||
WHATCD_RATIO = None
|
||||
DOWNLOAD_TORRENT_DIR = None
|
||||
|
||||
INTERFACE = None
|
||||
@@ -346,8 +352,8 @@ def initialize():
|
||||
LOSSLESS_DESTINATION_DIR, PREFERRED_QUALITY, PREFERRED_BITRATE, DETECT_BITRATE, ADD_ARTISTS, CORRECT_METADATA, MOVE_FILES, \
|
||||
RENAME_FILES, FOLDER_FORMAT, FILE_FORMAT, FILE_UNDERSCORES, CLEANUP_FILES, KEEP_NFO, INCLUDE_EXTRAS, EXTRAS, AUTOWANT_UPCOMING, AUTOWANT_ALL, KEEP_TORRENT_FILES, PREFER_TORRENTS, OPEN_MAGNET_LINKS, \
|
||||
ADD_ALBUM_ART, ALBUM_ART_FORMAT, EMBED_ALBUM_ART, EMBED_LYRICS, REPLACE_EXISTING_FOLDERS, DOWNLOAD_DIR, BLACKHOLE, BLACKHOLE_DIR, USENET_RETENTION, SEARCH_INTERVAL, \
|
||||
TORRENTBLACKHOLE_DIR, NUMBEROFSEEDERS, KAT, KAT_PROXY_URL, PIRATEBAY, PIRATEBAY_PROXY_URL, MININOVA, WAFFLES, WAFFLES_UID, WAFFLES_PASSKEY, \
|
||||
RUTRACKER, RUTRACKER_USER, RUTRACKER_PASSWORD, WHATCD, WHATCD_USERNAME, WHATCD_PASSWORD, DOWNLOAD_TORRENT_DIR, \
|
||||
TORRENTBLACKHOLE_DIR, NUMBEROFSEEDERS, KAT, KAT_PROXY_URL, KAT_RATIO, PIRATEBAY, PIRATEBAY_PROXY_URL, PIRATEBAY_RATIO, MININOVA, MININOVA_RATIO, WAFFLES, WAFFLES_UID, WAFFLES_PASSKEY, WAFFLES_RATIO, \
|
||||
RUTRACKER, RUTRACKER_USER, RUTRACKER_PASSWORD, RUTRACKER_RATIO, WHATCD, WHATCD_USERNAME, WHATCD_PASSWORD, WHATCD_RATIO, DOWNLOAD_TORRENT_DIR, \
|
||||
LIBRARYSCAN, LIBRARYSCAN_INTERVAL, DOWNLOAD_SCAN_INTERVAL, UPDATE_DB_INTERVAL, MB_IGNORE_AGE, SAB_HOST, SAB_USERNAME, SAB_PASSWORD, SAB_APIKEY, SAB_CATEGORY, \
|
||||
NZBGET_USERNAME, NZBGET_PASSWORD, NZBGET_CATEGORY, NZBGET_HOST, HEADPHONES_INDEXER, NZBMATRIX, TRANSMISSION_HOST, TRANSMISSION_USERNAME, TRANSMISSION_PASSWORD, \
|
||||
UTORRENT_HOST, UTORRENT_USERNAME, UTORRENT_PASSWORD, UTORRENT_LABEL, NEWZNAB, NEWZNAB_HOST, NEWZNAB_APIKEY, NEWZNAB_ENABLED, EXTRA_NEWZNABS, \
|
||||
@@ -378,6 +384,9 @@ def initialize():
|
||||
CheckSection('Newznab')
|
||||
CheckSection('NZBsorg')
|
||||
CheckSection('omgwtfnzbs')
|
||||
CheckSection('Piratebay')
|
||||
CheckSection('Kat')
|
||||
CheckSection('Mininova')
|
||||
CheckSection('Waffles')
|
||||
CheckSection('Rutracker')
|
||||
CheckSection('What.cd')
|
||||
@@ -478,24 +487,34 @@ def initialize():
|
||||
|
||||
TORRENTBLACKHOLE_DIR = check_setting_str(CFG, 'General', 'torrentblackhole_dir', '')
|
||||
NUMBEROFSEEDERS = check_setting_str(CFG, 'General', 'numberofseeders', '10')
|
||||
KAT = bool(check_setting_int(CFG, 'General', 'kat', 0))
|
||||
KAT_PROXY_URL = check_setting_str(CFG, 'General', 'kat_proxy_url', '')
|
||||
PIRATEBAY = bool(check_setting_int(CFG, 'General', 'piratebay', 0))
|
||||
PIRATEBAY_PROXY_URL = check_setting_str(CFG, 'General', 'piratebay_proxy_url', '')
|
||||
MININOVA = bool(check_setting_int(CFG, 'General', 'mininova', 0))
|
||||
DOWNLOAD_TORRENT_DIR = check_setting_str(CFG, 'General', 'download_torrent_dir', '')
|
||||
|
||||
KAT = bool(check_setting_int(CFG, 'Kat', 'kat', 0))
|
||||
KAT_PROXY_URL = check_setting_str(CFG, 'Kat', 'kat_proxy_url', '')
|
||||
KAT_RATIO = check_setting_str(CFG, 'Kat', 'kat_ratio', '')
|
||||
|
||||
PIRATEBAY = bool(check_setting_int(CFG, 'Piratebay', 'piratebay', 0))
|
||||
PIRATEBAY_PROXY_URL = check_setting_str(CFG, 'Piratebay', 'piratebay_proxy_url', '')
|
||||
PIRATEBAY_RATIO = check_setting_str(CFG, 'Piratebay', 'piratebay_ratio', '')
|
||||
|
||||
MININOVA = bool(check_setting_int(CFG, 'Mininova', 'mininova', 0))
|
||||
MININOVA_RATIO = check_setting_str(CFG, 'Mininova', 'mininova_ratio', '')
|
||||
|
||||
WAFFLES = bool(check_setting_int(CFG, 'Waffles', 'waffles', 0))
|
||||
WAFFLES_UID = check_setting_str(CFG, 'Waffles', 'waffles_uid', '')
|
||||
WAFFLES_PASSKEY = check_setting_str(CFG, 'Waffles', 'waffles_passkey', '')
|
||||
WAFFLES_RATIO = check_setting_str(CFG, 'Waffles', 'waffles_ratio', '')
|
||||
|
||||
RUTRACKER = bool(check_setting_int(CFG, 'Rutracker', 'rutracker', 0))
|
||||
RUTRACKER_USER = check_setting_str(CFG, 'Rutracker', 'rutracker_user', '')
|
||||
RUTRACKER_PASSWORD = check_setting_str(CFG, 'Rutracker', 'rutracker_password', '')
|
||||
RUTRACKER_RATIO = check_setting_str(CFG, 'Rutracker', 'rutracker_ratio', '')
|
||||
|
||||
WHATCD = bool(check_setting_int(CFG, 'What.cd', 'whatcd', 0))
|
||||
WHATCD_USERNAME = check_setting_str(CFG, 'What.cd', 'whatcd_username', '')
|
||||
WHATCD_PASSWORD = check_setting_str(CFG, 'What.cd', 'whatcd_password', '')
|
||||
WHATCD_RATIO = check_setting_str(CFG, 'What.cd', 'whatcd_ratio', '')
|
||||
WHATCD_PASSWORD = check_setting_str(CFG, 'What.cd', 'whatcd_password', '')
|
||||
|
||||
SAB_HOST = check_setting_str(CFG, 'SABnzbd', 'sab_host', '')
|
||||
SAB_USERNAME = check_setting_str(CFG, 'SABnzbd', 'sab_username', '')
|
||||
@@ -895,27 +914,39 @@ def config_write():
|
||||
|
||||
new_config['General']['numberofseeders'] = NUMBEROFSEEDERS
|
||||
new_config['General']['torrentblackhole_dir'] = TORRENTBLACKHOLE_DIR
|
||||
new_config['General']['kat'] = int(KAT)
|
||||
new_config['General']['kat_proxy_url'] = KAT_PROXY_URL
|
||||
new_config['General']['mininova'] = int(MININOVA)
|
||||
new_config['General']['piratebay'] = int(PIRATEBAY)
|
||||
new_config['General']['piratebay_proxy_url'] = PIRATEBAY_PROXY_URL
|
||||
new_config['General']['download_torrent_dir'] = DOWNLOAD_TORRENT_DIR
|
||||
|
||||
new_config['Kat'] = {}
|
||||
new_config['Kat']['kat'] = int(KAT)
|
||||
new_config['Kat']['kat_proxy_url'] = KAT_PROXY_URL
|
||||
new_config['Kat']['kat_ratio'] = KAT_RATIO
|
||||
|
||||
new_config['Mininova'] = {}
|
||||
new_config['Mininova']['mininova'] = int(MININOVA)
|
||||
new_config['Mininova']['mininova_ratio'] = MININOVA_RATIO
|
||||
|
||||
new_config['Piratebay'] = {}
|
||||
new_config['Piratebay']['piratebay'] = int(PIRATEBAY)
|
||||
new_config['Piratebay']['piratebay_proxy_url'] = PIRATEBAY_PROXY_URL
|
||||
new_config['Piratebay']['piratebay_ratio'] = PIRATEBAY_RATIO
|
||||
|
||||
new_config['Waffles'] = {}
|
||||
new_config['Waffles']['waffles'] = int(WAFFLES)
|
||||
new_config['Waffles']['waffles_uid'] = WAFFLES_UID
|
||||
new_config['Waffles']['waffles_passkey'] = WAFFLES_PASSKEY
|
||||
new_config['Waffles']['waffles_ratio'] = WAFFLES_RATIO
|
||||
|
||||
new_config['Rutracker'] = {}
|
||||
new_config['Rutracker']['rutracker'] = int(RUTRACKER)
|
||||
new_config['Rutracker']['rutracker_user'] = RUTRACKER_USER
|
||||
new_config['Rutracker']['rutracker_password'] = RUTRACKER_PASSWORD
|
||||
new_config['Rutracker']['rutracker_ratio'] = RUTRACKER_RATIO
|
||||
|
||||
new_config['What.cd'] = {}
|
||||
new_config['What.cd']['whatcd'] = int(WHATCD)
|
||||
new_config['What.cd']['whatcd_username'] = WHATCD_USERNAME
|
||||
new_config['What.cd']['whatcd_password'] = WHATCD_PASSWORD
|
||||
new_config['What.cd']['whatcd_ratio'] = WHATCD_RATIO
|
||||
|
||||
new_config['General']['search_interval'] = SEARCH_INTERVAL
|
||||
new_config['General']['libraryscan'] = int(LIBRARYSCAN)
|
||||
|
||||
@@ -698,6 +698,11 @@ def send_to_downloader(data, bestqual, album):
|
||||
except Exception as e:
|
||||
logger.exception("Unhandled exception")
|
||||
|
||||
# Set Seed Ratio
|
||||
seed_ratio = getSeedRatio(bestqual[3])
|
||||
if seed_ratio != None:
|
||||
transmission.setSeedRatio(torrentid, seed_ratio)
|
||||
|
||||
else:# if headphones.TORRENT_DOWNLOADER == 2:
|
||||
logger.info("Sending torrent to uTorrent")
|
||||
|
||||
@@ -725,6 +730,11 @@ def send_to_downloader(data, bestqual, album):
|
||||
except Exception as e:
|
||||
logger.exception("Unhandled exception")
|
||||
|
||||
# Set Seed Ratio
|
||||
seed_ratio = getSeedRatio(bestqual[3])
|
||||
if seed_ratio != None:
|
||||
utorrent.setSeedRatio(_hash, seed_ratio)
|
||||
|
||||
myDB = db.DBConnection()
|
||||
myDB.action('UPDATE albums SET status = "Snatched" WHERE AlbumID=?', [album['AlbumID']])
|
||||
myDB.action('INSERT INTO snatched VALUES( ?, ?, ?, ?, DATETIME("NOW", "localtime"), ?, ?, ?)', [album['AlbumID'], bestqual[0], bestqual[1], bestqual[2], "Snatched", folder_name, kind])
|
||||
@@ -1351,3 +1361,27 @@ def CalculateTorrentHash(link, data):
|
||||
logger.debug('Torrent Hash: ' + str(tor_hash))
|
||||
|
||||
return tor_hash
|
||||
|
||||
def getSeedRatio(provider):
|
||||
seed_ratio = ''
|
||||
if provider == 'rutracker.org':
|
||||
seed_ratio = headphones.RUTRACKER_RATIO
|
||||
elif provider == 'Kick Ass Torrents':
|
||||
seed_ratio = headphones.KAT_RATIO
|
||||
elif provider == 'What.cd':
|
||||
seed_ratio = headphones.WHATCD_RATIO
|
||||
elif provider == 'The Pirate Bay':
|
||||
seed_ratio = headphones.PIRATEBAY_RATIO
|
||||
elif provider == 'Waffles.fm':
|
||||
seed_ratio = headphones.WAFFLES_RATIO
|
||||
elif provider == 'Mininova':
|
||||
seed_ratio = headphones.MININOVA_RATIO
|
||||
if seed_ratio != '':
|
||||
try:
|
||||
seed_ratio_float = float(seed_ratio)
|
||||
except:
|
||||
seed_ratio_float = None
|
||||
logger.warn('Could not get Seed Ratio for %s' % provider)
|
||||
return seed_ratio_float
|
||||
else:
|
||||
return None
|
||||
@@ -82,6 +82,17 @@ def getTorrentFolder(torrentid):
|
||||
|
||||
return torrent_folder_name
|
||||
|
||||
def setSeedRatio(torrentid, ratio):
|
||||
method = 'torrent-set'
|
||||
if ratio != 0:
|
||||
arguments = {'seedRatioLimit': ratio, 'seedRatioMode': 1, 'ids': torrentid}
|
||||
else:
|
||||
arguments = {'seedRatioMode': 2, 'ids': torrentid}
|
||||
|
||||
response = torrentAction(method, arguments)
|
||||
if not response:
|
||||
return False
|
||||
|
||||
def torrentAction(method, arguments):
|
||||
|
||||
host = headphones.TRANSMISSION_HOST
|
||||
|
||||
+28
-6
@@ -155,7 +155,16 @@ def labelTorrent(hash):
|
||||
if label:
|
||||
uTorrentClient.setprops(hash,'label',label)
|
||||
|
||||
def dirTorrent(hash, cacheid=None):
|
||||
def setSeedRatio(hash, ratio):
|
||||
uTorrentClient = utorrentclient()
|
||||
uTorrentClient.setprops(hash, 'seed_override', '1')
|
||||
if ratio != 0:
|
||||
uTorrentClient.setprops(hash,'seed_ratio', ratio * 10)
|
||||
else:
|
||||
# TODO passing -1 should be unlimited
|
||||
uTorrentClient.setprops(hash,'seed_ratio', -1.00)
|
||||
|
||||
def dirTorrent(hash, cacheid=None, return_name=None):
|
||||
|
||||
uTorrentClient = utorrentclient()
|
||||
|
||||
@@ -174,7 +183,10 @@ def dirTorrent(hash, cacheid=None):
|
||||
|
||||
for torrent in torrents:
|
||||
if (torrent[0].lower() == hash):
|
||||
return torrent[26], cacheid
|
||||
if not return_name:
|
||||
return torrent[26], cacheid
|
||||
else:
|
||||
return torrent[2], cacheid
|
||||
|
||||
return None, None
|
||||
|
||||
@@ -184,6 +196,10 @@ def addTorrent(link, hash):
|
||||
# Get Active Directory from settings
|
||||
active_dir, completed_dir = getSettingsDirectories()
|
||||
|
||||
if not active_dir or not completed_dir:
|
||||
logger.error('Could not get "Put new downloads in:" or "Move completed downloads to:" directories from uTorrent settings, please ensure they are set')
|
||||
return None
|
||||
|
||||
uTorrentClient.add_url(link)
|
||||
|
||||
# Get Torrent Folder Name
|
||||
@@ -197,8 +213,9 @@ def addTorrent(link, hash):
|
||||
time.sleep(6)
|
||||
torrent_folder, cacheid = dirTorrent(hash, cacheid)
|
||||
|
||||
if torrent_folder == active_dir:
|
||||
return None
|
||||
if torrent_folder == active_dir or not torrent_folder:
|
||||
torrent_folder, cacheid = dirTorrent(hash, cacheid, return_name=True)
|
||||
return torrent_folder
|
||||
else:
|
||||
labelTorrent(hash)
|
||||
return os.path.basename(os.path.normpath(torrent_folder))
|
||||
@@ -206,6 +223,11 @@ def addTorrent(link, hash):
|
||||
def getSettingsDirectories():
|
||||
uTorrentClient = utorrentclient()
|
||||
settings = uTorrentClient.get_settings()
|
||||
active = settings['dir_active_download'][2]
|
||||
completed = settings['dir_completed_download'][2]
|
||||
active = None
|
||||
completed = None
|
||||
if 'dir_active_download' in settings:
|
||||
active = settings['dir_active_download'][2]
|
||||
if 'dir_completed_download' in settings:
|
||||
completed = settings['dir_completed_download'][2]
|
||||
return active, completed
|
||||
|
||||
|
||||
+14
-2
@@ -1008,18 +1008,24 @@ class WebInterface(object):
|
||||
"numberofseeders" : headphones.NUMBEROFSEEDERS,
|
||||
"use_kat" : checked(headphones.KAT),
|
||||
"kat_proxy_url" : headphones.KAT_PROXY_URL,
|
||||
"kat_ratio": headphones.KAT_RATIO,
|
||||
"use_piratebay" : checked(headphones.PIRATEBAY),
|
||||
"piratebay_proxy_url" : headphones.PIRATEBAY_PROXY_URL,
|
||||
"piratebay_ratio": headphones.PIRATEBAY_RATIO,
|
||||
"use_mininova" : checked(headphones.MININOVA),
|
||||
"mininova_ratio": headphones.MININOVA_RATIO,
|
||||
"use_waffles" : checked(headphones.WAFFLES),
|
||||
"waffles_uid" : headphones.WAFFLES_UID,
|
||||
"waffles_passkey": headphones.WAFFLES_PASSKEY,
|
||||
"waffles_ratio": headphones.WAFFLES_RATIO,
|
||||
"use_rutracker" : checked(headphones.RUTRACKER),
|
||||
"rutracker_user" : headphones.RUTRACKER_USER,
|
||||
"rutracker_password": headphones.RUTRACKER_PASSWORD,
|
||||
"rutracker_ratio": headphones.RUTRACKER_RATIO,
|
||||
"use_whatcd" : checked(headphones.WHATCD),
|
||||
"whatcd_username" : headphones.WHATCD_USERNAME,
|
||||
"whatcd_password": headphones.WHATCD_PASSWORD,
|
||||
"whatcd_ratio": headphones.WHATCD_RATIO,
|
||||
"pref_qual_0" : radio(headphones.PREFERRED_QUALITY, 0),
|
||||
"pref_qual_1" : radio(headphones.PREFERRED_QUALITY, 1),
|
||||
"pref_qual_3" : radio(headphones.PREFERRED_QUALITY, 3),
|
||||
@@ -1159,8 +1165,8 @@ class WebInterface(object):
|
||||
utorrent_host=None, utorrent_username=None, utorrent_password=None, utorrent_label=None,nzb_downloader=0, torrent_downloader=0, download_dir=None, blackhole_dir=None, usenet_retention=None,
|
||||
use_headphones_indexer=0, newznab=0, newznab_host=None, newznab_apikey=None, newznab_enabled=0, nzbsorg=0, nzbsorg_uid=None, nzbsorg_hash=None, omgwtfnzbs=0, omgwtfnzbs_uid=None, omgwtfnzbs_apikey=None,
|
||||
preferred_words=None, required_words=None, ignored_words=None, preferred_quality=0, preferred_bitrate=None, detect_bitrate=0, move_files=0, torrentblackhole_dir=None, download_torrent_dir=None,
|
||||
numberofseeders=None, use_piratebay=0, piratebay_proxy_url=None, use_kat=0, kat_proxy_url=None, use_mininova=0, waffles=0, waffles_uid=None, waffles_passkey=None, whatcd=0, whatcd_username=None, whatcd_password=None,
|
||||
rutracker=0, rutracker_user=None, rutracker_password=None, rename_files=0, correct_metadata=0, cleanup_files=0, keep_nfo=0, add_album_art=0, album_art_format=None, embed_album_art=0, embed_lyrics=0, replace_existing_folders=False,
|
||||
numberofseeders=None, use_piratebay=0, piratebay_proxy_url=None, piratebay_ratio=None, use_kat=0, kat_proxy_url=None, kat_ratio=None, use_mininova=0, mininova_ratio=None, waffles=0, waffles_uid=None, waffles_passkey=None, waffles_ratio=None, whatcd=0, whatcd_username=None, whatcd_password=None, whatcd_ratio=None,
|
||||
rutracker=0, rutracker_user=None, rutracker_password=None, rutracker_ratio=None, rename_files=0, correct_metadata=0, cleanup_files=0, keep_nfo=0, add_album_art=0, album_art_format=None, embed_album_art=0, embed_lyrics=0, replace_existing_folders=False,
|
||||
destination_dir=None, lossless_destination_dir=None, folder_format=None, file_format=None, file_underscores=0, include_extras=0, single=0, ep=0, compilation=0, soundtrack=0, live=0,
|
||||
remix=0, djmix=0, mixtape_street=0, broadcast=0, interview=0, spokenword=0, audiobook=0, other=0, autowant_upcoming=False, autowant_all=False, keep_torrent_files=False, prefer_torrents=0, open_magnet_links=0, interface=None, log_dir=None, cache_dir=None, music_encoder=0, encoder=None, xldprofile=None,
|
||||
bitrate=None, samplingfrequency=None, encoderfolder=None, advancedencoder=None, encoderoutputformat=None, encodervbrcbr=None, encoderquality=None, encoderlossless=0,
|
||||
@@ -1227,18 +1233,24 @@ class WebInterface(object):
|
||||
headphones.DOWNLOAD_TORRENT_DIR = download_torrent_dir
|
||||
headphones.KAT = use_kat
|
||||
headphones.KAT_PROXY_URL = kat_proxy_url
|
||||
headphones.KAT_RATIO = kat_ratio
|
||||
headphones.PIRATEBAY = use_piratebay
|
||||
headphones.PIRATEBAY_PROXY_URL = piratebay_proxy_url
|
||||
headphones.PIRATEBAY_RATIO = piratebay_ratio
|
||||
headphones.MININOVA = use_mininova
|
||||
headphones.MININOVA_RATIO = mininova_ratio
|
||||
headphones.WAFFLES = waffles
|
||||
headphones.WAFFLES_UID = waffles_uid
|
||||
headphones.WAFFLES_PASSKEY = waffles_passkey
|
||||
headphones.WAFFLES_RATIO = waffles_ratio
|
||||
headphones.RUTRACKER = rutracker
|
||||
headphones.RUTRACKER_USER = rutracker_user
|
||||
headphones.RUTRACKER_PASSWORD = rutracker_password
|
||||
headphones.RUTRACKER_RATIO = rutracker_ratio
|
||||
headphones.WHATCD = whatcd
|
||||
headphones.WHATCD_USERNAME = whatcd_username
|
||||
headphones.WHATCD_PASSWORD = whatcd_password
|
||||
headphones.WHATCD_RATIO = whatcd_ratio
|
||||
headphones.PREFERRED_QUALITY = int(preferred_quality)
|
||||
headphones.PREFERRED_BITRATE = preferred_bitrate
|
||||
headphones.PREFERRED_BITRATE_HIGH_BUFFER = preferred_bitrate_high_buffer
|
||||
|
||||
Reference in New Issue
Block a user