Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /**** Code fragments from https://github.com/r/twstreamer ****/
- import flash.net.URLStream;
- import mx.utils.Base64Encoder;
- import flash.events.ProgressEvent;
- import flash.events.IOErrorEvent;
- import flash.net.URLRequest;
- import flash.net.URLRequestHeader;
- import flash.net.URLRequestMethod;
- //Read @AdmOd timeline
- var host:String = "stream.twitter.com";
- var path:String = "/1/statuses/filter.json?follow=9701622";
- var username:String = "***"; //Authenticate username+pass here
- var pass:String = "***";
- var request:URLRequest = createStreamRequest(host, path, username, pass);
- var stream:URLStream = new URLStream();
- stream.addEventListener(IOErrorEvent.IO_ERROR, errorReceived);
- stream.addEventListener(ProgressEvent.PROGRESS, dataReceived);
- stream.load(request);
- function createStreamRequest(host:String, path:String, username:String, pass:String):URLRequest {
- var request:URLRequest = new URLRequest("http://" + host + path);
- request.requestHeaders = new Array(new URLRequestHeader("Authorization", "Basic " + b64encode(username + ":" + pass)));
- request.method = URLRequestMethod.POST;
- request.data = 0;
- return request;
- }
- // a simple helper that will base-64 encode a string
- function b64encode(s:String):String {
- var encoder:Base64Encoder = new Base64Encoder();
- encoder.encode(s);
- return encoder.toString();
- }
- function encodeStringForTransport(s:String):String {
- return s.split("%").join("%25").split("\\").join("%5c").split("\"").join("%22").split("&").join("%26");
- }
- var amountRead:int = 0;
- var isReading:Boolean = false;
- var streamBuffer:String = "";
- function dataReceived(pe:ProgressEvent):void {
- var toRead:Number = pe.bytesLoaded - amountRead;
- var buffer:String = stream.readUTFBytes(toRead);
- amountRead = pe.bytesLoaded;
- // attempt to restart the stream
- var parts:Array;
- if (!isReading) {
- parts = buffer.split(/\n/);
- var firstPart:String = parts[0].replace(/[\s\n]*/, "");
- if (firstPart != ""){
- trace("streamReceived:", firstPart);
- //ExternalInterface.call("streamEvent", encodeStringForTransport(firstPart));
- }
- buffer = parts.slice(1).join("\n");
- isReading = true;
- }
- // pump the JSON pieces through -- due to actionscript to javascript
- // encoding issues, we have to wrap them funnily
- if ((toRead > 0) && (amountRead > 0)) {
- streamBuffer += buffer;
- parts = streamBuffer.split(/\n/);
- var lastElement:String = parts.pop();
- parts.forEach(function(s:String, i:int, a:Array):void {
- trace("streamBuffer:", s);
- //ExternalInterface.call("streamEvent", encodeStringForTransport(s));
- });
- streamBuffer = lastElement;
- }
- }
- // call out to javascript that there was an error in the stream
- function errorReceived(io:IOErrorEvent):void {
- trace("streamError");
- }
Advertisement
Add Comment
Please, Sign In to add comment