@twneruに「おはようございます」とポストする
最近、ねる。(http://twneru.appspot.com/)を使って睡眠時間を記録していますが、寝起きがかなり悪く毎日寝起きにすぐパソコンの前に座ってキーボードをたたくなんてほぼ不可能です。
でも、寝起きにダブルクリックくらいならなんとかなりそうなので、実行するとtwneruにポストするプログラムを書きました。
僕は5時前に起きることはないし、午後まで寝るなんてもっとありえないので、5時〜12時は「おはようございます」、以外は「おやすみなさい」とポストするオレオレ仕様です。
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Post2Twneru { class Program { static void Main(string[] args) { var twitter = new Twitter() { UserAccount = new Account() { UserId = "Your UserId", Password = "Your Password" } }; twitter.Post(getStatus()); Console.WriteLine("Posted!"); Console.ReadLine(); } private static string getStatus() { var now = DateTime.Now; return string.Format( "@twneru {0}", 5 < now.Hour && now.Hour < 12 ? "おはようございます" : "おやすみなさい" ); } } class Account { public string UserId { get; set; } public string Password { get; set; } } class Twitter { private const string POST_URL = "http://twitter.com/statuses/update.xml"; public Account UserAccount { get; set; } public System.IO.Stream Post(string status) { var param = "status=" + System.Web.HttpUtility.UrlEncode(status, Encoding.UTF8); var data = Encoding.ASCII.GetBytes(param); var req = (System.Net.HttpWebRequest)System.Net.HttpWebRequest.Create(POST_URL); req.Method = "POST"; req.ContentType = "application/x-www-form-urlencoded"; req.ContentLength = data.Length; var currentServicePoint = req.ServicePoint; currentServicePoint.Expect100Continue = false; var basicAuthData = Encoding.UTF8.GetBytes(string.Format("{0}:{1}", UserAccount.UserId, UserAccount.Password)); var auth = System.Convert.ToBase64String(basicAuthData); req.Headers.Add("Authorization", "Basic " + auth); var reqStream = req.GetRequestStream(); reqStream.Write(data, 0, data.Length); reqStream.Close(); var res = (System.Net.HttpWebResponse)req.GetResponse(); var resStream = res.GetResponseStream(); res.Close(); return resStream; } } }
こうやって毎日記録してみると、思ったより寝てるなあ。