forked from indymedia/epicyon
flake8 format
parent
bfe37d5ae7
commit
d652485f8a
60
session.py
60
session.py
|
@ -7,13 +7,13 @@ __email__="bob@freedombone.net"
|
|||
__status__ = "Production"
|
||||
|
||||
import os
|
||||
import sys
|
||||
import requests
|
||||
from utils import urlPermitted
|
||||
import json
|
||||
|
||||
baseDirectory = None
|
||||
|
||||
|
||||
def createSession(onionRoute: bool):
|
||||
session = requests.session()
|
||||
if onionRoute:
|
||||
|
@ -22,8 +22,10 @@ def createSession(onionRoute: bool):
|
|||
session.proxies['https'] = 'socks5h://localhost:9050'
|
||||
return session
|
||||
|
||||
def getJson(session,url: str,headers: {},params: {}, \
|
||||
version='1.0.0',httpPrefix='https',domain='testdomain') -> {}:
|
||||
|
||||
def getJson(session, url: str, headers: {}, params: {},
|
||||
version='1.0.0', httpPrefix='https',
|
||||
domain='testdomain') -> {}:
|
||||
if not isinstance(url, str):
|
||||
print('url: ' + str(url))
|
||||
print('ERROR: getJson url should be a string')
|
||||
|
@ -36,11 +38,10 @@ def getJson(session,url: str,headers: {},params: {}, \
|
|||
sessionParams = params
|
||||
sessionHeaders['User-Agent'] = 'Epicyon/' + version
|
||||
if domain:
|
||||
sessionHeaders['User-Agent']+='; +'+httpPrefix+'://'+domain+'/'
|
||||
#"Mozilla/5.0 (Linux; Android 5.1.1; Nexus 5)"
|
||||
sessionHeaders['User-Agent'] += \
|
||||
'; +' + httpPrefix + '://' + domain + '/'
|
||||
if not session:
|
||||
print('WARN: no session specified for getJson')
|
||||
#session.cookies.clear()
|
||||
try:
|
||||
result = session.get(url, headers=sessionHeaders, params=sessionParams)
|
||||
return result.json()
|
||||
|
@ -52,12 +53,12 @@ def getJson(session,url: str,headers: {},params: {}, \
|
|||
print(e)
|
||||
return None
|
||||
|
||||
def postJson(session,postJsonObject: {},federationList: [], \
|
||||
|
||||
def postJson(session, postJsonObject: {}, federationList: [],
|
||||
inboxUrl: str, headers: {}, capability: str) -> str:
|
||||
"""Post a json message to the inbox of another person
|
||||
Supplying a capability, such as "inbox:write"
|
||||
"""
|
||||
|
||||
# always allow capability requests
|
||||
if not capability.startswith('cap'):
|
||||
# check that we are posting to a permitted domain
|
||||
|
@ -66,18 +67,19 @@ def postJson(session,postJsonObject: {},federationList: [], \
|
|||
return None
|
||||
|
||||
postResult = \
|
||||
session.post(url=inboxUrl, \
|
||||
data=json.dumps(postJsonObject), \
|
||||
session.post(url=inboxUrl,
|
||||
data=json.dumps(postJsonObject),
|
||||
headers=headers)
|
||||
if postResult:
|
||||
return postResult.text
|
||||
return None
|
||||
|
||||
def postJsonString(session,postJsonStr: str, \
|
||||
federationList: [], \
|
||||
inboxUrl: str, \
|
||||
headers: {}, \
|
||||
capability: str, \
|
||||
|
||||
def postJsonString(session, postJsonStr: str,
|
||||
federationList: [],
|
||||
inboxUrl: str,
|
||||
headers: {},
|
||||
capability: str,
|
||||
debug: bool) -> (bool, bool):
|
||||
"""Post a json message string to the inbox of another person
|
||||
Supplying a capability, such as "inbox:write"
|
||||
|
@ -86,7 +88,6 @@ def postJsonString(session,postJsonStr: str, \
|
|||
conversions between string and json format don't invalidate
|
||||
the message body digest of http signatures
|
||||
"""
|
||||
|
||||
# always allow capability requests
|
||||
if not capability.startswith('cap'):
|
||||
# check that we are posting to a permitted domain
|
||||
|
@ -97,22 +98,22 @@ def postJsonString(session,postJsonStr: str, \
|
|||
postResult = \
|
||||
session.post(url=inboxUrl, data=postJsonStr, headers=headers)
|
||||
if postResult.status_code < 200 or postResult.status_code > 202:
|
||||
#if postResult.status_code==400:
|
||||
# headers['content-type']='application/ld+json'
|
||||
# postResult=session.post(url=inboxUrl,data=postJsonStr,headers=headers)
|
||||
# if not (postResult.status_code<200 or postResult.status_code>202):
|
||||
# return True
|
||||
if postResult.status_code>=400 and postResult.status_code<=405 and \
|
||||
if postResult.status_code >= 400 and \
|
||||
postResult.status_code <= 405 and \
|
||||
postResult.status_code != 404:
|
||||
print('WARN: >>> Post to '+inboxUrl+' is unauthorized. Code '+str(postResult.status_code)+' <<<')
|
||||
print('WARN: >>> Post to ' + inboxUrl +
|
||||
' is unauthorized. Code ' +
|
||||
str(postResult.status_code) + ' <<<')
|
||||
return False, True
|
||||
else:
|
||||
print('WARN: Failed to post to '+inboxUrl+' with headers '+str(headers))
|
||||
print('WARN: Failed to post to ' + inboxUrl +
|
||||
' with headers ' + str(headers))
|
||||
print('status code ' + str(postResult.status_code))
|
||||
return False, False
|
||||
return True, False
|
||||
|
||||
def postImage(session,attachImageFilename: str,federationList: [], \
|
||||
|
||||
def postImage(session, attachImageFilename: str, federationList: [],
|
||||
inboxUrl: str, headers: {}, capability: str) -> str:
|
||||
"""Post an image to the inbox of another person or outbox via c2s
|
||||
Supplying a capability, such as "inbox:write"
|
||||
|
@ -124,9 +125,9 @@ def postImage(session,attachImageFilename: str,federationList: [], \
|
|||
print('postJson: ' + inboxUrl + ' not permitted')
|
||||
return None
|
||||
|
||||
if not (attachImageFilename.endswith('.jpg') or \
|
||||
attachImageFilename.endswith('.jpeg') or \
|
||||
attachImageFilename.endswith('.png') or \
|
||||
if not (attachImageFilename.endswith('.jpg') or
|
||||
attachImageFilename.endswith('.jpeg') or
|
||||
attachImageFilename.endswith('.png') or
|
||||
attachImageFilename.endswith('.gif')):
|
||||
print('Image must be png, jpg, or gif')
|
||||
return None
|
||||
|
@ -142,7 +143,8 @@ def postImage(session,attachImageFilename: str,federationList: [], \
|
|||
|
||||
with open(attachImageFilename, 'rb') as avFile:
|
||||
mediaBinary = avFile.read()
|
||||
postResult=session.post(url=inboxUrl,data=mediaBinary,headers=headers)
|
||||
postResult = session.post(url=inboxUrl, data=mediaBinary,
|
||||
headers=headers)
|
||||
if postResult:
|
||||
return postResult.text
|
||||
return None
|
||||
|
|
Loading…
Reference in New Issue