mirror of
https://github.com/clinton-hall/nzbToMedia.git
synced 2025-08-19 21:03:14 -07:00
Refactor nzbs from utils to utils.nzbs
This commit is contained in:
parent
4143aa77f8
commit
bd16f11485
2 changed files with 70 additions and 64 deletions
|
@ -44,22 +44,6 @@ def copyfileobj_fast(fsrc, fdst, length=512 * 1024):
|
||||||
shutil.copyfileobj = copyfileobj_fast
|
shutil.copyfileobj = copyfileobj_fast
|
||||||
|
|
||||||
|
|
||||||
def report_nzb(failure_link, client_agent):
|
|
||||||
# Contact indexer site
|
|
||||||
logger.info('Sending failure notification to indexer site')
|
|
||||||
if client_agent == 'nzbget':
|
|
||||||
headers = {'User-Agent': 'NZBGet / nzbToMedia.py'}
|
|
||||||
elif client_agent == 'sabnzbd':
|
|
||||||
headers = {'User-Agent': 'SABnzbd / nzbToMedia.py'}
|
|
||||||
else:
|
|
||||||
return
|
|
||||||
try:
|
|
||||||
requests.post(failure_link, headers=headers, timeout=(30, 300))
|
|
||||||
except Exception as e:
|
|
||||||
logger.error('Unable to open URL {0} due to {1}'.format(failure_link, e))
|
|
||||||
return
|
|
||||||
|
|
||||||
|
|
||||||
def sanitize_name(name):
|
def sanitize_name(name):
|
||||||
"""
|
"""
|
||||||
>>> sanitize_name('a/b/c')
|
>>> sanitize_name('a/b/c')
|
||||||
|
@ -853,54 +837,6 @@ def find_download(client_agent, download_id):
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
|
||||||
def get_nzoid(input_name):
|
|
||||||
nzoid = None
|
|
||||||
slots = []
|
|
||||||
logger.debug('Searching for nzoid from SAbnzbd ...')
|
|
||||||
if 'http' in core.SABNZBDHOST:
|
|
||||||
base_url = '{0}:{1}/api'.format(core.SABNZBDHOST, core.SABNZBDPORT)
|
|
||||||
else:
|
|
||||||
base_url = 'http://{0}:{1}/api'.format(core.SABNZBDHOST, core.SABNZBDPORT)
|
|
||||||
url = base_url
|
|
||||||
params = {
|
|
||||||
'apikey': core.SABNZBDAPIKEY,
|
|
||||||
'mode': 'queue',
|
|
||||||
'output': 'json',
|
|
||||||
}
|
|
||||||
try:
|
|
||||||
r = requests.get(url, params=params, verify=False, timeout=(30, 120))
|
|
||||||
except requests.ConnectionError:
|
|
||||||
logger.error('Unable to open URL')
|
|
||||||
return nzoid # failure
|
|
||||||
try:
|
|
||||||
result = r.json()
|
|
||||||
clean_name = os.path.splitext(os.path.split(input_name)[1])[0]
|
|
||||||
slots.extend([(slot['nzo_id'], slot['filename']) for slot in result['queue']['slots']])
|
|
||||||
except Exception:
|
|
||||||
logger.warning('Data from SABnzbd queue could not be parsed')
|
|
||||||
params['mode'] = 'history'
|
|
||||||
try:
|
|
||||||
r = requests.get(url, params=params, verify=False, timeout=(30, 120))
|
|
||||||
except requests.ConnectionError:
|
|
||||||
logger.error('Unable to open URL')
|
|
||||||
return nzoid # failure
|
|
||||||
try:
|
|
||||||
result = r.json()
|
|
||||||
clean_name = os.path.splitext(os.path.split(input_name)[1])[0]
|
|
||||||
slots.extend([(slot['nzo_id'], slot['name']) for slot in result['history']['slots']])
|
|
||||||
except Exception:
|
|
||||||
logger.warning('Data from SABnzbd history could not be parsed')
|
|
||||||
try:
|
|
||||||
for nzo_id, name in slots:
|
|
||||||
if name in [input_name, clean_name]:
|
|
||||||
nzoid = nzo_id
|
|
||||||
logger.debug('Found nzoid: {0}'.format(nzoid))
|
|
||||||
break
|
|
||||||
except Exception:
|
|
||||||
logger.warning('Data from SABnzbd could not be parsed')
|
|
||||||
return nzoid
|
|
||||||
|
|
||||||
|
|
||||||
def clean_file_name(filename):
|
def clean_file_name(filename):
|
||||||
"""Cleans up nzb name by removing any . and _
|
"""Cleans up nzb name by removing any . and _
|
||||||
characters, along with any trailing hyphens.
|
characters, along with any trailing hyphens.
|
||||||
|
|
70
core/utils/nzbs.py
Normal file
70
core/utils/nzbs.py
Normal file
|
@ -0,0 +1,70 @@
|
||||||
|
import os
|
||||||
|
|
||||||
|
import requests
|
||||||
|
|
||||||
|
import core
|
||||||
|
from core import logger
|
||||||
|
|
||||||
|
|
||||||
|
def get_nzoid(input_name):
|
||||||
|
nzoid = None
|
||||||
|
slots = []
|
||||||
|
logger.debug('Searching for nzoid from SAbnzbd ...')
|
||||||
|
if 'http' in core.SABNZBDHOST:
|
||||||
|
base_url = '{0}:{1}/api'.format(core.SABNZBDHOST, core.SABNZBDPORT)
|
||||||
|
else:
|
||||||
|
base_url = 'http://{0}:{1}/api'.format(core.SABNZBDHOST, core.SABNZBDPORT)
|
||||||
|
url = base_url
|
||||||
|
params = {
|
||||||
|
'apikey': core.SABNZBDAPIKEY,
|
||||||
|
'mode': 'queue',
|
||||||
|
'output': 'json',
|
||||||
|
}
|
||||||
|
try:
|
||||||
|
r = requests.get(url, params=params, verify=False, timeout=(30, 120))
|
||||||
|
except requests.ConnectionError:
|
||||||
|
logger.error('Unable to open URL')
|
||||||
|
return nzoid # failure
|
||||||
|
try:
|
||||||
|
result = r.json()
|
||||||
|
clean_name = os.path.splitext(os.path.split(input_name)[1])[0]
|
||||||
|
slots.extend([(slot['nzo_id'], slot['filename']) for slot in result['queue']['slots']])
|
||||||
|
except Exception:
|
||||||
|
logger.warning('Data from SABnzbd queue could not be parsed')
|
||||||
|
params['mode'] = 'history'
|
||||||
|
try:
|
||||||
|
r = requests.get(url, params=params, verify=False, timeout=(30, 120))
|
||||||
|
except requests.ConnectionError:
|
||||||
|
logger.error('Unable to open URL')
|
||||||
|
return nzoid # failure
|
||||||
|
try:
|
||||||
|
result = r.json()
|
||||||
|
clean_name = os.path.splitext(os.path.split(input_name)[1])[0]
|
||||||
|
slots.extend([(slot['nzo_id'], slot['name']) for slot in result['history']['slots']])
|
||||||
|
except Exception:
|
||||||
|
logger.warning('Data from SABnzbd history could not be parsed')
|
||||||
|
try:
|
||||||
|
for nzo_id, name in slots:
|
||||||
|
if name in [input_name, clean_name]:
|
||||||
|
nzoid = nzo_id
|
||||||
|
logger.debug('Found nzoid: {0}'.format(nzoid))
|
||||||
|
break
|
||||||
|
except Exception:
|
||||||
|
logger.warning('Data from SABnzbd could not be parsed')
|
||||||
|
return nzoid
|
||||||
|
|
||||||
|
|
||||||
|
def report_nzb(failure_link, client_agent):
|
||||||
|
# Contact indexer site
|
||||||
|
logger.info('Sending failure notification to indexer site')
|
||||||
|
if client_agent == 'nzbget':
|
||||||
|
headers = {'User-Agent': 'NZBGet / nzbToMedia.py'}
|
||||||
|
elif client_agent == 'sabnzbd':
|
||||||
|
headers = {'User-Agent': 'SABnzbd / nzbToMedia.py'}
|
||||||
|
else:
|
||||||
|
return
|
||||||
|
try:
|
||||||
|
requests.post(failure_link, headers=headers, timeout=(30, 300))
|
||||||
|
except Exception as e:
|
||||||
|
logger.error('Unable to open URL {0} due to {1}'.format(failure_link, e))
|
||||||
|
return
|
Loading…
Add table
Add a link
Reference in a new issue