Beispiel #1
0
        static int Main(string[] args)
        {
            var servicesCollection = new ServiceCollection();

            servicesCollection.AddHttpClient(HTTPChecksumResolver.HTTPClientFactoryName, c =>
            {
                c.BaseAddress = new Uri("http://api.thmods.com");
            }).ConfigurePrimaryHttpMessageHandler(() => new HttpClientHandler()
            {
                Proxy    = new WebProxy("http://*****:*****@"/home/dev/tinySave.CAS", FileMode.Open, FileAccess.Read))
            {
                using (BinaryReader bs = new BinaryReader(fileStream))
                {
                    QScript.Save.CAS.ISerializationProvider deserializer = new QScript.Save.CAS.Games.THPS4Common_SerializationProvider(provider.GetRequiredService <QScript.IChecksumResolver>(), 1, 1);
                    var resultsTask = deserializer.DeserializeCAS(bs);
                    var results     = resultsTask.Result;
                    Console.WriteLine(results.summary);
                }
            }
            return(-1);
        }
Beispiel #2
0
        public async Task <FileStreamResult> PostCreateCAS(GamePlatform platform, GameVersion version, string friendlyName, [FromBody] QScript.Save.CAS.CASData input)
        {
            SaveFileTypeRecord record = await scriptKeyRepository.GetFileInfo(friendlyName, version, platform);

            if (record == null)
            {
                throw new NotImplementedException();
            }
            //GetFileInfo(string name, GameVersion version, GamePlatform platform);
            IChecksumResolver checksumResolver = new THPS.API.Utils.ChecksumResolver(scriptKeyRepository, platform, version);

            QScript.Save.CAS.ISerializationProvider serializer = new QScript.Save.CAS.Games.THPS4Common_SerializationProvider(checksumResolver, (int)record.fileVersion, record.fixedFileSize);
            var ms = await serializer.SerializeCAS(input);

            ms.Seek(0, SeekOrigin.Begin);
            return(new FileStreamResult(ms, "application/octet-stream")
            {
                FileDownloadName = "save." + friendlyName
            });
        }
Beispiel #3
0
        public async Task <QScript.Save.CAS.CASData> PostDownloadCAS(GamePlatform platform, GameVersion version)
        {
            IChecksumResolver checksumResolver = new THPS.API.Utils.ChecksumResolver(scriptKeyRepository, platform, version);

            QScript.Save.CAS.ISerializationProvider deserializer = new QScript.Save.CAS.Games.THPS4Common_SerializationProvider(checksumResolver, 1, 1);
            var formData = HttpContext.Request.Form;
            var files    = HttpContext.Request.Form.Files;

            using (MemoryStream ms = new MemoryStream())
            {
                var file = files.First();
                using (BinaryReader bs = new BinaryReader(ms))
                {
                    await file.CopyToAsync(ms);

                    ms.Seek(0, SeekOrigin.Begin);
                    var results = await deserializer.DeserializeCAS(bs);

                    return(results);
                }
            }
        }