From 3ae5db1eacde5135f7ab757a7648792fd836e70f Mon Sep 17 00:00:00 2001 From: Irtaza Akram Date: Wed, 25 Mar 2026 17:32:11 +0500 Subject: [PATCH] feat: add audio xblock --- pyproject.toml | 14 +++- src/audio/README.md | 9 +++ src/audio/__init__.py | 1 + src/audio/audio.py | 98 ++++++++++++++++++++++++ src/audio/conf/locale/config.yaml | 4 + src/audio/static/css/audio.css | 9 +++ src/audio/static/js/src/audio_edit.js | 16 ++++ src/audio/templates/html/audio.html | 7 ++ src/audio/templates/html/audio_edit.html | 21 +++++ src/audio/translations | 1 + 10 files changed, 176 insertions(+), 4 deletions(-) create mode 100644 src/audio/README.md create mode 100644 src/audio/__init__.py create mode 100644 src/audio/audio.py create mode 100644 src/audio/conf/locale/config.yaml create mode 100644 src/audio/static/css/audio.css create mode 100644 src/audio/static/js/src/audio_edit.js create mode 100644 src/audio/templates/html/audio.html create mode 100644 src/audio/templates/html/audio_edit.html create mode 120000 src/audio/translations diff --git a/pyproject.toml b/pyproject.toml index e47a579..77bc520 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -52,20 +52,26 @@ docs = [ "sphinx-book-theme", ] -# XBlock entry points will be added here as xblocks are migrated -# Example: -# [project.entry-points."xblock.v1"] -# foo = "foo_xblock:FooXBlock" +[project.entry-points."xblock.v1"] +audio = "audio:AudioXBlock" # Packages live in src/ but are installed without the src prefix # e.g., src/foo_xblock/ is installed as foo_xblock [tool.setuptools] package-dir = {"" = "src"} +include-package-data = true [tool.setuptools.packages.find] where = ["src"] exclude = ["tests*"] +[tool.setuptools.package-data] +"*" = [ + "static/**/*", + "templates/**/*", + "translations/**/*", +] + # Ruff configuration # https://docs.astral.sh/ruff/configuration/ [tool.ruff] diff --git a/src/audio/README.md b/src/audio/README.md new file mode 100644 index 0000000..91b79cb --- /dev/null +++ b/src/audio/README.md @@ -0,0 +1,9 @@ +AudioXBlock +=========== + +This is a simple XBlock which will play audio files as an HTML5 audio +element. If unavailable, it will fall back to an embed element. + +Usage: + +