public static FileDownloadInfo StartModBinaryDownload(Modfile modfile, string targetFilePath) { Debug.Assert(modfile.downloadLocator.dateExpires > ServerTimeStamp.Now); ModfileIdPair idPair = new ModfileIdPair() { modId = modfile.modId, modfileId = modfile.id, }; if (modfileDownloadMap.Keys.Contains(idPair)) { Debug.LogWarning("[mod.io] Mod Binary for modfile is already downloading. TargetFilePath was not updated."); } else { modfileDownloadMap[idPair] = new FileDownloadInfo() { target = targetFilePath, fileSize = modfile.fileSize, request = null, isDone = false, }; DownloadClient.modfileProgressMarkers[idPair] = new DownloadProgressMarkerCollection(DownloadClient.DOWNLOAD_SPEED_MARKER_COUNT); DownloadModBinary_Internal(idPair, modfile.downloadLocator.binaryURL); } return(modfileDownloadMap[idPair]); }
private static void OnGetModfile(Modfile modfile, ModBinaryRequest request) { string tempFilePath = request.binaryFilePath + ".download"; request.modfile = modfile; request.webRequest = UnityWebRequest.Get(modfile.downloadLocator.binaryURL); try { Directory.CreateDirectory(Path.GetDirectoryName(tempFilePath)); request.webRequest.downloadHandler = new DownloadHandlerFile(tempFilePath); } catch (Exception e) { string warningInfo = ("[mod.io] Failed to create download file on disk." + "\nFile: " + tempFilePath + "\n\n"); Debug.LogWarning(warningInfo + Utility.GenerateExceptionDebugString(e)); request.NotifyFailed(); return; } var operation = request.webRequest.SendWebRequest(); operation.completed += (o) => DownloadClient.OnModBinaryRequestCompleted(operation, request); }
/// <summary>Stores a modfile in the cache.</summary> public static bool SaveModfile(Modfile modfile) { Debug.Assert(modfile != null); string path = GenerateModfileFilePath(modfile.modId, modfile.id); return(LocalDataStorage.WriteJSONFile(path, modfile)); }
public static void SaveModfile(Modfile modfile) { Debug.Assert(modfile.modId > 0, "[mod.io] Cannot cache a modfile without a mod id"); Debug.Assert(modfile.id > 0, "[mod.io] Cannot cache a modfile without a modfile id"); CacheClient.WriteJsonObjectFile(GenerateModfileFilePath(modfile.modId, modfile.id), modfile); }
/// <summary>Stores a modfile in the cache.</summary> public static bool SaveModfile(Modfile modfile) { Debug.Assert(modfile != null); return(IOUtilities.WriteJsonObjectFile(GenerateModfileFilePath(modfile.modId, modfile.id), modfile)); }