/// <summary>
        /// Publish a post with image
        /// </summary>
        /// <returns>result</returns>
        /// <param name="message">message to publish</param>
        /// <param name="pathToImage">image to attach</param>
        internal string PublishTweet(string message)
        {
            try
            {
                Task <string> rezText = Task.Run(async() =>
                {
                    string response = await Tweet(TweetLimit.CutTweetToLimit(message));
                    return(response);
                });

                if (rezText.Result != "OK")
                {
                    EasyLogger.Warning(rezText.Result);
                }

                return("OK");
            }
            catch (Exception ex)
            {
                EasyLogger.Error("TweetMessage - @PublishTweet(1): " + ex);
                return(ex.Message);
            }
        }
Esempio n. 2
0
        /// <summary>
        /// Publish a post with image
        /// </summary>
        /// <returns>result</returns>
        /// <param name="message">message to publish</param>
        /// <param name="image">image to attach</param>
        internal string PublishTweet(string message, string image = null)
        {
            try
            {
                string mediaID = string.Empty;
                Task <Tuple <int, string> > rezImage = Task.Run(async() =>
                {
                    Tuple <int, string> response = await Tweet(image);
                    return(response);
                });
                JObject rezImageJson = JObject.Parse(rezImage.Result.Item2);

                if (rezImage.Result.Item1 != 200)
                {
                    try
                    {
                        return($"Error uploading image to Twitter. {rezImageJson["errors"][0]["message"].Value<string>()}");
                    }
                    catch
                    {
                        return("Unknown error uploading image to Twitter");
                    }
                }
                mediaID = rezImageJson["media_id_string"].Value <string>();

                Task <Tuple <int, string> > rezText = Task.Run(async() =>
                {
                    Tuple <int, string> response = await TweetText(TweetLimit.CutTweetToLimit(message), mediaID);
                    return(response);
                });
                JObject rezTextJson = JObject.Parse(rezText.Result.Item2);

                if (rezText.Result.Item1 != 200)
                {
                    try
                    {
                        return($"Error sending image to Twitter. {rezTextJson["errors"][0]["message"].Value<string>()} - Response Code: " + rezText.Result.Item1);
                    }
                    catch
                    {
                        return("Unknown error sending image to Twitter - Response Code: " + rezText.Result.Item1);
                    }
                }

                try
                {
                    if (File.Exists(image))
                    {
                        File.Delete(image);
                    }
                }
                catch (Exception ex)
                {
                    EasyLogger.Error("TweetImage - @PublishTweet(1): " + ex);
                }

                return("OK");
            }
            catch (Exception ex)
            {
                EasyLogger.Error("TweetImage - @PublishTweet(2): " + ex);
                return(ex.Message);
            }
        }