Ejemplo n.º 1
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddApplicationInsightsTelemetry();

            services.AddControllers();

            ImageDomainConfiguration imageDomainConfiguration = Configuration.GetSection("ImageDomainConfiguration").Get <ImageDomainConfiguration>();

            services.AddSingleton(imageDomainConfiguration);
            TwitterConfiguration twitterConfiguration = Configuration.GetSection("TwitterConfiguration").Get <TwitterConfiguration>();

            services.AddSingleton(twitterConfiguration);

            services.AddTransient <TwitterAuthHandler>();
            services.AddHttpClient <ITwitterStreamProcessor, TwitterStreamProcessor>((httpClient) =>
            {
                httpClient.BaseAddress = new Uri(twitterConfiguration.BaseUrl);
            })
            .AddHttpMessageHandler <TwitterAuthHandler>();

            services.AddSingleton <ITwitterDataStorage, TwitterDataInMemoryStorage>();
            services.AddSingleton <ITwitterDataCapturer, TwitterDataCapturer>();
            services.AddSingleton <ITwitterSampleDataRetriever, TwitterSampleDataRetriever>();
            services.AddSingleton <ITwitterEstimatedLiveDataRetriever, TwitterEstimatedLiveDataRetriever>();

            services.AddSingleton <ITweetProcessor, TweetProcessor>();
            services.AddSingleton <IUrlHandler, UrlHandler>();
        }
Ejemplo n.º 2
0
        public imgly(Twitter twitter, TwitterConfiguration twitterConfig)
        {
            this.tw = twitter;
            this.twitterConfig = twitterConfig;

            this.imglyApi = new ImglyApi(twitter.Api);
        }
Ejemplo n.º 3
0
        public TwipplePhoto(Twitter twitter, TwitterConfiguration twitterConfig)
        {
            this.twitter       = twitter ?? throw new ArgumentNullException(nameof(twitter));
            this.twitterConfig = twitterConfig ?? throw new ArgumentNullException(nameof(twitterConfig));

            this.twippleApi = new TwippleApi(twitter.Api);
        }
Ejemplo n.º 4
0
        public imgly(Twitter twitter, TwitterConfiguration twitterConfig)
        {
            this.tw            = twitter;
            this.twitterConfig = twitterConfig;

            this.imglyApi = new ImglyApi(twitter.Api);
        }
Ejemplo n.º 5
0
        private TwitterApi(string consumerKey, string consumerSecret,
                           string accessToken, string tokenSecret, TokenType tokenType, ApiVersion apiVersion = ApiVersion.V1)
        {
            var consumerCredential = new ConsumerCredential(consumerKey, consumerSecret);

            consumerCredential.SetToken(accessToken, tokenSecret, tokenType);

            var serviceProviderDescription = new ServiceProviderDescription(
                new OAuthEndPoint("https://api.twitter.com/oauth/request_token"),
                new OAuthEndPoint("https://api.twitter.com/oauth/authorize", HttpMethod.Get),
                new OAuthEndPoint("https://api.twitter.com/oauth/access_token"),
                ProtocolVersion.V10A);

            this._OAuth       = new OAuth(consumerCredential, serviceProviderDescription);
            this._OAuth.Realm = ApiBaseUri;
            this._OAuth.Proxy = null;

            this.ApiVersion = apiVersion;

            this._Configuration = new TwitterConfiguration();

            this._Timer = new Timer(_ =>
            {
                var newConfig = this.RetrieveConfiguration();
                if (newConfig != null)
                {
                    Interlocked.Exchange(ref this._Configuration, newConfig);
                }
            }, null, 1000, 1000 * 3600 * 24);
        }
