Skip to content

Commit

Permalink
fix: Fixed the bug preventing proxy access from the OS. #129
Browse files Browse the repository at this point in the history
  • Loading branch information
bookfere committed Sep 19, 2023
1 parent cd8e9e0 commit 2474bcc
Showing 1 changed file with 18 additions and 4 deletions.
22 changes: 18 additions & 4 deletions engines/base.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import traceback

from mechanize import Browser, Request
from calibre import get_proxies
from calibre.utils.localization import lang_as_iso639_1


Expand Down Expand Up @@ -152,12 +153,24 @@ def _get_api_key(self):
return self.api_keys.pop(0)
return None

def get_result(self, url, data=None, headers={}, method='GET',
stream=False, silence=False, callback=None):
def get_browser(self):
br = Browser()
br.set_handle_robots(False)
self.proxy_uri and br.set_proxies(
{'http': self.proxy_uri, 'https': self.proxy_uri})

proxies = {}
if self.proxy_uri is not None:
proxies.update(http=self.proxy_uri, https=self.proxy_uri)
else:
http = get_proxies(False).get('http')
http and proxies.update(http=http, https=http)
https = get_proxies(False).get('https')
https and proxies.update(https=https)
proxies and br.set_proxies(proxies)

return br

def get_result(self, url, data=None, headers={}, method='GET',
stream=False, silence=False, callback=None):
# Compatible with mechanize 0.3.0 on Calibre 3.21.
try:
request = Request(
Expand All @@ -168,6 +181,7 @@ def get_result(self, url, data=None, headers={}, method='GET',
url, data, headers=headers, timeout=self.request_timeout)
try:
result = None
br = self.get_browser()
br.open(request)
response = br.response()
result = response if stream else \
Expand Down

0 comments on commit 2474bcc

Please sign in to comment.