public function newsSentiment()
 {
     $feeds = Input::get('feeds', array());
     $minOffset = Input::get('minOffset', 0);
     $agg = json_decode(Input::get('agg', '["hour", "day", "month"]'));
     $db = DB::connection('rss');
     $feeds = DB::connection('rss')->select('SELECT * FROM feeds');
     $stories = DB::connection('rss')->select('SELECT * FROM stories order by date desc');
     $aFeeds = array();
     foreach ($feeds as $feed) {
         $feed->stories = array();
         $aFeeds[$feed->id] = $feed;
     }
     foreach ($stories as $story) {
         $date = date_create_from_format('Y-m-d_H-i-s', $story->date);
         $aFeeds[$story->feeds_id]->stories[] = array('id' => (int) $story->id, 'title' => $story->title, 'date' => $date->sub(new DateInterval('PT8H')), 'sentiment' => (int) $story->sentiment);
     }
     $now = new Datetime();
     $now->setTimezone(new DateTimeZone('America/Los_Angeles'));
     //        $now_year = $now->format('Y');
     //        $now_month = $now->format('m');
     //        $now_day = $now->format('d');
     //
     //
     //        $hourlist = array();
     //        $daylist=array();
     //        $monthlist = array();
     //        for($h=0;$h<24;$h++){
     //            $hourlist[] = array(
     //                'x' => $h,
     //                'y' => 0
     //            );
     //        }
     //        for($d=0;$d<date('t');$d++){
     //            $daylist[$d] = array(
     //                'x' => $d,
     //                'y' => 0
     //            );
     //        }
     //        for($m=0;$m<12;$m++){
     //            $monthlist[$m] = array(
     //                'x' => $m,
     //                'y' => 0
     //            );
     //        }
     $unixlist = array();
     $aSentimentTime = array();
     foreach ($aFeeds as $feed) {
         foreach ($feed->stories as $story) {
             $aSentimentTime[] = array('x' => $story['date']->getTimestamp(), 'y' => $story['sentiment']);
         }
     }
     usort($aSentimentTime, function ($a, $b) {
         return $a['x'] > $b['x'];
     });
     $timeset = $this->_aggSentiment($aSentimentTime, 3600 * 3, 'Y-m-d-H-i-s');
     echo json_encode(array('ulist' => $timeset));
 }
Exemple #2
0
          <?php 
ini_set('display_errors', 1);
require_once 'TwitterAPIExchange.php';
/** Set access tokens here - see: https://dev.twitter.com/apps/ **/
$settings = array('oauth_access_token' => "998032536-YHb8IcLPlQbigJgRoP8VowBLADwH9RgBZZZ6mY0J", 'oauth_access_token_secret' => "SW6g2sKE4HPOhQg9WSLySXrnVxNo9xDxwI6CsSij4uGKh", 'consumer_key' => "i6qskwGhaXjVHC51u2MYO7b9P", 'consumer_secret' => "Oqna2t4eB5oelVKZaay8crIEsPxTnNllVROAy8zqAglNmY2QIZ");
/** Perform a GET request and echo the response **/
/** Note: Set the GET field BEFORE calling buildOauth(); **/
$url = 'https://api.twitter.com/1.1/search/tweets.json';
$getfield = '?q=#parisattacks&count=50';
$requestMethod = 'GET';
$twitter = new TwitterAPIExchange($settings);
$api_response = $twitter->setGetfield($getfield)->buildOauth($url, $requestMethod)->performRequest();
$tweetData = json_decode($api_response);
foreach ($tweetData->statuses as $tweet) {
    $date = new Datetime($tweet->created_at);
    $date->setTimezone(new DateTimeZone('America/New_York'));
    echo "<div class='twitteruserphoto'><a href='http://twitter.com/{$tweet->user->screen_name}' target='_blank'><img src='{$tweet->user->profile_image_url}'></a></div>";
    echo "<div class='twittername'><a href='http://twitter.com/{$tweet->user->screen_name}' target='_blank'>{$tweet->user->name}</a></div>";
    echo "<div class='twitteruser'><a href='http://twitter.com/{$tweet->user->screen_name}' target='_blank'>@{$tweet->user->screen_name}</a></div>";
    echo "<div class='twittertext'>{$tweet->text}</div>";
    echo "<div class='twittertime'><a href='http://twitter.com/{$tweet->user->screen_name}/status/{$tweet->id_str}' target='_blank'>{$date->format('M jS g:i:s a ')}</a></div>";
    echo "<div class='twitterphoto'><a href='{$tweet->entities->media[0]->media_url}' target='_blank'><img src='{$tweet->entities->media[0]->media_url}' style='max-width:100%'></a></div>";
    echo "<div class='twitterline' style='width:100% height:1px'></div>";
    echo "<script>pageComplete();</script>";
}
?>

