예제 #1
0
 public async override Task<ResultMessage> GetArtistInfo(string url)
 {
     try
     {
         string ss = await GetWebCode("view-source:" + url);
         Match ma = _cidRegex.Match(ss);
         if (ma.Success)
         {
             string _cid = ma.Groups[1].Value;
             ss = ChangeUnicode(await GetAPI(string.Format(_artistUrl, _cid)));
             var jpa = JsonConvert.DeserializeObject<JsonData_Patreon_Artist>(ss);
             if (null != jpa.data)
             {
                 var ai = new ArtistInfo()
                 {
                     Id = _cid,
                     Cid = _cid,
                     AName = GlobalMethord.RemoveLastDot(GlobalMethord.ReplacePath(jpa.data.attributes.name)),
                     PostUrl = url,
                     PayLow = GlobalData.VM_MA.Artist.PayLow,
                     PayHigh = GlobalData.VM_MA.Artist.PayHigh
                 };
                 return ResultHelper.NoError(ai);
             }
             return ResultHelper.IOError();
         }
         return ResultHelper.PathError();
     }
     catch (Exception ex)
     {
         GlobalMethord.ErrorLog(ex.Message + Environment.NewLine + ex.StackTrace + Environment.NewLine + "-----------------------------------------------");
         return ResultHelper.UnKnownError();
     }
 }
예제 #2
0
 public async override Task <ResultMessage> GetArtistList()
 {
     try
     {
         string ss  = ChangeUnicode(await GetAPI(_pledgeUrl));
         var    jpp = JsonConvert.DeserializeObject <JsonData_Patreon_Pledge>(ss);
         if (null != jpp.data && null != jpp.included)
         {
             List <ArtistInfo> ais = new List <ArtistInfo>();
             var tais = GlobalData.VM_MA.ArtistList.ToList();
             if (tais.Count == 0)
             {
                 tais.Add(new ArtistInfo());
             }
             var incll = jpp.included.ToList();
             for (int i = 0; i < jpp.data.Length; i++)
             {
                 var inclu = incll.Find(x => x.id == jpp.data[i].relationships.campaign.data.id);
                 var ai    = new ArtistInfo()
                 {
                     Id      = inclu.id,
                     Cid     = inclu.id,
                     AName   = GlobalMethord.RemoveLastDot(GlobalMethord.ReplacePath(inclu.attributes.name)),
                     PostUrl = inclu.attributes.url,
                     PayHigh = jpp.data[i].attributes.amount_cents.ToString()
                 };
                 tais.Remove(ai);
                 ais.Add(ai);
             }
             ais.AddRange(tais);
             return(ResultHelper.NoError(ais));
         }
         if (ss == "{\"data\":[]}")
         {
             return(ResultHelper.NoError(new List <ArtistInfo>()));
         }
         return(ResultHelper.IOError());
     }
     catch (Exception ex)
     {
         GlobalMethord.ErrorLog(ex.Message + Environment.NewLine + ex.StackTrace + Environment.NewLine + "-----------------------------------------------");
         return(ResultHelper.UnKnownError());
     }
 }
예제 #3
0
        public async override Task <ResultMessage> GetArtistList()
        {
            return(await Task.Run(() =>
            {
                try
                {
                    var ais = new List <ArtistInfo>();
                    var tais = GlobalData.VM_MA.ArtistList.ToList();
                    if (tais.Count == 0)
                    {
                        tais.Add(new ArtistInfo());
                    }

                    var jfp = JsonConvert.DeserializeObject <JsonData_Fanbox_Plan>(GetWebCode("https://api.fanbox.cc/plan.listSupporting", "https://www.fanbox.cc/creators/supporting"));
                    if (null != jfp.body)
                    {
                        foreach (var pl in jfp.body)
                        {
                            var ai = GetInfo(pl.creatorId, $"https://www.fanbox.cc/@{pl.creatorId}");
                            if (null != ai)
                            {
                                ai.PayHigh = pl.fee.ToString();
                                tais.Remove(ai);
                                ais.Add(ai);
                            }
                        }
                        ais.AddRange(tais);
                        return ResultHelper.NoError(ais);
                    }
                    return ResultHelper.IOError();
                }
                catch (Exception ex)
                {
                    GlobalMethord.ErrorLog(ex.Message + Environment.NewLine + ex.StackTrace + Environment.NewLine + "-----------------------------------------------");
                    if (ex is WebException || ex is System.Net.Sockets.SocketException)
                    {
                        return ex.Message.Contains("40") ? ResultHelper.CookieError() : ResultHelper.WebError();
                    }
                    return ResultHelper.UnKnownError();
                }
            }));
        }
