Пример #1
0
        static async Task UploadMultipleImagesAsync(TwitterContext twitterCtx)
        {
            var additionalOwners = new List <ulong> {
                3265644348, 15411837
            };
            string status =
                "Testing multi-image tweet #Linq2Twitter £ " +
                DateTime.Now.ToString(CultureInfo.InvariantCulture);
            string mediaCategory = "tweet_image";

            var imageUploadTasks =
                new List <Task <Media> >
            {
                twitterCtx.UploadMediaAsync(File.ReadAllBytes(@"..\..\..\images\200xColor_2.png"), "image/png", additionalOwners, mediaCategory),
                twitterCtx.UploadMediaAsync(File.ReadAllBytes(@"..\..\..\images\WP_000003.jpg"), "image/jpg", mediaCategory),
                twitterCtx.UploadMediaAsync(File.ReadAllBytes(@"..\..\..\images\13903749474_86bd1290de_o.jpg"), "image/jpg", mediaCategory),
            };

            await Task.WhenAll(imageUploadTasks);

            List <ulong> mediaIds =
                (from tsk in imageUploadTasks
                 select tsk.Result.MediaID)
                .ToList();

            mediaIds.ForEach(async id => await twitterCtx.CreateMediaMetadataAsync(id, $"Test Alt Text for Media ID: {id}"));

            Status tweet = await twitterCtx.TweetAsync(status, mediaIds);

            if (tweet != null)
            {
                Console.WriteLine("Tweet sent: " + tweet.Text);
            }
        }
Пример #2
0
        public async Task CreateMediaMetadataAsync_WithNullAltText_Throws()
        {
            ulong  mediaID = 521449660083609601ul;
            string altText = null;

            TwitterContext ctx = await InitializeTwitterContext();

            await L2TAssert.Throws <ArgumentNullException>(
                async() => await ctx.CreateMediaMetadataAsync(mediaID, altText));
        }
Пример #3
0
        public async Task CreateMediaMetadataAsync_WithZeroMediaID_Throws()
        {
            ulong  mediaID = 0;
            string altText = "Sample media description";

            TwitterContext ctx = await InitializeTwitterContext();

            await L2TAssert.Throws <ArgumentNullException>(
                async() => await ctx.CreateMediaMetadataAsync(mediaID, altText));
        }
Пример #4
0
        static async Task CreateMetadataAsync(TwitterContext twitterCtx)
        {
            string status =
                "Testing video upload tweet #Linq2Twitter £ " +
                DateTime.Now.ToString(CultureInfo.InvariantCulture);

            byte[]      imageBytes       = File.ReadAllBytes(@"..\..\..\images\TwitterTest.mp4");
            const ulong JoeMayoUserID    = 15411837;
            var         additionalOwners = new ulong[] { JoeMayoUserID };
            string      mediaType        = "video/mp4";
            string      mediaCategory    = "tweet_video";

            Media media = await twitterCtx.UploadMediaAsync(imageBytes, mediaType, additionalOwners, mediaCategory);

            Media mediaStatusResponse = null;

            do
            {
                if (mediaStatusResponse != null)
                {
                    int checkAfterSeconds = mediaStatusResponse?.ProcessingInfo?.CheckAfterSeconds ?? 0;
                    Console.WriteLine($"Twitter video testing in progress - waiting {checkAfterSeconds} seconds.");
                    await Task.Delay(checkAfterSeconds * 1000);
                }

                mediaStatusResponse =
                    await
                        (from stat in twitterCtx.Media
                        where stat.Type == MediaType.Status &&
                        stat.MediaID == media.MediaID
                        select stat)
                    .SingleOrDefaultAsync();
            } while (mediaStatusResponse?.ProcessingInfo?.State == MediaProcessingInfo.InProgress);

            if (mediaStatusResponse?.ProcessingInfo?.State == MediaProcessingInfo.Succeeded)
            {
                await twitterCtx.CreateMediaMetadataAsync(mediaStatusResponse.MediaID, "LINQ to Twitter Alt Text Test");

                Status tweet = await twitterCtx.TweetAsync(status, new ulong[] { media.MediaID });

                if (tweet != null)
                {
                    Console.WriteLine($"Tweet sent: {tweet.Text}");
                }
            }
            else
            {
                MediaError error = mediaStatusResponse?.ProcessingInfo?.Error;

                if (error != null)
                {
                    Console.WriteLine($"Request failed - Code: {error.Code}, Name: {error.Name}, Message: {error.Message}");
                }
            }
        }
Пример #5
0
        public async Task CreateMediaMetadataAsync_WithValidParameters_Succeeds()
        {
            ulong  mediaID = 521449660083609601ul;
            string altText = "Sample media description";

            TwitterContext ctx = await InitializeTwitterContext();

            await ctx.CreateMediaMetadataAsync(mediaID, altText);

            execMock.Verify(exec =>
                            exec.SendJsonToTwitterAsync(
                                It.IsAny <string>(),
                                "https://upload.twitter.com/1.1/media/metadata/create.json",
                                It.IsAny <IDictionary <string, string> >(),
                                It.IsAny <MediaMetadata>(),
                                It.IsAny <CancellationToken>()),
                            Times.Once());
        }