def restore_session(url): hostname = urlrewrite.get_hostname(url) filename = urlrewrite.hostname_to_filename(hostname) q, wb = None, None if (io.file_exists(filename + ".web", dir=io.LOGDIR)): io.write_err("Restoring web from %s ..." % ansicolor.yellow(filename+".web")) wb = io.deserialize(filename + ".web", dir=io.LOGDIR) io.write_err(ansicolor.green("done\n")) if (io.file_exists(filename + ".session", dir=io.LOGDIR)): io.write_err("Restoring session from %s ..." % ansicolor.yellow(filename+".session")) q = io.deserialize(filename + ".session", dir=io.LOGDIR) q = recipe.overrule_records(q) io.write_err(ansicolor.green("done\n")) return q, wb
def save_session(wb, queue=None): hostname = urlrewrite.get_hostname(wb.root.url) filename = urlrewrite.hostname_to_filename(hostname) io.write_err("Saving session to %s ..." % ansicolor.yellow(filename+".{web,session}")) io.serialize(wb, filename + ".web", dir=io.LOGDIR) if queue: io.serialize(queue, filename + ".session", dir=io.LOGDIR) # only web being saved, ie. spidering complete, remove old session elif io.file_exists(filename + ".session", dir=io.LOGDIR): io.delete(filename + ".session", dir=io.LOGDIR) io.write_err(ansicolor.green("done\n"))
def display_transforms_and_prompt(self, items): clashes = 0 arrow = "->" prefix = " * " linewidth = 78 spacing = 2 def get_slot(linewidth, arrow, prefix, spacing): return (linewidth - len(arrow) - prefix - spacing) / 2 slotlong = get_slot(linewidth, arrow, len(prefix), spacing) longest_l = max(map(lambda item: len(item.f), items)) longest = max(longest_l, max(map(lambda item: len(item.g), items))) slot = longest slot_l = longest_l if longest > slotlong: slot = get_slot(linewidth, arrow, len(prefix), spacing) slot_l = slot for item in items: arrow_fmt = ansicolor.yellow(arrow) prefix_fmt = ansicolor.green(prefix) f_fmt, g_fmt = ansicolor.colordiff(item.f, item.g) if item.invalid: clashes += 1 g_fmt = ansicolor.red(item.g) if len(item.f) <= slot and len(item.g) <= slot: f_fmt = ansicolor.justify_formatted(f_fmt, string.ljust, slot_l) io.writeln("%s%s %s %s" % (prefix_fmt, f_fmt, arrow_fmt, g_fmt)) else: io.writeln("%s%s\n%s %s" % (prefix_fmt, f_fmt, arrow_fmt, g_fmt)) s_files = "%s files" % len(items) prompt = "Rename %s? [y/N] " % s_files if clashes: prompt = "%s clash(es) exist, rename %s? [y/N] " % (clashes, s_files) sys.stdout.write(prompt) inp = raw_input() return inp == "y"
def display_transforms_and_prompt(self, items): clashes = 0 arrow = "->"; prefix = " * " linewidth = 78; spacing = 2 def get_slot(linewidth, arrow, prefix, spacing): return (linewidth - len(arrow) - prefix - spacing) / 2 slotlong = get_slot(linewidth, arrow, len(prefix), spacing) longest_l = max(map(lambda item: len(item.f), items)) longest = max(longest_l, max(map(lambda item: len(item.g), items))) slot = longest; slot_l = longest_l if longest > slotlong: slot = get_slot(linewidth, arrow, len(prefix), spacing) slot_l = slot for item in items: arrow_fmt = ansicolor.yellow(arrow) prefix_fmt = ansicolor.green(prefix) f_fmt, g_fmt = ansicolor.colordiff(item.f, item.g) if item.invalid: clashes += 1 g_fmt = ansicolor.red(item.g) if len(item.f) <= slot and len(item.g) <= slot: f_fmt = ansicolor.justify_formatted(f_fmt, string.ljust, slot_l) io.writeln("%s%s %s %s" % (prefix_fmt, f_fmt, arrow_fmt, g_fmt)) else: io.writeln("%s%s\n%s %s" % (prefix_fmt, f_fmt, arrow_fmt, g_fmt)) s_files = "%s files" % len(items) prompt = "Rename %s? [y/N] " % s_files if clashes: prompt = "%s clash(es) exist, rename %s? [y/N] " % (clashes, s_files) sys.stdout.write(prompt) inp = raw_input() return inp == "y"