コード例 #1
0
ファイル: tests.php プロジェクト: andrewkrug/repucaution
 protected function grabbercrms($directory_array)
 {
     try {
         $directory_id = Arr::get($directory_array, 'id');
         $directory = new Crm_directory($directory_id);
         $error_info = 'mkwid: ' . Arr::get($directory_array, 'social', 'no soc') . '/' . $directory_id;
         if (!$directory->exists()) {
             throw new Exception($error_info . ' doesn\'t exist.');
         }
         if ($directory->is_deleted) {
             throw new Exception($error_info . ' is set for deletion.');
         }
         if (!$directory->user_id) {
             throw new Exception($error_info . ' has no user id.');
         }
         $user = new User($directory->user_id);
         if (!$user->exists()) {
             throw new Exception($error_info . ' has no user');
         }
         $social = Arr::get($directory_array, 'social');
         if (is_null($social)) {
             throw new Exception($error_info . ' invalid social');
         }
         $user_socials = Access_token::inst()->get_crm_user_socials($directory->user_id);
         if (!in_array($social, $user_socials)) {
             throw new Exception($error_info . ' invalid social');
         }
         $this->load->library('crmer');
         $crmer = Crmer::factory($user->id);
         if ($social === 'facebook') {
             $data = $crmer->getCrmPosts($directory_array);
         } else {
             if ($social === 'twitter') {
                 $data = $crmer->getCrmTweets($directory_array);
             } else {
                 if ($social === 'instagram') {
                     $data = $crmer->getCrmActivities($directory_array);
                 } else {
                     $data = array();
                 }
             }
         }
         if (!is_array($data)) {
             throw new Exception($error_info . ' no results for mentions, not an array. mkwid: ');
         }
         foreach ($data as $original_id => $row) {
             $activity = new Crm_directory_activity();
             $activity->where(array('crm_directory_id' => $directory_array['id'], 'original_id' => $original_id))->get(1);
             $activity->social = $social;
             $activity->original_id = Arr::get($row, 'original_id');
             $activity->created_at = Arr::get($row, 'created_at');
             $message = Arr::get($row, 'message');
             $trimMessage = strlen($message) > 4000 ? substr($message, 0, 4000) : $message;
             $activity->message = $trimMessage;
             $activity->creator_id = Arr::get($row, 'creator_id');
             $activity->creator_name = Arr::get($row, 'creator_name');
             $activity->creator_image_url = Arr::get($row, 'creator_image_url');
             $activity->other_fields = serialize(Arr::get($row, 'other_fields', array()));
             $activity->source = Arr::get($row, 'source');
             $relations = array('crm_directory' => $directory);
             $saved = $activity->save($relations);
             if (!$saved) {
                 log_message('TASK_ERROR', __FUNCTION__ . ' > ' . 'Activity not saved for mkwid: ' . $error_info . ' grabbed: ' . $activity->error->string);
             }
         }
         // get socials that were already grabbed
         $grabbed_socials = $directory->get_grabbed_socials_as_array();
         if (!in_array($social, $grabbed_socials)) {
             $grabbed_socials[] = $social;
             $now = date('U');
             $directory->grabbed_socials = implode(',', $grabbed_socials);
             $directory->grabbed_at = $now;
             $saved = $directory->save();
             if (!$saved) {
                 log_message('TASK_ERROR', __FUNCTION__ . ' > ' . 'Mention keyword not saved for mkwid: ' . $error_info . ' grabbed: ' . $activity->error->string);
             }
         }
         log_message('TASK_SUCCESS', __FUNCTION__ . ' > ' . 'Mentions for mkwid: ' . $error_info . ' grabbed');
     } catch (Exception $e) {
         log_message('TASK_ERROR', __FUNCTION__ . ' > ' . $e->getMessage());
         return;
         // throw $e;
     }
 }
コード例 #2
0
ファイル: crm_cron.php プロジェクト: andrewkrug/repucaution
 /**
  * Check crm directories set for deletion
  * And move them to queue
  * 
  * minutely ?
  */
 public function queue_deleted_crm_directories()
 {
     $directories = Crm_directory::inst()->get_by_is_deleted(1);
     if (!$directories->exists()) {
         log_message('CRON_ERROR', __FUNCTION__ . ' > ' . 'No crm directories for removal');
         return;
     }
     foreach ($directories as $directory) {
         $args = $directory->to_array();
         $this->jobQueue->addJob('tasks/crm_directory_task/remove_deleted', $args, array('thread' => self::CRM_THREAD));
     }
     $ids_str = implode(', ', array_values($directories->all_to_single_array('id')));
     log_message('CRON_SUCCESS', __FUNCTION__ . ' > ' . 'Crm directories for removal ids: ' . $ids_str);
     return;
 }
コード例 #3
0
ファイル: crm.php プロジェクト: andrewkrug/repucaution
 public function delete($directoryId)
 {
     $directory = Crm_directory::inst($directoryId);
     $userId = $this->c_user->id;
     if (!$directory->exists() or !$directory->isUser($userId)) {
         $this->addFlash(lang('owner_error'));
     } else {
         $activities = $this->crmManager->getDirectoryActivities($userId, $this->profile->id, $directoryId);
         foreach ($activities as $activity) {
             $activity->delete();
         }
         if ($directory->delete()) {
             $this->addFlash(lang('directory_delete_success'), 'success');
         } else {
             $this->addFlash(lang('directory_delete_error'));
         }
     }
     redirect('crm/directories');
 }
コード例 #4
0
 public function remove_unrelated()
 {
     try {
         $limit = 500;
         $mentions = Crm_directory::inst()->where('user_id IS NULL')->get($limit)->delete_all();
         log_message('TASK_SUCCESS', __FUNCTION__ . ' > ' . 'Unrelated crm directories removed');
     } catch (Exception $e) {
         log_message('TASK_ERROR', __FUNCTION__ . ' > ' . $e->getMessage());
         return;
         // throw $e;
     }
 }