超適当にJScriptでtwitter
コンソールから出来ると良いねって感じで適当に作ってみた
cscript /nologo twitter.js
でタイムライン表示
cscript /nologo twitter.js /P:"post message"
でポスト
var url = "http://twitter.com/"; var user = "teramako"; var pass = "xxxxxx"; var methods = { friends_timeline: "statuses/friends_timeline.json", update: "statuses/update.json" }; function getJSON(method){ var req = WScript.CreateObject("Msxml2.XMLHTTP"); req.open("GET", url + method, false, user, pass); req.send(null); onLoad(req.responseText); } function post(data){ var req = WScript.CreateObject("Msxml2.XMLHTTP"); req.open("POST", url + methods.update, false, user, pass); req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); req.setRequestHeader("X-Twitter-Client", "wsh tweet"); req.setRequestHeader("X-Twitter-Client", "0.1"); req.send("status=" + encodeURIComponent(data)); } var dateParser = (function(){ var now = new Date(); var tzMilisec = Math.floor(now.getTimezoneOffset() / 60) * 60 * 60 * 1000; var reg = /\+0000 /; function zeroPadding(){ var res = []; var num; for (var i=0, length=arguments.length; i<length; i++){ num = arguments[i]; res.push((num < 10 ? "0": "") + num); } return res; } var self = { parse: function(str){ str = str.replace(reg,""); return new Date(Date.parse(str) - tzMilisec); }, formatDate: function(date){ return [ zeroPadding(date.getFullYear(), date.getMonth() + 1, date.getDate()).join("-"), zeroPadding(date.getHours(), date.getMinutes(), date.getSeconds()).join(":") ].join(" "); }, toDateString: function(str){ return this.formatDate(this.parse(str)); } }; return self; })(); function onLoad(json){ var statuses = eval(json); for (var i=0, length=statuses.length; i<length; i++){ var status = statuses[i]; var date = dateParser.toDateString(status.created_at); echo([ date, status.user.screen_name, status.text ].join(" ")); } } function echo(msg){ WScript.Echo(msg); } function init(args){ var lenth = args.length; if (args.Named.Exists("P")){ var msg = args.Named.Item("P"); post(msg); echo(msg); } else { getJSON(methods.friends_timeline); } } init(WScript.Arguments);