Ejemplo n.º 6
0
        public void BeginSelection_FilePathTest()
        {
            using var twitter       = new Twitter();
            using var mediaSelector = new MediaSelector { Visible = false, Enabled = false };
            twitter.Initialize("", "", "", 0L);
            mediaSelector.Initialize(twitter, TwitterConfiguration.DefaultConfiguration(), "Twitter");

            var images = new[] { "Resources/re.gif" };

            Assert.Raises <EventArgs>(
                x => mediaSelector.BeginSelecting += x,
                x => mediaSelector.BeginSelecting -= x,
                () => mediaSelector.BeginSelection(images)
                );

            Assert.True(mediaSelector.Visible);
            Assert.True(mediaSelector.Enabled);

            // 2 ページ目まで選択可能な状態
            var pages = mediaSelector.ImagePageCombo.Items;

            Assert.Equal(new[] { "1", "2" }, pages.Cast <object>().Select(x => x.ToString()));

            // 1 ページ目が表示されている
            Assert.Equal("1", mediaSelector.ImagePageCombo.Text);
            Assert.Equal(Path.GetFullPath("Resources/re.gif"), mediaSelector.ImagefilePathText.Text);

            using var imageStream = File.OpenRead("Resources/re.gif");
            using var image       = MemoryImage.CopyFromStream(imageStream);
            Assert.Equal(image, mediaSelector.ImageSelectedPicture.Image);
        }
Ejemplo n.º 7
0
        public void BeginSelection_MemoryImageTest()
        {
            using var twitter       = new Twitter();
            using var mediaSelector = new MediaSelector { Visible = false, Enabled = false };
            twitter.Initialize("", "", "", 0L);
            mediaSelector.Initialize(twitter, TwitterConfiguration.DefaultConfiguration(), "Twitter");

            using (var bitmap = new Bitmap(width: 200, height: 200))
            {
                Assert.Raises <EventArgs>(
                    x => mediaSelector.BeginSelecting += x,
                    x => mediaSelector.BeginSelecting -= x,
                    () => mediaSelector.BeginSelection(bitmap)
                    );
            }

            Assert.True(mediaSelector.Visible);
            Assert.True(mediaSelector.Enabled);

            // 2 ページ目まで選択可能な状態
            var pages = mediaSelector.ImagePageCombo.Items;

            Assert.Equal(new[] { "1", "2" }, pages.Cast <object>().Select(x => x.ToString()));

            // 1 ページ目が表示されている
            Assert.Equal("1", mediaSelector.ImagePageCombo.Text);
            Assert.Matches(@"^<>MemoryImage://\d+.png$", mediaSelector.ImagefilePathText.Text);

            using (var bitmap = new Bitmap(width: 200, height: 200))
            {
                using var image = MemoryImage.CopyFromImage(bitmap);
                Assert.Equal(image, mediaSelector.ImageSelectedPicture.Image);
            }
        }
Ejemplo n.º 8
0
        public yfrog(Twitter twitter, TwitterConfiguration twitterConfig)
        {
            this.tw            = twitter;
            this.twitterConfig = twitterConfig;

            this.yfrogApi = new YfrogApi(twitter.AccessToken, twitter.AccessTokenSecret);
        }
Ejemplo n.º 9
0
        public void PageChange_ImageDisposeTest()
        {
            using var twitter       = new Twitter();
            using var mediaSelector = new MediaSelector { Visible = false, Enabled = false };
            twitter.Initialize("", "", "", 0L);
            mediaSelector.Initialize(twitter, TwitterConfiguration.DefaultConfiguration(), "Twitter");

            var images = new[] { "Resources/re.gif", "Resources/re1.png" };

            mediaSelector.BeginSelection(images);

            mediaSelector.ImagePageCombo.SelectedIndex = 0;

            // 1 ページ目
            var page1Image = mediaSelector.ImageSelectedPicture.Image;

            mediaSelector.ImagePageCombo.SelectedIndex = 1;

            // 2 ページ目
            var page2Image = mediaSelector.ImageSelectedPicture.Image;

            Assert.True(page1Image !.IsDisposed); // 前ページの画像が破棄されているか

            mediaSelector.ImagePageCombo.SelectedIndex = 2;

            // 3 ページ目 (新規ページ)
            Assert.True(page2Image !.IsDisposed); // 前ページの画像が破棄されているか
        }
Ejemplo n.º 10
0
        public imgly(Twitter twitter, TwitterConfiguration twitterConfig)
        {
            this.tw            = twitter;
            this.twitterConfig = twitterConfig;

            this.imglyApi = new ImglyApi(twitter.AccessToken, twitter.AccessTokenSecret);
        }
Ejemplo n.º 11
0
        public yfrog(Twitter twitter, TwitterConfiguration twitterConfig)
        {
            this.tw = twitter;
            this.twitterConfig = twitterConfig;

            this.yfrogApi = new YfrogApi(twitter.Api);
        }
