fetchAll('SELECT username, password, text, status, tp.id AS id FROM twitter_post tp JOIN twitter_user tu ON tp.user = tu.id ' . 'WHERE tp.status = \'scheduled\' AND time >= NOW() AND time < TIMESTAMPADD(?, NOW())', array(RUN_INTERVAL)); // Check if we actually have any tweets. If not, bail. if(count($tweets) === 0) { exit(0); } // There are tweets to post. Let's get to work. foreach($tweets as $t) { // Lock the tweet $dbConnection->executeUpdate('UPDATE twitter_post SET status = \'locked\' WHERE id = ? AND status = \'scheduled\'', array($t->id)); if(twitterpost($t->text, $t->username, $t->password)) { // It worked! adminlog("Scheduled tweet posted for user ".$t->username, MTS_TWITTER, MTA_ADD); $t->status = 'success'; } else { // Well, shit. Something went wrong. Log it. adminlog("Error $ret_code posting scheduled tweet ".$t->id . ' with return value ' . $ret, MTS_TWITTER, MTA_ADD); $t->status = 'error'; } // Unlock tweet, update db. $dbConnection->executeUpdate('UPDATE twitter_post SET status = ? WHERE status = \'locked\' AND id = ?', array($t->status, $t->id)); } ?>