diff --git a/backend/main.py b/backend/main.py
index a106ac158..177166d98 100644
--- a/backend/main.py
+++ b/backend/main.py
@@ -45,10 +45,10 @@ async def scan(sid, platforms: str, complete_rescan: bool=True):
platforms: list[str] = json.loads(platforms) if len(json.loads(platforms)) > 0 else fs_platforms
log.info(f"Platforms to be scanned: {', '.join(platforms)}")
for platform in platforms:
- await app.sio.emit('scanning_platform', platform)
- await app.sio.emit('') # Workaround to emit in real-time
log.info(emoji.emojize(f":video_game: {platform} {COLORS['reset']}"))
scanned_platform: Platform = fastapi.scan_platform(platform)
+ await app.sio.emit('scanning_platform', [scanned_platform.name, scanned_platform.slug])
+ await app.sio.emit('') # Workaround to emit in real-time
if platform != str(scanned_platform): log.info(f"Identified as {COLORS['blue']}{scanned_platform}{COLORS['reset']}")
dbh.add_platform(scanned_platform)
@@ -80,5 +80,5 @@ def startup() -> None:
if __name__ == '__main__':
- uvicorn.run("main:app", host=DEV_HOST, port=DEV_PORT, reload=True)
- # uvicorn.run("main:app", host=DEV_HOST, port=DEV_PORT, reload=False, workers=2)
+ # uvicorn.run("main:app", host=DEV_HOST, port=DEV_PORT, reload=True)
+ uvicorn.run("main:app", host=DEV_HOST, port=DEV_PORT, reload=False, workers=2)
diff --git a/frontend/src/App.vue b/frontend/src/App.vue
index 26b7c21d1..80895729d 100644
--- a/frontend/src/App.vue
+++ b/frontend/src/App.vue
@@ -44,7 +44,8 @@ onMounted(() => {
-
+
+
diff --git a/frontend/src/views/library/Scan.vue b/frontend/src/views/library/Scan.vue
index 83eab1d1e..079b6cc9d 100644
--- a/frontend/src/views/library/Scan.vue
+++ b/frontend/src/views/library/Scan.vue
@@ -9,21 +9,23 @@ const platforms = storePlatforms()
const platformsToScan = ref([])
const scanning = storeScanning()
const scanningPlatform = ref("")
-const scannedRoms = ref([])
+const scannedPlatforms = ref([])
const completeRescan = ref(false)
+
// Event listeners bus
const emitter = inject('emitter')
// Functions
async function scan() {
scanning.set(true);
+ scannedPlatforms.value = []
const socket = io({ path: '/ws/socket.io/', transports: ['websocket', 'polling'] })
- socket.on("scanning_platform", (platform) => { scanningPlatform.value = platform })
- socket.on("scanning_rom", (rom) => { scannedRoms.value.push(rom) })
+ socket.on("scanning_platform", (platform) => { scannedPlatforms.value.push({'p_name': platform[0], 'p_slug': platform[1], 'r': []}); scanningPlatform.value = platform[1] })
+ socket.on("scanning_rom", (r) => { scannedPlatforms.value.forEach(e => { if(e['p_slug'] == scanningPlatform.value){ e['r'].push(r) } }) })
socket.on("done", () => {
scanning.set(false);
- // emitter.emit('refresh')
+ emitter.emit('refresh')
emitter.emit('snackbarScan', {'msg': "Scan completed successfully!", 'icon': 'mdi-check-bold', 'color': 'green'})
socket.close()
})
@@ -76,14 +78,11 @@ async function scan() {
-
-
-
- {{ scanningPlatform }}
-
-
- - {{ rom }}
-
+
+
+
+ {{ d['p_name'] }}
+ - {{ r }}