Ejemplo n.º 1
0
 public function videoPass(Swf2VidEvent $event)
 {
     /** @var Video $video */
     if ($data = $event->getEventData()) {
         if ($video = @Video::find($data['video']['video_id'])) {
             if ($user = $event->getUser()) {
                 if (Video::count(['conditions' => ['project_id = ? and vid_status = "pass" and updated_at > DATE_SUB(NOW(), INTERVAL 10 MINUTE)', $video->project_id]])) {
                     //redo
                     return;
                 }
                 $minLevel = Swf2Vid::getInstance()->getUserVideoLevel();
                 $levels = $user->user_level;
                 /** @var UserLevel $level */
                 foreach ($levels as $level) {
                     if ($level->credits > 0) {
                         if (AccessLevels::getInstance()->checkAccess($level->level, $minLevel)) {
                             $level->credits = $level->credits - 1;
                             $level->save_direct();
                             return;
                         }
                     }
                 }
             }
             $video->vid_status = 'fail';
             $video->save_direct();
         }
         App::getInstance()->dispatch(Swf2VidEvent::VIDEO_NO_CREDITS, $event);
     }
 }
Ejemplo n.º 2
0
 public function freeUnusedInstances()
 {
     if (!Swf2Vid::getInstance()->getVideosByType('pending')) {
         $instances = Instances::getInstance();
         if ($available = $instances->findAvailable()) {
             for ($i = count($available) - 1; $i >= 0; $i--) {
                 $instances->terminate($available[$i], $i > 0);
             }
         }
     }
 }