示例#1
0
        public void StartTimelines()
        {
            if (_timers == null)
            {
                _timers = new Timers();
            }
            _timers.Add(Settings.Default.UseStreamingApi ? 180 : 70, (s, e) =>
            {
                try
                {
                    _timelinesModel.UpdateHome();
                    _timelinesModel.UpdateMentions();
                    _timelinesModel.UpdateDirectMessages();
                    _timelinesModel.UpdateFavorites();
                }
                catch (WebException ex)
                {
                    Trace.TraceError(ex.Message);
                }
            });

            _timers.Add(30, (s, e) => _timelinesModel.UpdateTimeStamps());

            if (Settings.Default.UseStreamingApi)
            {
                TwitterStream.User(_timelinesModel.CancellationToken);
            }
        }
示例#2
0
        public TwitterSearchStream(TwitterProtocolManager protocolManager,
                                   GroupChatModel chat, string keyword,
                                   OAuthTokens tokens, WebProxy proxy)
        {
            if (protocolManager == null)
            {
                throw new ArgumentNullException("protocolManager");
            }
            if (chat == null)
            {
                throw new ArgumentNullException("chat");
            }
            if (keyword == null)
            {
                throw new ArgumentNullException("keyword");
            }
            if (tokens == null)
            {
                throw new ArgumentNullException("tokens");
            }

            ProtocolManager = protocolManager;
            Session         = protocolManager.Session;
            Chat            = chat;

            var options = new StreamOptions();

            options.Track.Add(keyword);

            Stream       = new TwitterStream(tokens, null, options);
            Stream.Proxy = proxy;
            Stream.StartPublicStream(OnStreamStopped, OnStatusCreated, OnStatusDeleted, OnEvent);

            MessageRateLimiter = new RateLimiter(5, TimeSpan.FromSeconds(5));
        }
        public void Start()
        {
            //TileService.Add<TwitterView>(new TileData
            //{
            //    Title = "Peeps",
            //    BackgroundImage = new Uri("pack://siteoforigin:,,,/Resources/Tiles/MB_0005_weather1.png")
            //});

            Task.Factory.StartNew(() =>
            {
                OAuthTokens tokens       = new OAuthTokens();
                tokens.AccessToken       = "478840940-tgD2Fp5NWXpDPGWyrHTxIjroDODe6F9r8JEkabQ";
                tokens.AccessTokenSecret = "Jo4fgjtkYBPTfyuigi3slqOo7lVer7rLXwj6rWs";
                tokens.ConsumerKey       = "O6MTEfpHhHfhnBr4PuVmlw";
                tokens.ConsumerSecret    = "lDZgfovK9FEtn8MBsTpGPn8WvuTbGal2yBD4kHLgI";

                StreamOptions options = new StreamOptions();
                Stream = new TwitterStream(tokens, "v1", options);
                Stream.StartUserStream(Friends,
                                       Stopped,
                                       Created,
                                       Deleted,
                                       DirectMessageCreated,
                                       DirectMessageDeleted,
                                       Callback);
                Radio.CurrentTrackChanged += RadioOnCurrentTrackChanged;
            })
            .ContinueWith(task =>
            {
                if (task.Exception != null)
                {
                    Logger.Log(task.Exception.ToString(), Category.Exception, Priority.Medium);
                }
            });
        }
示例#4
0
 private void StartStreamingApi()
 {
     if (Settings.Default.UseStreamingApi && _twitterStream == null)
     {
         _twitterStream = new TwitterStream();
         _twitterStream.Run();
     }
 }
示例#5
0
 public void Stop()
 {
     if (_stream != null)
     {
         _stream.destroy();
         _stream = null;
     }
 }
示例#6
0
 private void StopStreamingApi()
 {
     if (_twitterStream == null)
     {
         return;
     }
     _twitterStream.Dispose();
     _twitterStream = null;
 }
        public void test_mef_resolver()
        {
            var catalog = new AggregateCatalog();
            catalog.Catalogs.Add(new AssemblyCatalog(typeof(FileSystemStorage).Assembly));
            ServiceLocator.Initialize(catalog);

            TwitterStream twitterStream = new TwitterStream(ServiceLocator.GetInstance<IStorage>());
            twitterStream.StreamData();
        }
        public void GetStreamStatus(string streamName)
        {
            TwitterStream ts = streamManager.GetStream(streamName);

            if (ts != null)
            {
                Clients.Caller.streamStatusChanged(ts.StreamStatus().ToString());
            }
        }
        public void RestartStream(string streamName)
        {
            TwitterStream ts = streamManager.GetStream(streamName);

            if (ts != null)
            {
                ts.Restart();
            }
        }
        public void GetBannedUsers(string streamName)
        {
            TwitterStream ts = streamManager.GetStream(streamName);

            if (ts != null)
            {
                Clients.Group(streamName).receiveBannedUsers(ts.GetBannedUsers());
            }
        }
