]> git.phdru.name Git - bookmarks_db.git/blob - get_url.py
Rename `check_urls.py` to `check_urls_db.py`
[bookmarks_db.git] / get_url.py
1 #! /usr/bin/env python3
2 """Get one file from an URL
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) 2024 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
17 def run():
18     print("Broytman get_url, Copyright (C) 2024 PhiloSoft Design")
19
20     if len(sys.argv) != 3:
21         sys.stderr.write("Usage: get_url.py URL output_file\n")
22         sys.exit(1)
23
24     from robots import robot
25     robot = robot(sys.stdout.write)
26
27     url = sys.argv[1]
28     output_fname = sys.argv[2]
29
30     bookmark = Bookmark(href=url, add_date=None)
31     bookmark.parent = None
32
33     error, redirect_code, redirect_to, headers, content = \
34         robot.get(bookmark, url, True)
35
36     if error:
37         print(error)
38
39     elif redirect_code:
40         print("Moved to: %s" % redirect_to)
41
42     else:
43         print("""\
44 Title: %s
45 URL: %s
46 LastModified: %s
47 Moved: %s
48 Size: %s
49 Md5: %s
50 IconURI: %s
51 Icon: %s
52 Charset: %s
53 """ % (
54           getattr(bookmark, 'real_title', None)
55           or getattr(bookmark, 'title', None),
56           bookmark.href,
57           strftime(bookmark.last_modified),
58           getattr(bookmark, 'moved', None),
59           getattr(bookmark, 'size', None),
60           getattr(bookmark, 'md5', None),
61           bookmark.icon_href, bookmark.icon, bookmark.charset,
62           )
63         )
64
65         with open(output_fname, 'wb') as outfile:
66             outfile.write(content)
67
68     robot.stop()
69
70
71 if __name__ == '__main__':
72     run()