示例#1
0
        public async Task Parser(string[] ids)
        {
            start(ids.Length);
            for (int i = 0; i < ids.Length; i++)
            {
                this.text = ids[i];
                Hitomi h = await Parser();

                update(h, i, ids.Length);
            }
            end();
        }
示例#2
0
        public async Task Parser(int[] ids)
        {
            start(ids.Length);
            InternetP parser = new InternetP();

            for (int i = 0; i < ids.Length; i++)
            {
                parser.index = ids[i];
                Hitomi h = await parser.HitomiData2();

                update(h, i, ids.Count());
            }
            end();
        }
示例#3
0
        public async void FastParser(int[] ids)
        {
            start(ids.Length);
            for (int i = 0; i < ids.Length; i++)
            {
                InternetP parser = new InternetP();
                parser.index = ids[i];
                Hitomi h = await parser.HitomiData();

                h.type = Hitomi.Type.Hitomi;
                h.id   = ids[i].ToString();
                update(h, i, ids.Count());
            }
            end();
        }
示例#4
0
        public async Task <Hitomi> Parser()
        {
            InternetP parser;

            parser = new InternetP(url: $"https://api.hiyobi.me/gallery/{text}");
            JObject obj = await parser.LoadJObject();

            parser = new InternetP(url: $"https://cdn.hiyobi.me/data/json/{text}_list.json");
            JArray imgs = await parser.TryLoadJArray();

            if (imgs == null)
            {
                return(null);
            }
            Hitomi h = new Hitomi
            {
                id         = obj.StringValue("id"),
                name       = obj.StringValue("title"),
                type       = type,
                page       = imgs.Count,
                dir        = $"https://hiyobi.me/reader/{text}",
                thumb      = ImageProcessor.LoadWebImage($"https://cdn.hiyobi.me/tn/{text}.jpg"),
                thumbpath  = $"https://cdn.hiyobi.me/tn/{text}.jpg",
                files      = imgs.ToList().Select(x => $"https://cdn.hiyobi.me/data/{text}/{x["name"]}").ToArray(),
                author     = string.Join(", ", obj["artists"].Select(x => x["display"].ToString())),
                authors    = obj["artists"].Select(x => x["display"].ToString()).ToArray(),
                Json       = obj,
                designType = new InternetP().DesignTypeFromInt(obj.IntValue("type") ?? 0),
                language   = obj.StringValue("language")
            };

            foreach (JToken tags in obj["tags"])
            {
                Tag tag = new Tag();
                if (tags["value"].ToString().Contains(":"))
                {
                    tag.types = (Tag.Types)Enum.Parse(typeof(Tag.Types), tags["value"].ToString().Split(':')[0]);
                }
                else
                {
                    tag.types = Tag.Types.tag;
                }
                tag.name = tags["display"].ToString();
                h.tags.Add(tag);
            }
            return(h);
        }
示例#5
0
        public async void Parser(JObject jobject)
        {
            start(jobject["list"].Count());
            foreach (JToken tk in jobject["list"])
            {
                InternetP parser = new InternetP(url: $"https://cdn.hiyobi.me/data/json/{tk["id"]}_list.json");
                JArray    imgs   = await parser.TryLoadJArray();

                if (imgs == null)
                {
                    continue;
                }
                Hitomi h = new Hitomi
                {
                    id        = tk["id"].ToString(),
                    name      = tk["title"].ToString(),
                    type      = type,
                    page      = imgs.Count,
                    dir       = $"https://hiyobi.me/reader/{tk["id"]}",
                    thumb     = ImageProcessor.LoadWebImage($"https://cdn.hiyobi.me/tn/{tk["id"]}.jpg"),
                    thumbpath = $"https://cdn.hiyobi.me/tn/{tk["id"]}.jpg",
                    files     = imgs.ToList().Select(x => $"https://cdn.hiyobi.me/data/{tk["id"]}/{x["name"]}").ToArray(),
                    author    = string.Join(", ", tk["artists"].Select(x => x["display"].ToString())),
                    authors   = tk["artists"].Select(x => x["display"].ToString()).ToArray(),
                    Json      = tk//tk.ToString()
                };
                foreach (JToken tags in tk["tags"])
                {
                    Tag tag = new Tag();
                    if (tags["value"].ToString().Contains(":"))
                    {
                        tag.types = (Tag.Types)Enum.Parse(typeof(Tag.Types), tags["value"].ToString().Split(':')[0]);
                    }
                    else
                    {
                        tag.types = Tag.Types.tag;
                    }
                    tag.name = tags["display"].ToString();
                    h.tags.Add(tag);
                }
                update(h,
                       jobject["list"].ToList().IndexOf(tk),
                       jobject["list"].Count());
            }
            end();
        }
示例#6
0
        public async void Parser()
        {
            InternetP parser = new InternetP();

            parser.index = (index - 1) * count;
            parser.count = count;
            parser.url   = "https://ltn.hitomi.la/index-all.nozomi";
            int[] ids = parser.ByteArrayToIntArray(await parser.LoadNozomi());
            start(ids.Count());
            foreach (int id in ids)
            {
                parser.index = id;
                Hitomi h = await parser.HitomiData2();

                update(h, ids.ToList().IndexOf(id), ids.Count());
            }
            end();
        }