Exemplo n.º 1
0
 public function grabber(array $directory_user)
 {
     try {
         $directory = new DM_Directory($directory_user['directory_id']);
         if (!$directory->exists()) {
             throw new Exception('Directory id:' . $directory_user['directory_id'] . ' doesn\'t exist');
         }
         if (!$directory->status) {
             throw new Exception('Directory id:' . $directory_user['directory_id'] . ' is disabled');
         }
         $link = !empty($directory_user['additional']) ? $directory_user['additional'] : $directory_user['link'];
         $directory_parcer = Directory_Parser::factory($directory->type)->set_url($link);
         $reviews = $directory_parcer->get_reviews();
     } catch (Exception $e) {
         throw $e;
     }
     //$today_midnight = strtotime('-7 day midnight');
     $today_midnight = strtotime('-14 day midnight');
     foreach ($reviews as $_review) {
         $review_model = new Review();
         $review_model->from_array($_review);
         $review_model->user_id = $directory_user['user_id'];
         $review_model->directory_id = $directory_user['directory_id'];
         $review_model->posted_date = date('Y-m-d', $_review['posted']);
         $review_model->save();
         // notify user about new review
         if (!empty($directory_user['notify_status']) && $_review['posted'] > $today_midnight && !empty($review_model->id) && !empty($directory_user['user_id']) && !empty($directory_user['notify'])) {
             $obj = Reviews_notification::addOne($directory_user['user_id'], $review_model->id);
             if (!$obj->id) {
                 echo 'Error notification: ' . date('d-m-Y H:i') . ' - ' . $obj->error->string . PHP_EOL;
             }
         }
     }
 }
Exemplo n.º 2
0
 protected function grabb($directory_user)
 {
     log_message('TASK_ERROR', __FUNCTION__ . ' > ' . 'Reviews grabber');
     try {
         $directory = new DM_Directory($directory_user['directory_id']);
         if (!$directory->exists()) {
             throw new Exception('Directory id:' . $directory_user['directory_id'] . ' doesn\'t exist');
         }
         if (!$directory->status) {
             throw new Exception('Directory id:' . $directory_user['directory_id'] . ' is disabled');
         }
         $link = !empty($directory_user['additional']) && !($directory->type == 'Foursquare') ? $directory_user['additional'] : $directory_user['link'];
         $directory_parcer = Directory_Parser::factory($directory->type)->set_url($link);
         //For fousquare only
         $directory_parcer->set_directory_user($directory_user);
         $reviews = $directory_parcer->get_reviews();
     } catch (Exception $e) {
         log_message('TASK_ERROR', __FUNCTION__ . ' > ' . 'Reviews: ' . $e->getMessage());
         throw $e;
     }
     //$today_midnight = strtotime('-7 day midnight');
     $today_midnight = strtotime('-34 day midnight');
     if (is_array($reviews) && !empty($reviews)) {
         foreach ($reviews as $_review) {
             $review_model = new Review();
             $review_model->from_array($_review);
             $review_model->user_id = $directory_user['user_id'];
             $review_model->directory_id = $directory_user['directory_id'];
             $review_model->posted_date = date('Y-m-d', $_review['posted']);
             $review_model->save();
             if (!$review_model->id) {
                 var_dump($review_model->error);
             }
             log_message('TASK_ERROR', __FUNCTION__ . ' > ' . 'Review saved');
             // notify user about new review
             if ($_review['posted'] > $today_midnight && !empty($review_model->id) && !empty($directory_user['user_id']) && !empty($directory_user['notify'])) {
                 $obj = Reviews_notification::addOne($directory_user['user_id'], $review_model->id);
                 if (!$obj->id) {
                     echo 'Error notification: ' . date('d-m-Y H:i') . ' - ' . $obj->error->string . PHP_EOL;
                 }
             }
         }
     }
 }
Exemplo n.º 3
0
 /**
  * Update user's directories
  *
  * @param       $user_id
  * @param       $profile_id
  * @param       $directories_ids
  * @param array $additions
  *
  * @return array
  */
 public static function update_user_dir($user_id, $profile_id, $directories_ids, $additions = array())
 {
     $errors = array();
     $obj = new self();
     $table = $obj->table;
     $obj = new self();
     $old_options = array();
     foreach ($obj->where(array('user_id' => $user_id, 'profile_id' => $profile_id))->get() as $old_option) {
         $old_options[$old_option->directory_id] = $old_option->to_array();
     }
     $sql = "DELETE FROM {$table} WHERE user_id = {$user_id} AND profile_id = {$profile_id}";
     $obj->db->query($sql);
     if (empty($directories_ids)) {
         return;
     }
     $notify = empty($additions['notify']) ? 0 : 1;
     foreach ($directories_ids as $dir_id => $link) {
         $directory = new DM_Directory($dir_id);
         if (!$directory->exists()) {
             $errors[] = 'Directory #' . $dir_id . '(' . $link . ') doesn\'t exist';
             continue;
         }
         try {
             $directory_parcer = Directory_Parser::factory($directory->type);
         } catch (Exception $e) {
             $errors[] = 'Directory\'s #' . $directory->id . '(' . $directory->name . ') parser doesn\'t configured';
             continue;
         }
         if (!$directory_parcer->valid_url($link)) {
             $errors[] = 'Invalid url for directory ' . $directory->name;
             continue;
         }
         if (empty($old_options[$dir_id]) || $link !== $old_options[$dir_id]['link']) {
             Review::deleteByUserDirectory($user_id, $dir_id);
         }
         $new_settings = new self();
         $new_settings->from_array(array('user_id' => $user_id, 'profile_id' => $profile_id, 'link' => $link, 'directory_id' => $dir_id, 'notify' => $notify));
         $new_settings->save();
     }
     return $errors;
 }