Changed server.

This commit is contained in:
retoor 2025-02-20 05:56:31 +01:00
parent 821db3cb1a
commit 3623286a9d
7 changed files with 61 additions and 23 deletions

View File

@ -65,6 +65,13 @@ class Application(BaseApplication):
self.setup_router()
self.db.query("PRAGMA journal_mode=WAL")
self.db.query("PRAGMA syncnorm=off")
if not self.db["user"].has_index("username"):
self.db["user"].create_index("username", unique=True)
if not self.db["channel_member"].has_index(["channel_uid","user_uid"]):
self.db["channel_member"].create_index(["channel_uid","user_uid"])
if not self.db["channel_message"].has_index(["channel_uid","user_uid"]):
self.db["channel_message"].create_index(["channel_uid","user_uid"])
self.cache = Cache(self)
self.services = get_services(app=self)
self.mappers = get_mappers(app=self)

View File

@ -111,6 +111,21 @@ a {
height: 200px;
background: #1a1a1a;
}
.container {
flex: 1;
padding: 10px;
ul {
list-style: none;
margin: 0;
padding: 0;
}
a {
font-size: 20px;
color: #f05a28;
}
}
.chat-messages::-webkit-scrollbar {
display: none;
}

View File

@ -4,7 +4,7 @@
"description": "Danger noodle",
"display": "standalone",
"orientation": "portrait",
"scope": "/web.html",
"scope": "/",
"theme_color": "#000000",
"background_color": "#000000",
"related_applications": [],

View File

@ -74,10 +74,6 @@ def set_link_target_blank(text):
element.attrs['rel'] = 'noopener noreferrer'
element.attrs['referrerpolicy'] = 'no-referrer'
element.attrs['href'] = element.attrs['href'].strip(".")
#if element.attrs['href'].startswith("https://www.you") and "?v=" in element.attrs["href"]:
# video_name = element.attrs["href"].split("?v=")[1].split("&")[0]
# embed_template = f'<iframe width="560" height="315" src="https://www.youtube.com/embed/{video_name}" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>'
# element.replace_with(BeautifulSoup(embed_template, 'html.parser'))
return str(soup)
@ -93,7 +89,7 @@ def embed_youtube(text):
def embed_image(text):
soup = BeautifulSoup(text, 'html.parser')
for element in soup.find_all("a"):
for extension in [".png", ".jpeg", ".gif", ".webp", ".svg", ".bmp", ".tiff", ".ico", ".heif"]:
for extension in [".png", ".jpg", ".jpeg", ".gif", ".webp", ".svg", ".bmp", ".tiff", ".ico", ".heif"]:
if extension in element.attrs['href'].lower():
embed_template = f'<img src="{element.attrs["href"]}" title="{element.attrs["href"]}" alt="{element.attrs["href"]}" />'
element.replace_with(BeautifulSoup(embed_template, 'html.parser'))

View File

@ -34,7 +34,7 @@
<main>
{% block sidebar %}
<aside class="sidebar">
<h2 class="no-select">Chat Rooms</h2>
<h2 class="no-select">Channels</h2>
<ul>
{% for channel in channels %}
<li><a class="no-select" href="/channel/{{channel['uid']}}.html">{{channel['name']}}</a></li>

View File

@ -2,25 +2,27 @@
{% block title %}Search{% endblock %}
{% block main %}
{% block main %}
<section class="chat-area">
<div class="chat-header"><h2>Search user</h2></div>
<div class="chat-messages">
<section class="chat-area">
<div class="chat-header">
<h2>Search user</h2>
</div>
<div class="container">
<form method="get" action="/search-user.html">
<input type="text" placeholder="Username" name="query" value="{{query}}" REQUIRED></input>
<fancy-button size="auto" text="Search" url="submit"></fancy-button>
<fancy-button size="auto" text="Search" url="submit"></fancy-button>
</form>
<ul>
{% for user in users %}
<li>
<a href="/channel/{{user.uid.value}}.html">{{user.username.value}}</a>
</li>
{% endfor %}
</ul>
{% for user in users %}
<li>
<a href="/channel/{{user.uid.value}}.html">{{user.username.value}}</a>
</li>
</div>
</section>
{% endblock %}
{% endfor %}
</ul>
</div>
</section>
{% endblock %}

View File

@ -109,6 +109,24 @@ class RPCView(BaseView):
lowercase = query.lower()
if any(keyword in lowercase for keyword in ["drop", "alter", "update", "delete", "replace", "insert", "truncate"]) and 'select' not in lowercase:
raise Exception("Not allowed")
records = [dict(record) async for record in self.services.channel.query(args[0])]
for record in records:
try:
del record['email']
except KeyError:
pass
try:
del record["password"]
except KeyError:
pass
try:
del record['message']
except:
pass
try:
del record['html']
except:
pass
return [dict(record) async for record in self.services.channel.query(args[0])]
async def __call__(self, data):