本文整理汇总了PHP中InsightPluginParent::shouldGenerateInsight方法的典型用法代码示例。如果您正苦于以下问题:PHP InsightPluginParent::shouldGenerateInsight方法的具体用法?PHP InsightPluginParent::shouldGenerateInsight怎么用?PHP InsightPluginParent::shouldGenerateInsight使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类InsightPluginParent
的用法示例。
在下文中一共展示了InsightPluginParent::shouldGenerateInsight方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: testShouldGenerateInsight
public function testShouldGenerateInsight()
{
$instance = new Instance();
$instance->id = 10;
$instance->network_username = 'testeriffic';
$instance->network = 'twitter';
$time_now = date("Y-m-d H:i:s");
$today = date('Y-m-d', strtotime('today'));
$yesterday = date('Y-m-d', strtotime('-1 day'));
$builders = array();
$builders[] = FixtureBuilder::build('insights', array('id' => 76, 'instance_id' => 10, 'slug' => 'some_slug', 'date' => $today, 'time_generated' => $time_now));
$builders[] = FixtureBuilder::build('insights', array('id' => 77, 'instance_id' => 10, 'slug' => 'some_other_slug', 'date' => $yesterday, 'time_generated' => $time_now));
$insight_plugin_parent = new InsightPluginParent();
$insight_plugin_parent->insight_dao = DAOFactory::getDAO('InsightDAO');
// Test default values
$this->assertTrue($insight_plugin_parent->shouldGenerateInsight('a_slug', $instance));
$this->assertFalse($insight_plugin_parent->shouldGenerateInsight('some_slug', $instance));
// Test regeneration on a given date
$this->assertTrue($insight_plugin_parent->shouldGenerateInsight('a_slug', $instance, $insight_date = $today));
$this->assertFalse($insight_plugin_parent->shouldGenerateInsight('some_other_slug', $instance, $insight_date = $yesterday));
$this->assertTrue($insight_plugin_parent->shouldGenerateInsight('some_other_slug', $instance, $insight_date = $yesterday, $regenerate_existing_insight = true));
// Test with last week of posts
$this->assertTrue($insight_plugin_parent->shouldGenerateInsight('a_slug', $instance, $insight_date = 'today', $regenerate_existing_insight = false, $count_related_posts = 13));
$this->assertFalse($insight_plugin_parent->shouldGenerateInsight('a_slug', $instance, $insight_date = 'today', $regenerate_existing_insight = false, $count_related_posts = 0));
// Test excluded networks
$this->assertTrue($insight_plugin_parent->shouldGenerateInsight('a_slug', $instance, $insight_date = 'today', $regenerate_existing_insight = false, $count_related_posts = null, $excluded_networks = array('facebook')));
$this->assertFalse($insight_plugin_parent->shouldGenerateInsight('a_slug', $instance, $insight_date = 'today', $regenerate_existing_insight = false, $count_related_posts = null, $excluded_networks = array('twitter', 'facebook')));
}
示例2: shouldGenerateInsight
/**
* Determine whether an insight should be generated or not.
* @param str $slug slug of the insight to be generated
* @param Instance $instance user and network details for which the insight has to be generated
* @param date $insight_date date for which the insight has to be generated
* @param bool $regenerate_existing_insight whether the insight should be regenerated over a day
* @param int $day_of_week the day of week (0 for Sunday through 6 for Saturday) on which the insight should run
* @param int $count_last_week_of_posts if set, wouldn't run insight if there are no posts from last week
* @param arr $excluded_networks array of networks for which the insight shouldn't be run
* @param bool $alternate_day whether today is an alternate day or not
* @return bool $run whether the insight should be generated or not
*/
public function shouldGenerateInsight($slug, Instance $instance, $insight_date = null, $regenerate_existing_insight = false, $day_of_week = null, $count_last_week_of_posts = null, $excluded_networks = null, $alternate_day = true)
{
if (Utils::isTest()) {
return true;
} else {
return $alternate_day && parent::shouldGenerateInsight($slug, $instance, $insight_date, $regenerate_existing_insight, $day_of_week, $count_last_week_of_posts, $excluded_networks);
}
}
示例3: shouldGenerateInsight
/**
* Determine whether an insight should be generated or not.
* @param str $slug slug of the insight to be generated
* @param Instance $instance user and network details for which the insight has to be generated
* @param date $insight_date date for which the insight has to be generated
* @param bool $regenerate_existing_insight whether the insight should be regenerated over a day
* @param int $day_of_week the day of week (0 for Sunday through 6 for Saturday) on which the insight should run
* @param int $count_last_week_of_posts if set, wouldn't run insight if there are no posts from last week
* @param arr $excluded_networks array of networks for which the insight shouldn't be run
* @param bool $alternate_day whether today is an alternate day or not
* @return bool $run whether the insight should be generated or not
*/
public function shouldGenerateInsight($slug, Instance $instance, $insight_date = null, $regenerate_existing_insight = false, $day_of_week = null, $count_last_week_of_posts = null, $excluded_networks = null, $alternate_day = true)
{
$in_test_mode = isset($_SESSION["MODE"]) && $_SESSION["MODE"] == "TESTS" || getenv("MODE") == "TESTS";
if ($in_test_mode) {
return true;
} else {
return $alternate_day && parent::shouldGenerateInsight($slug, $instance, $insight_date, $regenerate_existing_insight, $day_of_week, $count_last_week_of_posts, $excluded_networks);
}
}
示例4: generateInsight
public function generateInsight(Instance $instance, $last_week_of_posts, $number_days)
{
parent::generateInsight($instance, $last_week_of_posts, $number_days);
$this->logger->logInfo("Begin generating insight", __METHOD__ . ',' . __LINE__);
if (parent::shouldGenerateInsight('outreach_punchcard', $instance, $insight_date = 'today', $regenerate_existing_insight = false, $day_of_week = 6, count($last_week_of_posts))) {
$owner_instance_dao = DAOFactory::getDAO('OwnerInstanceDAO');
$owner_dao = DAOFactory::getDAO('OwnerDAO');
$owner_instance = $owner_instance_dao->getByInstance($instance->id);
$owner_id = $owner_instance[0]->owner_id;
$owner = $owner_dao->getById($owner_instance[0]->owner_id);
try {
$owner_timezone = new DateTimeZone($owner->timezone);
} catch (Exception $e) {
// In the odd case the owner has no or a malformed timezone
$cfg = Config::getInstance();
$owner_timezone = new DateTimeZone($cfg->getValue('timezone'));
}
$now = new DateTime();
$offset = timezone_offset_get($owner_timezone, $now);
$post_dao = DAOFactory::getDAO('PostDAO');
$punchcard = array();
$responses_chron = array();
$response_avg_timediffs = array();
for ($hotd = 0; $hotd < 24; $hotd++) {
for ($dotw = 1; $dotw <= 7; $dotw++) {
$punchcard['posts'][$dotw][$hotd] = 0;
$punchcard['responses'][$dotw][$hotd] = 0;
}
$responses_chron[$hotd] = 0;
}
foreach ($last_week_of_posts as $post) {
$responses = array();
$responses = array_merge((array) $post_dao->getRepliesToPost($post->post_id, $post->network), (array) $post_dao->getRetweetsOfPost($post->post_id, $post->network));
foreach ($responses as $response) {
$response_pub_date = new DateTime($response->pub_date);
$response_dotw = date('N', date('U', strtotime($response->pub_date) + $offset));
// Day of week
$response_hotd = date('G', date('U', strtotime($response->pub_date) + $offset));
// Hour of day
$punchcard['responses'][$response_dotw][$response_hotd]++;
$responses_chron[$response_hotd]++;
}
$post_pub_date = new DateTime($post->pub_date);
$post_dotw = date('N', date('U', strtotime($post->pub_date) + $offset));
// Day of the week
$post_hotd = date('G', date('U', strtotime($post->pub_date) + $offset));
// Hour of the day
$punchcard['posts'][$post_dotw][$post_hotd]++;
}
arsort($responses_chron);
$most_responses = each($responses_chron);
$insight_text = '';
if ($most_responses['value'] > 0) {
$time1_low_hotd = $most_responses['key'];
$time1_high_hotd = $time1_low_hotd + 1;
$time1_low = ($time1_low_hotd % 12 ? $time1_low_hotd % 12 : 12) . (floor($time1_low_hotd / 12) == 1 ? 'pm' : 'am');
$time1_high = ($time1_high_hotd % 12 ? $time1_high_hotd % 12 : 12) . (floor($time1_high_hotd / 12) == 1 ? 'pm' : 'am');
$insight_text = $this->username . "'s " . $this->terms->getNoun('post', InsightTerms::PLURAL) . " from last week got <strong>" . $most_responses['value'] . " " . ($most_responses['value'] > 1 ? 'responses' : 'response') . "</strong>" . " between <strong>" . $time1_low . " and " . $time1_high . "</strong>";
$insight_comparison_text = '';
foreach ($responses_chron as $key => $value) {
if ($value > 0 && $value < $most_responses['value']) {
$time2_low_hotd = $key;
$time2_high_hotd = $time2_low_hotd + 1;
$time2_low = ($time2_low_hotd % 12 ? $time2_low_hotd % 12 : 12) . (floor($time2_low_hotd / 12) == 1 ? 'pm' : 'am');
$time2_high = ($time2_high_hotd % 12 ? $time2_high_hotd % 12 : 12) . (floor($time2_high_hotd / 12) == 1 ? 'pm' : 'am');
$insight_comparison_text = ", as compared to <strong>" . $value . " " . ($value > 1 ? 'responses' : 'response') . "</strong>" . " between <strong>" . $time2_low . " and " . $time2_high . "</strong>";
}
}
$insight_text .= $insight_comparison_text . ".";
$this->insight_dao->insertInsightDeprecated("outreach_punchcard", $instance->id, $this->insight_date, "Time of day:", $insight_text, basename(__FILE__, ".php"), Insight::EMPHASIS_LOW, serialize($punchcard));
}
}
$this->logger->logInfo("Done generating insight", __METHOD__ . ',' . __LINE__);
}