Add Clear cache to the settings
A new row, "Downloaded pictures and songs", shows how much space the cached character pictures, covers and downloaded songs take, with a Clear cache button. Clearing deletes them, but keeps the songs the current quiz uses, the settings, config.ini and the saved quiz. The characters are loaded again at once; covers come back when they are shown. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
06421bb63e
commit
c03c0e4efe
10 files changed
+1216
-679
No files matched your search
@@ -34,6 +34,11 @@ static func folder() -> String:
|
||||
return Settings.config_dir().path_join(FOLDER_NAME)
|
||||
|
||||
|
||||
## Deletes every cached picture. They are downloaded again when next asked for.
|
||||
func clear() -> void:
|
||||
_files.clear()
|
||||
|
||||
|
||||
## Fetches the names of the characters and calls [param on_done] with them as an
|
||||
## [code]Array[String][/code]. Cached pictures of characters no longer on the server are
|
||||
## deleted.
|
||||
|
||||
@@ -38,6 +38,11 @@ static func folder() -> String:
|
||||
return Settings.config_dir().path_join(FOLDER_NAME)
|
||||
|
||||
|
||||
## Deletes every cached cover. They are downloaded again when next asked for.
|
||||
func clear() -> void:
|
||||
_files.clear()
|
||||
|
||||
|
||||
## Deletes the covers of soundtracks that are not in [param covers] (UUID -> cover
|
||||
## time), and those whose soundtrack no longer has a cover.
|
||||
func keep_only(covers: Dictionary) -> void:
|
||||
|
||||
@@ -103,6 +103,29 @@ func keep_only(kept: Dictionary) -> void:
|
||||
save_index()
|
||||
|
||||
|
||||
## Deletes every file in the folder, the index too, e.g. to free the space they take.
|
||||
func clear() -> void:
|
||||
_index = {}
|
||||
if !DirAccess.dir_exists_absolute(folder()):
|
||||
return
|
||||
for file_name: String in DirAccess.get_files_at(folder()):
|
||||
DirAccess.remove_absolute(folder().path_join(file_name))
|
||||
|
||||
|
||||
## How many bytes the files in [param dir] take, leaving out the paths in [param skip]
|
||||
## and any subfolders. 0 when the folder doesn't exist.
|
||||
static func folder_size(dir: String, skip: PackedStringArray = []) -> int:
|
||||
if !DirAccess.dir_exists_absolute(dir):
|
||||
return 0
|
||||
var total: int = 0
|
||||
for file_name: String in DirAccess.get_files_at(dir):
|
||||
var path: String = dir.path_join(file_name)
|
||||
var file: FileAccess = FileAccess.open(path, FileAccess.READ)
|
||||
if file != null && !skip.has(path):
|
||||
total += file.get_length()
|
||||
return total
|
||||
|
||||
|
||||
func save_index() -> void:
|
||||
DirAccess.make_dir_recursive_absolute(folder())
|
||||
var file: FileAccess = FileAccess.open(folder().path_join(INDEX_FILE_NAME),
|
||||
|
||||
Reference in new issue
Block a user