From bc668f3e9f01a0c59eef88efb120a229870be466 Mon Sep 17 00:00:00 2001
From: fit2bot <68588906+fit2bot@users.noreply.github.com>
Date: Thu, 21 Dec 2023 15:42:09 +0800
Subject: [PATCH] =?UTF-8?q?fix:=20applet=20=E5=8E=8B=E7=BC=A9=E5=8C=85?=
 =?UTF-8?q?=E5=90=8D=E5=AD=97(1).zip=E6=97=B6=20=E4=B8=8A=E4=BC=A0?=
 =?UTF-8?q?=E5=A4=B1=E8=B4=A5}=20(#12397)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Co-authored-by: feng <1304903146@qq.com>
---
 apps/terminal/api/applet/applet.py | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/apps/terminal/api/applet/applet.py b/apps/terminal/api/applet/applet.py
index 9e656487b..7f68d67d3 100644
--- a/apps/terminal/api/applet/applet.py
+++ b/apps/terminal/api/applet/applet.py
@@ -1,4 +1,6 @@
+import os
 import os.path
+import re
 import shutil
 import zipfile
 from typing import Callable
@@ -51,6 +53,11 @@ class DownloadUploadMixin:
             raise ValidationError({'error': _('Invalid zip file') + ': {}'.format(e)})
 
         tmp_dir = os.path.join(extract_to, file.name.replace('.zip', ''))
+        if not os.path.exists(tmp_dir):
+            name = file.name
+            name = re.match(r"(\w+)", name).group()
+            tmp_dir = os.path.join(extract_to, name)
+
         manifest = Applet.validate_pkg(tmp_dir)
         return manifest, tmp_dir