<!-- javacript -->
<script src="http://code.jquery.com/jquery-latest.min.js"></script>
<script src="js/bootstrap.min.js"></script>
<!-- <script src="js/smoothstate.js"></script>
Exemple #3
0
 /**
  * Updates this Calendar2 object with data from the given VEVENT
  *
  * The returned object must be save()d before it is persistent.
  * This also means that additional changes can be made before any database calls are made.
  *
  * @param Sabre_VObject_Component $vevent The vevent component
  *
  * @throws Exception If the provided component is not a vevent
  *
  * @return void
  */
 public function fromVObject(Sabre_VObject_Component $vevent)
 {
     if (strtolower($vevent->name) !== 'vevent') {
         throw new Exception("Invalid type of vobject_component passed to Calendar2_Models_Calendar2::fromVobject ({$vevent->name})");
     }
     // Workarounds for missing features. We currently don't support locale-time (we just assume it's the user's
     // usual timzeone) or date values without time (we just assume 0800 - 2000 there).
     if (!is_null($vevent->dtstart['VALUE']) && $vevent->dtstart['VALUE']->value === 'DATE') {
         // No T means it's only a date. iCalendar dicates that dtend must be a date, too.
         $vevent->dtstart->value .= 'T080000';
         unset($vevent->dtstart['VALUE']);
         // Caldav end dates are not inclusive
         $end = new Datetime($vevent->dtend->value);
         $end->sub(new DateInterval('P1D'));
         $vevent->dtend->value = $end->format('Ymd') . 'T200000';
         unset($vevent->dtend['VALUE']);
     }
     $utc = new DateTimezone('UTC');
     $timezone = null;
     if ('Z' === substr($vevent->dtstart->value, -1)) {
         $timezone = $utc;
     } else {
         if (!is_null($vevent->dtstart['tzid'])) {
             $timezone = new DateTimeZone($vevent->dtstart['tzid']->value);
         } else {
             $timezone = Phprojekt_User_User::getUserDateTimeZone();
         }
     }
     // 0-1
     // handled:
     //  last-mod, description, dtstart, location, summary, uid
     // not handled
     //  class, created, geo, organizer, priority, dtstamp, seq, status, transp, url, recurid
     //
     // none or one of these two
     //  dtend, duration (only assumes dtend case for now)
     //
     // 0 - n
     // TODO: Check how we can handle these. Maybe just concat them?
     // handling: (only one is handled atm, though)
     //  comment, rrule
     // not handling:
     //  attach, attendee, categories, contact, exdate, exrule, rstatus, related, resources, rdate, x-prop
     $mappable = array(array('veventkey' => 'SUMMARY', 'ourkey' => 'summary', 'default' => '_'), array('veventkey' => 'LOCATION', 'ourkey' => 'location', 'default' => ''), array('veventkey' => 'DESCRIPTION', 'ourkey' => 'description', 'default' => ''), array('veventkey' => 'COMMENT', 'ourkey' => 'comments'), array('veventkey' => 'UID', 'ourkey' => 'uid'), array('veventkey' => 'LAST-MODIFIED', 'ourkey' => 'lastModified'), array('veventkey' => 'RRULE', 'ourkey' => 'rrule', 'default' => ''));
     foreach ($mappable as $m) {
         if (isset($vevent->{$m}['veventkey'])) {
             $this->{$m}['ourkey'] = $vevent->{$m}['veventkey'];
         } else {
             if (array_key_exists('default', $m)) {
                 $this->{$m}['ourkey'] = $m['default'];
             }
         }
     }
     $start = new Datetime($vevent->dtstart->value, $timezone);
     $start->setTimezone($utc);
     $this->start = Phprojekt_Converter_Time::utcToUser($start->format('Y-m-d H:i:s'));
     if ($vevent->dtend) {
         $end = new Datetime($vevent->dtend->value, $timezone);
     } else {
         if ($vevent->duration) {
             $duration = new DateInterval($vevent->duration->value);
             $end = clone $start;
             $end->add($duration);
         }
     }
     $end->setTimezone($utc);
     $this->end = Phprojekt_Converter_Time::utcToUser($end->format('Y-m-d H:i:s'));
 }
 public function postProcess()
 {
     global $currentIndex, $cookie, $smarty;
     $id_employee = (int) $cookie->id_employee;
     $db = Db::getInstance();
     $smarty->assign("preview", 'false');
     $this->mailer_confirm = false;
     $this->c_name = Tools::getValue('campaign_name');
     $this->utm_s = Tools::getValue('utm_source');
     $this->utm_m = Tools::getValue('utm_medium');
     $this->utm_c = Tools::getValue('utm_campaign');
     $this->b_url = Tools::getValue('banner_url');
     $this->pid_l = Tools::getValue('pid_large');
     $this->pid = Tools::getValue('pid');
     if (empty($this->pid_l)) {
         $this->pid_l = 0;
     }
     $this->template = Tools::getValue('template');
     $this->subject = Tools::getValue('subject');
     $this->a_link = Tools::getValue('action_link');
     $this->id_campaign = intval(Tools::getValue('id_campaign', 0));
     $this->write_up = Tools::getValue('write_up');
     $b_id = uniqid();
     $hasImage = true;
     if (isset($_FILES) && isset($_FILES['banner_image'])) {
         $dir = 'mails/';
         $ub_image_name = "banner_image";
         $ub_image_ext = substr($_FILES['banner_image']['type'], strpos($_FILES['banner_image']['type'], "/") + 1);
         $res = Tools::uploadImage($b_id, $ub_image_name, $dir, $ub_image_ext);
         if (!$res) {
             if ($this->id_campaign === 0) {
                 $this->b_image = '';
             } else {
                 $res = $db->ExecuteS("select banner_image from ps_mailers where id_campaign = {$this->id_campaign}");
                 //echo "<pre>"; print_r( $res ); exit;
                 $this->b_image = $res[0]['banner_image'];
                 if (empty($this->b_image)) {
                     $hasImage = false;
                 }
             }
         } else {
             $iname = $_FILES[$ub_image_name]['name'];
             $this->b_image = "http://" . _MEDIA_SERVER_1_ . '/img/' . $dir . $b_id . '-' . $iname;
             $hasImage = true;
         }
     }
     if (!$hasImage) {
         $this->_errors[] = "Unable to upload banner image";
     }
     $b_id = uniqid();
     $hasImage = true;
     if (isset($_FILES) && isset($_FILES['upnext_image'])) {
         $dir = 'mails/';
         $ub_image_name = "upnext_image";
         $ub_image_ext = substr($_FILES['upnext_image']['type'], strpos($_FILES['upnext_image']['type'], "/") + 1);
         $res = Tools::uploadImage($b_id, $ub_image_name, $dir, $ub_image_ext);
         if (!$res) {
             if ($this->id_campaign === 0) {
                 $this->u_image = '';
             } else {
                 $res = $db->ExecuteS("select upnext_image from ps_mailers where id_campaign = {$this->id_campaign}");
                 //echo "<pre>"; print_r( $res ); exit;
                 $this->u_image = $res[0]['upnext_image'];
                 if (empty($this->u_image)) {
                     $hasImage = false;
                 }
             }
         } else {
             $iname = $_FILES[$ub_image_name]['name'];
             $this->u_image = "http://" . _MEDIA_SERVER_1_ . '/img/' . $dir . $b_id . '-' . $iname;
             $hasImage = true;
         }
     }
     if (!$hasImage) {
         $this->_errors[] = "Unable to upload Up-Next image";
     }
     $this->assignToSmarty();
     $this->fillProductsInformation();
     if ($_POST['psubmit'] && $_POST["psubmit"] === "Preview") {
         if ($this->id_campaign === 0) {
             // new campaign
             $sql = "insert into ps_mailers(campaign_name, utm_source, utm_medium, utm_campaign,\n                    banner_image,upnext_image, write_up, banner_link, pid_l, pids,id_employee, template,action_link,subject) values (" . "'" . pSQL($this->c_name) . "'," . "'" . pSQL($this->utm_s) . "'," . "'" . pSQL($this->utm_m) . "'," . "'" . pSQL($this->utm_c) . "'," . "'" . pSQL($this->b_image) . "'," . "'" . pSQL($this->u_image) . "'," . "'" . pSQL($this->write_up) . "'," . "'" . pSQL($this->b_url) . "'," . "" . $this->pid_l . "," . "'" . pSQL(implode($this->pid, ",")) . "'," . "" . $id_employee . "," . "'" . pSQL($this->template) . "'," . "'" . pSQL($this->a_link) . "'," . "'" . pSQL($this->subject) . "'" . ")";
             $db->Execute($sql);
             $this->id_campaign = $db->Insert_ID();
         } else {
             // edit or preview old campaign
             $sql = "update ps_mailers set \n                            campaign_name = '" . pSQL($this->c_name) . "',\n                            utm_source = '" . pSQL($this->utm_s) . "',\n                            utm_medium = '" . pSQL($this->utm_m) . "',\n                            utm_campaign = '" . pSQL($this->utm_c) . "',\n                            banner_image = '" . pSQL($this->b_image) . "',\n                            upnext_image = '" . pSQL($this->u_image) . "',\n                            write_up = '" . pSQL($this->write_up) . "',\n                            banner_link = '" . pSQL($this->b_url) . "',\n                            pid_l = {$this->pid_l},\n                            pids = '" . pSQL(implode($this->pid, ",")) . "',\n                            template = '" . pSQL($this->template) . "',\n                            action_link = '" . pSQL($this->a_link) . "',\n                            subject = '" . pSQL($this->subject) . "'\n                        where id_campaign = {$this->id_campaign}";
             $db->Execute($sql);
         }
         $previewMail = $smarty->fetch(_PS_THEME_DIR_ . $this->template);
         $previewMailTxt = $smarty->fetch(_PS_THEME_DIR_ . 'text_' . $this->template);
         $smarty->assign("previewMailTxt", $previewMailTxt);
         $smarty->assign("previewMail", $previewMail);
         $smarty->assign("id_campaign", $this->id_campaign);
         $smarty->assign("preview", 'true');
     } else {
         if ($_POST['tmsubmit'] && $_POST["tmsubmit"] === "Test Mail") {
             $previewMail = $smarty->fetch(_PS_THEME_DIR_ . $this->template);
             $previewMailTxt = $smarty->fetch(_PS_THEME_DIR_ . 'text_' . $this->template);
             $smarty->assign("previewMailTxt", $previewMailTxt);
             $smarty->assign("previewMail", $previewMail);
             $testmail = Tools::getValue('testmail');
             if (empty($this->id_campaign) || empty($testmail)) {
                 $this->_errors[] = "Unable to send test mail. Please check again";
             } else {
                 $templateVars = array();
                 $templateVars['{mail_content}'] = $previewMail;
                 $templateVars['{mail_content_text}'] = $previewMailTxt;
                 @Mail::Send(1, 'mailer_campaign', $this->subject, $templateVars, $testmail, null, '*****@*****.**', 'Indusdiva.com', NULL, NULL, _PS_MAIL_DIR_, false);
                 $this->_errors[] = "Mail Sent to {$testmail}";
             }
             $smarty->assign("id_campaign", $this->id_campaign);
             $smarty->assign("preview", 'true');
         } else {
             if ($_POST['ssubmit'] && $_POST["ssubmit"] === "Submit") {
                 $previewMail = $smarty->fetch(_PS_THEME_DIR_ . $this->template);
                 $previewMailTxt = $smarty->fetch(_PS_THEME_DIR_ . 'text_' . $this->template);
                 $smarty->assign("previewMailTxt", $previewMailTxt);
                 $smarty->assign("previewMail", $previewMail);
                 $smarty->assign("preview", 'true');
                 if ($this->id_campaign === 0) {
                     $this->_errors[] = "Unable to schedule mailer.";
                     $smarty->assign("id_campaign", $this->id_campaign);
                 } else {
                     $scheduled_at = Tools::getValue("scheduled_at");
                     //convert from local time to UTC
                     $scheduled_at_gmt = new Datetime($scheduled_at);
                     $scheduled_at_gmt->setTimezone(new DateTimeZone('GMT'));
                     $scheduled_at_gmt = $scheduled_at_gmt->format('Y-m-d H:i:s');
                     $sql = "update ps_mailers set status=1,scheduled_time = '{$scheduled_at_gmt}' where id_campaign = " . $this->id_campaign;
                     $db->Execute($sql);
                     $this->_errors[] = "Mail scheduled at {$scheduled_at}";
                     $smarty->assign("id_campaign", $this->id_campaign);
                     $this->mailer_confirm = true;
                 }
             }
         }
     }
     $smarty->assign('currentIndex', $currentIndex);
     $smarty->assign('token', $this->token);
 }
 /**
  * DateTimeHelper::getDatetime() from SonataIntlBundle
  *
  * @param \Datetime|\DateTimeImmutable|string|integer $data
  * @param \DateTimeZone timezone
  * @return \Datetime
  */
 protected function getDatetime($data, \DateTimeZone $timezone)
 {
     if ($data instanceof \DateTime || $data instanceof \DateTimeImmutable) {
         return $data->setTimezone($timezone);
     }
     // the format method accept array or integer
     if (is_numeric($data)) {
         $data = (int) $data;
     }
     if (is_string($data)) {
         $data = strtotime($data);
     }
     // MongoDB Date and Timestamp
     if ($data instanceof \MongoDate || $data instanceof \MongoTimestamp) {
         $data = $data->sec;
     }
     // Mongodb bug ? timestamp value is on the key 'i' instead of the key 't'
     if (is_array($data) && array_keys($data) == array('t', 'i')) {
         $data = $data['i'];
     }
     $date = new \DateTime();
     $date->setTimestamp($data);
     $date->setTimezone($timezone);
     return $date;
 }
 private function applyICalendarTimes($start, $end, $timezoneID = null)
 {
     $utc = new DateTimezone('UTC');
     $timezone = null;
     $userTimeZone = Phprojekt_User_User::getUserDateTimeZone();
     if ('Z' === substr($start, -1)) {
         $timezone = $utc;
     } else {
         if (!is_null($timezoneID)) {
             $timezone = new DateTimeZone($timezoneID);
         } else {
             $timezone = $userTimeZone;
         }
     }
     // We can't use ->setTimezone with the timezones returned by getUserDateTimeZone, as these are non-standard
     // timezones. Unless we start storing correct timezones, we can't directly set the user timezone, so we go to
     // UTC and convert to usertime from there. Because utcToUser returns a unix timestamp, but ActiveRecords expects
     // a "Y-m-d H:i:s" timestamp, we have to go through Datetime again.
     $start = new Datetime($start, $timezone);
     $start->setTimezone($utc);
     $startTs = Phprojekt_Converter_Time::utcToUser($start->format('Y-m-d H:i:s'));
     $start = new Datetime('@' . $startTs);
     $end = new Datetime($end, $timezone);
     $end->setTimezone($utc);
     $endTs = Phprojekt_Converter_Time::utcToUser($end->format('Y-m-d H:i:s'));
     $end = new Datetime('@' . $endTs);
     if ($start->diff($end)->invert) {
         throw new Sabre_DAV_Exception_BadRequest('Start must be before End');
     }
     $this->_timecard->startDatetime = $start->format('Y-m-d H:i:s');
     if ($start->format('z') == $end->format('z')) {
         // Same day
         $this->_timecard->endTime = $end->format('H:i:s');
     } else {
         $this->_timecard->endTime = '23:59:00';
     }
 }
