X-Git-Url: https://git.phdru.name/bookmarks_db.git/?a=blobdiff_plain;f=Robots%2Fbkmk_rrequests.py;h=24b09d6803ef763b24406267599f61bb2df73911;hb=ed7127ea175cab12642244ebd2d86276adcb2e25;hp=d1bf98bfca2e9b5c758cbf762d51697922f614c6;hpb=08ec9479b05db7a2d40cc58f3a39256dfaf9ff30;p=bookmarks_db.git diff --git a/Robots/bkmk_rrequests.py b/Robots/bkmk_rrequests.py index d1bf98b..24b09d6 100644 --- a/Robots/bkmk_rrequests.py +++ b/Robots/bkmk_rrequests.py @@ -20,6 +20,10 @@ requests_ftp.monkeypatch_session() class robot_requests(robot_base): + # Pass proxy from the environment like this: + # BKMK_ROBOT=requests:proxy=socks5h%3a//localhost%3a1080 + proxy = None + def get(self, bookmark, url, accept_charset=False): try: r = requests.Session().get( @@ -27,11 +31,21 @@ class robot_requests(robot_base): 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 + if self.proxy: + error = None + self.log(' Retrying with the proxy...') + try: + r = requests.get( + url, timeout=self.timeout, allow_redirects=False, + proxies={'http': self.proxy, 'https': self.proxy}) + except requests.RequestException as e: + error = str(e) + self.log(' Proxy error: %s' % error) + if error is not None: + return error, None, None, None, None + 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