From c81ffda57512dc90e86eed3840c9a837d94b48d2 Mon Sep 17 00:00:00 2001 From: Sven Slootweg Date: Sun, 30 Jun 2013 15:37:04 +0200 Subject: [PATCH] Finish main script --- main.py | 34 +++++++++++++++++++++++++++++++--- shared.py | 2 +- 2 files changed, 32 insertions(+), 4 deletions(-) diff --git a/main.py b/main.py index 8a986bb..d7d0032 100644 --- a/main.py +++ b/main.py @@ -1,4 +1,4 @@ -import re, oursql, requests, sys, json, shlex, argparse +import re, oursql, requests, sys, json, shlex, argparse, os from sources.nzbindex import NzbindexSpider from sources.binsearch import BinsearchSpider @@ -83,8 +83,25 @@ elif mode == "list": sys.stdout.write("Found %d releases.\n" % len(releases)) +downloaded = 0 +skipped = 0 +errors = 0 +notfound = 0 + for release in releases: release_name, target_dir = release + target_path = os.path.join(target_dir, "%s.nzb" % release_name) + + if os.path.exists(target_path): + # This NZB was already downloaded. + skipped += 1 + continue + + try: + os.makedirs(target_dir) + except OSError, e: + # Target directory already exists + pass try: spider = NzbindexSpider() @@ -95,8 +112,19 @@ for release in releases: results = spider.find(release_name) except NotFoundException, e: sys.stderr.write("Could not find release %s\n" % release_name) + notfound += 1 continue # Process result - for result in results: - result.show() + result = results[1] + + try: + result.download(target_path) + except Exception, e: + errors += 1 + sys.stderr.write("Downloading NZB for %s failed: %s\n" % (release_name, repr(e))) + + sys.stdout.write("Downloaded NZB for %s.\n" % release_name) + downloaded += 1 + +sys.stdout.write("Finished. %d downloaded, %d skipped, %d errors and %d not found.\n" % (downloaded, skipped, errors, notfound)) diff --git a/shared.py b/shared.py index 6611001..86af281 100644 --- a/shared.py +++ b/shared.py @@ -21,7 +21,7 @@ class ModifiedSession(requests.Session): requests.Session.__init__(self, *args, **kwargs) self.headers['user-agent'] = random.choice(user_agents) -def download_file(self, request, target): +def download_file(request, target): if request.status_code == 200: f = open(target, "wb")