Bugfixes.

This commit is contained in:
retoor 2025-02-09 07:54:46 +01:00
parent a3cec5bce0
commit 78f9679f30
3 changed files with 45 additions and 4 deletions

View File

@ -91,6 +91,8 @@ class Application(BaseApplication):
self.router.add_get("/http-get", self.handle_http_get)
self.router.add_get("/http-photo", self.handle_http_photo)
self.router.add_get("/rpc.ws", RPCView)
self.router.add_view("/channel/{channel}.html", WebView)
self.add_subapp(
"/docs",
DocsApplication(path=pathlib.Path(__file__).parent.joinpath("docs")),

View File

@ -21,7 +21,7 @@ class LoginView(BaseFormView):
return await self.render_template("login.html")
async def submit(self, form):
if await form.is_valid():
if await form.is_valid:
user = await self.services.user.get(username=form['username'], deleted_at=None)
await self.services.user.save(user)
self.session.update({
@ -31,4 +31,4 @@ class LoginView(BaseFormView):
"color": user["color"]
})
return {"redirect_url": "/web.html"}
return {"is_valid": False}
return {"is_valid": False}

View File

@ -24,11 +24,50 @@
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
# SOFTWARE.
from aiohttp import web
from snek.system.view import BaseView
class WebView(BaseView):
login_required = True
async def get(self):
return await self.render_template("web.html")
if self.login_required and not self.session.get("logged_in"):
return web.HTTPFound("/")
if not self.request.match_info.get("channel"):
channel = await self.app.services.channel.get(
tag="public",deleted_at=None
)
if not channel:
return web.HTTPNotFound()
return web.HTTPFound("/channel/{}.html".format(channel["uid"]))
else:
print(self.request.match_info.get("channel"), flush=True)
channel = await self.app.services.channel.get(
uid=str(self.request.match_info.get("channel")),deleted_at=None
)
if not channel:
name = "#" + str(self.request.match_info.get("channel")).lstrip("#")
print("TADAAA:",name, flush=True)
channel = await self.app.services.channel.get(
label=name,deleted_at=None
)
if not channel:
print("NOT found!\n",flush=True)
return web.HTTPNotFound()
channel_member = await self.app.services.channel_member.get(
channel_uid=channel["uid"], user_uid=self.session.get("uid"),deleted_at=None,is_banned=False
)
if not channel_member:
return web.HTTPNotFound()
print("HIER\n",flush=True)
user = await self.app.services.user.get(uid=self.session.get("uid"))
if not user:
return web.HTTPNotFound()
return await self.render_template("web.html", {"channel": channel_member,"user": user})