<?php
require_once 'Zend/Loader/Autoloader.php';
Zend_Loader_Autoloader::getInstance();
$last_querry = "SELECT * FROM if_moon WHERE id=1";
$fetch = mysql_query($last_querry, $this->dbconn);
if (mysql_num_rows($fetch) > 0) {
$row = mysql_fetch_assoc($fetch);
$last_tweet_update = strtotime($row['tweetUpdate']);
$last_balken_update = $row['balken'];
$last_tweet_shown = $row['tweetNr'];
$last_tweet_rotate = strtotime($row['tweetRotate']);
//*************************************** Mondphasen-Berechnung "tagesgenau" +- 7Stunden *********************************************************
//credits: http://www.die-seite.eu/wm-mondphasen.php
$ursprung = mktime(18,31,18,12,22,1999);
$akt_date = time();
define('ZYCLUS', floor(29.530588861 * 86400));
$mondphase = round(((($akt_date - $ursprung) / ZYCLUS) - floor(($akt_date - $ursprung) / ZYCLUS)) * 100, 0);
$mondphasen_img = round(($mondphase /50),1) *50;
if ($mondphasen_img == 100) $mondphasen_img = 0;
$mondphasen_balken = $mondphase;
if ($mondphase <= 1 || $mondphase >= 99 ) {
$phase_text = 'Vollmond';
}elseif ($mondphase > 1 && $mondphase < 49){
$phase_text = 'abnehmender Mond';
$mondphasen_balken = 100-($mondphasen_balken*2);
if ($mondphasen_balken <= 50) $mondphasen_balken = $mondphasen_balken/2;
}elseif ($mondphase >= 49 && $mondphase <= 51){
$phase_text = 'Neumond';
}else {
$phase_text = 'zunehmender Mond';
$mondphasen_balken = ($mondphasen_balken -50) *2;
}
if ($mondphase <= 8) {
$textversatz = ($mondphase*3)+5;
} else {
$textversatz = ($mondphase*3)-20;
}
//************************************** Mondkalender tweet *****************************************
// update tweet
$config = parse_ini_file("Absoluter/Pfad/zur//infoframe/config.ini", true);
$sysconfig = $config['System'];
if (strtotime('today 0:00:01') < strtotime('now') and strtotime('now') < strtotime('today 10:05')){
$next_tweet_update = strtotime('yesterday 10:05');
}else {
$next_tweet_update = strtotime('today 10:05');
}
if ($next_tweet_update >= ($last_tweet_update+(24*3600))) {
$accessToken = new Zend_Oauth_Token_Access();
$accessToken->setToken($sysconfig['service.twitter.oauth.oauth_token']);
$accessToken->setTokenSecret($sysconfig['service.twitter.oauth.oauth_token_secret']);
$twitter = new Zend_Service_Twitter(
array('username' => 'USERNAME',
'accessToken' => $accessToken,
'oauthOptions' => array(
'consumerKey' => $sysconfig['service.twitter.consumerKey'],
'consumerSecret' => $sysconfig['service.twitter.consumerKey_secret']
)
)
);
$options = array('screen_name' => 'mondkalender',
'count' => '3',
'trim_user' => '1'
);
$results = $twitter->statusesUserTimeline($options);
$i=2;
foreach ($results->toValue() as $result) {
if ( strtotime($result->created_at) >= strtotime('today 00:01') ) {
$query = "UPDATE if_moon SET tweetText='".mysql_real_escape_string($result->text)."' WHERE id=$i";
$update = mysql_query($query, $this->dbconn);
}
$i++;
}
}else{
$next_tweet_update = $last_tweet_update;
}
// open tweet
if ( ($last_tweet_rotate+3600) <= $akt_date ) {
$last_tweet_shown = $last_tweet_shown + 1;
$last_tweet_rotate = $akt_date;
}
if ($last_tweet_shown == 5) $last_tweet_shown = 2;
$result = mysql_query("SELECT tweetText, id FROM if_moon WHERE id='$last_tweet_shown'");
$row = mysql_fetch_assoc($result);
$text = $row['tweetText'];
if (!empty($text) ) {
$text = str_replace("\n", "", $text);
// dirty trick for replacing inch-symbol \xE2\x80\xB3 by nomal " (because not supported by imagettftext)
$text = str_replace("\xE2\x80\xB3", "\"", $text);
$pattern = array('/^(mondkalender:)?.*?(\d{1,2}\.\d{1,2}\.\d{4})?.*?(.*?[M|m]ond,)?(.*?\d{1,2}\:\d{2} MEZ,)?/', '/,?$/');
$replace = '';
$tweet = preg_replace($pattern, $replace, $text);
} else{
$last_tweet_shown = 2;
$last_tweet_rotate = $last_tweet_rotate - 3600;
}
//************************************************ balken *************************************
if ($mondphasen_balken != $last_balken_update){
$last_balken_update = $mondphasen_balken;
// create Image from Content
header("Content-Type: image/png");
$width = 300;
$height = 8;
$img = ImageCreate($width, $height);
$balken = ImageColorAllocate($img, 075, 075, 075);
$background = ImageColorAllocate ($img, 140, 140, 140);
$black = ImageColorAllocate($img, 0, 0, 0);
$white = ImageColorAllocate($img, 255, 255, 255);
ImageFill($img, 0, 0, $background);
ImageFilledRectangle($img, 0, 0, $mondphase*3, 8, $balken);
ImageString($img, 1, $textversatz, 0, $mondphasen_balken."%", $white);
ImagePNG($img, 'resources/icons/balken.png');
ImageDestroy($img);
}
mysql_query("REPLACE INTO if_moon SET id=1, tweetUpdate = FROM_UNIXTIME('$next_tweet_update'), balken = '$last_balken_update', tweetNr = '$last_tweet_shown', tweetRotate = FROM_UNIXTIME('$last_tweet_rotate')") or die ('MoonPlugin, replace'.mysql_error());
} else {
mysql_query("INSERT INTO if_moon SET id=1, tweetUpdate = FROM_UNIXTIME('NOW()'), balken = 1, tweetNr = 1, tweetRotate = FROM_UNIXTIME('NOW()')") or die ('Moonplugin INSERT'.mysql_error());
exit('Konnte Datenbank nicht oeffnen.');
}