Ejemplo n.º 12
0
        public void ImagePathInput_ReplaceFileMediaItemTest()
        {
            using var twitter       = new Twitter();
            using var mediaSelector = new MediaSelector { Visible = false, Enabled = false };
            twitter.Initialize("", "", "", 0L);
            mediaSelector.Initialize(twitter, TwitterConfiguration.DefaultConfiguration(), "Twitter");

            mediaSelector.BeginSelection(new[] { "Resources/re.gif" });

            // 既に入力されているファイルパスの画像
            var image1 = mediaSelector.ImageSelectedPicture.Image;

            // 別の画像のファイルパスを入力
            mediaSelector.ImagefilePathText.Text = Path.GetFullPath("Resources/re1.png");
            TestUtils.Validate(mediaSelector.ImagefilePathText);

            // 入力したパスの画像が表示される
            using (var imageStream = File.OpenRead("Resources/re1.png"))
            {
                using var image2 = MemoryImage.CopyFromStream(imageStream);
                Assert.Equal(image2, mediaSelector.ImageSelectedPicture.Image);
            }

            // 最初に入力されていたファイルパスの表示用の MemoryImage は破棄される
            Assert.True(image1 !.IsDisposed);
        }
Ejemplo n.º 13
0
        public yfrog(Twitter twitter, TwitterConfiguration twitterConfig)
        {
            this.tw            = twitter;
            this.twitterConfig = twitterConfig;

            this.yfrogApi = new YfrogApi(twitter.Api);
        }
Ejemplo n.º 14
0
 public TwitterController(Helpers helpers, IOptions <AirtableConfiguration> airtableConfig, IOptions <TwitterConfiguration> twitterConfig, MongoDbServicer mongoDbServicer)
 {
     _helpers         = helpers;
     _airtableConfig  = airtableConfig.Value;
     _twitterConfig   = twitterConfig.Value;
     _mongoDbServicer = mongoDbServicer;
 }
Ejemplo n.º 15
0
        public void EndSelection_Test()
        {
            using (var twitter = new Twitter())
                using (var mediaSelector = new MediaSelector {
                    Visible = false, Enabled = false
                })
                {
                    twitter.Initialize("", "", "", 0L);
                    mediaSelector.Initialize(twitter, TwitterConfiguration.DefaultConfiguration(), "Twitter");
                    mediaSelector.BeginSelection(new[] { "Resources/re.gif" });

                    var displayImage = mediaSelector.ImageSelectedPicture.Image; // 表示中の画像

                    Assert.Raises <EventArgs>(
                        x => mediaSelector.EndSelecting += x,
                        x => mediaSelector.EndSelecting -= x,
                        () => mediaSelector.EndSelection()
                        );

                    Assert.False(mediaSelector.Visible);
                    Assert.False(mediaSelector.Enabled);

                    Assert.True(displayImage.IsDisposed);
                }
        }
Ejemplo n.º 16
0
        public void ImagePathInput_Test()
        {
            using (var twitter = new Twitter())
                using (var mediaSelector = new MediaSelector {
                    Visible = false, Enabled = false
                })
                {
                    twitter.Initialize("", "", "", 0L);
                    mediaSelector.Initialize(twitter, TwitterConfiguration.DefaultConfiguration(), "Twitter");
                    mediaSelector.BeginSelection();

                    // 画像のファイルパスを入力
                    mediaSelector.ImagefilePathText.Text = Path.GetFullPath("Resources/re1.png");
                    TestUtils.Validate(mediaSelector.ImagefilePathText);

                    // 入力したパスの画像が表示される
                    using (var imageStream = File.OpenRead("Resources/re1.png"))
                        using (var image = MemoryImage.CopyFromStream(imageStream))
                        {
                            Assert.Equal(image, mediaSelector.ImageSelectedPicture.Image);
                        }

                    // 2 ページ目まで選択可能な状態
                    var pages = mediaSelector.ImagePageCombo.Items;
                    Assert.Equal(new[] { "1", "2" }, pages.Cast <object>().Select(x => x.ToString()));
                }
        }
