Allow edit via proxy to avoid global IP block
This commit is contained in:
parent
e903c4092f
commit
6194874380
|
@ -2,6 +2,13 @@ from flask import current_app, session
|
||||||
from requests_oauthlib import OAuth1Session
|
from requests_oauthlib import OAuth1Session
|
||||||
from urllib.parse import urlencode
|
from urllib.parse import urlencode
|
||||||
|
|
||||||
|
def get_edit_proxy():
|
||||||
|
edit_proxy = current_app.config.get('EDIT_PROXY')
|
||||||
|
if edit_proxy:
|
||||||
|
return {'http': edit_proxy, 'https': edit_proxy}
|
||||||
|
else:
|
||||||
|
return {}
|
||||||
|
|
||||||
def api_post_request(params):
|
def api_post_request(params):
|
||||||
app = current_app
|
app = current_app
|
||||||
url = 'https://www.wikidata.org/w/api.php'
|
url = 'https://www.wikidata.org/w/api.php'
|
||||||
|
@ -11,7 +18,8 @@ def api_post_request(params):
|
||||||
client_secret=client_secret,
|
client_secret=client_secret,
|
||||||
resource_owner_key=session['owner_key'],
|
resource_owner_key=session['owner_key'],
|
||||||
resource_owner_secret=session['owner_secret'])
|
resource_owner_secret=session['owner_secret'])
|
||||||
return oauth.post(url, data=params, timeout=4)
|
proxies = get_edit_proxy()
|
||||||
|
return oauth.post(url, data=params, timeout=4, proxies=proxies)
|
||||||
|
|
||||||
def raw_request(params):
|
def raw_request(params):
|
||||||
app = current_app
|
app = current_app
|
||||||
|
@ -22,7 +30,8 @@ def raw_request(params):
|
||||||
client_secret=client_secret,
|
client_secret=client_secret,
|
||||||
resource_owner_key=session['owner_key'],
|
resource_owner_key=session['owner_key'],
|
||||||
resource_owner_secret=session['owner_secret'])
|
resource_owner_secret=session['owner_secret'])
|
||||||
return oauth.get(url, timeout=4)
|
proxies = get_edit_proxy()
|
||||||
|
return oauth.get(url, timeout=4, proxies=proxies)
|
||||||
|
|
||||||
def api_request(params):
|
def api_request(params):
|
||||||
return raw_request(params).json()
|
return raw_request(params).json()
|
||||||
|
|
Loading…
Reference in a new issue