Пример #1
0
 public function attach(Links $model, $file)
 {
     if (strlen($file) < 5) {
         logger('Something is wrong. The funtion received as input: ' . $file);
         return '';
     }
     $stored_file = $this->getRemoteFile($file);
     $path = $model->addMedia($stored_file)->withCustomProperties(['original_url' => $file])->toCollection('images')->getUrl();
     return $path;
 }
Пример #2
0
 public function replaceReferenceOnParent($link, $parent)
 {
     $parent_item = Links::find($parent);
     $parent_item->update(['content' => str_replace($link->url, '/' . $link->slug, $parent_item->content), 'indexed_link' => 1]);
     $external_link = ExternalLinks::find($link->id);
     if ($external_link) {
         $external_link->update(['processed' => 1]);
     }
 }
Пример #3
0
 public function buildIndex()
 {
     $links = Links::get();
     $keywords = Keywords::get();
     $titles = Titles::get();
     foreach ($links as $link) {
         SearchIndex::upsertToIndex($link);
     }
     foreach ($keywords as $keyword) {
         SearchIndex::upsertToIndex($keyword);
     }
     foreach ($titles as $title) {
         SearchIndex::upsertToIndex($title);
     }
     return 'indexed all links and keywords';
 }
Пример #4
0
 /**
  * Persiste Entitties
  * @param  Links $link
  * @param  array $entities
  * @property string $new_entity->id Id of the new entity
  * @return void           
  */
 public function attachEntities($link, $entities)
 {
     $existing_entities = array_pluck($link->entities->toArray(), 'id');
     foreach ($entities as $entity) {
         if (isset($entity['disambiguated'])) {
             if (isset($entity['disambiguated']['website']) && isset($entity['disambiguated']['geo'])) {
                 $entity_object = Entities::make($entity['type'], $entity['text'], str_slug($entity['text']), $entity['disambiguated']['name'], $entity['disambiguated']['website'], $entity['disambiguated']['geo']);
             } elseif (isset($entity['disambiguated']['website']) && !isset($entity['disambiguated']['geo'])) {
                 $entity_object = Entities::make($entity['type'], $entity['text'], str_slug($entity['text']), $entity['disambiguated']['name'], $entity['disambiguated']['website']);
             } elseif (!isset($entity['disambiguated']['website']) && isset($entity['disambiguated']['geo'])) {
                 $entity_object = Entities::make($entity['type'], $entity['text'], str_slug($entity['text']), $entity['disambiguated']['name'], $entity['disambiguated']['geo']);
             } else {
                 $entity_object = Entities::make($entity['type'], $entity['text'], str_slug($entity['text']));
             }
         } else {
             $entity_object = Entities::make($entity['type'], $entity['text'], str_slug($entity['text']));
         }
         $new_entity = $this->entities->save($entity_object);
         // if(strlen($new_entity->website) > 1 && filter_var($entity->website, FILTER_VALIDATE_URL))
         // {
         //     $this->takeScreenshowOfWebsite($entity->website);
         // }
         if (!in_array($new_entity->id, $existing_entities)) {
             $link->entities()->attach($new_entity->id, ['relevance' => $entity['relevance'], 'count' => $entity['count']]);
             if (isset($entity['disambiguated']['subType'])) {
                 $this->attachSubtypes($new_entity, $entity['disambiguated']['subType']);
             }
         }
     }
 }
Пример #5
0
 public function getBySlug($slug)
 {
     return Links::with('keywords', 'entities.subtypes', 'entities.links', 'media', 'user')->whereSlug($slug)->first();
 }