|
9 | 9 | "path" |
10 | 10 | "path/filepath" |
11 | 11 | "regexp" |
| 12 | + "robpike.io/nihongo" |
12 | 13 | "sort" |
13 | 14 | "strconv" |
14 | 15 | "strings" |
|
18 | 19 | folderIllegalCharsRegex = regexp.MustCompile(`[/\\?%*:|"<>]`) |
19 | 20 | ) |
20 | 21 |
|
21 | | -func DeleteOldUpdates(localDB *db.LocalSwitchFilesDB) { |
| 22 | +func DeleteOldUpdates(localDB *db.LocalSwitchFilesDB, updateProgress db.ProgressUpdater) { |
| 23 | + i := 0 |
22 | 24 | for _, v := range localDB.TitlesMap { |
23 | | - |
| 25 | + if updateProgress != nil { |
| 26 | + updateProgress.UpdateProgress(i, len(localDB.TitlesMap), v.File.Info.Name()) |
| 27 | + } |
24 | 28 | if len(v.Updates) > 1 { |
25 | 29 | //sort the available local versions |
26 | 30 | localVersions := make([]int, len(v.Updates)) |
@@ -53,13 +57,14 @@ func OrganizeByFolders(baseFolder string, localDB *db.LocalSwitchFilesDB, titles |
53 | 57 |
|
54 | 58 | options := settings.ReadSettings(baseFolder).OrganizeOptions |
55 | 59 | i := 0 |
| 60 | + tasksSize := len(localDB.TitlesMap) + 2 |
56 | 61 | for k, v := range localDB.TitlesMap { |
57 | 62 | i++ |
58 | 63 | if v.BaseExist == false { |
59 | 64 | continue |
60 | 65 | } |
61 | 66 | if updateProgress != nil { |
62 | | - updateProgress.UpdateProgress(i, len(localDB.TitlesMap), v.File.Info.Name()) |
| 67 | + updateProgress.UpdateProgress(i, tasksSize, v.File.Info.Name()) |
63 | 68 | } |
64 | 69 |
|
65 | 70 | titleName := getTitleName(titlesDB.TitlesMap[k], v) |
@@ -138,10 +143,23 @@ func OrganizeByFolders(baseFolder string, localDB *db.LocalSwitchFilesDB, titles |
138 | 143 | } |
139 | 144 |
|
140 | 145 | if options.DeleteEmptyFolders { |
| 146 | + if updateProgress != nil { |
| 147 | + i += 1 |
| 148 | + updateProgress.UpdateProgress(i, tasksSize, "deleting empty folders... (can take 1-2min)") |
| 149 | + } |
141 | 150 | err := deleteEmptyFolders(baseFolder) |
142 | 151 | if err != nil { |
143 | 152 | zap.S().Errorf("Failed to delete empty folders [%v]\n", err) |
144 | 153 | } |
| 154 | + if updateProgress != nil { |
| 155 | + i += 1 |
| 156 | + updateProgress.UpdateProgress(i, tasksSize, "done") |
| 157 | + } |
| 158 | + } else { |
| 159 | + if updateProgress != nil { |
| 160 | + i += 2 |
| 161 | + updateProgress.UpdateProgress(i, tasksSize, "done") |
| 162 | + } |
145 | 163 | } |
146 | 164 | } |
147 | 165 |
|
@@ -203,7 +221,7 @@ func applyTemplate(templateData map[string]string, template string) string { |
203 | 221 | if strings.HasSuffix(result, ".") { |
204 | 222 | result = result[:len(result)-1] |
205 | 223 | } |
206 | | - return result |
| 224 | + return nihongo.RomajiString(result) |
207 | 225 | } |
208 | 226 |
|
209 | 227 | func deleteEmptyFolders(path string) error { |
|
0 commit comments