]> git.phdru.name Git - bookmarks_db.git/commitdiff
Feat: Robot based on requests 5.1.0
authorOleg Broytman <phd@phdru.name>
Wed, 28 Feb 2024 21:18:38 +0000 (00:18 +0300)
committerOleg Broytman <phd@phdru.name>
Fri, 1 Mar 2024 13:14:04 +0000 (16:14 +0300)
Makefile
README
Robots/bkmk_rrequests.py [new file with mode: 0644]
bkmk-venv
doc/ANNOUNCE
doc/ChangeLog
doc/TODO
robots.py

index 63c8dfd66d28fa6dcded66cfbfd47bb73ef44bf3..6dc83ed792c64ae3aa74790e3d5fd5035d8c4bf7 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -2,11 +2,11 @@
 # This file is a part of Bookmarks database and Internet robot.
 #
 # __author__ = "Oleg Broytman <phd@phdru.name>"
-# __copyright__ = "Copyright (C) 2000-2023 PhiloSoft Design"
+# __copyright__ = "Copyright (C) 2000-2024 PhiloSoft Design"
 # __license__ = "GNU GPL"
 #
 
-VERSION=5.0.0
+VERSION=5.1.0
 
 EXAMPLE_SHELL=\
    bkmk-add bkmk-add.py bkmk-chk bkmk-publish bkmk-rsync bkmk-sort bkmk2db \
diff --git a/README b/README
index f613289978edd0ed86ad13e90cf2358acd5843cb..c061e96330fea9f71da285fb23883273f40be78e 100644 (file)
--- a/README
+++ b/README
@@ -2,7 +2,7 @@ Bookmarks database and Internet robot.
 
 Author: Oleg Broytman <phd@phdru.name>
 
-Copyright (C) 1997-2023 PhiloSoft Design.
+Copyright (C) 1997-2024 PhiloSoft Design.
 
 License: GPL. For detailed terms see doc/COPYING.
 
diff --git a/Robots/bkmk_rrequests.py b/Robots/bkmk_rrequests.py
new file mode 100644 (file)
index 0000000..d1bf98b
--- /dev/null
@@ -0,0 +1,37 @@
+"""Robot based on requests
+
+This file is a part of Bookmarks database and Internet robot.
+
+"""
+
+__author__ = "Oleg Broytman <phd@phdru.name>"
+__copyright__ = "Copyright (C) 2024 PhiloSoft Design"
+__license__ = "GNU GPL"
+
+__all__ = ['robot_requests']
+
+
+import requests
+import requests_ftp
+
+from Robots.bkmk_robot_base import robot_base
+
+requests_ftp.monkeypatch_session()
+
+
+class robot_requests(robot_base):
+    def get(self, bookmark, url, accept_charset=False):
+        try:
+            r = requests.Session().get(
+                url, timeout=self.timeout, allow_redirects=False)
+        except requests.RequestException as e:
+            error = str(e)
+            self.log('   Error: %s' % error)
+            return error, None, None, None, None
+        else:
+            if r.is_redirect:
+                return None, r.status_code, r.next.url, None, None
+            return None, None, None, r.headers, r.content
+
+    def get_ftp_welcome(self):
+        return ''  # Alas, requests_ftp doesn't store welcome message
index 751416f4f767872df4dc6a5192afd9e9b1eb9393..ad9257ba1c38441665974e98f645bad05ad31045 100644 (file)
--- a/bkmk-venv
+++ b/bkmk-venv
@@ -3,8 +3,9 @@
 
 if [ -z "$VIRTUAL_ENV" ]; then
     test -d .venv && . .venv/bin/activate || {
-        { python3 -m virtualenv .venv || python3 -m venv .venv; } &&
-        . .venv/bin/activate &&
-        pip install --compile --upgrade beautifulsoup4 lxml m_lib.full
+         { python3 -m virtualenv .venv || python3 -m venv .venv; } &&
+         . .venv/bin/activate &&
+         pip install --compile --upgrade beautifulsoup4 lxml m_lib.full \
+         requests requests-ftp
     } || exit 1
 fi
index 51796955262ae9041781425e29d01d6fb4f01752..b6775e9efd4445d0ccd974bc1c1fae1fee854178 100644 (file)
@@ -6,6 +6,10 @@ WHAT IS IT
 bookmarks.html.
 
 WHAT'S NEW
+Version 5.1.0 (2024-03-01)
+
+   Robot based on requests.
+
 Version 5.0.0 (2023-11-22)
 
    Python 3.
@@ -22,14 +26,15 @@ WHERE TO GET
      git clone https://git.phdru.name/bookmarks_db.git
      git clone  git://git.phdru.name/bookmarks_db.git
 
-   Requires: Python 2.7 or 3.4+, BeautifulSoup 4, lxml, m_lib 2.0+.
+   Requires: Python 2.7 or 3.4+, BeautifulSoup 4, lxml, m_lib 2.0+,
+   requests and requests-ftp.
 
 
 AUTHOR
    Oleg Broytman <phd@phdru.name>
 
 COPYRIGHT
-   Copyright (C) 1997-2023 PhiloSoft Design
+   Copyright (C) 1997-2024 PhiloSoft Design
 
 LICENSE
    GPL
index 6b8d305a8f835f80931c074ebb91742dfb893fc2..9267bae315c8e5369541567184cd3424c45e83dd 100644 (file)
@@ -1,3 +1,7 @@
+Version 5.1.0 (2024-03-01)
+
+   Robot based on requests.
+
 Version 5.0.0 (2023-11-22)
 
    Python 3.
index f2573b336738b775fcc5feebc27dc365ce97bc99..e294cbcd9b7c8a1fb911f66a8971d317482c86fa 100644 (file)
--- a/doc/TODO
+++ b/doc/TODO
@@ -1,5 +1,3 @@
-Robot based on requests.
-
 Robot based on PycURL.
 
 A program to publish bookmarks with icons.
index 1571d58e2af9b3b63c3e3ed1f0cd5bd7d1651e07..70513f21717df13fde291be3a8ed484e4f93b11c 100644 (file)
--- a/robots.py
+++ b/robots.py
@@ -5,7 +5,7 @@ This file is a part of Bookmarks database and Internet robot.
 """
 
 __author__ = "Oleg Broytman <phd@phdru.name>"
-__copyright__ = "Copyright (C) 1997-2023 PhiloSoft Design"
+__copyright__ = "Copyright (C) 1997-2024 PhiloSoft Design"
 __license__ = "GNU GPL"
 
 __all__ = ['import_robot', 'robot']
@@ -15,7 +15,7 @@ import sys
 from os import environ
 from bkmk_objects import parse_params, set_params
 
-robot_name, robot_params = parse_params(environ.get("BKMK_ROBOT", "forking"))
+robot_name, robot_params = parse_params(environ.get("BKMK_ROBOT", "requests"))
 
 
 def import_robot(robot_name):