public void SendNotification(string message, TwitterSettings settings) { try { var oAuth = new TinyTwitter.OAuthInfo { ConsumerKey = settings.ConsumerKey, ConsumerSecret = settings.ConsumerSecret, AccessToken = settings.AccessToken, AccessSecret = settings.AccessTokenSecret }; var twitter = new TinyTwitter.TinyTwitter(oAuth); if (settings.DirectMessage) { twitter.DirectMessage(message, settings.Mention); } else { if (settings.Mention.IsNotNullOrWhiteSpace()) { message += string.Format(" @{0}", settings.Mention); } twitter.UpdateStatus(message); } } catch (WebException ex) { using (var response = ex.Response) { var httpResponse = (HttpWebResponse)response; using (var responseStream = response.GetResponseStream()) { if (responseStream == null) { _logger.Trace("Status Code: {0}", httpResponse.StatusCode); throw new TwitterException("Error received from Twitter: " + httpResponse.StatusCode, ex); } using (var reader = new StreamReader(responseStream)) { var responseBody = reader.ReadToEnd(); _logger.Trace("Reponse: {0} Status Code: {1}", responseBody, httpResponse.StatusCode); throw new TwitterException("Error received from Twitter: " + responseBody, ex); } } } } }
public ValidationFailure Test(TwitterSettings settings) { try { var body = "Sonarr: Test Message @ " + DateTime.Now; SendNotification(body, settings); } catch (Exception ex) { _logger.Error(ex, "Unable to send test message: " + ex.Message); return(new ValidationFailure("Host", "Unable to send test message")); } return(null); }
public void UpdateStatus(string message, TwitterSettings settings) { var oAuthRequest = OAuthRequest.ForProtectedResource("POST", settings.ConsumerKey, settings.ConsumerSecret, settings.AccessToken, settings.AccessTokenSecret); oAuthRequest.RequestUrl = "https://api.twitter.com/1.1/statuses/update.json"; var customParams = new Dictionary <string, string> { { "status", message.EncodeRFC3986() } }; var request = GetRequest(oAuthRequest, customParams); request.Headers.ContentType = "application/x-www-form-urlencoded"; request.SetContent(Encoding.ASCII.GetBytes(GetCustomParametersString(customParams))); ExecuteRequest(request); }
public void SendNotification(string message, TwitterSettings settings) { try { if (settings.DirectMessage) { _twitterProxy.DirectMessage(message, settings); } else { if (settings.Mention.IsNotNullOrWhiteSpace()) { message += string.Format(" @{0}", settings.Mention); } _twitterProxy.UpdateStatus(message, settings); } } catch (WebException ex) { using (var response = ex.Response) { var httpResponse = (HttpWebResponse)response; using (var responseStream = response.GetResponseStream()) { if (responseStream == null) { _logger.Trace("Status Code: {0}", httpResponse.StatusCode); throw new TwitterException("Error received from Twitter: " + httpResponse.StatusCode, ex); } using (var reader = new StreamReader(responseStream)) { var responseBody = reader.ReadToEnd(); _logger.Trace("Reponse: {0} Status Code: {1}", responseBody, httpResponse.StatusCode); throw new TwitterException("Error received from Twitter: " + responseBody, ex); } } } } }