function SendTweet($region, $tweetData, $chartUrl, $lastTweetData) { global $regionNames; $msg = isset($regionNames[$region]) ? $regionNames[$region] : $region; $msg .= " WoW Token: " . $tweetData['formatted']['BUY'] . "g."; //, sells in " . $tweetData['formatted']['TIMETOSELL'] . '.'; if ($tweetData['timestamp'] < time() - 30 * 60) { // show timestamp if older than 30 mins $msg .= " From " . TimeDiff($tweetData['timestamp'], ['parts' => 2, 'precision' => 'minute']) . '.'; } if ($tweetData['record']['result'] != 1) { $msg .= " " . $tweetData['formatted']['RESULT'] . "."; } else { if (isset($tweetData['formatted']['BUYCHANGEAMOUNT']) && $tweetData['formatted']['BUYCHANGEAMOUNT'] != '0') { $msg .= " Changed " . $tweetData['formatted']['BUYCHANGEAMOUNT'] . 'g'; if (isset($tweetData['formatted']['BUYCHANGEPERCENT'])) { $msg .= ' or ' . $tweetData['formatted']['BUYCHANGEPERCENT']; if (isset($lastTweetData['timestamp'])) { $msg .= ' since ' . round((time() - $lastTweetData['timestamp']) / 3600, 1) . 'h ago'; } } elseif (isset($lastTweetData['timestamp'])) { $msg .= ' since ' . round((time() - $lastTweetData['timestamp']) / 3600, 1) . 'h ago'; } $msg .= '.'; } if (isset($tweetData['formatted']['TURNAROUND'])) { $msg .= ' ' . $tweetData['formatted']['TURNAROUND']; } } if ($msg == '') { return false; } DebugMessage('Sending tweet of ' . strlen($msg) . " chars:\n" . $msg); global $twitterCredentials; if ($twitterCredentials === false) { return true; } $media = false; if ($chartUrl) { $media = UploadTweetMedia($chartUrl); } $params = array(); if ($media) { $params['media_ids'][] = $media; } $params['status'] = $msg; $oauth = new OAuth($twitterCredentials['consumerKey'], $twitterCredentials['consumerSecret']); $oauth->setToken($twitterCredentials['WoWTokens']['accessToken'], $twitterCredentials['WoWTokens']['accessTokenSecret']); $url = 'https://api.twitter.com/1.1/statuses/update.json'; try { $didWork = $oauth->fetch($url, $params, 'POST', array('Connection' => 'close')); } catch (OAuthException $e) { $didWork = false; } $ri = $oauth->getLastResponseInfo(); $r = $oauth->getLastResponse(); if ($didWork && $ri['http_code'] == '200') { $json = json_decode($r, true); if (json_last_error() == JSON_ERROR_NONE) { if (isset($json['id_str'])) { return $json['id_str']; } } return true; } if (isset($ri['http_code'])) { DebugMessage('Twitter returned HTTP code ' . $ri['http_code'], E_USER_WARNING); } else { DebugMessage('Twitter returned unknown HTTP code', E_USER_WARNING); } DebugMessage('Twitter returned: ' . print_r($ri, true), E_USER_WARNING); DebugMessage('Twitter returned: ' . print_r($r, true), E_USER_WARNING); return false; }
function SendTweet($msg, $png = false) { global $twitterCredentials; if ($twitterCredentials === false) { return true; } $media = $png ? UploadTweetMedia($png) : false; $params = array(); if ($media) { $params['media_ids'][] = $media; } $params['status'] = $msg; $oauth = new OAuth($twitterCredentials['consumerKey'], $twitterCredentials['consumerSecret']); $oauth->setToken($twitterCredentials[TWITTER_ACCOUNT]['accessToken'], $twitterCredentials[TWITTER_ACCOUNT]['accessTokenSecret']); $url = 'https://api.twitter.com/1.1/statuses/update.json'; try { $didWork = $oauth->fetch($url, $params, 'POST', array('Connection' => 'close')); } catch (OAuthException $e) { $didWork = false; } $ri = $oauth->getLastResponseInfo(); $r = $oauth->getLastResponse(); if ($didWork && $ri['http_code'] == '200') { $json = json_decode($r, true); if (json_last_error() == JSON_ERROR_NONE) { if (isset($json['id_str'])) { return $json['id_str']; } } return true; } if (isset($ri['http_code'])) { DebugMessage('Twitter returned HTTP code ' . $ri['http_code'], E_USER_WARNING); } else { DebugMessage('Twitter returned unknown HTTP code', E_USER_WARNING); } DebugMessage('Twitter returned: ' . print_r($ri, true), E_USER_WARNING); DebugMessage('Twitter returned: ' . print_r($r, true), E_USER_WARNING); }