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(); } }
internal SimFilesManager(SiteDataManager manager) { this._manager = manager; }
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); } }
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); } }