示例#11
0
        private static TwitterStream CreateClient()
        {
            var twStream = TwitterStream.Create(
                Properties.Settings.Default.ConsumerToken,
                Properties.Settings.Default.ConsumerSecret,
                Properties.Settings.Default.TokenValue,
                Properties.Settings.Default.TokenSecret);

            return(twStream);
        }
        public void RemoveTrack(int id, string streamName)
        {
            TwitterStream ts = streamManager.GetStream(streamName);

            if (ts != null)
            {
                ts.RemoveTrack(id);
                GetTracks(streamName);
            }
        }
        public void AddTrack(string keyword, string streamName)
        {
            TwitterStream ts = streamManager.GetStream(streamName);

            if (ts != null)
            {
                ts.AddTrack(keyword);
                GetTracks(streamName);
            }
        }
示例#14
0
        public void SubmitForm(string query, int threshold)
        {
            TwitterStream stream = new TwitterStream(query);

            stream.SetupStream();
            ThreadStart job    = new ThreadStart(stream.StartStream);
            Thread      thread = new Thread(job);

            thread.Start();
        }
        public void GetTracks(string streamName)
        {
            TwitterStream ts = streamManager.GetStream(streamName);

            if (ts != null)
            {
                List <Subscription> l = ts.GetTracks();
                Clients.Group(streamName).receiveTracks(ts.GetTracks());
            }
        }
        public void RemoveTweet(long id, string streamName)
        {
            TwitterStream ts = streamManager.GetStream(streamName);

            if (ts != null)
            {
                ts._tweetRepo.Remove(id);
                ts.RemoveTweet(id);
                Clients.Group(streamName).tweetRemoved(id);
            }
        }
        public void ToggleSticky(long tweetId, string streamName)
        {
            TwitterStream ts = streamManager.GetStream(streamName);

            if (ts != null)
            {
                ts._tweetRepo.ToggleSticky(tweetId);
                ts.UpdateTweet(tweetId);
                TweetUpdate(ts._tweetRepo.Find(t => t.Id == tweetId && t.Event.Name == streamName).SingleOrDefault(), streamName);
            }
        }
        public async Task VerifySampleStream()
        {
            client.Setup(c => c.GetClient()).Returns(client.Object);
            client.Setup(c => c.GetStreamAsync()).Returns(Task.FromResult(stream));

            var app = new TwitterStream(stats.Object, client.Object.GetClient);

            await app.Start();

            stats.Verify(x => x.Track(It.IsAny <ITweet>()), Times.Once());
        }
示例#19
0
        public void StartStreaming()
        {
            ////streamer.GetTweets(this);
            if (Stream != null)
            {
                return;
            }

            Stream             = new TwitterStream(Hashtag);
            Stream.TweetAdded += StreamOnTweetAdded;
            Stream.StartStream();
        }
示例#20
0
        /// <summary>
        /// Starts UserStream.
        /// </summary>
        /// <param name="friendsCallback">A callback called when UserStream is intialized. This can be null.</param>
        /// <param name="errorCallback">A callback called when UserStream is stopped. This can be null.</param>
        /// <param name="statusCreatedCallback">A callback when receive a new status. This can be null.</param>
        /// <param name="statusDeletedCallback">A callback when a status is deleted. This can be null.</param>
        /// <param name="dmCreatedCallback">A callback when receive a new direct message. This can be null.</param>
        /// <param name="dmDeletedCallback">A callback when a direct message is deleted. This can be null.</param>
        /// <param name="eventCallback">A callback when a new event is raised. This can be null.</param>
        public void StartStreaming(InitUserStreamCallback friendsCallback, StreamStoppedCallback errorCallback,
                                   StatusCreatedCallback statusCreatedCallback, StatusDeletedCallback statusDeletedCallback,
                                   DirectMessageCreatedCallback dmCreatedCallback, DirectMessageDeletedCallback dmDeletedCallback,
                                   EventCallback eventCallback)
        {
            var option = new StreamOptions()
            {
                Count = 0
            };

            stream = new TwitterStream(token, UserAgent, option);
            stream.StartUserStream(friendsCallback, errorCallback, statusCreatedCallback, statusDeletedCallback, dmCreatedCallback, dmDeletedCallback, eventCallback, null);
        }
        public void RemoveBannedUser(int bannedUserId, string streamName)
        {
            TwitterStream ts = streamManager.GetStream(streamName);

            if (ts != null)
            {
                User bannedUser = ts._userRepo.Find(u => u.Id == bannedUserId && u.Event.Name == streamName).SingleOrDefault();
                if (bannedUser != null)
                {
                    ts._userRepo.Remove(bannedUserId);
                    GetBannedUsers(streamName);
                }
            }
        }
        public void RemovePriorityUser(int id, string streamName)
        {
            TwitterStream ts = streamManager.GetStream(streamName);

            if (ts != null)
            {
                Subscription subscription = ts._subRepo.Find(sub => sub.Id == id && streamName == sub.Event.Name).First();
                if (subscription != null)
                {
                    ts.RemoveSubscription(id);
                    GetPriorityUsers(streamName);
                }
            }
        }
        public bool Get([FromBody] LoginData data)
        {
            TwitterStream ts = streamManager.GetStream(data.Stream);

            if (ts != null)
            {
                bool res = streamManager.ChangeUserCredentials(data.Handle, data.Token, data.Stream);
                if (res)
                {
                    ts.Restart();
                    return(true);
                }
            }
            return(false);
        }
