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; }
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]); } }
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'; }
/** * 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']); } } } }
public function getBySlug($slug) { return Links::with('keywords', 'entities.subtypes', 'entities.links', 'media', 'user')->whereSlug($slug)->first(); }