mirror of
https://github.com/maziggy/bambuddy.git
synced 2026-05-09 05:35:30 +02:00
[PR #951] [CLOSED] feat: plugin system with OctoPrint converter and PrettyGCode viewer #1138
Labels
No labels
A1
automated
automated
bug
bug
Closed due to inactivity
contrib
dependencies
dependencies
duplicate
enhancement
feedback
hold
invalid
Notes
P1S
pull-request
security
security
ThumbsUp
user-report
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
starred/bambuddy#1138
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
📋 Pull Request Information
Original PR: https://github.com/maziggy/bambuddy/pull/951
Author: @Soopahfly
Created: 4/12/2026
Status: ❌ Closed
Base:
main← Head:main📝 Commits (1)
7e6f116feat: add plugin system with OctoPrint converter and PrettyGCode viewer📊 Changes
40 files changed (+17571 additions, -10 deletions)
View changed files
📝
.gitignore(+6 -0)➕
backend/app/api/routes/plugins.py(+365 -0)📝
backend/app/core/config.py(+2 -0)📝
backend/app/core/database.py(+1 -0)📝
backend/app/main.py(+51 -9)➕
backend/app/models/plugin.py(+22 -0)➕
backend/app/plugins/__init__.py(+0 -0)➕
backend/app/plugins/base.py(+208 -0)➕
backend/app/plugins/loader.py(+166 -0)➕
backend/app/plugins/octoprint_converter.py(+520 -0)➕
backend/app/plugins/registry.py(+164 -0)📝
docker-compose.yml(+4 -0)📝
frontend/src/App.tsx(+2 -0)📝
frontend/src/api/client.ts(+73 -0)📝
frontend/src/components/Layout.tsx(+2 -1)➕
frontend/src/components/PluginsSettings.tsx(+548 -0)📝
frontend/src/i18n/locales/en.ts(+53 -0)➕
frontend/src/pages/PluginsPage.tsx(+9 -0)➕
plugins/.gitkeep(+0 -0)➕
plugins/example_plugin/__init__.py(+87 -0)...and 20 more files
📄 Description
Summary
What's included
Backend (
backend/app/plugins/)data/plugins/on startup, auto-discovers packages, registers to DB, loads enabled pluginsStartupPlugin,ShutdownPlugin,EventHandlerPlugin,SettingsPlugin,AssetPlugin,SimpleApiPlugin/api/v1/plugins) — list, upload/install, enable/disable, get/update settings, static asset serving, SimpleApiPlugin command dispatchimport octoprint/__plugin_pythoncompat__/ class inheritance; maps supported mixins 1:1 and stubs unsupported ones with clear noteson_print_start,on_print_complete, and archive creationdocker-compose.yml— mounts./pluginsinto the container so plugins survive image rebuildsFrontend
Packageicon,/pluginsroute, sits alongside Settingsstatic/index.htmlPrettyGCode plugin (
plugins/prettygcode/)Converted from OctoPrint-PrettyGCode.
Viewer at
/api/v1/plugins/prettygcode/assets/index.html:layer_numfrom Bambu MQTT (via byte-offset map built from the GCode file)Send:commands derived from per-layer GCode (Bambu printers don't expose serial echo, so we synthesize it from the parsed file)Test plan
.gcodefile from the file picker — confirm model renders🤖 Generated with Claude Code
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.