示例#24
0
        public HomeController(ILogger <HomeController> logger, IHubContext <SignalRTweetHub> tweetHub)
        {
            _logger   = logger;
            _tweetHub = tweetHub;



            if (_twitterStream == null)
            {
                _twitterStream = new TwitterStream(_tweetHub);
            }

            //if (_twitterStream.GetStreamStatus() != Tweetinvi.Models.StreamState.Running) _twitterStream.StartStream();
            new Task(() => { _twitterStream.StartStream(); }).Start();
        }
        public void FollowUser(string handle, string streamName)
        {
            TwitterStream ts = streamManager.GetStream(streamName);

            if (ts != null)
            {
                if (!ts.AddPriorityUser(handle))
                {
                    Clients.Caller.invalidUser("That user does not exist!");
                }
                else
                {
                    GetPriorityUsers(streamName);
                }
            }
        }
示例#26
0
        public void Start()
        {
            _stream = _client.stream("statuses/filter", new TwitterStreamConfig {
                track = _filter
            });

            _stream.onData(tweet =>
            {
                OnReceived?.Invoke(this, tweet);
            });

            _stream.onError(error =>
            {
                OnError?.Invoke(this, error);
            });
        }
示例#27
0
        protected override void BecomingPrimary()
        {
            // Read Twitter auth information and topics of interest from App.config
            var twitterConfig = ReadTwitterInputConfig();

            // Create an observable of tweets with sentiment
            _inputObservable = TwitterStream.Create(twitterConfig);

            _inputObservable.ForEachAsync(
                x =>
            {
                if (x.IsData)
                {
                    Console.WriteLine("{0}", x.ToString());
                    thisProxy.OnNextFork(x);
                }
            });
        }
示例#28
0
        public void UserStreamTest()
        {
            OAuthTokens tokens = Configuration.GetTokens();

            stream = new TwitterStream(tokens);
            stream.OnStatusReceived  += new TwitterStatusReceivedHandler(stream_OnStatus);
            stream.OnFriendsReceived += new TwitterFriendsReceivedHandler(stream_OnFriendsReceived);
            stream.OnStatusDeleted   += new TwitterStatusDeletedHandler(stream_OnStatusDeleted);

            stream.StartUserStream();

            for (int i = 0; i < 1000; i++)
            {
                System.Threading.Thread.Sleep(100);
            }

            stream.EndStream();
        }
        public void RemoveTweetImage(long imageId, string streamName)
        {
            TwitterStream ts = streamManager.GetStream(streamName);

            if (ts != null)
            {
                MediaUrl media = ts._mediaRepo.Find(m => m.Id == imageId).SingleOrDefault();
                if (media != null)
                {
                    ts._mediaRepo.Remove(imageId);
                    Tweet tweet = ts._tweetRepo.Find(t => t.Id == media.Tweet.Id).SingleOrDefault();
                    if (tweet != null)
                    {
                        ts.UpdateTweet(media.Tweet.Id);
                        TweetUpdate(tweet, streamName);
                    }
                }
            }
        }
        public void SetTweetImageVisibility(long imageId, string streamName, bool visible)
        {
            TwitterStream ts = streamManager.GetStream(streamName);

            if (ts != null)
            {
                MediaUrl media = ts._mediaRepo.Find(m => m.Id == imageId).SingleOrDefault();
                if (media != null && media.Visible != visible)
                {
                    ts._mediaRepo.SetVisibility(imageId, visible);
                    Tweet tweet = ts._tweetRepo.Find(t => t.Id == media.Tweet.Id).SingleOrDefault();
                    if (tweet != null)
                    {
                        ts.UpdateTweet(media.Tweet.Id);
                        TweetUpdate(tweet, streamName);
                    }
                }
            }
        }
示例#31
0
        public void FilterTest()
        {
            OAuthTokens tokens = Configuration.GetTokens();

            stream = new TwitterStream(tokens);
            stream.OnStatusReceived += new TwitterStatusReceivedHandler(stream_OnStatus);

            FilterStreamOptions options = new FilterStreamOptions();

            options.Track.Add("twit_er_izer");
            options.Track.Add("twitterizer");

            stream.StartFilterStream(options);

            for (int i = 0; i < 1000; i++)
            {
                System.Threading.Thread.Sleep(100);
            }

            stream.EndStream();
        }