From a16654503dfcf5b385b160ab561f23b2c51ee8f2 Mon Sep 17 00:00:00 2001 From: MrTyton Date: Thu, 1 Jul 2021 07:16:34 -0400 Subject: [PATCH] Updates Works better on windows now --- fanficdownload.py | 23 +++++++++-------------- runner_notify.py | 8 ++++++-- 2 files changed, 15 insertions(+), 16 deletions(-) diff --git a/fanficdownload.py b/fanficdownload.py index b9f2715..124c750 100644 --- a/fanficdownload.py +++ b/fanficdownload.py @@ -7,11 +7,11 @@ from optparse import OptionParser import re from configparser import ConfigParser from tempfile import mkdtemp -from shutil import rmtree +from shutil import rmtree, copyfile import socket from time import strftime, localtime +import os import errno -from errno import ENOENT from multiprocessing import Pool @@ -73,7 +73,7 @@ def touch(fname, times=None): utime(fname, times) -url_parsers = [(re.compile('(fanfiction.net/s/\d*)/?.*'), "www."), #ffnet +url_parsers = [(re.compile('(fanfiction.net/s/\d*/?).*'), "www."), #ffnet (re.compile('(archiveofourown.org/works/\d*)/?.*'), ""), #ao3 (re.compile('(fictionpress.com/s/\d*)/?.*'), ""), #fictionpress (re.compile('(royalroad.com/fiction/\d*)/?.*'), ""), #royalroad @@ -149,15 +149,10 @@ def downloader(args): # story is not in calibre cur = url moving = 'cd "{}" && '.format(loc) - res = check_output( - 'cp personal.ini {}/personal.ini'.format(loc), - shell=True, - stderr=STDOUT, - stdin=PIPE, - ).decode('utf-8') - output += log('\tRunning: {}fanficfare -u "{}" --update-cover'.format( + copyfile("personal.ini", "{}/personal.ini".format(loc)) + output += log('\tRunning: {}python -m fanficfare.cli -u "{}" --update-cover --non-interactive'.format( moving, cur), 'BLUE', live) - res = check_output('{}fanficfare -u "{}" --update-cover'.format( + res = check_output('{}python -m fanficfare.cli -u "{}" --update-cover'.format( moving, cur), shell=True, stderr=STDOUT, stdin=PIPE).decode('utf-8') check_regexes(res) if chapter_difference.search(res) or more_chapters.search(res): @@ -167,7 +162,7 @@ def downloader(args): if line: output += log("\t\t{}".format(line), 'WARNING', live) res = check_output( - '{}fanficfare -u "{}" --force --update-cover'.format( + '{}python -m fanficfare.cli -u "{}" --force --update-cover --non-interactive'.format( moving, cur), shell=True, stderr=STDOUT, stdin=PIPE).decode('utf-8') check_regexes(res) cur = get_files(loc, '.epub', True)[0] @@ -248,8 +243,8 @@ def main(user, password, server, label, inout_file, path, live): try: with open(devnull, 'w') as nullout: call(['calibredb'], stdout=nullout, stderr=nullout) - except OSError: - if errno == ENOENT: + except OSError as e: + if e.errno == errno.ENOENT: log("Calibredb is not installed on this system. Cannot search the calibre library or update it.", 'FAIL') return diff --git a/runner_notify.py b/runner_notify.py index b1724cd..e98de11 100644 --- a/runner_notify.py +++ b/runner_notify.py @@ -1,6 +1,8 @@ from io import StringIO import re from subprocess import check_output, STDOUT +from time import sleep +import ntpath from os import utime from os.path import join @@ -63,7 +65,7 @@ def main(options): for line in buf.readlines(): r = searcher(line) if r: - story = r.group(1).strip() + story = ntpath.basename(r.group(1).strip()) stripper = True for notify in enable_notifications(options): notify.send_notification("New Fanfiction Download", story) @@ -180,4 +182,6 @@ if __name__ == "__main__": raise ValueError( "Can't strip tags from calibre library without a library location.") - main(options) + while(True): + main(options) + sleep(60)