function ActivateScheduledVideos() { $DB = GetDB(); $args = ParseCommandLine(); $queries = array(); if (!isset($args['sort']) || empty($args['sort'])) { $args['sort'] = 'RAND()'; } if (!isset($args['sort-direction']) || empty($args['sort-direction'])) { $args['sort-direction'] = SQL::SORT_ASC; } if (isset($args['amount'])) { $sb = new SQL_SelectBuilder('tbx_video'); $sb->AddSelectField('`video_id`'); $sb->AddSelectField('`tags`'); $sb->AddWhere('tbx_video.status', SQL::EQUALS, STATUS_SCHEDULED); $sb->AddOrder($args['sort'], $args['sort-direction']); $sb->SetLimit($args['amount']); $queries[] = $DB->Prepare($sb->Generate(), $sb->Binds()); } else { if (isset($args['amount-per-sponsor'])) { $result = $DB->Query('SELECT `sponsor_id` FROM `tbx_sponsor`'); while ($sponsor = $DB->NextRow($result)) { $sb = new SQL_SelectBuilder('tbx_video'); $sb->AddSelectField('`video_id`'); $sb->AddSelectField('`tags`'); $sb->AddWhere('tbx_sponsor.sponsor_id', SQL::EQUALS, $sponsor['sponsor_id']); $sb->AddWhere('tbx_video.status', SQL::EQUALS, STATUS_SCHEDULED); $sb->AddOrder($args['sort'], $args['sort-direction']); $sb->SetLimit($args['amount-per-sponsor']); $queries[] = $DB->Prepare($sb->Generate(), $sb->Binds()); } $DB->Free($result); } else { if (isset($args['amount-per-category'])) { $result = $DB->Query('SELECT `category_id` FROM `tbx_category`'); while ($category = $DB->NextRow($result)) { $sb = new SQL_SelectBuilder('tbx_video'); $sb->AddSelectField('`video_id`'); $sb->AddSelectField('`tags`'); $sb->AddWhere('tbx_video.category_id', SQL::EQUALS, $category['category_id']); $sb->AddWhere('tbx_video.status', SQL::EQUALS, STATUS_SCHEDULED); $sb->AddOrder($args['sort'], $args['sort-direction']); $sb->SetLimit($args['amount-per-category']); $queries[] = $DB->Prepare($sb->Generate(), $sb->Binds()); } $DB->Free($result); } else { throw new BaseException('One of --amount, --amount-per-sponsor or --amount-per-category must be specified'); } } } foreach ($queries as $query) { $result = $DB->Query($query); while ($video = $DB->NextRow($result)) { $DB->Update('UPDATE `tbx_video` SET `status`=?,`date_added`=? WHERE `video_id`=?', array(STATUS_ACTIVE, Database_MySQL::Now(), $video['video_id'])); Tags::AddToFrequency($video['tags']); } $DB->Free($result); } UpdateCategoryStats(); }