Ejemplo n.º 1
0
 public string Stop()
 {
     _isSupposedToBeStopped = true;
     _stream.StopStream();
     while (_stream.StreamState != StreamState.Stop)
     {
         /* Wait for stream to stop */
     }
     _stopOn = DateTime.Now;
     return("Stream stopped");
 }
Ejemplo n.º 2
0
        public void Stop()
        {
            _Context?.Dispose();

            // Set the target to the completed state to signal to the consumer that no more data will be available.
            _TargetBuffer?.Complete();

            _Stream?.StopStream();
            _Stream = null;

            Library.WriteErrorLog("Tweet streamer stoped (.Stop()).");
        }
Ejemplo n.º 3
0
        public void CreateCommands()
        {
            var CService = _client.GetService <CommandService>();

            IFilteredStream FilteredStream = Tweetinvi.Stream.CreateFilteredStream();
            ISampleStream   SampleStream   = Tweetinvi.Stream.CreateSampleStream();

            CService.CreateCommand("StreamState")
            .Description("Gets the states of the streams")
            .Do(async(e) =>
            {
                await e.Channel.SendMessage("```Sample Stream: " + SampleStream.StreamState + Environment.NewLine + "Filtered Stream: " + FilteredStream.StreamState + "```");
            });

            CService.CreateCommand("PurgeStreams")
            .Alias("Kill", "Stop", "PS")
            .Description("Hopefully stops the stream")
            .Do(async(e) =>
            {
                FilteredStream.StopStream();
                SampleStream.StopStream();
                FilteredStream.ClearTracks();
                await e.Channel.SendMessage("```Sample Stream: " + SampleStream.StreamState + Environment.NewLine + "Filtered Stream: " + FilteredStream.StreamState + "```");
            });

            CService.CreateCommand("StopSampleStream")
            .Description("Stops all sample streams")
            .Do(async(e) =>
            {
                SampleStream.StopStream();
                await e.Channel.SendMessage("```Sample Stream: " + SampleStream.StreamState + Environment.NewLine + "Filtered Stream: " + FilteredStream.StreamState + "```");
            });

            CService.CreateCommand("StopFilteredStream")
            .Description("Stops all Filtered streams")
            .Do(async(e) =>
            {
                FilteredStream.StopStream();
                await e.Channel.SendMessage("```Sample Stream: " + SampleStream.StreamState + Environment.NewLine + "Filtered Stream: " + FilteredStream.StreamState + "```");
            });

            CService.CreateCommand("Track")
            .Description("Tracks a twitter User Either from their ID or Handle")
            .Parameter("User", ParameterType.Unparsed)
            .Description("Tracks a Twitter User")
            .Do(async(e) =>
            {
                if (Regex.IsMatch(e.GetArg("User"), @"-?\d+(\.\d+)?"))
                {
                    long User    = Convert.ToInt64(e.GetArg("User"));
                    IUser Target = Tweetinvi.User.GetUserFromId(Convert.ToInt64(e.GetArg("User")));

                    await e.Channel.SendMessage("Tracking " + Tweetinvi.User.GetUserFromId(Convert.ToInt64(e.GetArg("User"))));

                    FilteredStream.AddFollow(User);
                    FilteredStream.MatchingTweetReceived += (sender, args) =>
                    {
                        e.Channel.SendMessage(Target + " " + args.Tweet);
                    };
                    FilteredStream.StreamStopped += (sender, args) =>
                    {
                        var Exception         = args.Exception;
                        var DisconnectMessage = args.DisconnectMessage;
                        e.Channel.SendMessage("Filtered stream ended exception: " + Exception + " Disconnect message: " + DisconnectMessage);
                    };
                    await FilteredStream.StartStreamMatchingAllConditionsAsync();
                }
                else
                {
                    var Target = Tweetinvi.User.GetUserFromScreenName(e.GetArg("User"));

                    await e.Channel.SendMessage("Tracking " + Tweetinvi.User.GetUserFromScreenName(e.GetArg("User")));

                    FilteredStream.AddFollow(Target);
                    FilteredStream.MatchingTweetReceived += (sender, args) =>
                    {
                        Console.WriteLine("Found Tweet");
                        e.Channel.SendMessage(e.GetArg("User") + " Tweeted " + args.Tweet);
                    };
                    await FilteredStream.StartStreamMatchingAllConditionsAsync();
                }
            });

            CService.CreateCommand("Spam")
            .Alias("Havoc", "Anton", "Cancer")
            .Description("Initializes a socalled sample stream which returns 1% of all public tweets Discord will not show them all because of RateLimits.")
            .Do(async(e) =>
            {
                if (e.User.ServerPermissions.ManageServer == true)
                {
                    SampleStream.TweetReceived += (sender, args) =>
                    {
                        e.Channel.SendMessage(args.Tweet.Text.ToString());
                    };
                    await SampleStream.StartStreamAsync();
                }
                else
                {
                    await e.Channel.SendMessage("ERROR most likely you do not have sufficient permissions");
                }
            });

            CService.CreateCommand("Sample")
            .Description("Initializes a socalled sample stream but instead of 1% its specified with an amount of random tweets, Neat!")
            .Parameter("Tweets", ParameterType.Unparsed)
            .Do(async(e) =>
            {
                if (Regex.IsMatch(e.GetArg("Tweets"), @"-?\d+(\.\d+)?"))
                {
                    int Tweets = Convert.ToInt32(e.GetArg("Tweets"));
                    await e.Channel.SendMessage("Transmitting " + e.GetArg("Tweets") + " Tweets");

                    int i = 0;
                    SampleStream.TweetReceived += (sender, args) =>
                    {
                        i++;
                        if (i < Tweets)
                        {
                            e.Channel.SendMessage(args.Tweet.Text.ToString());
                        }
                        else
                        {
                            SampleStream.StopStream();
                        }
                    };
                    FilteredStream.StreamStopped += (sender, args) =>
                    {
                        var Exception         = args.Exception;
                        var DisconnectMessage = args.DisconnectMessage;
                        e.Channel.SendMessage("Filtered stream ended exception: " + Exception + " Disconnect message: " + DisconnectMessage);
                    };
                    await SampleStream.StartStreamAsync();
                }
                else
                {
                    await e.Channel.SendMessage("Error Invalid input");
                }
            });
        }
