feat: update API routes for version info and enhance version fetching functionality

This commit is contained in:
Will Miao
2025-06-20 16:38:11 +08:00
parent 1b2a02cb1a
commit 32d12bb334
3 changed files with 71 additions and 3 deletions

View File

@@ -15,7 +15,8 @@ class UpdateRoutes:
@staticmethod @staticmethod
def setup_routes(app): def setup_routes(app):
"""Register update check routes""" """Register update check routes"""
app.router.add_get('/loras/api/check-updates', UpdateRoutes.check_updates) app.router.add_get('/api/check-updates', UpdateRoutes.check_updates)
app.router.add_get('/api/version-info', UpdateRoutes.get_version_info)
@staticmethod @staticmethod
async def check_updates(request): async def check_updates(request):
@@ -55,6 +56,34 @@ class UpdateRoutes:
'error': str(e) 'error': str(e)
}) })
@staticmethod
async def get_version_info(request):
"""
Returns the current version in the format 'version-short_hash'
"""
try:
# Read local version from pyproject.toml
local_version = UpdateRoutes._get_local_version().replace('v', '')
# Get git info (commit hash, branch)
git_info = UpdateRoutes._get_git_info()
short_hash = git_info['short_hash']
# Format: version-short_hash
version_string = f"{local_version}-{short_hash}"
return web.json_response({
'success': True,
'version': version_string
})
except Exception as e:
logger.error(f"Failed to get version info: {e}", exc_info=True)
return web.json_response({
'success': False,
'error': str(e)
})
@staticmethod @staticmethod
def _get_local_version() -> str: def _get_local_version() -> str:
"""Get local plugin version from pyproject.toml""" """Get local plugin version from pyproject.toml"""

View File

@@ -60,7 +60,7 @@ export class UpdateService {
try { try {
// Call backend API to check for updates // Call backend API to check for updates
const response = await fetch('/loras/api/check-updates'); const response = await fetch('/api/check-updates');
const data = await response.json(); const data = await response.json();
if (data.success) { if (data.success) {

View File

@@ -104,6 +104,45 @@ const initializeWidgets = () => {
addWidget('.comfy-menu', addWidgetMenu); addWidget('.comfy-menu', addWidgetMenu);
}; };
// Fetch version info from the API
const fetchVersionInfo = async () => {
try {
const response = await fetch('/api/version-info');
const data = await response.json();
if (data.success) {
return data.version;
}
return '';
} catch (error) {
console.error('Error fetching version info:', error);
return '';
}
};
// Register about badge with version info
const registerAboutBadge = async () => {
let version = await fetchVersionInfo();
const label = version ? `LoRA-Manager v${version}` : 'LoRA-Manager';
app.registerExtension({
name: 'LoraManager.AboutBadge',
aboutPageBadges: [
{
label: label,
url: 'https://github.com/willmiao/ComfyUI-Lora-Manager',
icon: 'pi pi-tags'
}
]
});
};
// Initialize everything
const initialize = () => {
initializeWidgets();
registerAboutBadge();
};
const getLoraManagerIcon = () => { const getLoraManagerIcon = () => {
return ` return `
<svg enable-background="new 0 0 512 512" version="1.1" viewBox="0 0 512 512" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"> <svg enable-background="new 0 0 512 512" version="1.1" viewBox="0 0 512 512" xml:space="preserve" xmlns="http://www.w3.org/2000/svg">
@@ -144,4 +183,4 @@ const getLoraManagerIcon = () => {
`; `;
}; };
initializeWidgets(); initialize();