mirror of
https://github.com/maubot/maubot.git
synced 2024-10-01 01:06:10 -04:00
Compare commits
6 Commits
8b7e091383
...
2222f6ce69
Author | SHA1 | Date | |
---|---|---|---|
|
2222f6ce69 | ||
|
65be63fdd2 | ||
|
c218c8cf61 | ||
|
6e5e40e7e4 | ||
|
61f528d9b3 | ||
|
5ea499430b |
@ -1,5 +1,9 @@
|
|||||||
# v0.5.0 (unreleased)
|
# v0.5.0 (2024-08-24)
|
||||||
|
|
||||||
|
* Dropped Python 3.9 support.
|
||||||
|
* Updated Docker image to Alpine 3.20.
|
||||||
|
* Updated mautrix-python to 0.20.6 to support authenticated media.
|
||||||
|
* Removed hard dependency on SQLAlchemy.
|
||||||
* Fixed `main_class` to default to being loaded from the last module instead of
|
* Fixed `main_class` to default to being loaded from the last module instead of
|
||||||
the first if a module name is not explicitly specified.
|
the first if a module name is not explicitly specified.
|
||||||
* This was already the [documented behavior](https://docs.mau.fi/maubot/dev/reference/plugin-metadata.html),
|
* This was already the [documented behavior](https://docs.mau.fi/maubot/dev/reference/plugin-metadata.html),
|
||||||
|
@ -1 +1 @@
|
|||||||
__version__ = "0.4.2"
|
__version__ = "0.5.0"
|
||||||
|
@ -17,7 +17,7 @@ import os
|
|||||||
|
|
||||||
from jinja2 import Template
|
from jinja2 import Template
|
||||||
from packaging.version import Version
|
from packaging.version import Version
|
||||||
from pkg_resources import resource_string
|
import importlib.resources as resources
|
||||||
|
|
||||||
from .. import cliq
|
from .. import cliq
|
||||||
from ..cliq import SPDXValidator, VersionValidator
|
from ..cliq import SPDXValidator, VersionValidator
|
||||||
@ -33,9 +33,9 @@ def load_templates():
|
|||||||
global mod_template, meta_template, base_config, loaded
|
global mod_template, meta_template, base_config, loaded
|
||||||
if loaded:
|
if loaded:
|
||||||
return
|
return
|
||||||
meta_template = Template(resource_string("maubot.cli", "res/maubot.yaml.j2").decode("utf-8"))
|
meta_template = Template(resources.files("maubot.cli").joinpath("res/maubot.yaml.j2").read_text(encoding="utf-8"))
|
||||||
mod_template = Template(resource_string("maubot.cli", "res/plugin.py.j2").decode("utf-8"))
|
mod_template = Template(resources.files("maubot.cli").joinpath("res/plugin.py.j2").read_text(encoding="utf-8"))
|
||||||
base_config = resource_string("maubot.cli", "res/config.yaml").decode("utf-8")
|
base_config = resources.files("maubot.cli").joinpath("res/config.yaml").read_text(encoding="utf-8")
|
||||||
loaded = True
|
loaded = True
|
||||||
|
|
||||||
|
|
||||||
|
@ -18,7 +18,7 @@ from __future__ import annotations
|
|||||||
import json
|
import json
|
||||||
import zipfile
|
import zipfile
|
||||||
|
|
||||||
import pkg_resources
|
import importlib.resources as resources
|
||||||
|
|
||||||
spdx_list: dict[str, dict[str, str]] | None = None
|
spdx_list: dict[str, dict[str, str]] | None = None
|
||||||
|
|
||||||
@ -27,7 +27,7 @@ def load() -> None:
|
|||||||
global spdx_list
|
global spdx_list
|
||||||
if spdx_list is not None:
|
if spdx_list is not None:
|
||||||
return
|
return
|
||||||
with pkg_resources.resource_stream("maubot.cli", "res/spdx.json.zip") as disk_file:
|
with resources.files("maubot.cli").joinpath("res/spdx.json.zip").open("rb") as disk_file:
|
||||||
with zipfile.ZipFile(disk_file) as zip_file:
|
with zipfile.ZipFile(disk_file) as zip_file:
|
||||||
with zip_file.open("spdx.json") as file:
|
with zip_file.open("spdx.json") as file:
|
||||||
spdx_list = json.load(file)
|
spdx_list = json.load(file)
|
||||||
|
@ -23,7 +23,7 @@ import logging
|
|||||||
from aiohttp import hdrs, web
|
from aiohttp import hdrs, web
|
||||||
from aiohttp.abc import AbstractAccessLogger
|
from aiohttp.abc import AbstractAccessLogger
|
||||||
from yarl import URL
|
from yarl import URL
|
||||||
import pkg_resources
|
import importlib.resources as resources
|
||||||
|
|
||||||
from mautrix.api import Method, PathBuilder
|
from mautrix.api import Method, PathBuilder
|
||||||
|
|
||||||
@ -64,14 +64,14 @@ class MaubotServer:
|
|||||||
if request.path.startswith(path):
|
if request.path.startswith(path):
|
||||||
request = request.clone(
|
request = request.clone(
|
||||||
rel_url=request.rel_url.with_path(
|
rel_url=request.rel_url.with_path(
|
||||||
request.rel_url.path[len(path) :]
|
request.rel_url.path[len(path) - 1 :]
|
||||||
).with_query(request.query_string)
|
).with_query(request.query_string)
|
||||||
)
|
)
|
||||||
return await app.handle(request)
|
return await app.handle(request)
|
||||||
return web.Response(status=404)
|
return web.Response(status=404)
|
||||||
|
|
||||||
def get_instance_subapp(self, instance_id: str) -> tuple[PluginWebApp, str]:
|
def get_instance_subapp(self, instance_id: str) -> tuple[PluginWebApp, str]:
|
||||||
subpath = self.config["server.plugin_base_path"] + instance_id
|
subpath = self.config["server.plugin_base_path"] + instance_id + "/"
|
||||||
url = self.config["server.public_url"] + subpath
|
url = self.config["server.public_url"] + subpath
|
||||||
try:
|
try:
|
||||||
return self.plugin_routes[subpath], url
|
return self.plugin_routes[subpath], url
|
||||||
@ -82,7 +82,7 @@ class MaubotServer:
|
|||||||
|
|
||||||
def remove_instance_webapp(self, instance_id: str) -> None:
|
def remove_instance_webapp(self, instance_id: str) -> None:
|
||||||
try:
|
try:
|
||||||
subpath = self.config["server.plugin_base_path"] + instance_id
|
subpath = self.config["server.plugin_base_path"] + instance_id + "/"
|
||||||
self.plugin_routes.pop(subpath).clear()
|
self.plugin_routes.pop(subpath).clear()
|
||||||
except KeyError:
|
except KeyError:
|
||||||
return
|
return
|
||||||
@ -103,7 +103,7 @@ class MaubotServer:
|
|||||||
ui_base = ""
|
ui_base = ""
|
||||||
directory = self.config[
|
directory = self.config[
|
||||||
"server.override_resource_path"
|
"server.override_resource_path"
|
||||||
] or pkg_resources.resource_filename("maubot", "management/frontend/build")
|
] or resources.files("maubot").joinpath("management/frontend/build")
|
||||||
self.app.router.add_static(f"{ui_base}/static", f"{directory}/static")
|
self.app.router.add_static(f"{ui_base}/static", f"{directory}/static")
|
||||||
self.setup_static_root_files(directory, ui_base)
|
self.setup_static_root_files(directory, ui_base)
|
||||||
|
|
||||||
|
4
setup.py
4
setup.py
@ -41,7 +41,7 @@ setuptools.setup(
|
|||||||
|
|
||||||
install_requires=install_requires,
|
install_requires=install_requires,
|
||||||
extras_require=extras_require,
|
extras_require=extras_require,
|
||||||
python_requires="~=3.9",
|
python_requires="~=3.10",
|
||||||
|
|
||||||
classifiers=[
|
classifiers=[
|
||||||
"Development Status :: 4 - Beta",
|
"Development Status :: 4 - Beta",
|
||||||
@ -50,9 +50,9 @@ setuptools.setup(
|
|||||||
"Framework :: AsyncIO",
|
"Framework :: AsyncIO",
|
||||||
"Programming Language :: Python",
|
"Programming Language :: Python",
|
||||||
"Programming Language :: Python :: 3",
|
"Programming Language :: Python :: 3",
|
||||||
"Programming Language :: Python :: 3.9",
|
|
||||||
"Programming Language :: Python :: 3.10",
|
"Programming Language :: Python :: 3.10",
|
||||||
"Programming Language :: Python :: 3.11",
|
"Programming Language :: Python :: 3.11",
|
||||||
|
"Programming Language :: Python :: 3.12",
|
||||||
],
|
],
|
||||||
entry_points="""
|
entry_points="""
|
||||||
[console_scripts]
|
[console_scripts]
|
||||||
|
Loading…
Reference in New Issue
Block a user