/// <summary> /// Starts the Twitter stream. /// </summary> /// <param name="type">Type of streaming.</param> /// <param name="parameters">The parameters of streaming.</param> /// <returns>The stream messages.</returns> public IEnumerable <StreamingMessage> StartStream(StreamingType type, StreamingParameters parameters = null) { if (parameters == null) { parameters = new StreamingParameters(); } var url = type == StreamingType.User ? "https://userstream.twitter.com/1.1/user.json" : type == StreamingType.Site ? " https://sitestream.twitter.com/1.1/site.json " : type == StreamingType.Filter ? "https://stream.twitter.com/1.1/statuses/filter.json" : type == StreamingType.Sample ? "https://stream.twitter.com/1.1/statuses/sample.json" : type == StreamingType.Firehose ? "https://stream.twitter.com/1.1/statuses/firehose.json" : ""; var str = this.Connect(parameters, type == StreamingType.Filter ? MethodType.Post : MethodType.Get, url) .Where(x => !string.IsNullOrEmpty(x)); foreach (var s in str) { StreamingMessage m; #if !DEBUG try { #endif m = StreamingMessage.Parse(s); #if !DEBUG } catch { m = RawJsonMessage.Create(s); } #endif yield return(m); } }
public Task <IEnumerable <StreamingMessage> > StartStreamAsync(StreamingType type, StreamingParameters parameters = null, CancellationToken cancellationToken = default(CancellationToken)) { if (parameters == null) { parameters = new StreamingParameters(); } return(this.Tokens.SendStreamingRequestAsync(this.GetMethodType(type), this.GetUrl(type), parameters.Parameters, cancellationToken) .ContinueWith(t => { if (t.IsFaulted) { t.Exception.InnerException.Rethrow(); } return t.Result.GetResponseStreamAsync(); }, cancellationToken) .Unwrap() .ContinueWith(t => { if (t.IsFaulted) { t.Exception.InnerException.Rethrow(); } return EnumerateMessages(t.Result); }, cancellationToken)); }
public IEnumerable <StreamingMessage> StartStream(StreamingType type, StreamingParameters parameters = null) { if (parameters == null) { parameters = new StreamingParameters(); } return(this.AccessStreamingApiImpl(type, parameters.Parameters)); }
IEnumerable <string> Connect(StreamingParameters parameters, MethodType type, string url) { using (var str = this.Tokens.SendStreamingRequest(type, url, parameters.Parameters)) using (var reader = new StreamReader(str.GetResponseStream())) foreach (var s in reader.EnumerateLines() .Where(x => !string.IsNullOrEmpty(x))) { yield return(s); } }
public Task <IEnumerable <StreamingMessage> > StartStreamAsync(StreamingType type, StreamingParameters parameters = null, CancellationToken cancellationToken = default(CancellationToken)) { if (parameters == null) { parameters = new StreamingParameters(); } return(this.Tokens.SendStreamingRequestAsync(GetMethodType(type), this.GetUrl(type), parameters.Parameters, cancellationToken) .Done(res => res.GetResponseStreamAsync(), cancellationToken) .Unwrap() .Done(stream => EnumerateMessages(stream), cancellationToken)); }