mirror of
https://gitlab.com/octospacc/WinDog.git
synced 2025-06-05 22:09:20 +02:00
Updated Web backend now with multi-user, misc data and endpoints improvements
This commit is contained in:
@@ -18,11 +18,13 @@ UserSettingsLimits = {
|
||||
|
||||
def cConfig(context:EventContext, data:InputMessageData):
|
||||
language = data.user.settings.language
|
||||
if not (settings := UserSettingsData(data.user.id)):
|
||||
if (key := data.command.arguments.get):
|
||||
key = key.lower()
|
||||
if (not key) or (key not in UserSettingsLimits):
|
||||
return send_status_400(context, language)
|
||||
if not (settings := UserSettingsData(data.user.id))._exists:
|
||||
User.update(settings=EntitySettings.create()).where(User.id == data.user.id).execute()
|
||||
settings = UserSettingsData(data.user.id)
|
||||
if not (key := data.command.arguments.get) or (key not in UserSettingsLimits):
|
||||
return send_status_400(context, language)
|
||||
if (value := data.command.body):
|
||||
if len(value) > UserSettingsLimits[key]:
|
||||
return send_status(context, 500, language)
|
||||
@@ -52,7 +54,7 @@ def cPing(context:EventContext, data:InputMessageData):
|
||||
|
||||
RegisterModule(name="Base", endpoints=[
|
||||
SafeNamespace(names=["source"], handler=cSource),
|
||||
SafeNamespace(names=["config"], handler=cConfig, body=False, arguments={
|
||||
SafeNamespace(names=["config", "settings"], handler=cConfig, body=False, arguments={
|
||||
"get": True,
|
||||
}),
|
||||
#SafeNamespace(names=["gdpr"], summary="Operations for european citizens regarding your personal data.", handler=cGdpr),
|
||||
|
@@ -7,7 +7,7 @@ def cEcho(context:EventContext, data:InputMessageData):
|
||||
if not (text := data.command.body):
|
||||
return send_message(context, {
|
||||
"text_html": context.endpoint.get_string("empty", data.user.settings.language)})
|
||||
prefix = f'<a href="{data.message_url}">🗣️</a> '
|
||||
prefix = f'<a href="{data.message_url or ""}">🗣️</a> '
|
||||
if len(data.command.tokens) == 2: # text is a single word
|
||||
nonascii = True
|
||||
for char in data.command.tokens[1]:
|
||||
|
@@ -20,7 +20,8 @@ def cHelp(context:EventContext, data:InputMessageData) -> None:
|
||||
text += (f"\n\n{module}" + (f": {summary}" if summary else ''))
|
||||
for endpoint in endpoints:
|
||||
summary = Modules[module].get_string(f"endpoints.{endpoint.names[0]}.summary", language)
|
||||
text += (f"\n* {prefix}{', {prefix}'.join(endpoint.names)}" + (f": {summary}" if summary else ''))
|
||||
text += (f"\n* {prefix}{f', {prefix}'.join(endpoint.names)}"
|
||||
+ (f": {summary}" if summary else ''))
|
||||
text = text.strip()
|
||||
return send_message(context, {"text_html": text})
|
||||
|
||||
|
@@ -10,6 +10,7 @@ MicrosoftBingSettings = {}
|
||||
""" # end windog config # """
|
||||
|
||||
from urlextract import URLExtract
|
||||
from urllib import parse as urlparse
|
||||
from urllib.request import urlopen, Request
|
||||
|
||||
def RandomHexString(length:int) -> str:
|
||||
|
@@ -29,7 +29,7 @@ def cExec(context:EventContext, data:InputMessageData):
|
||||
|
||||
def cRestart(context:EventContext, data:InputMessageData):
|
||||
if (data.user.id not in AdminIds) and (data.user.tag not in AdminIds):
|
||||
return send_message(context, {"text_plain": "Permission denied."})
|
||||
return send_status(context, 403, data.user.settings.language)
|
||||
open("./.WinDog.Restart.lock", 'w').close()
|
||||
return send_message(context, {"text_plain": "Bot restart queued."})
|
||||
|
||||
|
Reference in New Issue
Block a user