public function generateInsight(Instance $instance, User $user, $last_weeks_posts, $number_days) { parent::generateInsight($instance, $user, $last_week_of_posts, $number_days); $this->logger->logInfo("Begin generating insight", __METHOD__ . ',' . __LINE__); $filename = basename(__FILE__, ".php"); $insight_text = ''; $video_dao = DAOFactory::getDAO('VideoDAO'); // Get the users subscriber count for comparing with later $subscriber_count = $user->follower_count; foreach ($last_weeks_posts as $post) { if ($post->network == 'youtube') { $video = $video_dao->getVideoByID($post->post_id, 'youtube'); $simplified_post_date = date('Y-m-d', strtotime($video->pub_date)); } else { break; } $gain_or_loss = $video->subscribers_gained - $video->subscribers_lost; // if we lost subscribers then we will be doing subscriber_count minus a negative number, so adding $total_before_video = $subscriber_count - $gain_or_loss; $percent_change = round(abs($gain_or_loss) / $total_before_video * 100, 2); $verb = $gain_or_loss < 0 ? ' decreased' : ' increased'; $headline = $video->post_text . $verb . " " . $instance->network_username . "'s "; $headline .= "subscriber count by <strong>" . $percent_change . "%</strong>."; $insight_text = "<a href=http://plus.google.com/{$instance->network_user_id}>{$instance->network_username}</a>'s "; $insight_text .= "video <a href=http://www.youtube.com/watch?v={$video->post_id}>{$video->post_text}</a> "; $insight_text .= "left an impression on {$gain_or_loss} subscribers."; $subscriber_count = intval($subscriber_count); $total_before_video = intval($total_before_video); $rows = $video_dao->getNetSubscriberChange($instance->network_username, 'youtube', 10); $chart = VideoMySQLDAO::getHotVideosVisualizationData($rows, 'Subscriber Change'); if ($percent_change >= 50) { $this->insight_dao->insertInsightDeprecated('subscriber_change' . $video->id, $instance->id, $simplified_post_date, $headline, $insight_text, $filename, Insight::EMPHASIS_HIGH, serialize(array($chart, $video))); } elseif ($percent_change >= 25) { $this->insight_dao->insertInsightDeprecated('subscriber_change' . $video->id, $instance->id, $simplified_post_date, $headline, $insight_text, $filename, Insight::EMPHASIS_MED, serialize(array($chart, $video))); } elseif ($percent_change >= 10) { $this->insight_dao->insertInsightDeprecated('subscriber_change' . $video->id, $instance->id, $simplified_post_date, $headline, $insight_text, $filename, Insight::EMPHASIS_LOW, serialize(array($chart, $video))); } } }
public function generateInsight(Instance $instance, $last_week_of_posts, $number_days) { parent::generateInsight($instance, $last_week_of_posts, $number_days); self::generateInsightBaselines($instance, $number_days); $this->logger->logInfo("Begin generating insight", __METHOD__ . ',' . __LINE__); $insight_baseline_dao = DAOFactory::getDAO('InsightBaselineDAO'); $filename = basename(__FILE__, ".php"); $video_dao = DAOFactory::getDAO('VideoDAO'); $simplified_post_date = ""; foreach ($last_week_of_posts as $post) { if ($post->network == 'youtube') { $video = $video_dao->getVideoByID($post->post_id, 'youtube'); } else { break; } if ($video->likes > 2) { //Only show insight for more than 2 likes // First get spike/high 30/90/365 day baselines if ($simplified_post_date != date('Y-m-d', strtotime($post->pub_date))) { $simplified_post_date = date('Y-m-d', strtotime($post->pub_date)); $average_like_count_30_days = $insight_baseline_dao->getInsightBaseline('avg_like_count_last_30_days', $instance->id, $simplified_post_date); $average_like_count_90_days = $insight_baseline_dao->getInsightBaseline('avg_like_count_last_90_days', $instance->id, $simplified_post_date); $high_like_count_30_days = $insight_baseline_dao->getInsightBaseline('high_like_count_last_30_days', $instance->id, $simplified_post_date); $high_like_count_90_days = $insight_baseline_dao->getInsightBaseline('high_like_count_last_90_days', $instance->id, $simplified_post_date); $high_like_count_365_days = $insight_baseline_dao->getInsightBaseline('high_like_count_last_365_days', $instance->id, $simplified_post_date); $hot_videos_data = $video_dao->getHotVideos($instance->network_username, 'youtube', 10, 'likes', 'Likes'); $chart_data = VideoMySQLDAO::getHotVideosVisualizationData($hot_videos_data, 'Likes'); } // Next compare post like counts to baselines and store insights where there's a spike or high if (isset($high_like_count_365_days->value) && $video->likes >= $high_like_count_365_days->value) { if (isset($chart_data)) { $prefix = "New 365-day record!"; $text = "<strong>" . number_format($video->likes) . " people</strong> liked "; $text .= "<a href=http://plus.google.com/{$instance->network_user_id}>"; $text .= "{$instance->network_username}</a>'s video <a href=http://www.youtube.com/watch?v="; $text .= "{$video->post_id}>{$video->post_text}</a>."; $this->insight_dao->insertInsightDeprecated('like_high_365_day_' . $video->id, $instance->id, $simplified_post_date, $prefix, $text, $filename, Insight::EMPHASIS_HIGH, serialize(array($video, $chart_data))); $this->insight_dao->deleteInsight('like_high_90_day_' . $post->id, $instance->id, $simplified_post_date); $this->insight_dao->deleteInsight('like_high_90_day_' . $post->id, $instance->id, $simplified_post_date); $this->insight_dao->deleteInsight('like_spike_30_day_' . $post->id, $instance->id, $simplified_post_date); $this->insight_dao->deleteInsight('like_spike_30_day_' . $post->id, $instance->id, $simplified_post_date); } } elseif (isset($high_like_count_90_days->value) && $video->likes >= $high_like_count_90_days->value) { if (isset($chart_data)) { $prefix = "New 90-day record!"; $text = "<strong>" . number_format($video->likes) . " people</strong> liked "; $text .= "<a href=http://plus.google.com/{$instance->network_user_id}>"; $text .= "{$instance->network_username}</a>'s video <a href=http://www.youtube.com/watch?v="; $text .= "{$video->post_id}>{$video->post_text}</a>."; $this->insight_dao->insertInsightDeprecated('like_high_90_day_' . $video->id, $instance->id, $simplified_post_date, $prefix, $text, $filename, Insight::EMPHASIS_HIGH, serialize(array($video, $chart_data))); $this->insight_dao->deleteInsight('like_high_30_day_' . $post->id, $instance->id, $simplified_post_date); $this->insight_dao->deleteInsight('like_spike_30_day_' . $post->id, $instance->id, $simplified_post_date); } } elseif (isset($high_like_count_30_days->value) && $video->likes >= $high_like_count_30_days->value) { if (isset($chart_data)) { $prefix = "New 30-day record!"; $text = "<strong>" . number_format($video->likes) . " people</strong> liked "; $text .= "<a href=http://plus.google.com/{$instance->network_user_id}>"; $text .= "{$instance->network_username}</a>'s video <a href=http://www.youtube.com/watch?v="; $text .= "{$video->post_id}>{$video->post_text}</a>."; $this->insight_dao->insertInsightDeprecated('like_high_30_day_' . $video->id, $instance->id, $simplified_post_date, $prefix, $text, $filename, Insight::EMPHASIS_HIGH, serialize(array($video, $chart_data))); } } if (isset($average_like_count_90_days->value) && $video->likes > $average_like_count_90_days->value * 2) { if (isset($chart_data)) { $multiplier = floor($video->likes / $average_like_count_30_days->value); $multiplier = $this->terms->getMultiplierAdverb($multiplier); $prefix = "Thumbs up:"; $text = "<strong>" . number_format($video->likes) . " people</strong> liked "; $text .= "<a href=http://plus.google.com/{$instance->network_user_id}>"; $text .= "{$instance->network_username}</a>'s video <a href=http://www.youtube.com/watch?v="; $text .= "{$video->post_id}>{$video->post_text}</a>, more than <strong>" . $multiplier . "</strong> "; $text .= "the 90-day average."; $this->insight_dao->insertInsightDeprecated('like_spike_90_day_' . $post->id, $instance->id, $simplified_post_date, $prefix, $text, $filename, Insight::EMPHASIS_LOW, serialize(array($video, $chart_data))); $this->insight_dao->deleteInsight('like_spike_30_day_' . $post->id, $instance->id, $simplified_post_date); } } elseif (isset($average_like_count_30_days->value) && $video->likes > $average_like_count_30_days->value * 2) { if (isset($chart_data)) { $multiplier = floor($video->likes / $average_like_count_30_days->value); $multiplier = $this->terms->getMultiplierAdverb($multiplier); $prefix = "Thumbs up:"; $text = "<strong>" . number_format($video->likes) . " people</strong> liked "; $text .= "<a href=http://plus.google.com/{$instance->network_user_id}>"; $text .= "{$instance->network_username}</a>'s video <a href=http://www.youtube.com/watch?v="; $text .= "{$video->post_id}>{$video->post_text}</a>, more than <strong>" . $multiplier . "</strong> "; $text .= "the 30-day average."; $this->insight_dao->insertInsightDeprecated('like_spike_30_day_' . $post->id, $instance->id, $simplified_post_date, $prefix, $text, $filename, Insight::EMPHASIS_LOW, serialize(array($video, $chart_data))); } } } } $this->logger->logInfo("Done generating insight", __METHOD__ . ',' . __LINE__); }
public function generateInsight(Instance $instance, $last_week_of_posts, $number_days) { parent::generateInsight($instance, $last_week_of_posts, $number_days); $video_dao = DAOFactory::getDAO('VideoDAO'); $baseline_dao = DAOFactory::getDAO('InsightBaselineDAO'); self::generateBaselines($instance); $this->logger->logInfo("Begin generating insight", __METHOD__ . ',' . __LINE__); $filename = basename(__FILE__, ".php"); foreach ($last_week_of_posts as $post) { $simplified_post_date = date('Y-m-d', strtotime($post->pub_date)); if ($post->network == 'youtube') { $video = $video_dao->getVideoByID($post->post_id, 'youtube'); $average_mins_viewed_month = $baseline_dao->getInsightBaseline('avg_minutes_viewed_month', $instance->id, date('Y-m-d')); $average_mins_viewed_90 = $baseline_dao->getInsightBaseline('avg_minutes_viewed_90', $instance->id, date('Y-m-d')); $average_mins_viewed_all_time = $baseline_dao->getInsightBaseline('avg_minutes_viewed_all_time', $instance->id, date('Y-m-d')); $max_mins_viewed = $baseline_dao->getInsightBaseline('all_time_mins_viewed_high', $instance->id, date('Y-m-d')); $year_mins_viewed = $baseline_dao->getInsightBaseline('year_mins_viewed_high', $instance->id, date('Y-m-d')); $ninety_mins_viewed = $baseline_dao->getInsightBaseline('90_mins_viewed_high', $instance->id, date('Y-m-d')); $hot_videos = $video_dao->getHotVideos($instance->network_username, 'youtube', 10, 'minutes_watched', 'Minutes Watched'); $chart = VideoMySQLDAO::getHotVideosVisualizationData($hot_videos, 'Minutes Watched'); } else { break; } $text = "Viewers watched "; $text .= "<a href=http://plus.google.com/{$instance->network_user_id}>" . $instance->network_username . "</a>'s "; $text .= "video <a href=http://www.youtube.com/watch?v={$video->post_id}>" . $video->post_text . "</a> "; $text .= 'for a total of <strong>'; $text .= InsightTerms::getSyntacticTimeDifference($video->minutes_watched * 60) . ', '; $can_insert = false; $prefix = 'Making an impression:'; // Higher than averages if ($video->minutes_watched >= $average_mins_viewed_all_time->value * 10 && $average_mins_viewed_all_time->value != 0) { $multiplier = $this->terms->getMultiplierAdverb(round($video->minutes_watched / $average_mins_viewed_all_time->value, 2), 'multiplier'); $text .= $multiplier . "</strong> the all-time average."; $emphasis = Insight::EMPHASIS_HIGH; $can_insert = true; } elseif ($video->minutes_watched >= $average_mins_viewed_90->value * 10 && $average_mins_viewed_90->value != 0) { $multiplier = $this->terms->getMultiplierAdverb(round($video->minutes_watched / $average_mins_viewed_90->value, 2), 'multiplier'); $text .= $multiplier . "</strong> the 90-day average."; $emphasis = Insight::EMPHASIS_HIGH; $can_insert = true; } elseif ($video->minutes_watched >= $average_mins_viewed_month->value * 10 && $average_mins_viewed_month->value != 0) { $multiplier = $this->terms->getMultiplierAdverb(round($video->minutes_watched / $average_mins_viewed_month->value, 2), 'multiplier'); $text .= $multiplier . "</strong> the 30-day average."; $emphasis = Insight::EMPHASIS_HIGH; $can_insert = true; } elseif ($video->minutes_watched >= $average_mins_viewed_all_time->value * 5 && $average_mins_viewed_all_time->value != 0) { $multiplier = $this->terms->getMultiplierAdverb(round($video->minutes_watched / $average_mins_viewed_all_time->value, 2), 'multiplier'); $text .= $multiplier . "</strong> the all-time average."; $emphasis = Insight::EMPHASIS_MED; $can_insert = true; } elseif ($video->minutes_watched >= $average_mins_viewed_90->value * 5 && $average_mins_viewed_90->value != 0) { $multiplier = $this->terms->getMultiplierAdverb(round($video->minutes_watched / $average_mins_viewed_90->value, 2), 'multiplier'); $text .= $multiplier . "</strong> the 90-day average."; $emphasis = Insight::EMPHASIS_MED; $can_insert = true; } elseif ($video->minutes_watched >= $average_mins_viewed_month->value * 5 && $average_mins_viewed_month->value != 0) { $multiplier = $this->terms->getMultiplierAdverb(round($video->minutes_watched / $average_mins_viewed_month->value, 2), 'multiplier'); $text .= $multiplier . "</strong> the 30-day average."; $emphasis = Insight::EMPHASIS_MED; $can_insert = true; } elseif ($video->minutes_watched >= $average_mins_viewed_all_time->value * 2 && $average_mins_viewed_all_time->value != 0) { $multiplier = $this->terms->getMultiplierAdverb(round($video->minutes_watched / $average_mins_viewed_all_time->value, 2), 'multiplier'); $text .= $multiplier . "</strong> the all-time average."; $emphasis = Insight::EMPHASIS_LOW; $can_insert = true; } elseif ($video->minutes_watched >= $average_mins_viewed_90->value * 2 && $average_mins_viewed_90->value != 0) { $multiplier = $this->terms->getMultiplierAdverb(round($video->minutes_watched / $average_mins_viewed_90->value, 2), 'multiplier'); $text .= $multiplier . "</strong> the 90-day average."; $emphasis = Insight::EMPHASIS_LOW; $can_insert = true; } elseif ($video->minutes_watched >= $average_mins_viewed_month->value * 2 && $average_mins_viewed_month->value != 0) { $multiplier = $this->terms->getMultiplierAdverb(round($video->minutes_watched / $average_mins_viewed_month->value, 2), 'multiplier'); $text .= $multiplier . "</strong> the 30-day average."; $emphasis = Insight::EMPHASIS_LOW; $can_insert = true; } if ($can_insert) { $this->insight_dao->insertInsightDeprecated('minutes_viewed' . $video->id, $instance->id, $simplified_post_date, $prefix, $text, $filename, $emphasis, serialize(array($video, $chart))); } $text = "Viewers watched "; $text .= "<a href=http://plus.google.com/{$instance->network_user_id}>" . $instance->network_username . "</a>'s "; $text .= "video <a href=http://www.youtube.com/watch?v={$video->post_id}>" . $video->post_text . "</a> "; $text .= 'for a total of <strong>'; $text .= InsightTerms::getSyntacticTimeDifference($video->minutes_watched * 60) . '</strong>.'; $can_insert = false; // All time highs if ($video->minutes_watched >= $max_mins_viewed->value && $max_mins_viewed->value != 0) { $prefix = "New all-time high!"; $emphasis = Insight::EMPHASIS_HIGH; $can_insert = true; } elseif ($video->minutes_watched >= $year_mins_viewed->value && $year_mins_viewed->value != 0) { $prefix = "New 365-day high!"; $emphasis = Insight::EMPHASIS_MED; $can_insert = true; } elseif ($video->minutes_watched >= $ninety_mins_viewed->value && $ninety_mins_viewed->value != 0) { $prefix = "New 90-day high!"; $emphasis = Insight::EMPHASIS_LOW; $can_insert = true; } if ($can_insert) { $this->insight_dao->insertInsightDeprecated('minutes_viewed_high' . $video->id, $instance->id, $simplified_post_date, $prefix, $text, $filename, $emphasis, serialize(array($video, $chart))); } } $this->logger->logInfo("Done generating insight", __METHOD__ . ',' . __LINE__); }
public function generateInsight(Instance $instance, $last_weeks_posts, $number_days) { parent::generateInsight($instance, $last_weeks_posts, $number_days); self::generateBaselines($instance); $video_dao = DAOFactory::getDAO('VideoDAO'); $baseline_dao = DAOFactory::getDAO('InsightBaselineDAO'); $this->logger->logInfo("Begin generating insight", __METHOD__ . ',' . __LINE__); $filename = basename(__FILE__, ".php"); foreach ($last_weeks_posts as $post) { // YouTube users can post replies to their videos and these get passed to us here also and have no // associated videos so check we actually got a video post. if ($post->network == 'youtube' && $post->in_reply_to_post_id == null) { $video = $video_dao->getVideoByID($post->post_id, 'youtube'); $simplified_post_date = date('Y-m-d', strtotime($post->pub_date)); $average_month = $baseline_dao->getInsightBaseline('avg_view_percentage_month', $instance->id, date('Y-m-d')); $average_all_time = $baseline_dao->getInsightBaseline('avg_view_percentage_all_time', $instance->id, date('Y-m-d')); $average_90 = $baseline_dao->getInsightBaseline('avg_view_percentage_90', $instance->id, date('Y-m-d')); $high = $baseline_dao->getInsightBaseline('view_percentage_all_time_high', $instance->id, date('Y-m-d')); $high_365 = $baseline_dao->getInsightBaseline('view_percentage_year_high', $instance->id, date('Y-m-d')); $high_90 = $baseline_dao->getInsightBaseline('view_percentage_90_high', $instance->id, date('Y-m-d')); $low = $baseline_dao->getInsightBaseline('view_percentage_all_time_low', $instance->id, date('Y-m-d')); $low_365 = $baseline_dao->getInsightBaseline('view_percentage_year_low', $instance->id, date('Y-m-d')); $low_90 = $baseline_dao->getInsightBaseline('view_percentage_90_low', $instance->id, date('Y-m-d')); $hot_videos = $video_dao->getHotVideos($instance->network_username, 'youtube', 10, 'average_view_percentage', 'Average View Percentage'); $chart = VideoMySQLDAO::getHotVideosVisualizationData($hot_videos, 'Average View Percentage'); } else { break; } $view_duration = round($video->average_view_percentage, 0); // The analytics data isn't always available for new videos so check this value isn't 0 if ($view_duration == 0) { break; } $change_month = round($view_duration - $average_month->value, 0); $change_all_time = round($view_duration - $average_all_time->value, 0); $change_90 = round($view_duration - $average_90->value, 0); $text = "On average, viewers watched <a href=http://plus.google.com/" . $instance->network_user_id . ">"; $text .= $instance->network_username . "</a>'s video"; $text .= " <a href=http://www.youtube.com/watch?v=" . $video->post_id . ">" . $video->post_text . "</a> "; $text .= "<strong>" . $view_duration . "%</strong> of the way through, <strong>"; $increase_prefix = 'Captive audience:'; $decrease_prefix = 'Viewer time:'; $can_insert = false; // Increases or decreases compared to the average if (abs($change_all_time) >= 30) { $can_insert = true; $emphasis = Insight::EMPHASIS_HIGH; if ($change_all_time >= 30) { $prefix = $increase_prefix; $text .= $change_all_time . "%</strong> longer than the all-time average."; } else { $prefix = $decrease_prefix; $text .= abs($change_all_time) . "%</strong> less than the all-time average."; } } elseif (abs($change_90) >= 30) { $can_insert = true; $emphasis = Insight::EMPHASIS_HIGH; if ($change_90 >= 30) { $prefix = $increase_prefix; $text .= $change_90 . "%</strong> longer than the 90-day average."; } else { $prefix = $decrease_prefix; $text .= abs($change_90) . "%</strong> less than the 90-day average."; } } elseif (abs($change_month) >= 30) { $can_insert = true; $emphasis = Insight::EMPHASIS_HIGH; if ($change_month >= 30) { $prefix = $increase_prefix; $text .= $change_month . "%</strong> longer than the 30-day average."; } else { $prefix = $decrease_prefix; $text .= abs($change_month) . "%</strong> less than the 30-day average."; } } elseif (abs($change_all_time) >= 15) { $can_insert = true; $emphasis = Insight::EMPHASIS_MED; if ($change_all_time >= 15) { $prefix = $increase_prefix; $text .= $change_all_time . "%</strong> longer than the all-time average."; } else { $prefix = $decrease_prefix; $text .= abs($change_all_time) . "%</strong> less than the all-time average."; } } elseif (abs($change_90) >= 15) { $can_insert = true; $emphasis = Insight::EMPHASIS_MED; if ($change_90 >= 15) { $prefix = $increase_prefix; $text .= $change_90 . "%</strong> longer than the 90-day average."; } else { $prefix = $decrease_prefix; $text .= abs($change_90) . "%</strong> less than the 90-day average."; } } elseif (abs($change_month) >= 15) { $can_insert = true; $emphasis = Insight::EMPHASIS_MED; if ($change_month >= 15) { $prefix = $increase_prefix; $text .= $change_month . "%</strong> longer than the 30-day average."; } else { $prefix = $decrease_prefix; $text .= abs($change_month) . "%</strong> less than the 30-day average."; } } elseif (abs($change_all_time) >= 5) { $can_insert = true; $emphasis = Insight::EMPHASIS_LOW; if ($change_all_time >= 5) { $prefix = $increase_prefix; $text .= $change_all_time . "%</strong> longer than the all-time average."; } else { $prefix = $decrease_prefix; $text .= abs($change_all_time) . "%</strong> less than the all-time average."; } } elseif (abs($change_90) >= 5) { $can_insert = true; $emphasis = Insight::EMPHASIS_LOW; if ($change_90 >= 5) { $prefix = $increase_prefix; $text .= $change_90 . "%</strong> longer than the 90-day average."; } else { $prefix = $decrease_prefix; $text .= abs($change_90) . "%</strong> less than the 90-day average."; } } elseif (abs($change_month) >= 5) { $can_insert = true; $emphasis = Insight::EMPHASIS_LOW; if ($change_month >= 5) { $prefix = $increase_prefix; $text .= $change_month . "%</strong> longer than the 30-day average."; } else { $prefix = $decrease_prefix; $text .= abs($change_month) . "%</strong> less than the 30-day average."; } } if ($can_insert) { $this->insight_dao->insertInsightDeprecated('view_duration', $instance->id, $simplified_post_date, $prefix, $text, $filename, $emphasis, serialize(array($chart, $video))); } // New highs and lows $can_insert = false; $text = "<a href=http://plus.google.com/{$instance->network_user_id}>{$instance->network_username}</a>'s "; $text .= "video <a href=http://www.youtube.com/watch?v={$video->post_id}>{$video->post_text}</a> was "; $text .= "viewed <strong>" . $view_duration . "%</strong> of the way through on average."; if ($view_duration >= $high->value && $high->value != 0) { $prefix = 'New all-time high!'; $emphasis = Insight::EMPHASIS_HIGH; $can_insert = true; } elseif ($view_duration <= $low->value && $low->value != 0) { $prefix = 'New all-time low!'; $emphasis = Insight::EMPHASIS_HIGH; $can_insert = true; } elseif ($view_duration >= $high_365->value && $high_365->value != 0) { $prefix = 'New 365-day record!'; $emphasis = Insight::EMPHASIS_MED; $can_insert = true; } elseif ($view_duration <= $low_365->value && $low_365->value != 0) { $prefix = 'New 365-day record!'; $emphasis = Insight::EMPHASIS_MED; $can_insert = true; } elseif ($view_duration >= $high_90->value && $high_90->value != 0) { $prefix = 'New 90-day record!'; $emphasis = Insight::EMPHASIS_LOW; $can_insert = true; } elseif ($view_duration <= $low_90->value && $low_90->value != 0) { $prefix = 'New 90-day record!'; $emphasis = Insight::EMPHASIS_LOW; $can_insert = true; } if ($can_insert) { $this->insight_dao->insertInsightDeprecated('view_duration_record', $instance->id, $simplified_post_date, $prefix, $text, $filename, $emphasis, serialize(array($chart, $video))); } } $this->logger->logInfo("Done generating insight", __METHOD__ . ',' . __LINE__); }