Example #1
0
 public function examin_degree_group($cid)
 {
     set_time_limit(0);
     $this->readBadWords();
     $group = DegreeGroup::model()->findByPk($cid);
     /*if(!isset($group)){
     			$group = new DegreeGroup();
     			$group->cid = $_POST['DegreeGroup']['cid'];
     			$group->degree_id = $_POST['DegreeGroup']['degree_id'];
     		}*/
     // 		$degree_group = DegreeGroup::model()->findByAttributes(array('degree_id' => $group->degree_id));
     if (isset($group->cid)) {
         FacebookSession::enableAppSecretProof(false);
         FacebookSession::setDefaultApplication('286043231591201', '4efa214db52acdafb2757124e0d55d9d');
         $extended_token = FbToken::model()->findByPk(1);
         $session = new FacebookSession($extended_token->token);
         $extract_group_info = (new FacebookRequest($session, 'GET', '/' . $group->cid))->execute()->getGraphObject(GraphUser::className());
         $this->saveDegreeGroupInfo($extract_group_info, $group->degree_id);
         $limit = 25;
         $offset = 0;
         $extract_group_members = (new FacebookRequest($session, 'GET', '/' . $group->cid . '/members?limit=' . $limit . '&offset=' . $offset))->execute()->getGraphObject(GraphUser::className());
         while ($extract_group_members->getProperty('data')->getProperty(0) != null) {
             $this->saveGroupMember($extract_group_members->getProperty('data'), $group->cid, 'Degree');
             $next = '';
             if ($extract_group_members->getProperty('paging') != null && $extract_group_members->getProperty('paging')->getProperty('next') != null) {
                 $next = $extract_group_members->getProperty('paging')->getProperty('next');
                 $next = str_replace('https://graph.facebook.com/v2.0/', '', $next);
                 $next = str_replace('https://graph.facebook.com/v2.1/', '', $next);
                 $extract_group_members = (new FacebookRequest($session, 'GET', '/' . $next))->execute()->getGraphObject(GraphUser::className());
             } else {
                 $extract_group_members = null;
             }
             // 					$offset = $offset + $limit;
             // 					$extract_group_members = (new FacebookRequest(
             // 							$session, 'GET', '/'.$group->cid.'/members?limit='.$limit.'&offset='.$offset
             // 					))->execute()->getGraphObject(GraphUser::className());
         }
         $limit = 25;
         $offset = 0;
         if (isset($group->update_time)) {
             $since = "since=" . $group->update_time;
         } else {
             $since = "since=5+years+ago";
         }
         $until = date("Y-m-d") . " " . date("H:i:s");
         $until = DateTime::createFromFormat('Y-m-d H:i:s', $until);
         $until->sub(new DateInterval('P3D'));
         $o = new ReflectionObject($until);
         $p = $o->getProperty('date');
         $until = $p->getValue($until);
         $extract_group_feed = array();
         try {
             $extract_group_feed = (new FacebookRequest($session, 'GET', '/' . $group->cid . '/feed?limit=10000&' . $since . '&until=' . $until))->execute()->getGraphObject(GraphUser::className());
         } catch (Exception $e) {
             try {
                 $extract_group_feed = (new FacebookRequest($session, 'GET', '/' . $group->cid . '/feed?limit=1000&' . $since . '&until=' . $until))->execute()->getGraphObject(GraphUser::className());
             } catch (Exception $e) {
                 try {
                     $extract_group_feed = (new FacebookRequest($session, 'GET', '/' . $group->cid . '/feed?limit=500&' . $since . '&until=' . $until))->execute()->getGraphObject(GraphUser::className());
                 } catch (Exception $e) {
                     echo " eccezione ";
                 }
             }
         }
         $result = '';
         while ($extract_group_feed->getProperty('data') != null) {
             $j = 0;
             $extract_group_feed_data = ' ';
             $post_to_save = array('data' => array());
             $limit_cicle = 0;
             $extract_group_feed_data = $extract_group_feed->getProperty('data')->getProperty(0);
             while ($extract_group_feed_data != null) {
                 // 				$result = $this->verifyText($extract_group_feed_data, $group->degree_id);
                 if ($result == '') {
                     $this->saveGroupFeed($extract_group_feed, $group->cid, 'Degree', $session, $limit_cicle);
                 } else {
                     $course = Courses::model()->findByAttributes(array('name' => $result, 'degree_id' => $group->degree_id));
                     $exam_group = '';
                     if ($course != null) {
                         $exam_group = ExamGroup::model()->findByAttributes(array('courses_id' => $course->cid));
                     }
                     if ($course != null) {
                         if ($exam_group == null) {
                             $exam_group = new ExamGroup();
                             $criteria = new CDbCriteria();
                             $criteria->select = 'MIN(eid) AS min';
                             $row = $exam_group->model()->find($criteria);
                             $min_id = $row['min'];
                             $exam_group->eid = $min_id - 1;
                         }
                         $exam_group->degree_id = $group->degree_id;
                         $exam_group->degree_group_id = $group->cid;
                         $exam_group->courses_id = $course->cid;
                         $exam_group->name = $course->name;
                         $exam_group->validate();
                         $exam_group->save();
                         $this->saveGroupFeed($extract_group_feed, $exam_group->eid, 'Exam', $session, $limit_cicle);
                     } else {
                         $this->saveGroupFeed($extract_group_feed, $group->cid, 'Degree', $session, $limit_cicle);
                     }
                 }
                 $j++;
                 $limit_cicle = $j;
                 $extract_group_feed_data = $extract_group_feed->getProperty('data')->getProperty($j);
             }
             $next = '';
             if ($extract_group_feed->getProperty('paging') != null) {
                 $next = $extract_group_feed->getProperty('paging')->getProperty('next');
                 $next = str_replace('https://graph.facebook.com/v2.0/', '', $next);
                 $next = str_replace('https://graph.facebook.com/v2.1/', '', $next);
                 $extract_group_feed = (new FacebookRequest($session, 'GET', '/' . $next))->execute()->getGraphObject(GraphUser::className());
             } else {
                 $extract_group_feed = null;
             }
             // 			$extract_group_feed = (new FacebookRequest(
             // 					$session, 'GET', '/'.$group->cid.'/feed?limit='.$limit.'&offset='.$offset
             // 			))->execute()->getGraphObject(GraphUser::className());
         }
         $group = DegreeGroup::model()->findByPk($cid);
         $datetime = DateTime::createFromFormat(DateTime::ISO8601, $extract_group_info->getProperty('updated_time'));
         $o = new ReflectionObject($datetime);
         $p = $o->getProperty('date');
         $date = $p->getValue($datetime);
         $group->update_time = $date;
         $group->validate();
         $group->save();
         /*
         		$limit = 25;
         		$offset = 0;
         $extract_group_docs = (new FacebookRequest(
         					$session, 'GET', '/'.$group->cid.'/docs?limit=15000&since=5+years+ago&until=now'
         			))->execute()->getGraphObject(GraphUser::className());
         		
         			while($extract_group_docs->getProperty('data') != null){			
         				$this->saveGroupDocs($extract_group_docs, $group->cid,'Degree');
         	$next = '';
         	if($extract_group_docs->getProperty('paging') != null && $extract_group_docs->getProperty('paging')->getProperty('next') != null){
         					$next = $extract_group_docs->getProperty('paging')->getProperty('next');
         		$next = str_replace('https://graph.facebook.com/v2.0/', '', $next);
         					$next = str_replace('https://graph.facebook.com/v2.1/', '', $next);
         		$extract_group_docs = (new FacebookRequest(
         							$session, 'GET', '/'.$next
         					))->execute()->getGraphObject(GraphUser::className());
         	
         				}else{
         		$extract_group_docs = null;
         				}
         	
         // 				$offset = $offset + $limit;
         				
         // 				$extract_group_docs = (new FacebookRequest(
         // 						$session, 'GET', '/'.$group->cid.'/docs?limit='.$limit.'&offset='.$offset
         // 				))->execute()->getGraphObject(GraphUser::className());
         			}
         */
         /*
         			$limit = 25;
         			$offset = 0;	
         				
         			
         			$extract_group_files = (new FacebookRequest(
         					$session, 'GET', '/'.$group->cid.'/files?limit=15000&since=5+years+ago&until=now'
         			))->execute()->getGraphObject(GraphUser::className());
         
         						
         			while($extract_group_files != null && $extract_group_files->getProperty('data') != null){
         						
         				$this->saveGroupFiles($extract_group_files, $group->cid, 'Degree');
         				
         				$next = '';
         				
         				if($extract_group_files->getProperty('paging') != null && $extract_group_files->getProperty('paging')->getProperty('next') != null ){
         					$next = $extract_group_files->getProperty('paging')->getProperty('next');
         				
         					$next = str_replace('https://graph.facebook.com/v2.0/', '', $next);
         					$next = str_replace('https://graph.facebook.com/v2.1/', '', $next);
         					
         					$extract_group_files = (new FacebookRequest(
         							$session, 'GET', '/'.$next
         					))->execute()->getGraphObject(GraphUser::className());
         				
         				
         				}else{
         			
         					$extract_group_files = null;
         				}
         				
         				
         // 				$offset = $offset + $limit;
         				
         // 				$extract_group_files = (new FacebookRequest(
         // 						$session, 'GET', '/'.$group->cid.'/files?limit='.$limit.'&offset='.$offset
         // 				))->execute()->getGraphObject(GraphUser::className());
         				
         			}	*/
     }
     $this->performAjaxValidation2($group);
     //$this->render('results', array('group'=> $group));
 }