Files
fet2020/fet2020/documents/__init__.py

92 lines
2.6 KiB
Python

from etherpad_lite import EtherpadLiteClient
# from django.conf import settings
from datetime import datetime, timedelta
from django.utils.text import slugify
import urllib.parse
t = datetime.now() + timedelta(days=1)
SERVER_URL = "https://etherpad2.2020.fet.at/etherpad/"
with open("/srv/andis_test/etherpad_test2/etherpad-lite/APIKEY.txt", "r") as f:
k = f.read()
epc = EtherpadLiteClient(
base_params={'apikey': k, },
base_url=urllib.parse.urljoin("http://localhost:9003", "api")
)
a = epc.createAuthorIfNotExistsFor(name="andis", authorMapper="andis")
g = epc.createGroupIfNotExistsFor(groupMapper="fet")
def get_ep_sessionid(request):
if request.user is None:
return "NoUser", None
# server = SERVER_URL
author = epc.createAuthorIfNotExistsFor(
name=str(request.user),
authorMapper=str(request.user)
)['authorID']
expires = datetime.utcnow() + timedelta(
hours=3
)
try:
result = epc.createSession(
groupID=str(g['groupID']),
authorID=str(author),
validUntil=str(int(expires.timestamp()))
)
except Exception as e:
raise e
return None, None
return result['sessionID'], expires
def get_pad_link(padID):
return urllib.parse.urljoin(SERVER_URL, 'p/' + g["groupID"] + '$' + slugify(padID))
def add_ep_to_response(request, response):
if request.user is None:
return response
# padID = id
server = SERVER_URL
# padLink = urllib.parse.urljoin(SERVER_URL , 'p/' + g["groupID"] + '$' + padID)
author = epc.createAuthorIfNotExistsFor(
name=str(request.user),
authorMapper=str(request.user)
)['authorID']
expires = datetime.utcnow() + timedelta(hours=3)
try:
result = epc.createSession(
groupID=str(g['groupID']),
authorID=str(author),
validUntil=str(int(expires.timestamp()))
)
except Exception as e:
print(e)
return response
if ('padSessionID' in request.COOKIES):
# TODO - fix it: epclient.deleteSession(request.COOKIES['sessionID'])
response.delete_cookie('sessionID', server.hostname)
response.delete_cookie('padSessionID')
response = response.set_cookie(
'sessionID',
value=result['sessionID'],
expires=expires,
domain="https://etherpad2.2020.fet.at",
httponly=False
)
response.set_cookie(
'padSessionID',
value=result['sessionID'],
expires=expires,
httponly=False
)
return response