]> git.phdru.name Git - bookmarks_db.git/blob - Robots/bkmk_rforking_sub.py
Fix(Py3): Always log in UTF-8
[bookmarks_db.git] / Robots / bkmk_rforking_sub.py
1 #! /usr/bin/env python3
2 """Subprocess for the forking robot - check URL using bkmk_rurlib robot
3
4 This file is a part of Bookmarks database and Internet robot.
5
6 """
7
8 __author__ = "Oleg Broytman <phd@phdru.name>"
9 __copyright__ = "Copyright (C) 1999-2023 PhiloSoft Design"
10 __license__ = "GNU GPL"
11
12 __all__ = []
13
14
15 import os
16 import sys
17
18 try:
19     import cPickle
20     pickle = cPickle
21 except ImportError:
22     import pickle
23
24 lib_dir = os.path.normpath(os.path.dirname(os.path.dirname(sys.argv[0])))
25 sys.path.append(lib_dir)  # for bkmk_objects.py
26
27 from subproc import RecordFile  # noqa: E402 import not at top of file
28
29
30 def run():
31     bkmk_in = RecordFile(getattr(sys.stdin, 'buffer', None) or sys.stdin)
32     bkmk_out = RecordFile(getattr(sys.stdout, 'buffer', None) or sys.stdout)
33
34     from m_lib.flog import openlog
35     log = openlog("check2.log")
36     log.outfile.reconfigure(encoding='utf-8')
37     from robots import robot
38     robot = robot(log)
39
40     while 1:
41         bookmark = pickle.loads(bkmk_in.read_record())
42         log(bookmark.href)
43         robot.check_url(bookmark)
44         bkmk_out.write_record(pickle.dumps(bookmark))
45         log.outfile.flush()
46
47     log.close()
48
49
50 if __name__ == '__main__':
51     run()