Exemple #7
0
function getTimeZoneTime($timeZone, $time = '')
{
    $current_time = new Datetime($time);
    $ny_time = new DateTimeZone($timeZone);
    $current_time->setTimezone($ny_time);
    $current_time = new DateTime($current_time->format("Y-m-d H:i:s"));
    return $current_time;
}
Exemple #8
0
 /**
  * Retrieves all events from an dateperiod that lie between two points in time.
  *
  * This takes event duration in account.
  */
 private function _periodToArray(DatePeriod $period, $startTs, $endTs)
 {
     $ret = array();
     foreach ($period as $date) {
         // Work around http://bugs.php.net/bug.php?id=52454
         // 'Relative dates and getTimestamp increments by one day'
         $datestring = $date->format('Y-m-d H:i:s');
         $date = new Datetime($datestring, new DateTimeZone('UTC'));
         $ts = $date->getTimestamp();
         if ($startTs <= $ts + $this->_duration && $ts <= $endTs && !in_array($date, $this->_exceptions)) {
             $dt = new Datetime('@' . $ts);
             $dt->setTimezone(new DateTimeZone('utc'));
             $ret[] = $dt;
         } else {
             if ($ts > $endTs) {
                 break;
             }
         }
     }
     return $ret;
 }
Exemple #9
0
 public function getRandomBirthday()
 {
     $min_unix_date_obj = new DateTime("1900-01-01 00:00:00");
     $min_unix_date_obj->setTimezone(new DateTimeZone("PRC"));
     $min_unix_date = $min_unix_date_obj->format("U");
     $max_unix_date = time();
     $random_date_unix = mt_rand($min_unix_date, $max_unix_date);
     $random_date_obj = new Datetime("@{$random_date_unix}");
     $random_date_obj->setTimezone(new DateTimeZone("PRC"));
     $random_date = $random_date_obj->format("Ymd");
     return $random_date;
 }