Exemplo n.º 1
0
 /**
  * 取得image_spot指定的標註
  * @param int $index 標註的位置
  * @param string $callback
  */
 public function get($index, $callback)
 {
     $output_data = array();
     $url = $this->url;
     $search = new Search_annotation_collection();
     // 設定範圍
     $scope_coll = $this->annotation_scope_collection->import_webpage_search_data($url, $index);
     $search->set_target_scope($scope_coll);
     foreach ($search as $search_annotation) {
         $annotation_data = $search_annotation->export_webpage_imape_spot_data($url);
         $output_data[] = $annotation_data;
     }
     //        $output_data[] = array(
     //            "top" => 286,
     //            "left" => 161,
     //            "width" => 52,
     //            "height" => 37,
     //            "text" => "Small people on the steps",
     //            "id" => "e69213d0-2eef-40fa-a04b-0ed998f9f1f5",
     //            "editable" => false ,
     //            "type" => "疑惑",
     //            "user" => "楊舜閔",
     //            "timestamp" => 1445172850
     //        );
     //
     //        $output_data[] = array(
     //            "top" => 134,
     //            "left" => 179,
     //            "width" => 68,
     //            "height" => 74,
     //            "text" => "National Gallery Dome<span style='color:red;'>color</span>",
     //            "id" => "e7f44ac5-bcf2-412d-b440-6dbb8b19ffbe",
     //            "editable" => true,
     //            "type" => "重要",
     //            "user" => "布丁",
     //            "timestamp" => 1447201802
     //        );
     return $this->_display_jsonp($output_data, $callback);
 }
