public NodeContainerFormat Convert(BinaryFormat source) { var container = new NodeContainerFormat(); var po = new Po { Header = new PoHeader("Jump Ultimate Stars", "TranScene", "es") { LanguageTeam = "TranScene", } }; var reader = new DataReader(source.Stream) { DefaultEncoding = Encoding.GetEncoding("shift_jis"), }; JusData.reader = reader; reader.Stream.Position = 0x00; BinaryFormat poBin; var mangaIndex = MangaIndex.getInstance(); int numQuestions = reader.ReadInt32(); string currentManga = mangaIndex.getMangaName(0xFF); int mangaCount = 0; for (int i = 0; i < numQuestions; i++) { var q = JquizData.readData(); if (q.manga != currentManga) { poBin = ConvertFormat.With <Po2Binary>(po) as BinaryFormat; container.Root.Add(new Node($"jquiz-{mangaCount}-{currentManga}.po", poBin)); po = new Po { Header = new PoHeader("Jump Ultimate Stars", "TranScene", "es") { LanguageTeam = "TranScene", } }; mangaCount++; currentManga = q.manga; } po.Add(new PoEntry(q.question) { Context = $"{i} - Question", ExtractedComments = $"{q.photo}-{q.mangaCode}-{q.unknown}-{q.num}" }); for (int j = 0; j < q.answers.Length; j++) { po.Add(new PoEntry(q.answers[j]) { Context = $"{i} - Answer {j}" }); } } poBin = ConvertFormat.With <Po2Binary>(po) as BinaryFormat; container.Root.Add(new Node($"jquiz-{mangaCount}-{currentManga}.po", poBin)); return(container); }
public async void UpdateButton_Click() { using (var pb = new ProgressWindow()) { pb.AddStacks(MangaIndex.Providers); pb.Show(); await MangaIndex.Update(pb.GetProgress); } }
public async Task <List <ProviderSetViewModel> > FindMangasByArtist(string searchString) { if (searchString.Length <= 4) { return(new List <ProviderSetViewModel>()); } var mangas = await MangaIndex.FindMangasByArtist(searchString); return(WrapMangas(mangas)); }
public async Task <List <ProviderSetViewModel> > SelectedGenreChanged(Genre genre) { if ((SearchString?.Length ?? 0) > 3) { return(Instances.Where(m => m.MetaData.Genres.HasFlag(genre)).ToList()); } //if no search string .Where(kvp => kvp.Name.ToLowerInvariant().Contains(lower)) var mangas = await MangaIndex.FindMangas(genre).ConfigureAwait(false); return(mangas.Take(20).Select(g => Factory(g)).ToList()); }
private static async Task Populate(params ISeriesParser[] parser) { var options = new ProgressBarOptions { ForegroundColor = ConsoleColor.Yellow, BackgroundColor = ConsoleColor.DarkYellow, ProgressCharacter = '─' }; var memCache = new MemFile(); var manager = new MangaDownloader(new FileSystem(), parser, Client2.GetDocumentAsync); var index = new MangaIndex(manager, null, memCache); var first = true; ConsoleProgress pb = null; IProgress <double> GetProgress(string context) { pb?.Dispose(); if (first) { first = false; } else { Console.WriteLine(); Console.WriteLine(); } return(pb = new ConsoleProgress(options, context)); } try { await index.Update(GetProgress); } catch (Exception e) { Console.WriteLine(e.Message); } //res = await Task.WhenAll(manager.Providers.Select(p => manager.ListInstances(p, pb).ContinueWith(t => (t.Result, provider: p)))); //var res = await MyDictionary; //MyDictionary = new AsyncLazy<Dictionary<string, MangaInfo>>(CreateDictionary); }
public static JquizData readData() { if (reader == null) { return(null); } var mangaIndex = MangaIndex.getInstance(); var data = new JquizData(); data.mangaCode = reader.ReadByte(); data.manga = mangaIndex.getMangaName(data.mangaCode); data.unknown = reader.ReadByte(); data.num = reader.ReadInt16(); data.photo = readPointerText(); data.question = readMultipleEntry(4); for (int i = 0; i < data.answers.Length; i++) { data.answers[i] = readPointerText(); } return(data); }