Ejemplo n.º 4
0
 public void Stop()
 {
     _stream.StreamStopped += (sender, args) => _hubContext.Clients.All.log("Server says: stream successfully stopped");
     _stream.StopStream();
 }
Ejemplo n.º 5
0
 public void Stop()
 {
     stream.StopStream();
     tweets.CompleteAdding();
 }
Ejemplo n.º 6
0
        public static void CreateCommands()
        {
            var CService = _client.GetService <CommandService>();

            ISampleStream   SampleStream   = Tweetinvi.Stream.CreateSampleStream();
            IFilteredStream FilteredStream = Tweetinvi.Stream.CreateFilteredStream();

            CService.CreateCommand("State")
            .Alias("StreamState", "SS")
            .Description("Displays whether the streams are running or not")
            .Do(async(e) =>
            {
                await e.Channel.SendMessage($"Filtered Stream: {FilteredStream.StreamState} {Environment.NewLine}Sample Stream: {SampleStream.StreamState}");
            });

            CService.CreateCommand("PurgeStreams")
            .Alias("PS", "Purge")
            .Description("Purges all running streams")
            .Do(async(e) =>
            {
                SampleStream.StopStream();
                FilteredStream.StopStream();
                FilteredStream.ClearTracks();
                await e.Channel.SendMessage($"```Sample Stream: {SampleStream.StreamState} {Environment.NewLine}Filtered Stream: {FilteredStream.StreamState}```");
            });

            CService.CreateCommand("Sample")
            .Description("Initializes a socalled sample stream but instead of 1% its specified with an amount of random tweets, Neat!")
            .Parameter("Tweets", ParameterType.Unparsed)
            .Do(async(e) =>
            {
                if (Regex.IsMatch(e.GetArg("Tweets"), @"-?\d+(\.\d+)?"))
                {
                    int Tweets = Convert.ToInt32(e.GetArg("Tweets"));
                    await e.Channel.SendMessage("Transmitting " + e.GetArg("Tweets") + " Tweets");

                    Console.WriteLine(Tweetinvi.User.GetAuthenticatedUser());
                    int i = 0;
                    SampleStream.TweetReceived += (sender, args) =>
                    {
                        if (i < Tweets)
                        {
                            e.Channel.SendMessage(args.Tweet.Text.ToString());
                            i++;
                        }
                        else
                        {
                            SampleStream.StopStream();
                        }
                    };
                    SampleStream.StreamStopped += (sender, args) =>
                    {
                        var Exception         = args.Exception;
                        var DisconnectMessage = args.DisconnectMessage;
                        e.Channel.SendMessage($"```Stream ended { Environment.NewLine }Exception: { Exception } { Environment.NewLine }Disconnect message: { DisconnectMessage }```");
                    };
                    await SampleStream.StartStreamAsync();
                }
                else
                {
                    await e.Channel.SendMessage("Error Invalid input");
                }
            });

            CService.CreateCommand("Track")
            .Description("Tracks a twitter User Either from their ID or Handle")
            .Parameter("User", ParameterType.Unparsed)
            .Description("Tracks a Twitter User")
            .Do(async(e) =>
            {
                if (Regex.IsMatch(e.GetArg("User"), @"-?\d+(\.\d+)?"))
                {
                    long User    = Convert.ToInt64(e.GetArg("User"));
                    IUser Target = Tweetinvi.User.GetUserFromId(Convert.ToInt64(e.GetArg("User")));

                    await e.Channel.SendMessage($"Tracking { Tweetinvi.User.GetUserFromId(Convert.ToInt64(e.GetArg("User"))) }");

                    FilteredStream.AddFollow(User);
                    FilteredStream.MatchingTweetReceived += (sender, args) =>
                    {
                        e.Channel.SendMessage(Target + " " + args.Tweet);
                    };
                    FilteredStream.StreamStopped += (sender, args) =>
                    {
                        e.Channel.SendMessage("Filtered Stream Ended");
                    };
                    await FilteredStream.StartStreamMatchingAllConditionsAsync();
                }
                else
                {
                    var Target = Tweetinvi.User.GetUserFromScreenName(e.GetArg("User"));

                    await e.Channel.SendMessage($"Tracking { Tweetinvi.User.GetUserFromScreenName(e.GetArg("User")) }");

                    FilteredStream.AddFollow(Target);
                    FilteredStream.MatchingTweetReceived += (sender, args) =>
                    {
                        Console.WriteLine("Found Tweet");
                        e.Channel.SendMessage($"{ e.GetArg("User") } Tweeted { args.Tweet }");
                    };
                    await FilteredStream.StartStreamMatchingAllConditionsAsync();
                }
            });
        }