Ejemplo n.º 17
0
        public void BeginSelection_MultiImageTest()
        {
            using (var twitter = new Twitter())
                using (var mediaSelector = new MediaSelector {
                    Visible = false, Enabled = false
                })
                {
                    twitter.Initialize("", "", "", 0L);
                    mediaSelector.Initialize(twitter, TwitterConfiguration.DefaultConfiguration(), "Twitter");

                    var images = new[] { "Resources/re.gif", "Resources/re1.png" };
                    mediaSelector.BeginSelection(images);

                    // 3 ページ目まで選択可能な状態
                    var pages = mediaSelector.ImagePageCombo.Items;
                    Assert.Equal(new[] { "1", "2", "3" }, pages.Cast <object>().Select(x => x.ToString()));

                    // 1 ページ目が表示されている
                    Assert.Equal("1", mediaSelector.ImagePageCombo.Text);
                    Assert.Equal(Path.GetFullPath("Resources/re.gif"), mediaSelector.ImagefilePathText.Text);

                    using (var imageStream = File.OpenRead("Resources/re.gif"))
                        using (var image = MemoryImage.CopyFromStream(imageStream))
                        {
                            Assert.Equal(image, mediaSelector.ImageSelectedPicture.Image);
                        }
                }
        }
Ejemplo n.º 18
0
        public Imgur(Twitter tw, TwitterConfiguration twitterConfig)
        {
            this.twitter       = tw;
            this.twitterConfig = twitterConfig;

            this.imgurApi = new ImgurApi();
        }
Ejemplo n.º 19
0
        public void BeginSelection_BlankTest()
        {
            using var twitter       = new Twitter();
            using var mediaSelector = new MediaSelector { Visible = false, Enabled = false };
            twitter.Initialize("", "", "", 0L);
            mediaSelector.Initialize(twitter, TwitterConfiguration.DefaultConfiguration(), "Twitter");

            Assert.Raises <EventArgs>(
                x => mediaSelector.BeginSelecting += x,
                x => mediaSelector.BeginSelecting -= x,
                () => mediaSelector.BeginSelection()
                );

            Assert.True(mediaSelector.Visible);
            Assert.True(mediaSelector.Enabled);

            // 1 ページ目のみ選択可能な状態
            var pages = mediaSelector.ImagePageCombo.Items;

            Assert.Equal(new[] { "1" }, pages.Cast <object>().Select(x => x.ToString()));

            // 1 ページ目が表示されている
            Assert.Equal("1", mediaSelector.ImagePageCombo.Text);
            Assert.Equal("", mediaSelector.ImagefilePathText.Text);
            Assert.Null(mediaSelector.ImageSelectedPicture.Image);
        }
Ejemplo n.º 20
0
        public Mobypicture(Twitter twitter, TwitterConfiguration twitterConfig)
        {
            this.twitter       = twitter ?? throw new ArgumentNullException(nameof(twitter));
            this.twitterConfig = twitterConfig ?? throw new ArgumentNullException(nameof(twitterConfig));

            this.mobypictureApi = new MobypictureApi(twitter.Api);
        }
        public void TestInitialize()
        {
            this.mockRepository = new MockRepository(MockBehavior.Loose);
            //this.mockHttpClientFactory = this.mockRepository.Create<IHttpClientFactory>();
            this.mockHttpClientProvider  = this.mockRepository.Create <IHttpClientProvider>();
            this.mockStreamReaderHandler = this.mockRepository.Create <IStreamReaderHandler>();
            this.mockIncommingTweetQueue = this.mockRepository.Create <IIncommingTweetQueue>();

            this.mockIncommingTweetQueue.Setup(o => o.SendMessageOntoQueue(It.IsAny <string>())).Returns(Task.FromResult(true));

            string fakeFileContents = "some content";

            byte[] fakeFileBytes = Encoding.UTF8.GetBytes(fakeFileContents);

            MemoryStream fakeMemoryStream = new MemoryStream(fakeFileBytes);

            this.mockStreamReaderHandler.Setup(o => o.GetStreamReader(It.IsAny <Stream>())).Returns(() => new StreamReader(fakeMemoryStream));

            //var response = new Mock<HttpResponseMessage>();
            //response.SetupAllProperties();
            //var mockHttpMessageHandler = new Mock<HttpMessageHandler>();


            //mockHttpMessageHandler.Protected()
            //    .Setup<Task<Stream>>("GetStreamAsync", ItExpr.IsAny<string>())
            //    .ReturnsAsync(fakeMemoryStream);


            //var client = new HttpClient(mockHttpMessageHandler.Object);



            //this.mockHttpClientFactory.Setup(o => o.CreateClient(It.IsAny<string>())).Returns(client.Object);


            //this.mockHttpClientProvider = new Mock<IHttpClientProvider>();
            mockHttpClientProvider.SetupAllProperties();
            mockHttpClientProvider.Setup(o => o.GetStreamAsync(It.IsAny <string>())).ReturnsAsync(fakeMemoryStream, new System.TimeSpan(0, 0, 1));

            mockHttpClientProvider.SetupProperty(o => o.BaseAddress);

            var headers = new HttpClient().DefaultRequestHeaders;

            mockHttpClientProvider.SetupGet(o => o.DefaultRequestHeaders).Returns(headers);

            var binDirectory = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location).TrimEnd(@"\bin".ToArray());
            var dataFilePath = Path.GetFullPath(Path.Combine(binDirectory, Constants.AppSettingsJson));

            configuration = new ConfigurationBuilder()
                            .AddJsonFile(dataFilePath, optional: true)
                            .Build();

            twitterConfiguration = new TwitterConfiguration()
            {
                BaseUrl         = configuration.GetValue <string>(Constants.TwitterBaseUrlName).ToString(),
                OAuthToken      = configuration.GetValue <string>(Constants.TwitterOAuthTokenName).ToString(),
                SampleStreamUrl = configuration.GetValue <string>(Constants.TwitterSampleStreamUrlName).ToString()
            };
        }
