Esempio n. 1
0
        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());
        }
Esempio n. 5
0
        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);
        }
Esempio n. 6
0
        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);
        }