protected bool Login(HatenaBlogAtomPubCredential credential, out HatenaBlogAtomPubClient hatenaBlog) { hatenaBlog = CreateClient(credential); Console.Write("ログインしています ... "); var statusCode = hatenaBlog.Login(out _); if (statusCode == HttpStatusCode.OK) { Console.ForegroundColor = ConsoleColor.Green; Console.WriteLine("ログインに成功しました。"); Console.ResetColor(); return(true); } else { hatenaBlog = null; Console.ForegroundColor = ConsoleColor.Red; Console.Error.WriteLine("ログインに失敗しました。 ({0:D} {0})", statusCode); Console.ResetColor(); return(false); } }
protected HatenaBlogAtomPubClient CreateClient(HatenaBlogAtomPubCredential credential) { HatenaBlogAtomPubClient.InitializeHttpsServicePoint(); var client = HatenaBlogAtomPubClient.Create(credential); client.UserAgent = UserAgent; return(client); }
protected bool ParseCommonCommandLineArgs(ref string[] args, string[] argsNotRequireHatenaBlogClient, out HatenaBlogAtomPubCredential credential) { credential = null; var _argsNotRequireHatenaBlogClient = new List <string>() { "/?", "/help", "-h", "--help", }; _argsNotRequireHatenaBlogClient.AddRange(argsNotRequireHatenaBlogClient); var requireHatenaBlogClient = !(new HashSet <string>(args, StringComparer.Ordinal)).Overlaps(_argsNotRequireHatenaBlogClient); string hatenaId = null; string blogId = null; string apiKey = null; var unparsedArgs = new List <string>(args.Length); for (var i = 0; i < args.Length; i++) { switch (args[i]) { case "--id": case "-id": hatenaId = args[++i]; break; case "--blog-id": case "-blogid": blogId = args[++i]; break; case "--api-key": case "-apikey": apiKey = args[++i]; break; case "/?": case "/help": case "-h": case "--help": Usage(null); break; default: unparsedArgs.Add(args[i]); break; } } if (requireHatenaBlogClient) { if (string.IsNullOrEmpty(hatenaId)) { Usage("--idを指定してください"); return(false); } if (string.IsNullOrEmpty(blogId)) { Usage("--blog-idを指定してください"); return(false); } if (string.IsNullOrEmpty(apiKey)) { Usage("--api-keyを指定してください"); return(false); } credential = new HatenaBlogAtomPubCredential(hatenaId, blogId, apiKey); } args = unparsedArgs.ToArray(); return(true); }
protected bool ParseCommonCommandLineArgs(ref string[] args, out HatenaBlogAtomPubCredential credential) { return(ParseCommonCommandLineArgs(ref args, Array.Empty <string>(), out credential)); }