Exemplo n.º 1
0
 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, ''));
 }
Exemplo n.º 2
0
 /**
  * @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;
 }
Exemplo n.º 3
0
 public function indexAction()
 {
     $movies = Movies::find(['limit' => 100]);
     return $this->response->setJsonContent($movies->toArray());
 }