X-Git-Url: https://git.phdru.name/?a=blobdiff_plain;f=check_urls.py;h=74f24cc7e8eb3eaadf083a27d3423b69779bfed1;hb=acc701373334d53eda5af6f9c2b34dac243a06a2;hp=75f31559b89ab3b12216d0e93b7b3eadf8535e0f;hpb=9edef5a570ea28f7c06d8d92fdd70afe0ea86809;p=bookmarks_db.git diff --git a/check_urls.py b/check_urls.py index 75f3155..74f24cc 100755 --- a/check_urls.py +++ b/check_urls.py @@ -1,13 +1,17 @@ #! /usr/bin/env python -""" - Robot interface - check URLs from bookmarks database +"""Robot interface - check URLs from bookmarks database - Written by BroytMann, Mar 2000 - Aug 2002. Copyright (C) 2000-2002 PhiloSoft Design +This file is a part of Bookmarks database and Internet robot. """ +__version__ = "$Revision$"[11:-2] +__revision__ = "$Id$"[5:-2] +__date__ = "$Date$"[7:-2] +__author__ = "Oleg Broytman " +__copyright__ = "Copyright (C) 2000-2011 PhiloSoft Design" +__license__ = "GNU GPL" -import sys, os, urllib, tempfile -tempfname = "check_urls" + tempfile.gettempprefix() + "tmp" +import sys, os def run(): @@ -31,7 +35,7 @@ def run(): pass if report_stats: - print "BroytMann check_urls, Copyright (C) 1997-2002 PhiloSoft Design" + print "Broytman check_urls, Copyright (C) 1997-2010 PhiloSoft Design" if args: sys.stderr.write("check_urls: too many arguments\n") @@ -63,14 +67,14 @@ def run(): storage = storage() from robots import robot - robot = robot(tempfname, log) + robot = robot(log) if report_stats: sys.stdout.write("Loading %s: " % storage.filename) sys.stdout.flush() root_folder = storage.load() - from bkmk_objects import make_linear + from bkmk_objects import make_linear, break_tree make_linear(root_folder) objects = len(root_folder.linear) @@ -103,27 +107,32 @@ def run(): object_count = object_count + 1 if object.isBookmark: + href = object.href + if (href.startswith('place:') # Firefox SmartBookmarks + or '%s' in href): # Bookmark with keyword + log("Skipped %s" % href) + continue + if only_errors: if hasattr(object, "error"): delattr(object, "error") else: continue - if checked.has_key(object.href): - log("Already checked %s" % object.href) - old_object = root_folder.linear[checked[object.href]] + if checked.has_key(href): + log("Already checked %s" % href) + old_object = root_folder.linear[checked[href]] for attr_name in ("last_visit", "last_modified", "error", "no_error", "moved", "size", "md5", "real_title", - "last_tested", "test_time"): + "last_tested", "test_time", "icon", "charset"): if hasattr(old_object, attr_name): setattr(object, attr_name, getattr(old_object, attr_name)) else: - url_type, url_rest = urllib.splittype(object.href) - log("Checking %s:%s" % (url_type, url_rest)) - rcode = robot.check_url(object, url_type, url_rest) + log("Checking %s" % href) + rcode = robot.check_url(object) if rcode: - checked[object.href] = object_no + checked[href] = object_no urls_no = urls_no + 1 try: size = size + int(object.size) @@ -143,17 +152,13 @@ def run(): print urls_no, "URLs checked" print size, "bytes eaten" + break_tree(root_folder.linear) storage.store(root_folder) if rcode: log("check_urls finished ok") log.close() - try: - os.unlink(tempfname) - except os.error: - pass - if __name__ == '__main__': run()