示例#1
0
        public WebhookMiddleware(RequestDelegate next, IOptions <WebhookConfiguration> options)
        {
            _next          = next;
            _configuration = options.Value;

            _router = TweetinviContainer.Resolve <IWebhookRouter>();
        }
示例#2
0
 private TwitterListQueryGenerator CreateTwitterListQueryGenerator()
 {
     return(_fakeBuilder.GenerateClass(
                new ConstructorNamedParameter("userQueryParameterGenerator", TweetinviContainer.Resolve <IUserQueryParameterGenerator>()),
                new ConstructorNamedParameter("twitterListQueryParameterGenerator", TweetinviContainer.Resolve <ITwitterListQueryParameterGenerator>()),
                new ConstructorNamedParameter("queryParameterGenerator", TweetinviContainer.Resolve <IQueryParameterGenerator>())));
 }
        // ReSharper disable once InconsistentNaming
        //  Autofac requires variable names to match, not just the method signature :s
        public TwitterQueryRemoteAuth(string queryURL, HttpMethod httpMethod) : base(queryURL, httpMethod)
        {
            // Get the credentials to use to sign this request
            ITwitterCredentials twitterCredentials = TwitterCredentials;

            if (twitterCredentials == null)
            {
                ICredentialsAccessor credentialsAccessor = TweetinviContainer.Resolve <ICredentialsAccessor>();
                twitterCredentials = credentialsAccessor.CurrentThreadCredentials;
            }

            // Send a request to the TweetinviRequestSigner server to sign this request
            VmRequestToSign signReq = new VmRequestToSign()
            {
                Url          = queryURL,
                Method       = httpMethod,
                ConsumerKey  = twitterCredentials.ConsumerKey,
                ClientToken  = twitterCredentials.AccessToken,
                ClientSecret = twitterCredentials.AccessTokenSecret
            };

            // TODO: Handle Exceptions through Tweetinvi?
            VmAuthorizationHeader vmAuthHeader = Requester.MakePostJson <VmAuthorizationHeader>("Request/Sign", signReq);

            AuthorizationHeader = vmAuthHeader.AuthorizationHeader;
        }
示例#4
0
 public TwitterLoadCommand(ILogger <TwitterLoadCommand> log, TwitterLoadConfig config, IRedisPersistency persistency, IFileLoader fileLoader)
 {
     this.log         = log ?? throw new ArgumentNullException(nameof(log));
     this.config      = config ?? throw new ArgumentNullException(nameof(config));
     this.persistency = persistency ?? throw new ArgumentNullException(nameof(persistency));
     this.fileLoader  = fileLoader ?? throw new ArgumentNullException(nameof(fileLoader));
     jsonConvert      = TweetinviContainer.Resolve <IJsonObjectConverter>();
 }
示例#5
0
        public IAccountActivityStream CreateAccountActivityStream()
        {
            var activityStream = _fakeBuilder.GenerateClass(
                new ConstructorNamedParameter("jsonObjectConverter", TweetinviContainer.Resolve <IJsonObjectConverter>()),
                new ConstructorNamedParameter("jObjectWrapper", TweetinviContainer.Resolve <IJObjectStaticWrapper>()),
                new ConstructorNamedParameter("tweetFactory", TweetinviContainer.Resolve <ITweetFactory>()),
                new ConstructorNamedParameter("userFactory", TweetinviContainer.Resolve <IUserFactory>()),
                new ConstructorNamedParameter("messageFactory", TweetinviContainer.Resolve <IMessageFactory>()));

            activityStream.UserId = ACCOUNT_ACTIVITY_USER_ID;

            return(activityStream);
        }
