#2362 twitter: cronjob
This commit is contained in:
parent
f183ef664d
commit
e650f878fd
|
@ -158,6 +158,7 @@ install: configure_apache
|
|||
${MKDIR} ${USR_VAR_DIR}/Campcaster/htmlUI/var/templates/system
|
||||
${MKDIR} ${USR_VAR_DIR}/Campcaster/htmlUI/var/templates/playlist
|
||||
${MKDIR} ${USR_VAR_DIR}/Campcaster/htmlUI/var/templates/subjects
|
||||
${MKDIR} ${USR_VAR_DIR}/Campcaster/htmlUI/var/install
|
||||
|
||||
${CP} ${VAR_DIR}/redirect.php ${USR_VAR_DIR}/Campcaster/index.php
|
||||
${CP} ${VAR_DIR}/redirect.php ${USR_VAR_DIR}/Campcaster/htmlUI/index.php
|
||||
|
@ -212,7 +213,7 @@ install: configure_apache
|
|||
${CP} ${VAR_DIR}/templates/subjects/*.tpl \
|
||||
${USR_VAR_DIR}/Campcaster/htmlUI/var/templates/subjects
|
||||
|
||||
${MKDIR} ${USR_VAR_DIR}/Campcaster/htmlUI/var/templates_c
|
||||
${CP} ${VAR_DIR}/install/install.php ${USR_VAR_DIR}/Campcaster/htmlUI/var/install/
|
||||
|
||||
chgrp ${APACHE_GROUP} ${USR_VAR_DIR}/Campcaster/htmlUI/var/templates_c
|
||||
chgrp ${APACHE_GROUP} ${USR_VAR_DIR}/Campcaster/htmlUI/var/html/img
|
||||
|
@ -224,6 +225,8 @@ install: configure_apache
|
|||
|
||||
${RM} ${WWW_DOCROOT}/campcaster
|
||||
ln -sf ${USR_VAR_DIR}/Campcaster ${WWW_DOCROOT}/campcaster
|
||||
|
||||
-cd var/install && php -q install.php
|
||||
|
||||
configure_apache:
|
||||
ifeq (@CONFIGURE_APACHE@,yes)
|
||||
|
|
|
@ -1,22 +0,0 @@
|
|||
<?php
|
||||
require_once(dirname(__FILE__).'/../ui_handler_init.php');
|
||||
require_once("../Input.php");
|
||||
|
||||
if (get_magic_quotes_gpc()) {
|
||||
$_REQUEST = Input::CleanMagicQuotes($_REQUEST);
|
||||
}
|
||||
|
||||
if ($feed = $uiHandler->TWITTER->getFeed()) {
|
||||
if ($uiHandler->TWITTER->needsUpdate()) {
|
||||
print "Prepare for update...\n";
|
||||
if ($res = $uiHandler->TWITTER->sendFeed($feed)) {
|
||||
print "Feed id {$res->id}\n $feed";
|
||||
} else {
|
||||
print "Update failed, check auth data.";
|
||||
}
|
||||
} else {
|
||||
print "Update interval not reached.";
|
||||
}
|
||||
} else {
|
||||
print "No playlist found.";
|
||||
}
|
|
@ -0,0 +1,37 @@
|
|||
<?php
|
||||
require_once(dirname(__FILE__).'/../ui_conf.php');
|
||||
require_once(dirname(__FILE__).'/../ui_handler.class.php');
|
||||
|
||||
$uiHandler = new uiHandler($CC_CONFIG);
|
||||
$uiHandler->init();
|
||||
|
||||
if (is_array($argv)) {
|
||||
define('CRON_DEBUG', array_search('debug', $argv));
|
||||
} else {
|
||||
define('CRON_DEBUG', true);
|
||||
print '<pre>';
|
||||
}
|
||||
|
||||
$uiHandler->sessid = $_COOKIE[$CC_CONFIG['authCookieName']] = Alib::Login('scheduler', 'change_me');
|
||||
|
||||
if (!$uiHandler->sessid) {
|
||||
print "Alib::Login failed\n";
|
||||
exit(1);
|
||||
}
|
||||
|
||||
|
||||
if ($uiHandler->TWITTER->needsUpdate()) {
|
||||
if ($feed = $uiHandler->TWITTER->getFeed()) {
|
||||
if (CRON_DEBUG) print "Prepare for update...\n";
|
||||
if ($res = $uiHandler->TWITTER->sendFeed($feed)) {
|
||||
if (CRON_DEBUG) print "Post with feed id: {$res->id}\nContent: $feed";
|
||||
} else {
|
||||
print "Update failed, check auth data.\n";
|
||||
exit(1);
|
||||
}
|
||||
} else {
|
||||
if (CRON_DEBUG) print "No playlist found at offset time.\n";
|
||||
}
|
||||
} else {
|
||||
if (CRON_DEBUG) print "Update interval not reached.\n";
|
||||
}
|
|
@ -0,0 +1,36 @@
|
|||
<?php
|
||||
// Do not allow remote execution
|
||||
$arr = array_diff_assoc($_SERVER, $_ENV);
|
||||
if (isset($arr["DOCUMENT_ROOT"]) && ($arr["DOCUMENT_ROOT"] != "") ) {
|
||||
header("HTTP/1.1 400");
|
||||
header("Content-type: text/plain; charset=UTF-8");
|
||||
echo "400 Not executable\r\n";
|
||||
exit(1);
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------
|
||||
// Install twitter Cron job
|
||||
//------------------------------------------------------------------------
|
||||
require_once(dirname(__FILE__).'/../../../storageServer/var/cron/Cron.php');
|
||||
$command = '/usr/bin/php '.realpath(dirname(__FILE__).'/../html/ui_twitterCron.php');
|
||||
|
||||
$cron = new Cron();
|
||||
$access = $cron->openCrontab('write');
|
||||
if ($access != 'write') {
|
||||
do {
|
||||
$r = $cron->forceWriteable();
|
||||
} while ($r);
|
||||
}
|
||||
|
||||
foreach ($cron->ct->getByType(CRON_CMD) as $line) {
|
||||
if (preg_match('/ui_twitterCron\.php/', $line['command'])) {
|
||||
$cron->closeCrontab();
|
||||
echo " * Twitter cron job already exists.\n";
|
||||
exit;
|
||||
}
|
||||
}
|
||||
echo " * Adding twitter cron job...";
|
||||
$cron->ct->addCron('*', '*', '*', '*', '*', $command);
|
||||
$cron->closeCrontab();
|
||||
echo "Done\n";
|
||||
?>
|
|
@ -259,7 +259,7 @@ class twitter{
|
|||
if($this->username !== false && $this->password !== false)
|
||||
curl_setopt($ch, CURLOPT_USERPWD, $this->username.':'.$this->password);
|
||||
|
||||
curl_setopt($ch, CURLOPT_VERBOSE, 1);
|
||||
curl_setopt($ch, CURLOPT_VERBOSE, 0);
|
||||
curl_setopt($ch, CURLOPT_NOBODY, 0);
|
||||
curl_setopt($ch, CURLOPT_HEADER, 0);
|
||||
curl_setopt($ch, CURLOPT_USERAGENT, $this->user_agent);
|
||||
|
|
|
@ -114,7 +114,7 @@ define('UI_PL_ELEM_FADEOUT', 'fadeOut');
|
|||
define('UI_BACKUPTOKEN_KEY', 'backupToken');
|
||||
define('UI_RESTORETOKEN_KEY', 'restoreToken');
|
||||
|
||||
require_once('../../../storageServer/var/conf.php');
|
||||
require_once(dirname(__FILE__).'/../../storageServer/var/conf.php');
|
||||
define('UI_VERSION', CAMPCASTER_VERSION);
|
||||
define('UI_VERSION_FULLNAME', 'Campcaster '.UI_VERSION);
|
||||
define('UI_COPYRIGHT_DATE', CAMPCASTER_COPYRIGHT_DATE);
|
||||
|
@ -151,7 +151,7 @@ $CC_CONFIG = array_merge($CC_CONFIG,
|
|||
);
|
||||
|
||||
require_once(dirname(__FILE__).'/ui_base.inc.php');
|
||||
require_once('../../../storageServer/var/GreenBox.php');
|
||||
require_once(dirname(__FILE__).'/../../storageServer/var/GreenBox.php');
|
||||
require_once(dirname(__FILE__).'/formmask/generic.inc.php');
|
||||
|
||||
require_once('DB.php');
|
||||
|
|
|
@ -1,10 +1,20 @@
|
|||
<?php
|
||||
class uiTwitter {
|
||||
private $Base;
|
||||
|
||||
private $sesttings = array();
|
||||
|
||||
/**
|
||||
* Time in sec
|
||||
*
|
||||
* @var int
|
||||
*/
|
||||
private $runtime = 10;
|
||||
|
||||
public function __construct(&$uiBase)
|
||||
{
|
||||
$this->Base =& $uiBase;
|
||||
$this->loadSettings();
|
||||
}
|
||||
|
||||
private static function getSettingFormMask()
|
||||
|
@ -156,40 +166,30 @@ class uiTwitter {
|
|||
return $formmask;
|
||||
}
|
||||
|
||||
private function getSettings()
|
||||
private function loadSettings()
|
||||
{
|
||||
static $settings;
|
||||
|
||||
if (is_array($settings)) {
|
||||
return $settings;
|
||||
}
|
||||
|
||||
$settings = array();
|
||||
$mask = uiTwitter::getSettingFormMask();
|
||||
|
||||
foreach($mask as $key => $val) {
|
||||
if (isset($val['isPref']) && $val['isPref'] && !$val['hiddenPref']) {
|
||||
if (isset($val['isPref']) && $val['isPref']) {
|
||||
$element = isset($val['element']) ? $val['element'] : null;
|
||||
$p = $this->Base->gb->loadGroupPref($this->Base->sessid, 'StationPrefs', $element);
|
||||
if (is_string($p)) {
|
||||
$settings[$element] = $p;
|
||||
$this->settings[$element] = $p;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return $settings;
|
||||
}
|
||||
|
||||
public function getSettingsForm()
|
||||
{
|
||||
$mask = uiTwitter::getSettingFormMask();
|
||||
$form = new HTML_QuickForm('twitter', UI_STANDARD_FORM_METHOD, UI_HANDLER);#
|
||||
$settings = $this->getSettings();
|
||||
|
||||
foreach($mask as $key => $val) {
|
||||
if (isset($val['isPref']) && $val['isPref']) {
|
||||
if (isset($val['isPref']) && $val['isPref'] && !$val['hiddenPref']) {
|
||||
$element = isset($val['element']) ? $val['element'] : null;
|
||||
$p = $settings[$element];
|
||||
$p = $this->settings[$element];
|
||||
if (is_string($p)) {
|
||||
$mask[$key]['default'] = $p;
|
||||
}
|
||||
|
@ -219,7 +219,7 @@ class uiTwitter {
|
|||
$result = $this->Base->gb->saveGroupPref($this->Base->sessid, 'StationPrefs', $val['element'], $formdata[$val['element']]);
|
||||
if (PEAR::isError($result))
|
||||
$this->_retMsg('Error while saving twitter settings.');
|
||||
} else {
|
||||
} elseif (!$val['hiddenPref']) {
|
||||
$this->Base->gb->delGroupPref($this->Base->sessid, 'StationPrefs', $val['element']);
|
||||
}
|
||||
}
|
||||
|
@ -229,9 +229,7 @@ class uiTwitter {
|
|||
}
|
||||
|
||||
public function getFeed($p_useSampledata = false)
|
||||
{
|
||||
$settings = $this->getSettings();
|
||||
|
||||
{
|
||||
if ($p_useSampledata) {
|
||||
$whatsplaying = array(
|
||||
"tracktitle" => "Gimme Shelter",
|
||||
|
@ -239,7 +237,7 @@ class uiTwitter {
|
|||
"playlisttitle" => "The Blues Hour"
|
||||
);
|
||||
} else {
|
||||
$whatsplaying = $this->getWhatsplaying($settings['twitter-offset']);
|
||||
$whatsplaying = $this->getWhatsplaying($this->settings['twitter-offset']);
|
||||
}
|
||||
|
||||
if (!$whatsplaying) {
|
||||
|
@ -249,26 +247,26 @@ class uiTwitter {
|
|||
////////////////////////////////////////////////////////////////////////
|
||||
// create twitter tweet sample
|
||||
// TWEET PREFIX
|
||||
if (!empty($settings['twitter-prefix'])) {
|
||||
$tweetprefix = $settings['twitter-prefix'] . " ";
|
||||
if (!empty($this->settings['twitter-prefix'])) {
|
||||
$tweetprefix = $this->settings['twitter-prefix'] . " ";
|
||||
} else {
|
||||
$tweetprefix = "";
|
||||
}
|
||||
// TWEET SUFFIX
|
||||
if (!empty($settings['twitter-suffix'])) {
|
||||
$tweetsuffix = " " . $settings['twitter-suffix'];
|
||||
if (!empty($this->settings['twitter-suffix'])) {
|
||||
$tweetsuffix = " " . $this->settings['twitter-suffix'];
|
||||
} else {
|
||||
$tweetsuffix = "";
|
||||
}
|
||||
if (!empty($settings['twitter-url'])) {
|
||||
$tweetsuffix = $tweetsuffix . " " . self::GetTinyUrl($settings['twitter-url']);
|
||||
if (!empty($this->settings['twitter-url'])) {
|
||||
$tweetsuffix = $tweetsuffix . " " . self::GetTinyUrl($this->settings['twitter-url']);
|
||||
}
|
||||
// TWEET BODY
|
||||
$tweetbody = array();
|
||||
if ($settings['twitter-has_tracktitle']) { $tweetbody[] = $whatsplaying['tracktitle']; }
|
||||
if ($settings['twitter-has_trackartist']) { $tweetbody[] = $whatsplaying['trackartist']; }
|
||||
if ($settings['twitter-has_playlisttitle']) { $tweetbody[] = $whatsplaying['playlisttitle']; }
|
||||
if ($settings['twitter-has_stationname']) { $tweetbody[] = $this->Base->STATIONPREFS['stationName']; }
|
||||
if ($this->settings['twitter-has_tracktitle']) { $tweetbody[] = $whatsplaying['tracktitle']; }
|
||||
if ($this->settings['twitter-has_trackartist']) { $tweetbody[] = $whatsplaying['trackartist']; }
|
||||
if ($this->settings['twitter-has_playlisttitle']) { $tweetbody[] = $whatsplaying['playlisttitle']; }
|
||||
if ($this->settings['twitter-has_stationname']) { $tweetbody[] = $this->Base->STATIONPREFS['stationName']; }
|
||||
|
||||
$tweetbody = implode (". ",$tweetbody);
|
||||
|
||||
|
@ -319,23 +317,20 @@ class uiTwitter {
|
|||
|
||||
public function sendFeed($p_feed)
|
||||
{
|
||||
$settings = $this->getSettings();
|
||||
|
||||
$twitter = new twitter();
|
||||
$twitter->username = $settings['twitter-login'];
|
||||
$twitter->password = $settings['twitter-password'];
|
||||
$twitter->username = $this->settings['twitter-login'];
|
||||
$twitter->password = $this->settings['twitter-password'];
|
||||
|
||||
if ($twitter->update($p_feed)) {
|
||||
if ($res = $twitter->update($p_feed)) {
|
||||
$this->Base->gb->saveGroupPref($this->Base->sessid, 'StationPrefs', 'twitter-lastupdate', time());
|
||||
return true;
|
||||
return $res;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public function needsUpdate()
|
||||
{
|
||||
$settings = $this->getSettings();
|
||||
if (time() - $this->Base->gb->loadGroupPref($this->Base->sessid, 'StationPrefs', 'twitter-lastupdate') > $settings['twitter-interval']) {
|
||||
if (time() - $this->Base->gb->loadGroupPref($this->Base->sessid, 'StationPrefs', 'twitter-lastupdate') + $this->runtime > $this->settings['twitter-interval']) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
|
|
Loading…
Reference in New Issue