mirror of
https://github.com/MrUnknownDE/VRCX.git
synced 2026-05-06 22:46:06 +02:00
Sweep VRChat cache function
This commit is contained in:
+31
-1
@@ -238,7 +238,6 @@ namespace VRCX
|
|||||||
Directory.Move(CacheSource, CacheDestinationLocation);
|
Directory.Move(CacheSource, CacheDestinationLocation);
|
||||||
if (File.Exists(Path.Combine(VRChatCacheLocation, "Cache-WindowsPlayer", "__info")))
|
if (File.Exists(Path.Combine(VRChatCacheLocation, "Cache-WindowsPlayer", "__info")))
|
||||||
File.Delete(Path.Combine(VRChatCacheLocation, "Cache-WindowsPlayer", "__info"));
|
File.Delete(Path.Combine(VRChatCacheLocation, "Cache-WindowsPlayer", "__info"));
|
||||||
File.Move(Path.Combine(AssetBundleCacherTemp, "__info"), Path.Combine(VRChatCacheLocation, "Cache-WindowsPlayer", "__info"));
|
|
||||||
Directory.Delete(Path.Combine(VRChatCacheLocation, "AssetBundleCacher\\Cache", AssetId), true);
|
Directory.Delete(Path.Combine(VRChatCacheLocation, "AssetBundleCacher\\Cache", AssetId), true);
|
||||||
File.Delete(Path.Combine(VRChatCacheLocation, "AssetBundleCacher", AssetId));
|
File.Delete(Path.Combine(VRChatCacheLocation, "AssetBundleCacher", AssetId));
|
||||||
}
|
}
|
||||||
@@ -269,6 +268,37 @@ namespace VRCX
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void SweepCache(string cacheDir)
|
||||||
|
{
|
||||||
|
var cachePath = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData) + @"Low\VRChat\VRChat\Cache-WindowsPlayer";
|
||||||
|
if (cacheDir != String.Empty && Directory.Exists(cacheDir))
|
||||||
|
cachePath = Path.Combine(cacheDir, @"Cache-WindowsPlayer");
|
||||||
|
if (!Directory.Exists(cachePath))
|
||||||
|
return;
|
||||||
|
var directories = new DirectoryInfo(cachePath);
|
||||||
|
DirectoryInfo[] cacheDirectories = directories.GetDirectories();
|
||||||
|
foreach (DirectoryInfo cacheDirectory in cacheDirectories)
|
||||||
|
{
|
||||||
|
var VersionDirectories = cacheDirectory.GetDirectories().OrderBy(d => Convert.ToInt32(d.Name, 16));
|
||||||
|
int i = 0;
|
||||||
|
foreach (DirectoryInfo VersionDirectory in VersionDirectories)
|
||||||
|
{
|
||||||
|
i++;
|
||||||
|
if (VersionDirectory.GetDirectories().Length + VersionDirectory.GetFiles().Length == 0)
|
||||||
|
{
|
||||||
|
VersionDirectory.Delete();
|
||||||
|
}
|
||||||
|
else if (i < VersionDirectories.Count())
|
||||||
|
{
|
||||||
|
if (!File.Exists(Path.Combine(VersionDirectory.FullName, "__lock")))
|
||||||
|
VersionDirectory.Delete(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (cacheDirectory.GetDirectories().Length + cacheDirectory.GetFiles().Length == 0)
|
||||||
|
cacheDirectory.Delete();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public long GetCacheSize(string cacheDir)
|
public long GetCacheSize(string cacheDir)
|
||||||
{
|
{
|
||||||
var cachePath = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData) + @"Low\VRChat\VRChat\Cache-WindowsPlayer";
|
var cachePath = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData) + @"Low\VRChat\VRChat\Cache-WindowsPlayer";
|
||||||
|
|||||||
@@ -7064,6 +7064,7 @@ speechSynthesis.getVoices();
|
|||||||
$app.data.worldAutoCacheGPS = configRepository.getString('VRCX_worldAutoCacheGPS');
|
$app.data.worldAutoCacheGPS = configRepository.getString('VRCX_worldAutoCacheGPS');
|
||||||
$app.data.worldAutoCacheInviteFilter = configRepository.getBool('VRCX_worldAutoCacheInviteFilter');
|
$app.data.worldAutoCacheInviteFilter = configRepository.getBool('VRCX_worldAutoCacheInviteFilter');
|
||||||
$app.data.worldAutoCacheGPSFilter = configRepository.getBool('VRCX_worldAutoCacheGPSFilter');
|
$app.data.worldAutoCacheGPSFilter = configRepository.getBool('VRCX_worldAutoCacheGPSFilter');
|
||||||
|
$app.data.autoSweepVRChatCache = configRepository.getBool('VRCX_autoSweepVRChatCache');
|
||||||
var saveOpenVROption = function () {
|
var saveOpenVROption = function () {
|
||||||
configRepository.setBool('openVR', this.openVR);
|
configRepository.setBool('openVR', this.openVR);
|
||||||
configRepository.setBool('openVRAlways', this.openVRAlways);
|
configRepository.setBool('openVRAlways', this.openVRAlways);
|
||||||
@@ -7081,6 +7082,7 @@ speechSynthesis.getVoices();
|
|||||||
configRepository.setString('VRCX_worldAutoCacheGPS', this.worldAutoCacheGPS);
|
configRepository.setString('VRCX_worldAutoCacheGPS', this.worldAutoCacheGPS);
|
||||||
configRepository.setBool('VRCX_worldAutoCacheInviteFilter', this.worldAutoCacheInviteFilter);
|
configRepository.setBool('VRCX_worldAutoCacheInviteFilter', this.worldAutoCacheInviteFilter);
|
||||||
configRepository.setBool('VRCX_worldAutoCacheGPSFilter', this.worldAutoCacheGPSFilter);
|
configRepository.setBool('VRCX_worldAutoCacheGPSFilter', this.worldAutoCacheGPSFilter);
|
||||||
|
configRepository.setBool('VRCX_autoSweepVRChatCache', this.autoSweepVRChatCache);
|
||||||
this.updateVRConfigVars();
|
this.updateVRConfigVars();
|
||||||
};
|
};
|
||||||
$app.data.TTSvoices = speechSynthesis.getVoices();
|
$app.data.TTSvoices = speechSynthesis.getVoices();
|
||||||
@@ -7108,6 +7110,7 @@ speechSynthesis.getVoices();
|
|||||||
$app.watch.worldAutoCacheGPS = saveOpenVROption;
|
$app.watch.worldAutoCacheGPS = saveOpenVROption;
|
||||||
$app.watch.worldAutoCacheInviteFilter = saveOpenVROption;
|
$app.watch.worldAutoCacheInviteFilter = saveOpenVROption;
|
||||||
$app.watch.worldAutoCacheGPSFilter = saveOpenVROption;
|
$app.watch.worldAutoCacheGPSFilter = saveOpenVROption;
|
||||||
|
$app.watch.autoSweepVRChatCache = saveOpenVROption;
|
||||||
$app.watch.notificationTTS = saveNotificationTTS;
|
$app.watch.notificationTTS = saveNotificationTTS;
|
||||||
$app.data.isDarkMode = configRepository.getBool('isDarkMode');
|
$app.data.isDarkMode = configRepository.getBool('isDarkMode');
|
||||||
$appDarkStyle.disabled = $app.data.isDarkMode === false;
|
$appDarkStyle.disabled = $app.data.isDarkMode === false;
|
||||||
@@ -11700,6 +11703,18 @@ speechSynthesis.getVoices();
|
|||||||
this.getVRChatCacheSize();
|
this.getVRChatCacheSize();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
$app.methods.sweepVRChatCache = async function () {
|
||||||
|
await this.readVRChatConfigFile();
|
||||||
|
var cacheDirectory = '';
|
||||||
|
if (this.VRChatConfigFile.cache_directory) {
|
||||||
|
cacheDirectory = this.VRChatConfigFile.cache_directory;
|
||||||
|
}
|
||||||
|
await AssetBundleCacher.SweepCache(cacheDirectory);
|
||||||
|
if (this.VRChatConfigDialog.visible) {
|
||||||
|
this.getVRChatCacheSize();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
$app.data.VRChatUsedCacheSize = '';
|
$app.data.VRChatUsedCacheSize = '';
|
||||||
$app.data.VRChatTotalCacheSize = '';
|
$app.data.VRChatTotalCacheSize = '';
|
||||||
$app.data.VRChatCacheSizeLoading = false;
|
$app.data.VRChatCacheSizeLoading = false;
|
||||||
|
|||||||
@@ -869,6 +869,10 @@ html
|
|||||||
div.options-container-item
|
div.options-container-item
|
||||||
el-button-group
|
el-button-group
|
||||||
el-button(size="small" icon="el-icon-download" @click="showDownloadDialog()") Download History
|
el-button(size="small" icon="el-icon-download" @click="showDownloadDialog()") Download History
|
||||||
|
br
|
||||||
|
div.options-container-item
|
||||||
|
span.name(style="min-width:250px") Auto sweep cache when closing VRChat
|
||||||
|
el-switch(v-model="autoSweepVRChatCache")
|
||||||
div.options-container
|
div.options-container
|
||||||
span.header Application
|
span.header Application
|
||||||
div.options-container-item
|
div.options-container-item
|
||||||
@@ -1523,6 +1527,9 @@ html
|
|||||||
span Clear Cache
|
span Clear Cache
|
||||||
el-button(type="default" @click="deleteAllVRChatCache" :disabled="isGameRunning" size="small" icon="el-icon-delete" circle style="margin-left:5px")
|
el-button(type="default" @click="deleteAllVRChatCache" :disabled="isGameRunning" size="small" icon="el-icon-delete" circle style="margin-left:5px")
|
||||||
br
|
br
|
||||||
|
span Delete all old versions from cache
|
||||||
|
el-button(size="small" style="margin-left:5px" icon="el-icon-folder-delete" @click="sweepVRChatCache()") Sweep Cache
|
||||||
|
br
|
||||||
div(style="display:inline-block;margin-top:10px" v-for="(item, value) in VRChatConfigList" :key="value")
|
div(style="display:inline-block;margin-top:10px" v-for="(item, value) in VRChatConfigList" :key="value")
|
||||||
span(v-text="item.name" style="word-break:keep-all")
|
span(v-text="item.name" style="word-break:keep-all")
|
||||||
|:
|
|:
|
||||||
|
|||||||
Reference in New Issue
Block a user