Ejemplo n.º 22
0
        /// <summary>
        /// 投稿先サービスなどを初期化する。
        /// </summary>
        public void Initialize(Twitter tw, TwitterConfiguration twitterConfig, string svc, int?index = null)
        {
            CreateServices(tw, twitterConfig);

            SetImageServiceCombo();
            SetImagePageCombo();

            SelectImageServiceComboItem(svc, index);
        }
Ejemplo n.º 23
0
        /// <summary>
        /// Creates the credentials.
        /// </summary>
        /// <param name="config">The configuration.</param>
        /// <returns></returns>
        public Tweetinvi.Models.ConsumerOnlyCredentials CreateCredentials(TwitterConfiguration config)
        {
            var appCredentials = new Tweetinvi.Models.ConsumerOnlyCredentials(config.ApiKey, config.ApiKeySecret)
            {
                BearerToken = config.BearerToken
            };

            return(appCredentials);
        }
Ejemplo n.º 24
0
        private void CreateServices(Twitter tw, TwitterConfiguration twitterConfig)
        {
            this.pictureService?.Clear();

            this.pictureService = new Dictionary <string, IMediaUploadService> {
                ["Twitter"]     = new TwitterPhoto(tw, twitterConfig),
                ["Imgur"]       = new Imgur(twitterConfig),
                ["Mobypicture"] = new Mobypicture(tw, twitterConfig),
            };
        }
        public void AddPostsByHashTags()
        {
            IEnumerable <Models.HashTag> hashtags      = _socialFeedsRepository.GetHashTags();
            TwitterConfiguration         twitterConfig = _socialFeedsRepository.GeTwitterConfiguration();

            foreach (var hashtag in hashtags)
            {
                AddTwitterPosts(hashtag.Hashtag, twitterConfig, _socialFeedsRepository);
            }
        }
Ejemplo n.º 26
0
        /// <summary>
        /// Creates the stream.
        /// </summary>
        /// <param name="configFromRequest">The configuration from request.</param>
        /// <returns></returns>
        public Tweetinvi.Streaming.V2.ISampleStreamV2 CreateStream(TwitterConfiguration configFromRequest)
        {
            var config         = this.GetConfiguration(configFromRequest);
            var appCredentials = this.CreateCredentials(config);
            var appClient      = this.CreateTwitterClient(appCredentials);
            var sampleStreamV2 = appClient.StreamsV2.CreateSampleStream();

            this.StreamStartedAt = DateTime.UtcNow;

            return(sampleStreamV2);
        }
