自前でsearch.twitter.comから取ってきてATOMをパースするテスト

by esukei
@author エスケイ
* すでに同じようなのいくつかあるのは知りつつ、自分でもやってみたかっただけ。
* かなりの手抜きコード。
♥0 | Line 84 | Modified 2010-06-10 21:09:47 | MIT License
play

ActionScript3 source code

/**
 * Copyright esukei ( http://wonderfl.net/user/esukei )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/gFif
 */

/**
 * @author エスケイ
 * すでに同じようなのいくつかあるのは知りつつ、自分でもやってみたかっただけ。
 * かなりの手抜きコード。
 */
package {
    import flash.display.Sprite;
    import flash.text.TextField;
    import flash.events.Event;
    public class FlashTest extends Sprite {
    		private var twitter:Twitter;
    		private var textField:TextField;
        public function FlashTest() {
            // write as3 code here..
            
            textField = new TextField();
            textField.text = 'log Here...';
            
            textField.width = stage.stageWidth;
            textField.height = stage.stageHeight;
            textField.multiline = true;
            textField.wordWrap = true;
            
            addChild(textField);
            
            twitter = new Twitter();
            twitter.searchUserTimeline('esuk');
            twitter.addEventListener(Twitter.RESULT_PARSED, function(e:Event):void
            {
            		textField.text = twitter.result.toString();
            });
        }
    }
}

	import flash.events.Event;
	import flash.events.EventDispatcher;
	import flash.events.IOErrorEvent;
	import flash.events.SecurityErrorEvent;
	import flash.net.URLLoader;
	import flash.net.URLRequest;
	import flash.net.URLRequestHeader;
	import flash.net.URLRequestMethod;
	import flash.net.URLVariables;
	class Twitter extends EventDispatcher
	{
		
		private var atomNs:Namespace;
		private const URL_TWITTER_SEARCH_ATOM:String = 'http://search.twitter.com/search.atom';
		
		private var urlLoader:URLLoader;
		private var urlRequest:URLRequest;
		private var urlRequestMethod:URLRequestMethod;
		private var urlRequestHeader:URLRequestHeader;
		private var urlVariables:URLVariables;
		
		private var _result:Array;
		
		static public const RESULT_PARSED:String = 'result_parsed';
		
		public function Twitter()
		{
			atomNs = new Namespace('http://www.w3.org/2005/Atom');
			_result = new Array();
		}
		
		public function searchUserTimeline(userid:String):void
		{
			urlLoader = new URLLoader();
			urlRequest = new URLRequest(URL_TWITTER_SEARCH_ATOM);
			
			urlVariables = new URLVariables();
			urlVariables.q = 'from:' + userid;
			
			urlRequest.data = urlVariables;
			
			try{
				urlLoader.load(urlRequest);
			}
			catch (e:Error)
			{
				//error
			}
			
			urlLoader.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
			urlLoader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
			
			urlLoader.addEventListener(Event.COMPLETE, completeHandler);
		}
		
		private function completeHandler(e:Event):void 
		{
			default xml namespace = atomNs;
			var atomData:XML = new XML(urlLoader.data);
			
			for each(var tweet:String in atomData.entry.content)
			{
				_result.push(decodeURIComponent(tweet));
			}
			dispatchEvent(new Event(RESULT_PARSED));
		}
		
		private function securityErrorHandler(e:SecurityErrorEvent):void 
		{
			//error
		}
		
		private function ioErrorHandler(e:IOErrorEvent):void 
		{
			//error
		}
		
		
		
		
		public function get result():Array { return _result; }
		
	}