Beispiel #1
0
        static void Main(string[] args)
        {
            try
            {
                Console.WriteLine("Создаем файловую структуру");
                CreateFSystemobjects();

                SiteDataManager manager = new SiteDataManager("russia", "mother", "cea5049c4d475516e27028e25646f2ab");
                if (MessageBox.Show("Качать кастом декс?", "это долго", MessageBoxButtons.YesNo) == DialogResult.Yes)
                {
                    Console.WriteLine("Получаем коллекцию страниц с деками");
                    var pages = manager.SiteDeckManager.getDeckPages(25);


                    using (var f = File.CreateText(folderDataName + "\\customdecks.txt"))
                    {
                        foreach (String page in pages)
                        {
                            Console.WriteLine(page);

                            var decks = manager.SiteDeckManager.GetDecksListFromPage(page);
                            foreach (String deck in decks)
                            {
                                f.WriteLine(deck);
                            }
                            f.Flush();
                        }
                    }
                }

                Console.WriteLine("Получаем коллекцию пользователей");
                var chests = manager.SiteChestsManager.UserChestsDescriptions;

                foreach (UserChestDescription chestDescription in chests)
                {
                    int tries = 10;
                    while (tries-- > 0)
                    {
                        try
                        {
                            Console.WriteLine("Обрабатываем: " + chestDescription.Name);
                            var chest = manager.SiteChestsManager.FillChest(chestDescription);

                            var guild = manager.SiteDeckManager.GetGuildByPlayer(chestDescription.Name);

                            var fname = MakeSafeName(guild + "." + chestDescription.Name);

                            using (var f = File.CreateText(foldername + "\\" + fname + "_a.txt"))
                            {
                                foreach (String card in chest.IOwnerCards)
                                {
                                    f.WriteLine(card);
                                }
                            }

                            using (var f = File.CreateText(foldername + "\\" + fname + "_m.txt"))
                            {
                                foreach (String card in chest.IOwnerCardsMaxed)
                                {
                                    f.WriteLine(card);
                                }
                            }

                            using (var f = File.CreateText(foldername + "\\" + fname + "_f.txt"))
                            {
                                foreach (String card in chest.IPossibleCard)
                                {
                                    f.WriteLine(card);
                                }
                            }
                            tries = 0;
                        }
                        catch (Exception ex)
                        {
                            Console.WriteLine(ex);
                            Console.WriteLine("осталось попыток: {0}", tries);
                        }
                    }
                }

                Console.WriteLine("Done");
                Console.ReadLine();
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex);
                Console.ReadKey();
            }
        }
Beispiel #2
0
 internal SimFilesManager(SiteDataManager manager)
 {
     this._manager = manager;
 }