Exemplo n.º 2
0
 function search_without_context()
 {
     $user_found = new User(225);
     $user_not_found = new User(9999);
     $url_nf = 'http://www.plurk.com/p/6c5cdt#response-1777726347';
     $webpage_nf = $this->webpage->create($url_nf);
     $url_f = 'http://www.plurk.com/p/67k6st';
     $webpage_f = $this->webpage->create($url_f);
     $text = '話說回來,其實本篇主題是要講,目前階段是Search,加入了Collection概念,並強化應用Active Record的方式之後,應該是更強大,卻也複雜到一種境界。';
     $target_scope_nf = new Annotation_scope_collection();
     $target_scope_nf->add_scope($this->annotation_scope->create_scope(18, 33, $text, $webpage_f));
     $target_scope_f = new Annotation_scope_collection();
     $target_scope_f->add_scope($this->annotation_scope->create_scope(3, 20, $text, $webpage_f));
     $target_scope_f->add_scope($this->annotation_scope->create_scope(26, 40, $text, $webpage_f));
     $overlap_scope_nf = new Annotation_scope_collection();
     $overlap_scope_nf->add_scope($this->annotation_scope->create_scope(23, 25, $text, $webpage_f));
     $overlap_scope_f = new Annotation_scope_collection();
     $overlap_scope_f->add_scope($this->annotation_scope->create_scope(23, 25, $text, $webpage_f));
     $overlap_scope_f->add_scope($this->annotation_scope->create_scope(39, 40, $text, $webpage_f));
     //-----------------------------------------------------------
     $search = new Search_annotation_collection();
     $search->set_target_user($user_not_found);
     $this->unit->run($search->length(), 0, 'Search_annotation_collection,搜尋錯誤user_id,看length()');
     $search = new Search_annotation_collection();
     $search->set_target_user($user_found);
     $this->unit->run($search->length(), 2, 'Search_annotation_collection,搜尋正確的user_id,看length()');
     $search = new Search_annotation_id_collection();
     $search->set_target_user($user_found);
     $this->unit->run($search->length(), 2, 'Search_annotation_id_collection,搜尋正確的user_id,看length(),耗費時間應該比Search_annotation_collection還短');
     $this->unit->run($search->get_item(0), 'is_string', 'Search_annotation_id_collection,搜尋正確的user_id,get_item(),值應該是id');
     //----
     $search = new Search_annotation_collection();
     $search->set_target_webpage($webpage_nf);
     $this->unit->run($search->length(), 0, 'Search_annotation_collection,搜尋錯誤的webpage,看length()');
     $this->unit->run($webpage_f->get_id(), 138, '先檢查webpage正確的id');
     $search = new Search_annotation_collection();
     $search->set_target_webpage($webpage_f);
     $this->unit->run($search->length(), 3, 'Search_annotation_collection,搜尋正確的webpage,看length()');
     //----
     $search = new Search_annotation_collection();
     $search->set_target_scope($target_scope_nf);
     $this->unit->run($search->length(), 0, 'Search_annotation_collection,搜尋錯誤的target_scope,看length()');
     $this->unit->run($target_scope_f->length(), 2, '先確定一下target_scope_f的數量沒錯');
     $search = new Search_annotation_collection();
     $search->set_target_scope($target_scope_f);
     $this->unit->run($search->length(), 2, 'Search_annotation_collection,搜尋正確的target_scope,看length()');
     //----
     $search = new Search_annotation_collection();
     $search->set_exclude_scope($target_scope_nf);
     $this->unit->run($search->length(), 3, 'Search_annotation_collection,搜尋錯誤的exclude_scope,看length()');
     $this->unit->run($search->get_item(0)->get_id(), 783, 'order scope之前');
     $this->unit->run($search->get_item(0)->get_user()->get_name(), 'puddingchen.35', 'order scope之前,查看一下user name');
     $search = new Search_annotation_collection();
     $search->set_exclude_scope($target_scope_nf);
     $search->add_order(2, TRUE);
     $this->unit->run($search->get_item(0)->get_id(), 1017, 'order scope desc之後');
     $search = new Search_annotation_collection();
     $search->set_exclude_scope($target_scope_nf);
     $search->add_order(3);
     $this->unit->run($search->get_item(0)->get_id(), 1018, 'order like desc之後');
     $search = new Search_annotation_collection();
     $search->set_exclude_scope($target_scope_nf);
     $search->add_order(4);
     $this->unit->run($search->get_item(0)->get_id(), 1018, 'order respond desc之後');
     $search = new Search_annotation_collection();
     $search->set_exclude_scope($target_scope_nf);
     $search->add_order(5, TRUE);
     $this->unit->run($search->get_item(0)->get_user()->get_name(), 'pulipuli', 'order author desc之後');
     $search = new Search_annotation_collection();
     $search->set_exclude_scope($target_scope_nf);
     $search->add_order(6);
     $this->unit->run($search->get_item(0)->get_id(), 1018, 'order update desc之後');
     $search = new Search_annotation_collection();
     $search->set_exclude_scope($target_scope_nf);
     $search->add_order(7);
     $this->unit->run($search->get_item(0)->get_id(), 1018, 'order update desc之後');
     $search = new Search_annotation_collection();
     $search->set_exclude_scope($target_scope_f);
     $this->unit->run($search->length(), 1, 'Search_annotation_collection,搜尋正確的exclude_scope,看length(),應該是跟上上個測試剛好是相反地');
     $this->unit->run($search->get_item(0)->get_id(), 783, 'Search_annotation_collection,搜尋正確的exclude_scope,get_item(0)並檢查id,應該是指定的784才對');
     //----
     $search = new Search_annotation_collection();
     $search->set_overlap_scope($overlap_scope_nf);
     $this->unit->run($search->length(), 0, 'Search_annotation_collection,搜尋錯誤的overlap_scope,看length()');
     $search = new Search_annotation_collection();
     $search->set_overlap_scope($overlap_scope_f);
     $this->unit->run($search->length(), 2, 'Search_annotation_collection,搜尋正確的overlay_scope,看length()');
     $this->unit->run($search->get_item(0)->get_id(), 1017, 'Search_annotation_collection,搜尋正確的overlay_scope,get_item() get_id()看看');
     //----
     $type_id_nf = 3;
     $type_id_f = 2;
     //$search = new Search_scope_collection();
     $search = new Search_annotation_collection();
     $search->set_target_type($type_id_nf);
     $this->unit->run($search->length(), 0, 'Search_annotation_collection,搜尋錯誤的target_id,看length()');
     $search = new Search_annotation_collection();
     $search->set_target_type($type_id_f);
     $this->unit->run($search->length(), 1, 'Search_annotation_collection,搜尋正確的target_id,看length()');
     $this->unit->run($search->get_item(0)->get_id(), 1017, 'Search_annotation_collection,搜尋正確的type_id,get_item() get_id()看看');
     //----
     $search = new Search_annotation_collection();
     $search->set_exclude_user($user_not_found);
     $this->unit->run($search->length(), 3, 'Search_annotation_collection,搜尋錯誤的exclude_user_id,看length()');
     $search = new Search_annotation_collection();
     $search->set_exclude_user($user_found);
     $this->unit->run($search->length(), 1, 'Search_annotation_collection,搜尋正確的exclude_user_id,看length()');
     //----
     $annotation_id_nf = 9999;
     $annotation_id_f = 1017;
     $search = new Search_annotation_collection();
     $search->set_exclude_annotation($annotation_id_nf);
     $this->unit->run($search->length(), 3, 'Search_annotation_collection,搜尋錯誤的exclude_annotation_id,看length()');
     $search = new Search_annotation_collection();
     $search->set_exclude_annotation($annotation_id_f);
     $this->unit->run($search->length(), 2, 'Search_annotation_collection,搜尋正確的exclude_annotation_id,看length()');
     $this->unit->run($search->get_item(0)->get_id(), 783, 'Search_annotation_collection,搜尋正確的exclude_annotation_id,get_item get_id');
     //----
     $note_nf = '搜尋錯誤';
     $note_f = '變項回歸';
     $search = new Search_annotation_id_collection();
     $search->set_search_note($note_nf);
     $this->unit->run($search->length(), 0, 'Search_annotation_id_collection,搜尋錯誤的search_note,看length()');
     $search = new Search_annotation_collection();
     $search->set_search_note($note_f);
     $search->add_order(8);
     $this->unit->run($search->length(), 1, 'Search_annotation_collection,搜尋正確的search_note,看length()');
     $this->unit->run($search->get_item(0)->get_id(), 783, 'Search_annotation_collection,搜尋正確的search_note,get_item get_id');
     //----
     $anchor_text_f = '冷氣電扇被子';
     $search = new Search_scope_collection();
     $search->set_search_anchor_text($note_nf);
     $this->unit->run($search->length(), 0, 'Search_annotation_id_collection,搜尋錯誤的search_anchor_text,看length()');
     $search = new Search_annotation_collection();
     $search->set_search_anchor_text($note_f);
     $search->add_order(9);
     $this->unit->run($search->length(), 2, 'Search_annotation_collection,搜尋正確的search_anchor_text,看length()');
     $this->unit->run($search->get_item(0)->get_id(), 1017, 'Search_annotation_collection,搜尋正確的search_anchor_text,get_item get_id');
     $search = new Search_annotation_collection();
     $search->set_check_authorize(FALSE);
     $search->set_search_anchor_text($note_f);
     $this->unit->run($search->length(), 2, 'Search_annotation_collection,並關掉權限檢查,搜尋正確的search_anchor_text,看length()');
     $this->unit->run($search->get_item(0)->get_id(), 1017, 'order score之前');
     $search = new Search_annotation_collection();
     $search->set_check_authorize(FALSE);
     $search->set_search_anchor_text($note_f);
     $search->add_order(1);
     $this->unit->run($search->get_item(0)->get_id(), 1018, 'order score之後');
     $search = new Search_scope_collection();
     $search->set_check_authorize(FALSE);
     $search->set_search_anchor_text($note_f);
     $this->unit->run($search->get_scope_length(), 20 - 3 + 1 + 40 - 26 + 1, 'Search_scope_collection,並關掉權限檢查,搜尋正確的search_anchor_text,看get_scope_length()');
     //----
     $score_over_nf = 3;
     $score_over_f = 2.1214435;
     $search = new Search_scope_collection();
     $search->set_target_over_score($score_over_nf);
     $this->unit->run($search->length(), 0, 'Search_annotation_id_collection,搜尋錯誤的target_over_score,看length()');
     $search = new Search_annotation_collection();
     $search->set_target_over_score($score_over_f);
     $this->unit->run($search->length(), 1, 'Search_annotation_collection,搜尋正確的target_over_score,看length()');
     $this->unit->run($search->get_item(0)->get_id(), 1018, 'Search_annotation_collection,搜尋正確的target_over_score,get_item get_id');
     $search = new Search_annotation_user_collection();
     $search->set_target_over_score($score_over_f);
     $this->unit->run($search->length(), 1, 'Search_annotation_user_collection,搜尋正確的target_over_score,length');
     $this->unit->run($search->get_item(0)->get_id(), 225, 'Search_annotation_user_collection,搜尋正確的target_over_score,get_item get_id');
     //        //--------------------------------------------------------------------------------
     //        $search = new Search_annotation_collection();
     //        $search->set_check_authorize(FALSE);
     //        $search->set_target_user($user_not_found);
     //        $this->unit->run($search->length()
     //                , 0
     //                , 'Search_annotation_collection,取消auth,搜尋錯誤user_id,看length()');
     //
     //        $search = new Search_annotation_collection();
     //        $search->set_check_authorize(FALSE);
     //        $search->set_target_user($user_found);
     //        $this->unit->run($search->length()
     //                , 4
     //                , 'Search_annotation_collection,取消auth,搜尋正確的user_id,看length()');
     //        $this->unit->run($test_result
     //                , $expected_result
     //                , $test_name);
     //        $this->unit->run($test_result
     //                , $expected_result
     //                , $test_name);
     //context_complete();
     unit_test_report($this);
 }
Exemplo n.º 3
0
 public function get_consensus_coll()
 {
     $this->_CI_load('library', 'search/Search_annotation_collection', 'search_annotation_collection');
     $type = 'Search_annotation_collection';
     $key = 'annotation_get_consensus_coll';
     $value = $this->get_id();
     $search = get_cache($type, $key, $value);
     if (is_null($search)) {
         $search = new Search_annotation_collection();
         $search->set_check_authorize(false);
         $search->set_limit(NULL);
         $search->set_target_scope($this->scope_coll);
         $search->set_exclude_annotation($this->get_id());
         $search->set_exclude_user($this->get_user());
         $search->set_target_topic(TRUE);
         //只有topic才有分數
         $search->add_order(1);
         set_cache($search, $key, $value);
     }
     return $search;
 }