]> git.phdru.name Git - bookmarks_db.git/blob - check_url.py
Fix(Py3): Always log in UTF-8
[bookmarks_db.git] / check_url.py
1 #! /usr/bin/env python3
2 """Robot interface - check URLs from the command line
3
4 This file is a part of Bookmarks database and Internet robot.
5 """
6
7 __author__ = "Oleg Broytman <phd@phdru.name>"
8 __copyright__ = "Copyright (C) 2010-2023 PhiloSoft Design"
9 __license__ = "GNU GPL"
10
11 import sys
12
13 from bkmk_objects import Bookmark
14 from Writers.bkmk_wflad import strftime
15
16 try:
17     import httplib
18 except ImportError:
19     pass
20 else:
21     HTTP = httplib.HTTP
22
23     class MyHTTP(HTTP):
24         def _setup(self, conn):
25             HTTP._setup(self, conn)
26             self.set_debuglevel(1)
27
28     httplib.HTTP = MyHTTP
29
30
31 def run():
32     print("Broytman check_url, Copyright (C) 2010-2023 PhiloSoft Design")
33
34     if len(sys.argv) < 2:
35         sys.stderr.write("Usage: check_url.py url1 [url2...]\n")
36         sys.exit(1)
37
38     from m_lib.flog import makelog
39     log = makelog("check.log")
40     log.outfile.reconfigure(encoding='utf-8')
41     sys.stdout.reconfigure(encoding='utf-8')
42
43     from robots import robot
44     robot = robot(log)
45
46     for url in sys.argv[1:]:
47         bookmark = Bookmark(href=url, add_date=None)
48         bookmark.parent = None
49
50         rcode = robot.check_url(bookmark)
51         print("check_url: %s" % rcode)
52
53         if hasattr(bookmark, 'error'):
54             print(bookmark.error)
55
56         else:
57             print("""\
58   Title: %s
59   URL: %s
60   LastModified: %s
61   Moved: %s
62   Size: %s
63   Md5: %s
64   IconURI: %s
65   Icon: %s
66   Charset: %s
67   """ % (
68               getattr(bookmark, 'real_title', None)
69               or getattr(bookmark, 'title', None),
70               bookmark.href,
71               strftime(bookmark.last_modified),
72               getattr(bookmark, 'moved', None),
73               getattr(bookmark, 'size', None),
74               getattr(bookmark, 'md5', None),
75               bookmark.icon_href, bookmark.icon, bookmark.charset,
76               )
77             )
78
79     robot.stop()
80     log.close()
81
82
83 if __name__ == '__main__':
84     run()