mirror of
https://github.com/onionshare/onionshare.git
synced 2025-05-25 09:30:59 -04:00
Add a CensorshipCircumventionError class that is raised if there's a requests exception connecting to the Tor API
This commit is contained in:
parent
393949a143
commit
0190f1f3be
1 changed files with 87 additions and 72 deletions
|
@ -22,6 +22,12 @@ import requests
|
|||
from .meek import MeekNotRunning
|
||||
|
||||
|
||||
class CensorshipCircumventionError(Exception):
|
||||
"""
|
||||
There was a problem connecting to the Tor CensorshipCircumvention API.
|
||||
"""
|
||||
|
||||
|
||||
class CensorshipCircumvention(object):
|
||||
"""
|
||||
Connect to the Tor Moat APIs to retrieve censorship
|
||||
|
@ -84,6 +90,7 @@ class CensorshipCircumvention(object):
|
|||
if country:
|
||||
data = {"country": country}
|
||||
|
||||
try:
|
||||
r = requests.post(
|
||||
endpoint,
|
||||
json=data,
|
||||
|
@ -109,6 +116,8 @@ class CensorshipCircumvention(object):
|
|||
return False
|
||||
|
||||
return result
|
||||
except requests.exceptions.RequestException as e:
|
||||
raise CensorshipCircumventionError(e)
|
||||
|
||||
def request_settings(self, country=False, transports=False):
|
||||
"""
|
||||
|
@ -135,6 +144,7 @@ class CensorshipCircumvention(object):
|
|||
data = {"country": country}
|
||||
if transports:
|
||||
data.append({"transports": transports})
|
||||
try:
|
||||
r = requests.post(
|
||||
endpoint,
|
||||
json=data,
|
||||
|
@ -171,6 +181,8 @@ class CensorshipCircumvention(object):
|
|||
return False
|
||||
|
||||
return result
|
||||
except requests.exceptions.RequestException as e:
|
||||
raise CensorshipCircumventionError(e)
|
||||
|
||||
def request_builtin_bridges(self):
|
||||
"""
|
||||
|
@ -179,6 +191,7 @@ class CensorshipCircumvention(object):
|
|||
if not self.api_proxies:
|
||||
return False
|
||||
endpoint = "https://bridges.torproject.org/moat/circumvention/builtin"
|
||||
try:
|
||||
r = requests.post(
|
||||
endpoint,
|
||||
headers={"Content-Type": "application/vnd.api+json"},
|
||||
|
@ -203,6 +216,8 @@ class CensorshipCircumvention(object):
|
|||
return False
|
||||
|
||||
return result
|
||||
except requests.exceptions.RequestException as e:
|
||||
raise CensorshipCircumventionError(e)
|
||||
|
||||
def save_settings(self, settings, bridge_settings):
|
||||
"""
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue