public function importSingleMovie(\SplFileInfo $source) { if (!$source->isReadable()) { return $this->output->writelnError(sprintf("File %s not readable", $source->getFilename())); } $this->output->writelnInfo(sprintf("Importing %s ...", $source->getRealPath())); $file = $source->openFile(); /** @var Movies $movie */ $movie = $this->getMovie($file->fread($file->getSize()), $file->getBasename('.html')); if (!$movie) { return $this->output->writelnError(sprintf("Not found dmm id", $source->getFilename())); } $this->currentDmmId = $movie->banngo; if (Movies::findFirstById($movie->id)) { return $this->output->writelnWarning(sprintf("Movie %s already exists, insert skipped", $movie->banngo)); } /** @var Mysql $db */ $db = $this->getDI()->get('dbMaster'); $db->begin(); if (false === $movie->save()) { $db->rollback(); return $this->output->writelnError(sprintf("Movie saving failed by %s", implode(',', $movie->getMessages()))); } $db->commit(); $this->output->writelnSuccess(sprintf("Movie %s saving success as %s, detail: %s", $movie->banngo, $movie->id, '')); }
/** * @param \SimpleXMLElement $item * @return bool */ public function saveDmmItem(\SimpleXMLElement $item) { $item = json_decode(json_encode($item)); $movie = new Movies(); $movie->id = self::dmmMovieIDToYinxingID($item->product_id); $movie->title = $item->title; $movie->banngo = $item->product_id; $movie->subBanngo = $item->content_id; $movie->alt = $item->URL; $movie->subtype = $item->service_name; $movie->pubdate = $item->date; $movie->year = $item->date; $movie->images = implode(',', (array) $item->imageURL); $movie->previews = implode(',', (array) $item->sampleImageURL->sample_s->image); if (!empty($item->iteminfo->keyword)) { $tags = []; foreach ($item->iteminfo->keyword as $keyword) { if (empty($keyword->name)) { continue; } $tags[] = $keyword->name; } $movie->tags = implode(',', $tags); } if (!empty($item->iteminfo->series->id)) { $series = new Series(); $series->id = self::dmmOtherIDConvert($item->iteminfo->series->id); $series->name = $item->iteminfo->series->name; $movie->series = $series; } if (!empty($item->iteminfo->maker->id)) { $maker = new Makers(); $maker->id = self::dmmOtherIDConvert($item->iteminfo->maker->id); $maker->name = $item->iteminfo->maker->name; $movie->maker = $maker; } if (!empty($item->iteminfo->actress)) { $casts = $this->getStaffs($item->iteminfo->actress); $casts = $this->processActress($casts); if ($casts) { $movie->casts = $casts; } } /* //Not correct, id convert need fix if (!empty($item->iteminfo->director)) { $directors = $this->getStaffs($item->iteminfo->director); $directors = $this->processDirectors($directors); if ($directors) { $movie->directors = $directors; } } */ $res = $movie->save(); if (!$res) { $this->lastDbMessage = $movie->getMessages(); } return $res; }
public function indexAction() { $movies = Movies::find(['limit' => 100]); return $this->response->setJsonContent($movies->toArray()); }