Ejemplo n.º 27
0
        /// <summary>
        /// Gets the configuration.
        /// </summary>
        /// <param name="configFromRequest">The configuration from request.</param>
        /// <returns></returns>
        public TwitterConfiguration GetConfiguration(TwitterConfiguration configFromRequest)
        {
            // Get the configuration info.  There are 2 possible sources:
            //	1. The body of the POST request (configFromRequest)
            //	2. The app.config file
            var config = (configFromRequest == null)
                                ? this.GetConfiguration()
                                : configFromRequest;

            return(config);
        }
        public TwitterConfiguration GeTwitterConfiguration()
        {
            Item targetItem = Sitecore.Context.Database.Items["{EE197B09-61EA-42CB-B5DE-F0BBAC2D54DF}"];
            TwitterConfiguration twitterconfig = new TwitterConfiguration();

            twitterconfig.ConsumerKey    = targetItem.Fields["ConsumerKey"].Value;
            twitterconfig.ConsumerSecret = targetItem.Fields["ConsumerSecret"].Value;
            twitterconfig.Token          = targetItem.Fields["Token"].Value;
            twitterconfig.TokenSecret    = targetItem.Fields["TokenSecret"].Value;
            return(twitterconfig);
        }
Ejemplo n.º 29
0
        public async Task <string> ReciveTweets(IHttpClientProvider client, TwitterConfiguration twitterConfiguration
                                                , IIncommingTweetQueue incommingTweetQueue, IStreamReaderHandler streamReaderHandler, CancellationToken cancellationToken)
        {
            int      tweetCount = 0;
            var      tasks      = new List <Task>();
            DateTime startRun   = DateTime.UtcNow;

            try
            {
                client.BaseAddress = new Uri(twitterConfiguration.BaseUrl);

                if (client != null)
                {
                    client.DefaultRequestHeaders.Add("Authorization", "Bearer " + twitterConfiguration.OAuthToken);
                    var stream = await client.GetStreamAsync(twitterConfiguration.SampleStreamUrl);

                    try
                    {
                        using (var reader = streamReaderHandler.GetStreamReader(stream))
                        {
                            do
                            {
                                var rawTweetData = await reader.ReadLineAsync();

                                RawTweetModel messageWithData = new RawTweetModel()
                                {
                                    TweetCount = tweetCount, RawTweetData = rawTweetData
                                };
                                // send new tweet onto queue for processing
                                tasks.Add(Task.Run(() => incommingTweetQueue.SendMessageOntoQueue(JsonConvert.SerializeObject(messageWithData))));
                                tweetCount++;
                                cancellationToken.ThrowIfCancellationRequested();
                            } while (true);
                        }
                        //
                    }
                    catch (OperationCanceledException)
                    {
                        // canceled
                    }
                    catch (Exception exc)
                    {
                        throw exc;
                    }
                }
            }
            catch (Exception exc)
            {
                throw exc;
            }
            Task.WaitAll(tasks.ToArray());

            return("Done Collecting Tweets... ");
        }
Ejemplo n.º 30
0
        public Mobypicture(Twitter twitter, TwitterConfiguration twitterConfig)
        {
            if (twitter == null)
                throw new ArgumentNullException(nameof(twitter));
            if (twitterConfig == null)
                throw new ArgumentNullException(nameof(twitterConfig));

            this.twitter = twitter;
            this.twitterConfig = twitterConfig;

            this.mobypictureApi = new MobypictureApi(twitter.Api);
        }
Ejemplo n.º 31
0
        public TwipplePhoto(Twitter twitter, TwitterConfiguration twitterConfig)
        {
            if (twitter == null)
                throw new ArgumentNullException(nameof(twitter));
            if (twitterConfig == null)
                throw new ArgumentNullException(nameof(twitterConfig));

            this.twitter = twitter;
            this.twitterConfig = twitterConfig;

            this.twippleApi = new TwippleApi(twitter.Api);
        }
