-function twitter_queue_hook(App $a)
-{
- $qi = q("SELECT * FROM `queue` WHERE `network` = '%s'",
- DBA::escape(Protocol::TWITTER)
- );
- if (!DBA::isResult($qi)) {
- return;
- }
-
- foreach ($qi as $x) {
- if ($x['network'] !== Protocol::TWITTER) {
- continue;
- }
-
- Logger::log('twitter_queue: run');
-
- $r = q("SELECT `user`.* FROM `user` LEFT JOIN `contact` on `contact`.`uid` = `user`.`uid`
- WHERE `contact`.`self` = 1 AND `contact`.`id` = %d LIMIT 1",
- intval($x['cid'])
- );
- if (!DBA::isResult($r)) {
- continue;
- }
-
- $user = $r[0];
-
- $ckey = Config::get('twitter', 'consumerkey');
- $csecret = Config::get('twitter', 'consumersecret');
- $otoken = PConfig::get($user['uid'], 'twitter', 'oauthtoken');
- $osecret = PConfig::get($user['uid'], 'twitter', 'oauthsecret');
-
- $success = false;
-
- if ($ckey && $csecret && $otoken && $osecret) {
- Logger::log('twitter_queue: able to post');
-
- $z = unserialize($x['content']);
-
- $connection = new TwitterOAuth($ckey, $csecret, $otoken, $osecret);
- $result = $connection->post($z['url'], $z['post']);
-
- Logger::log('twitter_queue: post result: ' . print_r($result, true), Logger::DEBUG);
-
- if ($result->errors) {
- Logger::log('twitter_queue: Send to Twitter failed: "' . print_r($result->errors, true) . '"');
- } else {
- $success = true;
- Queue::removeItem($x['id']);
- }
- } else {
- Logger::log("twitter_queue: Error getting tokens for user " . $user['uid']);
- }
-
- if (!$success) {
- Logger::log('twitter_queue: delayed');
- Queue::updateTime($x['id']);
- }
- }
-}
-