This commit is contained in:
LooseSeal2
2019-07-19 11:17:39 -07:00
parent b116bdc9b6
commit c66f552ec2
16 changed files with 281 additions and 429 deletions

View File

@@ -12,15 +12,7 @@
### NZBGET SCAN SCRIPT ###
##############################################################################
import os
import zipfile
import tarfile
import gzip
import pickle
import datetime
import re
import struct
import locale
import os, zipfile, tarfile, gzip, pickle, datetime, re, struct, locale
import rarfile.rarfile as rarfile
from gzip import FEXTRA, FNAME
@@ -102,11 +94,9 @@ else:
dupescore = None
dupemode = None
tmp_zipinfo = os.path.join(os.environ.get(
'NZBOP_TEMPDIR'), r'nzbget\unzip_scan\info')
tmp_zipinfo = os.path.join(os.environ.get('NZBOP_TEMPDIR'), r'nzbget\unzip_scan\info')
nzb_list = []
def read_gzip_info(gzipfile):
gf = gzipfile.fileobj
pos = gf.tell()
@@ -138,14 +128,13 @@ def read_gzip_info(gzipfile):
fname = []
while True:
s = gf.read(1)
if not s or s == '\000':
if not s or s=='\000':
break
fname.append(s)
gf.seek(pos)
return ''.join(fname), size
def save_obj(obj, name):
tp = os.path.dirname(name)
if not os.path.exists(tp):
@@ -160,7 +149,6 @@ def save_obj(obj, name):
except:
print "Error saving: " + name
def load_obj(name):
if os.path.isfile(name):
try:
@@ -172,7 +160,6 @@ def load_obj(name):
else:
return None
def save_nzb_list():
if nzb_list:
save_obj(nzb_list, tmp_zipinfo)
@@ -183,7 +170,6 @@ def save_nzb_list():
except:
print "Error deleting " + tmp_zipinfo
def load_nzb_list():
global nzb_list
nzb_list = load_obj(tmp_zipinfo)
@@ -194,49 +180,39 @@ def load_nzb_list():
if nzb_list is not None and o_l != len(nzb_list):
save_nzb_list()
def get_files(zf):
zi = zf.infolist()
zi[:] = [el for el in zi if os.path.splitext(
el.filename)[1].lower() == '.nzb']
zi[:] = [el for el in zi if os.path.splitext(el.filename)[1].lower() == '.nzb']
return zi
def get_tar_files(tf):
ti = tf.getmembers()
ti[:] = [el for el in ti if el.isfile() and os.path.splitext(el.name)
[1].lower() == '.nzb']
ti[:] = [el for el in ti if el.isfile() and os.path.splitext(el.name)[1].lower() == '.nzb']
return ti
def get_rar_files(rf):
ri = rf.infolist()
ri[:] = [el for el in ri if os.path.splitext(
el.filename)[1].lower() == '.nzb']
ri[:] = [el for el in ri if os.path.splitext(el.filename)[1].lower() == '.nzb']
return ri
def remove_filename():
try:
os.unlink(filename)
except:
print "Error deleting " + filename
if ext == '.zip':
load_nzb_list()
zipf = zipfile.ZipFile(filename, mode='r')
zf = get_files(zipf)
if zf:
zipf.extractall(path=dir, members=zf)
zipf.extractall(path = dir, members = zf)
now = datetime.datetime.now()
for z in zf:
if nzb_list:
nzb_list.append([z.filename, cat, prio, top,
pause, dupekey, dupescore, dupemode, now])
nzb_list.append([z.filename, cat, prio, top, pause, dupekey, dupescore, dupemode, now])
else:
nzb_list = [[z.filename, cat, prio, top,
pause, dupekey, dupescore, dupemode, now]]
nzb_list = [[z.filename, cat, prio, top, pause, dupekey, dupescore, dupemode, now]]
save_nzb_list()
zipf.close()
@@ -247,15 +223,13 @@ elif ext in ['.tar.gz', '.tar', '.tgz']:
tarf = tarfile.open(filename, mode='r')
tf = get_tar_files(tarf)
if tf:
tarf.extractall(path=dir, members=tf)
tarf.extractall(path = dir, members = tf)
now = datetime.datetime.now()
for z in tf:
if nzb_list:
nzb_list.append([z.name, cat, prio, top, pause,
dupekey, dupescore, dupemode, now])
nzb_list.append([z.name, cat, prio, top, pause, dupekey, dupescore, dupemode, now])
else:
nzb_list = [[z.name, cat, prio, top, pause,
dupekey, dupescore, dupemode, now]]
nzb_list = [[z.name, cat, prio, top, pause, dupekey, dupescore, dupemode, now]]
save_nzb_list()
tarf.close()
@@ -263,7 +237,7 @@ elif ext in ['.tar.gz', '.tar', '.tgz']:
elif ext == '.gz':
load_nzb_list()
gzf = gzip.open(filename, mode='rb')
gzf =gzip.open(filename, mode='rb')
out_filename, size = read_gzip_info(gzf)
if out_filename and os.path.splitext(out_filename)[1].lower() == '.nzb':
with open(os.path.join(os.path.dirname(filename), out_filename), 'wb') as outf:
@@ -273,11 +247,9 @@ elif ext == '.gz':
if gzf and out_filename:
now = datetime.datetime.now()
if nzb_list:
nzb_list.append([os.path.basename(
out_filename), cat, prio, top, pause, dupekey, dupescore, dupemode, now])
nzb_list.append([os.path.basename(out_filename), cat, prio, top, pause, dupekey, dupescore, dupemode, now])
else:
nzb_list = [[os.path.basename(
out_filename), cat, prio, top, pause, dupekey, dupescore, dupemode, now]]
nzb_list = [[os.path.basename(out_filename), cat, prio, top, pause, dupekey, dupescore, dupemode, now]]
save_nzb_list()
gzf.close()
@@ -288,15 +260,13 @@ elif ext == '.rar':
rarf = rarfile.RarFile(filename, mode='r')
rf = get_files(rarf)
if rf:
rarf.extractall(path=dir, members=rf)
rarf.extractall(path = dir, members = rf)
now = datetime.datetime.now()
for r in rf:
if nzb_list:
nzb_list.append([r.filename, cat, prio, top,
pause, dupekey, dupescore, dupemode, now])
nzb_list.append([r.filename, cat, prio, top, pause, dupekey, dupescore, dupemode, now])
else:
nzb_list = [[r.filename, cat, prio, top,
pause, dupekey, dupescore, dupemode, now]]
nzb_list = [[r.filename, cat, prio, top, pause, dupekey, dupescore, dupemode, now]]
save_nzb_list()
rarf.close()