Yahoo!Pipesでtwitter簡易ビューア2

umhr_pipestwitter2Yahoo!PipesでTwitterのログを読んでみる2

Get Adobe Flash player

Yahoo! Pipesを使って
twitterのログを読んでみるテスト。2
自動リロードなどの機能はありません。
書き込みもできません。

ID,PWを入力してボタンを押すと
自分のタイムラインが読めます。

SharedObjectに保存しようと思ったけど、
悪用する人がでると困るので。自粛。

背景色は、ID番号から適当に生成

Pipesってホントに良くできているね。すごい2。

▼Wonderfl
http://wonderfl.net/code/378c8720bd2112c3afd16ce5fd4bbbee862ad2d6

▼ActionScript AS3(FP10)
[sourcecode language=”as3″]
/*
Yahoo! Pipesを使って
twitterのログを読んでみるテスト。2
自動リロードなどの機能はありません。
書き込みもできません。

ID,PWを入力してボタンを押すと
自分のタイムラインが読めます。

SharedObjectに保存しようと思ったけど、
悪用する人がでると困るので。自粛。

背景色は、ID番号から適当に生成

Pipesってホントに良くできているね。すごい2。

ちなみに僕はほとんどtwitterに書き込まないので、
フォローしても良いこと無いと思うよ。
*/
package {
import flash.display.Sprite;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.net.URLLoader;
import flash.net.URLRequest;
import flash.text.TextField;
[SWF(width = "465", height = "465", backgroundColor = 0xFFFFFF, frameRate = "30")]
public class Main extends Sprite{
private var userIDTF:TextField = new TextField();
private var userPWTF:TextField = new TextField();
private var commentBase:Sprite = new Sprite();
public function Main() {
addChild(commentBase);

var userID:TextField = new TextField();
userID.y = 2;
userID.width = 21;
userID.height = 21;
userID.text = "ID:";
userID.selectable = false;
addChild(userID);
userIDTF.x = 21;
userIDTF.y = 2;
userIDTF.width = 100;
userIDTF.height = 20;
userIDTF.border = true;
userIDTF.type = "input";
userIDTF.text = "";
addChild(userIDTF);

var userPW:TextField = new TextField();
userPW.x = 130;
userPW.y = 2;
userPW.width = 26;
userPW.height = 21;
userPW.text = "PW:";
userPW.selectable = false;
addChild(userPW);
userPWTF.x = 156;
userPWTF.y = 2;
userPWTF.width = 100;
userPWTF.height = 20;
userPWTF.border = true;
userPWTF.type = "input";
userPWTF.text = ""
userPWTF.displayAsPassword = true;
addChild(userPWTF);

var bg:Sprite = new Sprite();
bg.graphics.beginFill (0xCCCCCC, 1);
bg.graphics.drawRoundRect (272, 2 , 100 , 20 , 10 , 10);
addChild(bg);

var userIDText:TextField = new TextField();
userIDText.x = 286;
userIDText.y = 6;
userIDText.width = 170;
userIDText.height = 21;
userIDText.text = "(re)load";
userIDText.selectable = false;
addChild(userIDText);

var button:Sprite = new Sprite();
button.graphics.lineStyle (2, 0x999999, 1.0);
button.graphics.beginFill (0xCCCCCC, 0);
button.graphics.drawRoundRect (272, 2 , 100 , 20 , 10 , 10);
button.buttonMode = true;
button.addEventListener(MouseEvent.CLICK,CLICK);
addChild(button);
}

private function CLICK(e:MouseEvent = null):void {
var loader:URLLoader = new URLLoader();
loader.addEventListener(Event.COMPLETE, COMPLETE);
var pipesURL:String ="http://pipes.yahooapis.com/pipes/pipe.run?_id=1924107a0b4f161fca61c3e99b2c9b3a&_render=rss&password_input="+userPWTF.text+"&username_input="+userIDTF.text;
loader.load(new URLRequest(pipesURL));
}

private function COMPLETE(e:Event):void {
while (commentBase.numChildren) {
commentBase.removeChildAt(0);
}
var list:XML = new XML(e.currentTarget.data);
var _length:int = list.channel.item.length();
var tfY:int = 26;
for (var i:int = 0; i < _length; i++) {
var tf:TextField = new TextField();
tf.htmlText += String(list.channel.item[i].description).replace(/_normal./g,"_mini.") + "<br>\r";
tf.wordWrap = true;
tf.width = stage.stageWidth;
tf.autoSize = "left";
tf.y = tfY;
tfY += Math.max(tf.height+2,42);
tf.background = true;
tf.backgroundColor = halfColor(int(String(list.channel.item[i].description).split("/")[5]));
commentBase.addChild(tf);
}
}
private function halfColor(num:int):int{
num = num%0xFFFFFF;
var r:int = num >> 16;
var g:int = num >> 8 & 0xFF;
var b:int = num & 0xFF;
r = (r+0xFF)>>1;
g = (g+0xFF)>>1;
b = (b+0xFF)>>1;
return r*0xFFFF+g*0xFF+b;
}
}
}

[/sourcecode]