signing for extension deployment, tuning for download crawl depth, and dependency version visibility in settings view

This commit is contained in:
Bryan Van Deusen
2026-01-26 22:37:15 -05:00
parent 2a0e37a73d
commit 204e8efcdc
10 changed files with 426 additions and 553 deletions
+102 -3
View File
@@ -288,7 +288,7 @@
<tbody>
<tr>
<td width="200"><strong>Version</strong></td>
<td>1.0.0</td>
<td>{{ systemInfo.version }}</td>
</tr>
<tr>
<td><strong>API Status</strong></td>
@@ -298,19 +298,90 @@
</v-chip>
</td>
</tr>
<tr>
<td><strong>Python Version</strong></td>
<td>{{ systemInfo.python_version }}</td>
</tr>
<tr>
<td><strong>Gallery-dl Version</strong></td>
<td>
<v-chip color="primary" size="small" variant="tonal">
{{ systemInfo.gallery_dl_version }}
</v-chip>
</td>
</tr>
<tr>
<td><strong>Download Path</strong></td>
<td>/data/downloads</td>
<td>{{ systemInfo.download_path }}</td>
</tr>
<tr>
<td><strong>Config Path</strong></td>
<td>{{ systemInfo.config_path }}</td>
</tr>
</tbody>
</v-table>
<v-divider class="my-4" />
<!-- Dependencies Section -->
<h4 class="text-subtitle-1 mb-3">
<v-icon class="mr-1" size="small">mdi-package-variant</v-icon>
Dependencies
</h4>
<v-table density="compact" class="mb-4">
<thead>
<tr>
<th width="200">Package</th>
<th>Version</th>
</tr>
</thead>
<tbody>
<tr v-for="(version, name) in systemInfo.key_packages" :key="name">
<td><code>{{ name }}</code></td>
<td>
<v-chip size="x-small" variant="outlined">
{{ version }}
</v-chip>
</td>
</tr>
</tbody>
</v-table>
<v-btn
variant="text"
size="small"
@click="showAllPackages = !showAllPackages"
>
<v-icon start>{{ showAllPackages ? 'mdi-chevron-up' : 'mdi-chevron-down' }}</v-icon>
{{ showAllPackages ? 'Hide' : 'Show' }} all packages ({{ Object.keys(systemInfo.all_packages || {}).length }})
</v-btn>
<v-expand-transition>
<div v-if="showAllPackages">
<v-table density="compact" class="mt-3">
<thead>
<tr>
<th width="250">Package</th>
<th>Version</th>
</tr>
</thead>
<tbody>
<tr v-for="(version, name) in sortedAllPackages" :key="name">
<td><code class="text-caption">{{ name }}</code></td>
<td class="text-caption">{{ version }}</td>
</tr>
</tbody>
</v-table>
</div>
</v-expand-transition>
</v-card-text>
</v-card>
</div>
</template>
<script setup>
import { ref, onMounted } from 'vue'
import { ref, computed, onMounted } from 'vue'
import { useSettingsStore } from '../stores/settings'
import { useNotificationStore } from '../stores/notifications'
import { platformsApi } from '../services/api'
@@ -329,6 +400,24 @@ const platforms = ref({})
const apiHealthy = ref(true)
const showApiKey = ref(false)
const regenerateDialog = ref(false)
const systemInfo = ref({
version: '...',
python_version: '...',
gallery_dl_version: '...',
key_packages: {},
download_path: '...',
config_path: '...',
})
const showAllPackages = ref(false)
const sortedAllPackages = computed(() => {
const packages = systemInfo.value.all_packages || {}
const sorted = {}
Object.keys(packages).sort((a, b) => a.toLowerCase().localeCompare(b.toLowerCase())).forEach(key => {
sorted[key] = packages[key]
})
return sorted
})
onMounted(() => {
// Don't block UI - load data in background
@@ -343,6 +432,7 @@ async function loadAll() {
loadGalleryDLConfig(),
loadPlatforms(),
checkApiHealth(),
loadSystemInfo(),
])
} finally {
loading.value = false
@@ -422,6 +512,15 @@ async function checkApiHealth() {
}
}
async function loadSystemInfo() {
try {
const response = await api.get('/settings/system-info')
systemInfo.value = response.data
} catch (error) {
console.error('Failed to load system info:', error)
}
}
function getPlatformIcon(platform) {
const icons = {
patreon: 'mdi-patreon',