예제 #4
0
        public async override Task <ResultMessage> GetArtistInfo(string url)
        {
            return(await Task.Run(() =>
            {
                try
                {
                    Match ma = _artUrl.Match(url);
                    if (!ma.Success)
                    {
                        return ResultHelper.PathError();
                    }
                    string cid = ma.Groups[1].Value;

                    var jfa = JsonConvert.DeserializeObject <JsonData_Fantia_Artist>(GetWebCode($"https://fantia.jp/api/v1/fanclubs/{cid}"));
                    if (null != jfa.fanclub)
                    {
                        var ai = new ArtistInfo()
                        {
                            Id = cid,
                            AName = GlobalMethord.RemoveLastDot(GlobalMethord.ReplacePath(jfa.fanclub.creator_name)),
                            Cid = cid,
                            PostUrl = $"https://fantia.jp/fanclubs/{cid}",
                            PayLow = GlobalData.VM_MA.Artist.PayLow,
                            PayHigh = GlobalData.VM_MA.Artist.PayHigh
                        };
                        return ResultHelper.NoError(ai);
                    }
                    return ResultHelper.IOError();
                }
                catch (Exception ex)
                {
                    GlobalMethord.ErrorLog(ex.Message + Environment.NewLine + ex.StackTrace + Environment.NewLine + "-----------------------------------------------");
                    if (ex is WebException || ex is System.Net.Sockets.SocketException)
                    {
                        return ex.Message.Contains("40") ? ResultHelper.CookieError() : ResultHelper.WebError();
                    }
                    return ResultHelper.UnKnownError();
                }
            }));
        }
예제 #5
0
        public async override Task <ResultMessage> GetArtistInfo(string url)
        {
            return(await Task.Run(() =>
            {
                try
                {
                    Match ma = _artUrl.Match(url);
                    if (!ma.Success)
                    {
                        ma = _artUrl2.Match(url);
                        if (!ma.Success)
                        {
                            return ResultHelper.PathError();
                        }
                    }
                    _referer = $"https://www.fanbox.cc/@{ma.Groups[1].Value}";

                    var ai = GetInfo(ma.Groups[1].Value);
                    if (null != ai)
                    {
                        ai.PayLow = GlobalData.VM_MA.Artist.PayLow;
                        ai.PayHigh = GlobalData.VM_MA.Artist.PayHigh;
                        return ResultHelper.NoError(ai);
                    }
                    return ResultHelper.IOError();
                }
                catch (Exception ex)
                {
                    GlobalMethord.ErrorLog(ex.Message + Environment.NewLine + ex.StackTrace + Environment.NewLine + "-----------------------------------------------");
                    if (ex is WebException || ex is System.Net.Sockets.SocketException)
                    {
                        return ex.Message.Contains("40") ? ResultHelper.CookieError() : ResultHelper.WebError();
                    }
                    return ResultHelper.UnKnownError();
                }
            }));
        }
