private async Task <ResultMessage> LoginCheck(string htmlc) { if (!_needLogin) { if (!htmlc.Contains("currentUser")) { _needLogin = true; return(await LoginCheck(await GetWebCode("https://www.patreon.com/login?ru=%2Fhome"))); } else { if (string.IsNullOrEmpty(htmlc)) { return(ResultHelper.WebError()); } Match ma = _emailRegex.Match(htmlc); if (ma.Success) { var s = ma.Groups[1].Value; GlobalData.VM_MA.Cookies = s; GlobalData.VM_MA.IsInitialized = true; return(ResultHelper.NoError(_needLogin)); } return(ResultHelper.CookieError(GlobalLanguage.Msg_ErrorCookiesMail)); } } else { GlobalData.VM_MA.ShowLogin = true; _cwb.FrameLoadEnd += CWebBrowser_LoginCheck; _cwb.FrameLoadStart += Cwb_FrameLoadStart; return(ResultHelper.NoError(_needLogin)); } }
private async Task <ResultMessage> LoginCheck(string htmlc) { if (null == _cwb.Address) { return(await LoginCheck(await GetWebCode("view-source:https://www.patreon.com/home"))); } if (_cwb.Address.Contains("login")) { if (_cwb.Title.StartsWith("view-sou")) { return(await LoginCheck(await GetWebCode("https://www.patreon.com/login?ru=%2Fhome"))); } else { GlobalData.VM_MA.ShowLogin = true; _cwb.FrameLoadStart += Cwb_FrameLoadStart; _cwb.FrameLoadEnd += CWebBrowser_LoginCheck; return(ResultHelper.NoError(true)); } } else { if (string.IsNullOrEmpty(htmlc)) { return(ResultHelper.WebError()); } Match ma = _emailRegex.Match(htmlc); if (ma.Success) { var s = ma.Groups[1].Value; if (s != GlobalData.VM_MA.Cookies) { if (GlobalData.VM_MA.ShowLogin) { GlobalData.VM_MA.Messages = GlobalLanguage.Msg_ErrorCookiesAuto; } else { await GetWebCode("view-source:https://www.patreon.com/logout?ru=%2Fhome"); return(await LoginCheck(await GetWebCode("view-source:https://www.patreon.com/home"))); } } _currentCookie = s; GlobalData.VM_MA.Cookies = s; GlobalData.VM_MA.IsInitialized = true; } else { GlobalData.VM_MA.Messages = GlobalLanguage.Msg_ErrorCookiesMail; } _cwb.FrameLoadEnd -= CWebBrowser_LoginCheck; GlobalData.VM_MA.ShowLogin = false; return(ResultHelper.NoError(false)); } }
public async Task <ResultMessage> InitBrowser() { try { if (null != GlobalData.VM_MA.PatreonCefBrowser) { _cwb = (ChromiumWebBrowser)GlobalData.VM_MA.PatreonCefBrowser; if (!GlobalData.VM_MA.IsInitialized) { while (!_cwb.IsBrowserInitialized) { await Task.Delay(500); } if (GlobalData.VM_MA.UseProxy) { if (!await CefHelper.SetProxy(_cwb, GlobalData.VM_MA.Proxy)) { return(ResultHelper.WebError(GlobalLanguage.Msg_ErrorWebProxy)); } } return(await LoginCheck(await GetWebCode("view-source:https://www.patreon.com/home"))); } if (_currentCookie != GlobalData.VM_MA.Cookies) { return(await Logout()); } return(ResultHelper.NoError(false)); } CefHelper.Initialize(); _cwb = new ChromiumWebBrowser(); GlobalData.VM_MA.PatreonCefBrowser = _cwb; while (!_cwb.IsBrowserInitialized) { await Task.Delay(500); } if (GlobalData.VM_MA.UseProxy) { if (!await CefHelper.SetProxy(_cwb, GlobalData.VM_MA.Proxy)) { return(ResultHelper.WebError(GlobalLanguage.Msg_ErrorWebProxy)); } } return(await LoginCheck(await GetWebCode("view-source:https://www.patreon.com/home"))); } catch (Exception ex) { GlobalMethord.ErrorLog(ex.Message + Environment.NewLine + ex.StackTrace + Environment.NewLine + "-----------------------------------------------"); return(ResultHelper.UnKnownError()); } }
public async override Task <ResultMessage> LikePost(string pid, string cid) { return(await Task.Run(() => { if (string.IsNullOrEmpty(_x_csrf_token)) { if (!UpdateToken(pid, cid)) { return ResultHelper.SecurityError(); } } try { WebClient wc = new WebClient(); wc.Headers.Add(HttpRequestHeader.Cookie, GlobalData.VM_MA.Cookies); wc.Headers.Set(HttpRequestHeader.ContentType, "application/json"); wc.Headers.Set("Origin", "https://www.fanbox.cc"); wc.Headers.Add(HttpRequestHeader.Referer, $"https://www.fanbox.cc/@{cid}/posts/{pid}"); wc.Headers.Add("x-csrf-token", _x_csrf_token); if (GlobalData.VM_MA.UseProxy) { wc.Proxy = GlobalData.VM_MA.MyProxy; } wc.UploadString("https://api.fanbox.cc/post.likePost", $"{{\"postId\":\"{pid}\"}}"); return ResultHelper.NoError(null); } catch (Exception ex) { if (ex.Message.Contains("400")) { if (!UpdateToken(pid, cid)) { return ResultHelper.SecurityError(); } } return ResultHelper.WebError(); } })); }
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(); } })); }
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(); } })); }
public async override Task <ResultMessage> GetPostIDs(string uid) { return(await Task.Run(() => { var bis = new List <BaseItem>(); try { string url = $"https://api.fanbox.cc/post.listCreator?creatorId={uid}&limit=10"; if (string.IsNullOrEmpty(_referer)) { _referer = $"https://{uid}.fanbox.cc"; } string nurl = GetUrls(GetWebCode(url), bis); if (!string.IsNullOrEmpty(nurl)) { GetPostIDs_Next(nurl, bis); } return ResultHelper.NoError(bis); } 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("401") ? ResultHelper.CookieError() : ResultHelper.WebError(); } return ResultHelper.UnKnownError(); } })); }
public async override Task <ResultMessage> GetArtistList() { return(await Task.Run(() => { try { List <ArtistInfo> ais = new List <ArtistInfo>(); //有料 ais.AddRange(GetArtistListFromWebCode("not_")); //無料 ais.AddRange(GetArtistListFromWebCode(string.Empty)); var tais = GlobalData.VM_MA.ArtistList.ToList(); if (tais.Count == 0) { tais.Add(new ArtistInfo()); } tais.ForEach(x => { if (!ais.Contains(x)) { ais.Add(x); } }); return ResultHelper.NoError(ais); } 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(); } })); }
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(); } })); }
public async override Task <ResultMessage> GetPostIDs(string uid) { return(await Task.Run(() => { try { _pidList = new HashSet <string>(); var bis = GetPostIDsFromWebCode(uid); return ResultHelper.NoError(bis); } 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(); } else if (ex is InvalidDataException) { return ResultHelper.UnKnownError("Post Error: " + ex.Message); } return ResultHelper.UnKnownError(); } })); }