Ejemplo n.º 1
0
        private void PlayButton_Click(object sender, RoutedEventArgs e)
        {
            CMLauncher.ProgressChanged += (o, ef) =>
            {
                Dispatcher.Invoke(() =>
                {
                    MainProgressBar.Value = ef.ProgressPercentage;
                });
            };
            CMLauncher.FileChanged += (fu) =>
            {
            };
            CMLauncher.LogOutput += (ee, Log) =>
            {
                Dispatcher.Invoke(() =>
                {
                    Label L = new Label()
                    {
                        Content = Log
                    };
                    LogList.Items.Add(L);
                    LogList.ScrollIntoView(L);
                });
            };


            if (!Directory.Exists("Data/Game"))
            {
                Directory.CreateDirectory("Data/Game");
            }

            if (!Directory.Exists("Data/Game/mods"))
            {
                Directory.CreateDirectory("Data/Game/mods");
            }

            if (!File.Exists("Mods.zip"))
            {
                ModDownloader.DownloadFile((obj, prog) =>
                {
                    Dispatcher.Invoke(() => MainProgressBar.Value = prog.ProgressPercentage);
                },
                                           (f, ff) =>
                {
                    Directory.Delete("Data/Game/mods", true);
                    Directory.CreateDirectory("Data/Game/mods");
                    ZipFile.ExtractToDirectory("Mods.zip", "Data/Game/mods");
                    LaunchGame();
                });
            }
            else
            {
                Directory.Delete("Data/Game/mods", true);
                Directory.CreateDirectory("Data/Game/mods");
                ZipFile.ExtractToDirectory("Mods.zip", "Data/Game/mods");
                LaunchGame();
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Gets the screenshot from Gamebanana's API
        /// </summary>
        /// <param name="_ItemType">Gamebanana's Mod Type</param>
        /// <param name="_ItemID">Gamebanana's Mod ID</param>
        /// <param name="_GameID">Gamebanana's Game ID</param>
        /// <param name="_TypeID">Gamebanana's Category ID</param>
        /// <returns></returns>
        public static async Task <int> GetScreenshot(string _ItemType, string _ItemID, string Guid)
        {
            string downloadURL = "";

            queryParameters = GetDefaultParameters();
            queryParameters.Add(new QueryStringItem("itemid", _ItemID));
            queryParameters.Add(new QueryStringItem("itemtype", _ItemType));
            queryParameters.Add(new QueryStringItem("fields", "Preview().sSubFeedImageUrl()"));


            string queryURL = FormatAPIRequest("Core/Item/Data", queryParameters);

            try
            {
                using (HttpClient webClient = new HttpClient())
                {
                    HttpResponseMessage response = await webClient.GetAsync(queryURL);

                    if (response.IsSuccessStatusCode)
                    {
                        string responseText = await response.Content.ReadAsStringAsync();

                        Regex fileMatch = new Regex("sSubFeedImageUrl\\(\\)\":\"(.*?)\"");
                        Match match     = fileMatch.Match(responseText);

                        downloadURL = match.Value;
                        downloadURL = downloadURL.Split('"')[2];
                        downloadURL = downloadURL.Replace("\\/", "/");

                        string downloadextension = downloadURL.Split('.')[downloadURL.Split('.').Length - 1];

                        string imageSource  = Properties.Settings.Default.DefaultDir + @"\Library\Screenshots\" + Guid + "." + downloadextension;
                        string wimageSource = Properties.Settings.Default.DefaultDir + @"\Library\Screenshots\" + Guid + ".webp";

                        await ModDownloader.DownloadFile(downloadURL, imageSource);

                        if (downloadextension != "webp")
                        {
                            try
                            {
                                using (FileStream fsSource = new FileStream(imageSource, FileMode.Open, FileAccess.Read))
                                {
                                    byte[] ImageData = new byte[fsSource.Length];
                                    fsSource.Read(ImageData, 0, ImageData.Length);

                                    using (var webPFileStream = new FileStream(wimageSource, FileMode.Create))
                                    {
                                        using (ImageFactory imageFactory = new ImageFactory(preserveExifData: false))
                                        {
                                            imageFactory.Load(ImageData)
                                            .Format(new WebPFormat())
                                            .Quality(100)
                                            .Save(webPFileStream);
                                        }
                                    }
                                }



                                if (File.Exists(wimageSource))
                                {
                                    File.Delete(imageSource);
                                }
                            }
                            catch (Exception e)
                            {
                                Console.WriteLine(e.Message);
                            }
                        }
                    }
                }
            }
            catch (Exception e)
            {
                Console.Write("fak");
            }

            return(0);
        }