示例#6
0
        public void GetWebhookSubscriptionsCount()
        {
            var converter = TweetinviContainer.Resolve <IJsonObjectConverter>();

            var json = @"{
                ""account_name"": ""test-account"",
                ""subscriptions_count_all"": ""2"",
                ""subscriptions_count_direct_messages"": ""1""
            }";

            var dto = converter.DeserializeObject <IGetWebhookSubscriptionsCountResultDTO>(json);

            Console.WriteLine(dto);
        }
        public void Setup()
        {
            redis = new RedisInside.Redis(i => i.Port(6666).LogTo(message => log.Debug(message)));
            var config      = new RedisConfiguration("localhost", 6666);
            var jsonConvert = TweetinviContainer.Resolve <IJsonObjectConverter>();
            var jsons       = new FileLoader(new NullLogger <FileLoader>()).Load(Path.Combine(TestContext.CurrentContext.TestDirectory, @"data\data_20160311_1115.dat"));
            var tweetDto    = jsonConvert.DeserializeObject <TweetDTO>(jsons[0]);

            tweet = Tweet.GenerateTweetFromDTO(tweetDto);
            link  = new RedisLink("Trump", new RedisMultiplexer(config));
            link.Open();
            cache       = new MemoryCache(new MemoryCacheOptions());
            persistency = new RedisPersistency(new NullLogger <RedisPersistency>(), link, cache);
            persistency.ResolveRetweets = true;
        }
示例#8
0
        public void RegisterWebhookFormat()
        {
            var converter = TweetinviContainer.Resolve <IJsonObjectConverter>();

            var json = @"{
                     ""id"": ""1234567890"",
                     ""url"": ""https://your_domain.com/webhook/twitter"",
                     ""valid"": true,
                     ""created_at"": ""2017-06-02T23:54:02Z""
            }";

            var dto = converter.DeserializeObject <IWebhookDTO>(json);

            Console.WriteLine(dto);
        }
示例#9
0
        public void GetWebhookSubscriptionList()
        {
            var converter = TweetinviContainer.Resolve <IJsonObjectConverter>();

            var json = @"{
                ""environment"": ""appname"",
                ""application_id"": ""13090192"",
                ""subscriptions"": [
                  {
                    ""user_id"": ""3001969357""
                  }
                ]
            }";

            var dto = converter.DeserializeObject <IWebhookSubcriptionListDTO>(json);

            Console.WriteLine(dto);
        }
示例#10
0
 private void trendRefreshTimer_Tick(object sender, EventArgs e)
 {
     try
     {
         var trendsController = TweetinviContainer.Resolve <ITrendsController>();
         var placeTrends      = trendsController.GetPlaceTrendsAt(1);
         if (placeTrends != null)
         {
             trendTimer.Stop();
             fetch  = 0;
             trends = new List <ITrend>();
             trends = placeTrends.Trends;
             trendTimer.Start();
         }
     }
     catch
     {
         return;
     }
 }
        public VmAuthorizationHeader Sign([FromBody] VmRequestToSign req)
        {
            // Check that the Consumer Key in the request matches the one that we have
            if (req.ConsumerKey != CONSUMER_KEY)
            {
                throw new ArgumentException(
                          "Request must be for a Twitter Application that we have the credentials for", nameof(req));
            }

            Uri uri = new Uri(req.Url);
            TwitterCredentials twitterCredentials = new TwitterCredentials(req.ConsumerKey, CONSUMER_SECRET,
                                                                           req.ClientToken, req.ClientSecret);

            IOAuthWebRequestGenerator          oAuthWebReqGenerator = TweetinviContainer.Resolve <IOAuthWebRequestGenerator>();
            IEnumerable <IOAuthQueryParameter> credentialsParams    =
                oAuthWebReqGenerator.GenerateParameters(twitterCredentials);
            string authHeader = oAuthWebReqGenerator.GenerateAuthorizationHeader(uri, req.Method, credentialsParams);

            return(new VmAuthorizationHeader()
            {
                AuthorizationHeader = authHeader
            });
        }
示例#12
0
        public void GetAllWebhookFormat()
        {
            var converter = TweetinviContainer.Resolve <IJsonObjectConverter>();

            var json = @"{
              ""environments"": [
                {
                  ""environment_name"": ""env-beta"",
                  ""webhooks"":  [
                   {
                     ""id"": ""1234567890"",
                     ""url"": ""https://your_domain.com/webhook/twitter"",
                     ""valid"": true,
                     ""created_at"": ""2017-06-02T23:54:02Z""
                   }
                  ]
                }
              ]
            }";

            var dto = converter.DeserializeObject <IGetAllWebhooksResultDTO>(json);

            Console.WriteLine(dto);
        }
