public async Task<bool> LogIn(UrlVisitor visit) { // Build some dummy pages String dLog = "<html><a href='file://{0}'>Test Login</a></html>"; String dSuc = "<html>Success!</html>"; String fLog = Path.GetTempFileName() + ".html"; String fSuc = Path.GetTempFileName() + ".html"; dLog = String.Format(dLog, fSuc); File.WriteAllText(fLog, dLog); File.WriteAllText(fSuc, dSuc); if (!await visit("file://" + fLog, HtmlIsSuccess)) return false; remembered = new SeeUserLogin() { Token = "TOKEY", Secret = "SECREY" }; await Task.Delay(2000); return true; }
// methodies public async Task<bool> LogIn(UrlVisitor visit) { await visit(DB_OAUTH2_AUTHORISE(RT.Token, KEY, resultUri), (uri, data) => { if (uri.StartsWith(resultUri)) { var parms = uri.Substring(uri.IndexOf('#') + 1); var args = parms.Split('&'); Dictionary<String, String> vals = new Dictionary<string, string>(); foreach (var arg in args) { int ei = arg.IndexOf('='); var key = arg.Substring(0, ei); var val = arg.Substring(ei + 1); vals[key] = val; } wc = new DWebClient(vals["access_token"]); JObject info = JObject.Parse(wc.GetString(DB_ACCOUNT_INFO)); String em = info["email"].Value<String>(); if(remembered.accounts.FindAll(a => a.name == em).Count == 0) { remembered.accounts.Add(new Account() { name = em, token = vals["access_token"] }); FileStream fs = new FileStream(cfn, FileMode.OpenOrCreate); xs.Serialize(fs, remembered); fs.Close(); } return true; } return false; }); return false; }