mirror of
https://github.com/StevenBlack/hosts.git
synced 2025-03-14 10:36:53 +00:00
Implement error handling and improve documentation in get_file_by_url
This commit is contained in:
@ -1474,19 +1474,37 @@ def get_file_by_url(url, params=None, **kwargs):
|
||||
|
||||
Parameters
|
||||
----------
|
||||
url
|
||||
params
|
||||
kwargs
|
||||
url : str or bytes
|
||||
URL for the new Request object.
|
||||
params :
|
||||
Dictionary, list of tuples or bytes to send in the query string for the Request.
|
||||
kwargs :
|
||||
Optional arguments that request takes.
|
||||
|
||||
Returns
|
||||
-------
|
||||
content: str
|
||||
url_data : str or None
|
||||
The data retrieved at that URL from the file. Returns None if the
|
||||
attempted retrieval is unsuccessful.
|
||||
"""
|
||||
|
||||
req = requests.get(url=url, params=params, **kwargs)
|
||||
try:
|
||||
req = requests.get(url=url, params=params, **kwargs)
|
||||
except requests.exceptions.RequestException:
|
||||
print("Error retrieving data from {}".format(url))
|
||||
return None
|
||||
|
||||
req.encoding = req.apparent_encoding
|
||||
res_text = "\n".join([domain_to_idna(line) for line in req.text.split("\n")])
|
||||
return res_text
|
||||
|
||||
try:
|
||||
res_text = req.text
|
||||
except UnicodeDecodeError:
|
||||
print("Decoding error when retrieving data from {}".format(url))
|
||||
return None
|
||||
|
||||
res = "\n".join([domain_to_idna(line) for line in res_text.split("\n")])
|
||||
|
||||
return res
|
||||
|
||||
|
||||
def write_data(f, data):
|
||||
|
Reference in New Issue
Block a user