Ejemplo n.º 32
0
        /// <summary>
        /// Gets the configuration.
        /// </summary>
        /// <returns></returns>
        public TwitterConfiguration GetConfiguration()
        {
            var config = new TwitterConfiguration();

            config.Url               = ConfigurationManager.AppSettings[JHA.WebServices.Contract.Constants.TwitterConstants.TwitterUrlSetting];
            config.ApiKey            = ConfigurationManager.AppSettings[JHA.WebServices.Contract.Constants.TwitterConstants.TwitterApiKeySetting];
            config.ApiKeySecret      = ConfigurationManager.AppSettings[JHA.WebServices.Contract.Constants.TwitterConstants.TwitterApiKeySecretSetting];
            config.AccessToken       = ConfigurationManager.AppSettings[JHA.WebServices.Contract.Constants.TwitterConstants.TwitterAccessTokenSetting];
            config.AccessTokenSecret = ConfigurationManager.AppSettings[JHA.WebServices.Contract.Constants.TwitterConstants.TwitterAccessTokenSecretSetting];
            config.BearerToken       = ConfigurationManager.AppSettings[JHA.WebServices.Contract.Constants.TwitterConstants.TwitterBearerTokenSetting];

            return(config);
        }
Ejemplo n.º 33
0
        private void CreateServices(Twitter tw, TwitterConfiguration twitterConfig)
        {
            this.pictureService?.Clear();
            this.pictureService = null;

            this.pictureService = new Dictionary <string, IMediaUploadService> {
                ["Twitter"]     = new TwitterPhoto(tw, twitterConfig),
                ["img.ly"]      = new imgly(tw, twitterConfig),
                ["yfrog"]       = new yfrog(tw, twitterConfig),
                ["ついっぷるフォト"]    = new TwipplePhoto(tw, twitterConfig),
                ["Imgur"]       = new Imgur(tw, twitterConfig),
                ["Mobypicture"] = new Mobypicture(tw, twitterConfig),
            };
        }
Ejemplo n.º 34
0
        public QueueHub(IHttpClientProvider httpClientProvider, IIncommingTweetQueue incommingTweetQueue, IConfiguration configuration,
                        IRuntimeStatsService runtimeStatsService, IStreamService streamService, IStreamReaderHandler streamReaderHandler)
        {
            _httpClientProvider  = httpClientProvider;
            _incommingTweetQueue = incommingTweetQueue;
            _runtimeStatsService = runtimeStatsService;
            _streamService       = streamService;
            _streamReaderHandler = streamReaderHandler;

            _twitterConfiguration = new TwitterConfiguration()
            {
                BaseUrl         = configuration.GetValue <string>(Constants.TwitterBaseUrlName).ToString(),
                OAuthToken      = configuration.GetValue <string>(Constants.TwitterOAuthTokenName).ToString(),
                SampleStreamUrl = configuration.GetValue <string>(Constants.TwitterSampleStreamUrlName).ToString()
            };
        }
Ejemplo n.º 35
0
 public void UpdateTwitterConfiguration(TwitterConfiguration config)
 {
     this.twitterConfig = config;
 }
Ejemplo n.º 36
0
        //private List<PostClass> _deletemessages = new List<PostClass>();

        public Twitter()
        {
            this.Configuration = TwitterConfiguration.DefaultConfiguration();
        }
Ejemplo n.º 37
0
 public Twitter(TwitterApi api)
 {
     this.Api = api;
     this.Configuration = TwitterConfiguration.DefaultConfiguration();
 }
Ejemplo n.º 38
0
        private TwitterApi(string consumerKey, string consumerSecret,
            string accessToken, string tokenSecret, TokenType tokenType, ApiVersion apiVersion = ApiVersion.V1)
        {
            var consumerCredential = new ConsumerCredential(consumerKey, consumerSecret);
            consumerCredential.SetToken(accessToken, tokenSecret, tokenType);

            var serviceProviderDescription = new ServiceProviderDescription(
                    new OAuthEndPoint("https://api.twitter.com/oauth/request_token"),
                    new OAuthEndPoint("https://api.twitter.com/oauth/authorize", HttpMethod.Get),
                    new OAuthEndPoint("https://api.twitter.com/oauth/access_token"),
                    ProtocolVersion.V10A);

            this._OAuth         = new OAuth(consumerCredential, serviceProviderDescription);
            this._OAuth.Realm   = ApiBaseUri;
            this._OAuth.Proxy   = null;

            this.ApiVersion     = apiVersion;

            this._Configuration = new TwitterConfiguration();

            this._Timer = new Timer(_ =>
                                    {
                                        var newConfig = this.RetrieveConfiguration();
                                        if (newConfig != null)
                                            Interlocked.Exchange(ref this._Configuration, newConfig);
                                    }, null, 1000, 1000 * 3600 * 24);
        }