示例#13
0
 private static void Initialize()
 {
     _savedSearchJsonFactory    = TweetinviContainer.Resolve <ISavedSearchJsonFactory>();
     _savedSearchJsonController = TweetinviContainer.Resolve <ISavedSearchJsonController>();
 }
 private static void Initialize()
 {
     _trendsJsonController = TweetinviContainer.Resolve <ITrendsJsonController>();
 }
示例#15
0
 private static void Initialize()
 {
     _messageJsonController = TweetinviContainer.Resolve <IMessageJsonController>();
 }
示例#16
0
        public tweetyzard()
        {
            InitializeComponent();
            searchPhraseTextBox.Focus();

            try
            {
                TwitterCredentials.Credentials = TwitterCredentials.CreateCredentials(accessToken, accessTokenSecret, consumerKey, consumerSecret);
            }
            catch
            {
                MessageBox.Show("Exception occured at authentication");
                return;
            }

            var loggedUser = User.GetLoggedUser();

            if (loggedUser != null)
            {
                userNameLabel.Visible = true;
                pbUser.Visible        = true;
                userNameLabel.Text    = loggedUser.Name;
            }
            else
            {
                userNameLabel.Visible = false;
                pbUser.Visible        = false;
            }

            lblStream.ForeColor = Color.DimGray;
            btnExport.Enabled   = false;
            ExportToDb.Enabled  = false;

            string version = "ver." + System.Reflection.Assembly.GetExecutingAssembly()
                             .GetName()
                             .Version
                             .ToString();

            versionInfo.Text = version;

            try
            {
                trendingTopics.Text = "";
                var          trendsController = TweetinviContainer.Resolve <ITrendsController>();
                IPlaceTrends placeTrends      = trendsController.GetPlaceTrendsAt(1);

                if (placeTrends != null)
                {
                    trends = placeTrends.Trends;
                }
            }
            catch
            {
                trendingTopics.Text = "";
            }

            toolTipTw.SetToolTip(this.btnStartStream, "Starts the stream of tweets for the given keyword using Stream API");
            toolTipTw.SetToolTip(this.btnSearch, "Searches tweets for the given keyword using Search API");
            toolTipTw.SetToolTip(this.btnExport, "Exports gathered tweets to choosen datasource");
            toolTipTw.SetToolTip(this.btnReset, "Refreshes the form");
            toolTipTw.SetToolTip(this.btnStopStream, "Stops the running search query");
            toolTipTw.SetToolTip(this.geoFlag, "Searches tweets which are only geo tagged");
        }
示例#17
0
 public WebhookConfiguration()
 {
     _webhookEnvironments = new List <IRegistrableWebhookEnvironment>();
     WebhookDispatcher    = TweetinviContainer.Resolve <IWebhookDispatcher>();
 }
 private MessageQueryGenerator CreateTwitterListQueryGenerator()
 {
     return(_fakeBuilder.GenerateClass(
                new ConstructorNamedParameter("jsonContentFactory", TweetinviContainer.Resolve <JsonContentFactory>())
                ));
 }
示例#19
0
 private static void Initialize()
 {
     _accountJsonController = TweetinviContainer.Resolve <IAccountJsonController>();
 }
示例#20
0
 private static void Initialize()
 {
     _timelineJsonController = TweetinviContainer.Resolve <ITimelineJsonController>();
 }
示例#21
0
 private static void Initialize()
 {
     _searchJsonController = TweetinviContainer.Resolve <ISearchJsonController>();
 }
 private static void Initialize()
 {
     _userJsonController = TweetinviContainer.Resolve <IUserJsonController>();
 }
示例#23
0
 private static void Initialize()
 {
     _friendshipJsonController = TweetinviContainer.Resolve <IFriendshipJsonController>();
 }