Beispiel #3
0
        private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
        {
            try
            {
                ChestsDownloaderSettings settings = e.Argument as ChestsDownloaderSettings;

                if (settings == null)
                {
                    settings = new ChestsDownloaderSettings();
                }


                int progress = 0;
                this.backgroundWorker1.ReportProgress(progress, "Приступаем к обработке Дек");


                SiteDataManager manager = new SiteDataManager("russia", "mother", this.CurrentCredential.Password);
                this.backgroundWorker1.ReportProgress(progress, "Подключаемся к сайту");

                var chests = manager.SiteChestsManager.UserChestsDescriptions;
                this.backgroundWorker1.ReportProgress(progress, "Получена коллекция сундуков");

                String currentCardsFolder    = this.CurrentCredential.Engine.ChestsManager.GetCurrentCardsFolderpath();
                String maxedCardsCardsFolder = this.CurrentCredential.Engine.ChestsManager.GetMaxedCardsFolderpath();
                String allFusesCardsFolder   = this.CurrentCredential.Engine.ChestsManager.GetAllFusesCardsFolderpath();

                int step = 100 / chests.Count;

                foreach (UserChestDescription chestDescription in chests)
                {
                    this.backgroundWorker1.ReportProgress(progress, "Обрабатываем: " + chestDescription.Name);

                    int tries = 10;
                    while (tries-- > 0)
                    {
                        try
                        {
                            Console.WriteLine("Обрабатываем: " + chestDescription.Name);
                            var chest = manager.SiteChestsManager.FillChest(chestDescription);

                            String guild = "";

                            if (settings.LookForPlayerGuild)
                            {
                                try
                                {
                                    guild = manager.SiteDeckManager.GetGuildByPlayer(chestDescription.Name) + ".";
                                }
                                catch
                                {
                                    //this.backgroundWorker1.ReportProgress(progress, "Произошла ошибка: Не удалось определить гильдию игрока. " + ex.ToString());
                                }
                            }

                            var fname = MakeSafeName(guild + chestDescription.Name);

                            using (var f = System.IO.File.CreateText(currentCardsFolder + "\\" + fname + ".txt"))
                            {
                                foreach (String card in chest.IOwnerCards)
                                {
                                    if (settings.CheckFilterCard(card))
                                    {
                                        f.WriteLine(card);
                                    }
                                }
                            }

                            if (settings.GetAllMaxedCollection)
                            {
                                using (var f = File.CreateText(maxedCardsCardsFolder + "\\" + fname + ".txt"))
                                {
                                    foreach (String card in chest.IOwnerCardsMaxed)
                                    {
                                        f.WriteLine(card);
                                    }
                                }
                            }


                            if (settings.GetAllFusesCollection)
                            {
                                using (var f = File.CreateText(allFusesCardsFolder + "\\" + fname + ".txt"))
                                {
                                    foreach (String card in chest.IPossibleCard)
                                    {
                                        f.WriteLine(card);
                                    }
                                }
                            }
                            tries = 0;

                            progress = progress + step;
                        }
                        catch (IndexOutOfRangeException ex)
                        {
                            this.backgroundWorker1.ReportProgress(progress, "Произошла ошибка: " + ex.ToString());
                            this.backgroundWorker1.ReportProgress(progress, "Осталось попыток: " + tries);
                        }
                        catch (Exception ex)
                        {
                            this.backgroundWorker1.ReportProgress(progress, "Произошла ошибка: " + ex.ToString());
                            this.backgroundWorker1.ReportProgress(progress, "Осталось попыток: " + tries);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                this.backgroundWorker1.ReportProgress(-1, ex.Message);
            }
        }
Beispiel #4
0
        private void bgDeckLoader_DoWork(object sender, DoWorkEventArgs e)
        {
            try
            {
                int progress = 0;
                this.bgDeckLoader.ReportProgress(progress, "Приступаем к обработке Дек");


                this.bgDeckLoader.ReportProgress(progress, "Созданы объекты файловой системы");

                SiteDataManager manager = new SiteDataManager("russia", "mother", this._currentCred.Password);

                int size = 23;

                Boolean downloadAll = Convert.ToBoolean(e.Argument);

                if (downloadAll)
                {
                    size = int.MaxValue;
                }

                this.bgDeckLoader.ReportProgress(progress, "Подключаемся к сайту");
                var pagesenumerator = manager.SiteDeckManager.getDeckPages(size);

                List <String> pages = new List <String>();
                foreach (String page in pagesenumerator)
                {
                    pages.Add(page);
                }

                int pagesCount = pages.Count;

                using (var file = CurrentCredential.Engine.DeckManager.OpenForWrite())
                {
                    using (StreamWriter f = new StreamWriter(file))
                    {
                        for (int pageIngex = 0; pageIngex < pagesCount; pageIngex++)
                        {
                            String page = pages[pageIngex];

                            this.bgDeckLoader.ReportProgress(progress, "Обрабатываем " + page);

                            try
                            {
                                var decks = manager.SiteDeckManager.GetDecksListFromPage(page);
                                foreach (String deck in decks)
                                {
                                    f.WriteLine(deck);
                                }
                                f.Flush();
                            }
                            catch (Exception ex)
                            {
                                this.bgDeckLoader.ReportProgress(progress, ex.Message);
                            }

                            progress = ((100000 * pageIngex) / pagesCount) / 1000;
                            this.bgDeckLoader.ReportProgress(progress / 100);
                        }
                    }

                    this.bgDeckLoader.ReportProgress(progress, "Все страницы закачаны ");
                }
            }
            catch (Exception ex)
            {
                this.bgDeckLoader.ReportProgress(-1, ex.Message);
            }
        }