2024-12-22 00:08:08 -05:00
|
|
|
from datetime import datetime
|
|
|
|
|
|
|
|
from django.core.handlers.wsgi import WSGIRequest
|
|
|
|
from django.http import HttpResponse, HttpResponseRedirect
|
|
|
|
|
2024-12-23 13:21:56 -05:00
|
|
|
from tmessage.models import tMMessage
|
|
|
|
|
|
|
|
from .helper import (get_user_object, get_username, render_template,
|
|
|
|
username_exists)
|
2024-12-22 00:08:08 -05:00
|
|
|
|
|
|
|
|
|
|
|
def auth(request: WSGIRequest) -> HttpResponseRedirect:
|
|
|
|
resp = HttpResponseRedirect("/")
|
|
|
|
if "remove" in request.GET:
|
2024-12-23 22:38:49 -05:00
|
|
|
resp.set_cookie("session_id", "", max_age=0, expires=datetime(0, 0, 0))
|
2024-12-22 00:08:08 -05:00
|
|
|
else:
|
2024-12-23 22:38:49 -05:00
|
|
|
resp.set_cookie("session_id", request.GET.get("sessionid") or "")
|
2024-12-22 00:08:08 -05:00
|
|
|
|
|
|
|
return resp
|
|
|
|
|
|
|
|
def index(request: WSGIRequest) -> HttpResponse:
|
2024-12-23 13:21:56 -05:00
|
|
|
username = get_username(request)
|
|
|
|
if username:
|
|
|
|
user = get_user_object(username, i_promise_this_user_exists=True)
|
|
|
|
|
|
|
|
return render_template(
|
|
|
|
request, "index.html",
|
|
|
|
username=username,
|
|
|
|
new=user.received.filter(response=None).count() # type: ignore
|
|
|
|
)
|
2024-12-22 00:08:08 -05:00
|
|
|
|
|
|
|
return render_template(
|
|
|
|
request, "noauth/index.html"
|
|
|
|
)
|
|
|
|
|
|
|
|
def profile(request: WSGIRequest, username: str) -> HttpResponse:
|
|
|
|
...
|
|
|
|
|
|
|
|
def message(request: WSGIRequest, username: str) -> HttpResponse:
|
2024-12-23 13:21:56 -05:00
|
|
|
if not username_exists(username):
|
|
|
|
return render_template(
|
|
|
|
request, "404.html"
|
|
|
|
)
|
|
|
|
|
|
|
|
error = ""
|
|
|
|
if request.method == "POST":
|
|
|
|
content = (request.POST.get("message") or "").strip()
|
|
|
|
if len(content) > 10000:
|
|
|
|
error = "Invalid message"
|
|
|
|
|
|
|
|
else:
|
|
|
|
self_username = get_username(request)
|
2024-12-22 00:08:08 -05:00
|
|
|
|
2024-12-23 13:21:56 -05:00
|
|
|
if self_username is None:
|
|
|
|
anonymous = True
|
|
|
|
u_from = None
|
|
|
|
else:
|
|
|
|
anonymous = request.POST.get("anonymous") is not None
|
|
|
|
u_from = get_user_object(self_username, i_promise_this_user_exists=True)
|
|
|
|
|
|
|
|
tMMessage.objects.create(
|
|
|
|
content=content,
|
|
|
|
response=None,
|
|
|
|
anonymous=anonymous,
|
|
|
|
u_to=get_user_object(username, i_promise_this_user_exists=True),
|
|
|
|
u_from=u_from
|
|
|
|
)
|
|
|
|
|
|
|
|
error = "Sent!"
|
|
|
|
|
|
|
|
return render_template(
|
|
|
|
request, "message.html",
|
|
|
|
username=username,
|
|
|
|
error=error,
|
|
|
|
self_username=get_username(request)
|
|
|
|
)
|
2024-12-23 22:38:49 -05:00
|
|
|
|
|
|
|
def messages(request: WSGIRequest) -> HttpResponse:
|
|
|
|
username = get_username(request)
|
|
|
|
|
|
|
|
if username is None:
|
|
|
|
return HttpResponseRedirect("/")
|
|
|
|
|
|
|
|
return render_template(
|
|
|
|
request, "messages.html",
|
|
|
|
username=username
|
|
|
|
)
|