Updates.
This commit is contained in:
parent
75593fd6bb
commit
d71d5da6bc
pyproject.toml
src/snek
@ -16,7 +16,7 @@ requires-python = ">=3.12"
|
|||||||
dependencies = [
|
dependencies = [
|
||||||
"mkdocs>=1.4.0",
|
"mkdocs>=1.4.0",
|
||||||
"lxml",
|
"lxml",
|
||||||
|
"IPython",
|
||||||
"shed",
|
"shed",
|
||||||
"app @ git+https://retoor.molodetz.nl/retoor/app",
|
"app @ git+https://retoor.molodetz.nl/retoor/app",
|
||||||
"beautifulsoup4",
|
"beautifulsoup4",
|
||||||
|
@ -85,12 +85,18 @@ class Application(BaseApplication):
|
|||||||
self.jinja2_env.add_extension(EmojiExtension)
|
self.jinja2_env.add_extension(EmojiExtension)
|
||||||
|
|
||||||
self.setup_router()
|
self.setup_router()
|
||||||
|
self.executor = None
|
||||||
self.cache = Cache(self)
|
self.cache = Cache(self)
|
||||||
self.services = get_services(app=self)
|
self.services = get_services(app=self)
|
||||||
self.mappers = get_mappers(app=self)
|
self.mappers = get_mappers(app=self)
|
||||||
|
self.on_startup.append(self.prepare_asyncio)
|
||||||
self.on_startup.append(self.prepare_database)
|
self.on_startup.append(self.prepare_database)
|
||||||
|
|
||||||
|
async def prepare_asyncio(self,app):
|
||||||
|
#app.loop = asyncio.get_running_loop()
|
||||||
|
app.executor = ThreadPoolExecutor(max_workers=200)
|
||||||
|
app.loop.set_default_executor(self.executor)
|
||||||
|
|
||||||
async def create_task(self, task):
|
async def create_task(self, task):
|
||||||
await self.tasks.put(task)
|
await self.tasks.put(task)
|
||||||
|
|
||||||
@ -235,11 +241,6 @@ class Application(BaseApplication):
|
|||||||
return await super().render_template(template, request, context)
|
return await super().render_template(template, request, context)
|
||||||
|
|
||||||
|
|
||||||
executor = ThreadPoolExecutor(max_workers=200)
|
|
||||||
|
|
||||||
loop = asyncio.get_event_loop()
|
|
||||||
loop.set_default_executor(executor)
|
|
||||||
|
|
||||||
app = Application(db_path="sqlite:///snek.db")
|
app = Application(db_path="sqlite:///snek.db")
|
||||||
|
|
||||||
|
|
||||||
|
@ -29,6 +29,28 @@ class UserModel(BaseModel):
|
|||||||
|
|
||||||
last_ping = ModelField(name="last_ping", required=False, kind=str)
|
last_ping = ModelField(name="last_ping", required=False, kind=str)
|
||||||
|
|
||||||
|
async def get_property(self, name):
|
||||||
|
prop = await self.app.services.user_property.find_one(
|
||||||
|
user_uid=self["uid"], name=name
|
||||||
|
)
|
||||||
|
if prop:
|
||||||
|
return prop["value"]
|
||||||
|
|
||||||
|
async def has_property(self, name):
|
||||||
|
return await self.app.services.user_property.exists(
|
||||||
|
user_uid=self["uid"], name=name
|
||||||
|
)
|
||||||
|
|
||||||
|
async def set_property(self, name, value):
|
||||||
|
if not await self.has_property(name):
|
||||||
|
await self.app.services.user_property.insert(
|
||||||
|
user_uid=self["uid"], name=name, value=value
|
||||||
|
)
|
||||||
|
else:
|
||||||
|
await self.app.services.user_property.update(
|
||||||
|
user_uid=self["uid"], name=name, value=value
|
||||||
|
)
|
||||||
|
|
||||||
async def get_channel_members(self):
|
async def get_channel_members(self):
|
||||||
async for channel_member in self.app.services.channel_member.find(
|
async for channel_member in self.app.services.channel_member.find(
|
||||||
user_uid=self["uid"], is_banned=False, deleted_at=None
|
user_uid=self["uid"], is_banned=False, deleted_at=None
|
||||||
|
@ -11,7 +11,7 @@ from snek.service.socket import SocketService
|
|||||||
from snek.service.user import UserService
|
from snek.service.user import UserService
|
||||||
from snek.service.util import UtilService
|
from snek.service.util import UtilService
|
||||||
from snek.system.object import Object
|
from snek.system.object import Object
|
||||||
|
from snek.service.user_property import UserPropertyService
|
||||||
|
|
||||||
@functools.cache
|
@functools.cache
|
||||||
def get_services(app):
|
def get_services(app):
|
||||||
@ -27,6 +27,7 @@ def get_services(app):
|
|||||||
"util": UtilService(app=app),
|
"util": UtilService(app=app),
|
||||||
"drive": DriveService(app=app),
|
"drive": DriveService(app=app),
|
||||||
"drive_item": DriveItemService(app=app),
|
"drive_item": DriveItemService(app=app),
|
||||||
|
"user_property": UserPropertyService(app=app),
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -233,4 +233,4 @@ export class App extends EventHandler {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export const app = new App();
|
export const app = new App();
|
||||||
window.app = app;
|
window.app = app;
|
||||||
|
@ -374,15 +374,12 @@ a {
|
|||||||
left: 0;
|
left: 0;
|
||||||
text-overflow: ellipsis;
|
text-overflow: ellipsis;
|
||||||
width:100%;
|
width:100%;
|
||||||
*{
|
|
||||||
font-size: 12px !important;
|
|
||||||
}
|
|
||||||
.logo {
|
.logo {
|
||||||
text-overflow: ellipsis;
|
text-overflow: ellipsis;
|
||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
h2 {
|
h2 {
|
||||||
font-size: 12px;
|
font-size: 14px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2,6 +2,8 @@
|
|||||||
|
|
||||||
{% block title %}Search{% endblock %}
|
{% block title %}Search{% endblock %}
|
||||||
|
|
||||||
|
{% block header_text %}<h2 style="color:#fff">Search</h2>{% endblock %}
|
||||||
|
|
||||||
{% block main %}
|
{% block main %}
|
||||||
|
|
||||||
<section class="chat-area">
|
<section class="chat-area">
|
||||||
|
@ -1,7 +1,10 @@
|
|||||||
{% extends "app.html" %}
|
{% extends "app.html" %}
|
||||||
|
|
||||||
|
{% block header_text %}<h2 style="color:#fff">Threads</h2>{% endblock %}
|
||||||
|
|
||||||
{% block main %}
|
{% block main %}
|
||||||
<section class="chat-area" id="chat">
|
<section class="chat-area" id="chat">
|
||||||
|
<div class="chat-header"> </div>
|
||||||
<div class="threads">
|
<div class="threads">
|
||||||
{% for thread in threads %}
|
{% for thread in threads %}
|
||||||
{% autoescape false %}
|
{% autoescape false %}
|
||||||
|
Loading…
Reference in New Issue
Block a user