Skip to content

Commit 513aadb

Browse files
committed
🎨 Improve converting network assets to local assets #15320
1 parent 5d229eb commit 513aadb

2 files changed

Lines changed: 17 additions & 1 deletion

File tree

kernel/model/assets.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -285,7 +285,7 @@ func NetAssets2LocalAssets(rootID string, onlyImg bool, originalURL string) (err
285285
name, _ = url.PathUnescape(name)
286286
name = util.FilterUploadFileName(name)
287287
ext := util.Ext(name)
288-
if "" == ext {
288+
if !util.IsCommonExt(ext) {
289289
if mtype := mimetype.Detect(data); nil != mtype {
290290
ext = mtype.Extension()
291291
name += ext

kernel/util/file.go

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -148,6 +148,22 @@ func RemoveID(name string) string {
148148
return name + ext
149149
}
150150

151+
var commonSuffixes = []string{
152+
".jpg", ".jpeg", ".png", ".gif", ".bmp", ".svg", ".webp", ".tiff",
153+
".txt", ".pdf", ".doc", ".docx", ".xls", ".xlsx", ".ppt", ".pptx", ".md", ".rtf",
154+
".zip", ".rar", ".7z", ".tar", ".gz", ".bz2",
155+
".mp3", ".wav", ".aac", ".flac", ".ogg", ".m4a",
156+
".mp4", ".avi", ".mkv", ".mov", ".wmv", ".flv",
157+
".exe", ".bat", ".sh", ".app",
158+
".js", ".ts", ".html", ".css", ".go", ".py", ".java", ".c", ".cpp", ".json", ".xml", ".yaml", ".toml",
159+
".sql", ".db", ".sqlite", ".csv",
160+
".iso", ".dmg", ".apk", ".bin",
161+
}
162+
163+
func IsCommonExt(ext string) bool {
164+
return strings.HasPrefix(ext, ".") && gulu.Str.Contains(strings.ToLower(ext), commonSuffixes)
165+
}
166+
151167
func Ext(name string) (ret string) {
152168
ret = path.Ext(name)
153169
if "." == ret {

0 commit comments

Comments
 (0)