예제 #6
0
        public async override Task<ResultMessage> GetPostIDs(string uid)
        {
            try
            {
                string ss = ChangeUnicode(await GetAPI(string.Format(_postUrl, uid)));
                List<BaseItem> pis = new List<BaseItem>();
                while (true)
                {
                    var jpp = JsonConvert.DeserializeObject<JsonData_Patreon_Post>(ss);
                    if (null != jpp.data && null != jpp.included && null != jpp.meta)
                    {
                        var incll = jpp.included.ToList();
                        for (int i = 0; i < jpp.data.Length; i++)
                        {
                            if (DateTime.TryParse(jpp.data[i].attributes.published_at, out DateTime dt))
                            {
                                if (GlobalMethord.OverTime(dt))
                                {
                                    return ResultHelper.NoError(pis);
                                }
                            }

                            PatreonItem pi = new PatreonItem()
                            {
                                CreateDate = dt,
                                UpdateDate = dt,
                                PID = jpp.data[i].id,
                                Title = GlobalMethord.RemoveLastDot(GlobalMethord.ReplacePath(jpp.data[i].attributes.title)),
                                IsLiked = jpp.data[i].attributes.current_user_has_liked,
                                PLink = jpp.data[i].attributes.url
                            };
                            GlobalData.VM_MA.PostTitle = pi.Title;
                            if (!string.IsNullOrEmpty(jpp.data[i].attributes.content))
                            {
                                pi.Comments.Add(await GetWebContent(_htmlImg.Replace(jpp.data[i].attributes.content, "")));
                            }
                            else if (!string.IsNullOrEmpty(jpp.data[i].attributes.content_teaser_text))
                            {
                                pi.Comments.Add(jpp.data[i].attributes.content_teaser_text);
                            }
                            if (jpp.data[i].attributes.current_user_can_view)
                            {
                                if (null != jpp.data[i].attributes.image)
                                {
                                    pi.CoverPicThumb = jpp.data[i].attributes.image.thumb_url;
                                }
                                if (null != jpp.data[i].attributes.embed)
                                {
                                    pi.Comments.Add($"<{GlobalLanguage.Text_LinkPref} {jpp.data[i].attributes.embed.url} >");
                                }

                                if (null != jpp.data[i].relationships.media)
                                {
                                    for (int j = 0; j < jpp.data[i].relationships.media.data.Length; j++)
                                    {
                                        var inclu = incll.Find(x => x.id == jpp.data[i].relationships.media.data[j].id);
                                        if (string.IsNullOrEmpty(inclu.attributes.file_name))
                                        {
                                            inclu.attributes.file_name = "default.";
                                            if (!string.IsNullOrEmpty(inclu.attributes.mimetype))
                                            {
                                                var tep = inclu.attributes.mimetype.Split('/');
                                                if (tep.Length == 2)
                                                {
                                                    inclu.attributes.file_name += tep[1];
                                                }
                                                else
                                                {
                                                    inclu.attributes.file_name += inclu.attributes.mimetype;
                                                }
                                            }
                                            else
                                                inclu.attributes.file_name += "png";
                                        }
                                        else if (inclu.attributes.file_name.StartsWith("https://"))
                                        {
                                            continue;
                                        }
                                        pi.ContentUrls.Add(inclu.attributes.image_urls.original);
                                        pi.FileNames.Add(inclu.attributes.file_name);
                                        pi.Comments.Add($"<{GlobalLanguage.Text_FilePref} {inclu.attributes.file_name}>");
                                    }
                                }
                            }
                            pis.Add(pi);
                            GlobalData.VM_MA.PostCount++;
                        }
                        if (null != jpp.meta.pagination.cursors)
                        {
                            ss = ChangeUnicode(await GetAPI(string.Format(_nextUrl, uid, jpp.meta.pagination.cursors.next)));
                            continue;
                        }
                        return ResultHelper.NoError(pis);
                    }
                    return ResultHelper.IOError();
                }
            }
            catch (Exception ex)
            {
                GlobalMethord.ErrorLog(ex.Message + Environment.NewLine + ex.StackTrace + Environment.NewLine + "-----------------------------------------------");
                return ResultHelper.UnKnownError();
            }
        }