mirror of
https://github.com/NNTmux/newznab-tmux.git
synced 2026-08-29 17:28:55 +00:00
Move python scripts out of tmux folder into update_scripts folder, adjust other parts of newznab-tmux to accommodate the change.
This commit is contained in:
@@ -0,0 +1,114 @@
|
||||
#!/usr/bin/env python
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
from __future__ import print_function
|
||||
import sys, os, time
|
||||
import threading
|
||||
try:
|
||||
import queue
|
||||
except ImportError:
|
||||
import Queue as queue
|
||||
import subprocess
|
||||
import string
|
||||
import signal
|
||||
import datetime
|
||||
import lib.info as info
|
||||
from lib.info import bcolors
|
||||
conf = info.readConfig()
|
||||
cur = info.connect()
|
||||
start_time = time.time()
|
||||
pathname = os.path.abspath(os.path.dirname(sys.argv[0]))
|
||||
|
||||
print(bcolors.HEADER + "\nNZB Import Threaded Started at {}".format(datetime.datetime.now().strftime("%H:%M:%S")) + bcolors.ENDC)
|
||||
|
||||
#get values from db
|
||||
cur[0].execute("SELECT value FROM tmux WHERE setting = 'import'")
|
||||
use_true = cur[0].fetchone()
|
||||
cur[0].execute("SELECT (SELECT value FROM settings WHERE setting = 'nzbthreads') AS a, (SELECT value FROM tmux WHERE setting = 'nzbs') AS b")
|
||||
dbgrab = cur[0].fetchall()
|
||||
run_threads = int(dbgrab[0][0])
|
||||
nzbs = dbgrab[0][1]
|
||||
|
||||
if int(use_true[0]) == 2 or ( len(sys.argv) >= 2 and sys.argv[1] == "true"):
|
||||
print(bcolors.HEADER + "We will be using filename as searchname" + bcolors.ENDC)
|
||||
print(bcolors.HEADER + "Sorting Folders in {}, be patient.".format(nzbs) + bcolors.ENDC)
|
||||
datas = [name for name in os.listdir(nzbs) if os.path.isdir(os.path.join(nzbs, name))]
|
||||
|
||||
#close connection to mysql
|
||||
info.disconnect(cur[0], cur[1])
|
||||
|
||||
my_queue = queue.Queue()
|
||||
time_of_last_run = time.time()
|
||||
|
||||
class queue_runner(threading.Thread):
|
||||
def __init__(self, my_queue):
|
||||
threading.Thread.__init__(self)
|
||||
self.my_queue = my_queue
|
||||
|
||||
def run(self):
|
||||
global time_of_last_run
|
||||
|
||||
while True:
|
||||
try:
|
||||
my_id = self.my_queue.get(True, 1)
|
||||
except:
|
||||
if time.time() - time_of_last_run > 3:
|
||||
return
|
||||
else:
|
||||
if my_id:
|
||||
time_of_last_run = time.time()
|
||||
subprocess.call(["php", pathname+"/lib/nzb-import.php", ""+my_id])
|
||||
time.sleep(.03)
|
||||
self.my_queue.task_done()
|
||||
|
||||
def main(args):
|
||||
global time_of_last_run
|
||||
time_of_last_run = time.time()
|
||||
|
||||
if len(datas) != 0:
|
||||
print(bcolors.HEADER + "We will be using a max of {} threads, a queue of {} folders".format(run_threads, "{:,}".format(len(datas))) + bcolors.ENDC)
|
||||
else:
|
||||
print(bcolors.HEADER + "We will be using a max of {} threads, a queue of 1 folder".format(run_threads) + bcolors.ENDC)
|
||||
if int(use_true[0]) == 2 or ( len(sys.argv) >= 2 and sys.argv[1] == "true"):
|
||||
print(bcolors.HEADER + "We will be using filename as searchname" + bcolors.ENDC)
|
||||
time.sleep(2)
|
||||
|
||||
def signal_handler(signal, frame):
|
||||
sys.exit(0)
|
||||
|
||||
signal.signal(signal.SIGINT, signal_handler)
|
||||
|
||||
if True:
|
||||
#spawn a pool of place worker threads
|
||||
for i in range(run_threads):
|
||||
p = queue_runner(my_queue)
|
||||
p.setDaemon(False)
|
||||
p.start()
|
||||
|
||||
#now load some arbitrary jobs into the queue
|
||||
if len(datas) != 0:
|
||||
if (int(use_true[0]) == 0 or int(use_true[0]) == 1) and len(sys.argv) == 1:
|
||||
for gnames in datas:
|
||||
time.sleep(.03)
|
||||
my_queue.put(os.path.join(nzbs,gnames))
|
||||
elif int(use_true[0]) == 2 or ( len(sys.argv) >= 2 and sys.argv[1] == "true"):
|
||||
for gnames in datas:
|
||||
time.sleep(.03)
|
||||
my_queue.put("%s %s" % (os.path.join(nzbs,gnames), "true"))
|
||||
if len(datas) == 0:
|
||||
if (int(use_true[0]) == 0 or int(use_true[0]) == 1) and len(sys.argv) == 1:
|
||||
time.sleep(.03)
|
||||
my_queue.put(nzbs)
|
||||
elif int(use_true[0]) == 2 or ( len(sys.argv) >= 2 and sys.argv[1] == "true"):
|
||||
time.sleep(.03)
|
||||
my_queue.put("%s %s" % (nzbs, "true"))
|
||||
|
||||
my_queue.join()
|
||||
|
||||
final = "true"
|
||||
subprocess.call(["php", pathname+"/../../testing/DB/populate_nzb_guid.php", ""+final])
|
||||
print(bcolors.HEADER + "\nNZB Import Threaded Completed at {}".format(datetime.datetime.now().strftime("%H:%M:%S")) + bcolors.ENDC)
|
||||
print(bcolors.HEADER + "Running time: {}\n\n".format(str(datetime.timedelta(seconds=time.time() - start_time))) + bcolors.ENDC)
|
||||
|
||||
if __name__ == '__main__':
|
||||
main(sys.argv[1:])
|
||||
Reference in New Issue
Block a user