'err', 'message' => 'Duplicate id ' . $prog['id']]; $ids []= $prog['id']; if (!file_exists($prog['imgfront_path'])) return ['result'=>'err', 'message' => 'Image not found ' . $prog['title_short']]; if (!file_exists($prog['imgfull_path'])) return ['result'=>'err', 'message' => 'Image not found ' . $prog['title_short']]; foreach ($prog['extraimages_paths'] as $eipath) { if (!file_exists($eipath)) return ['result'=>'err', 'message' => 'Extra-Image not found ' . $prog['title_short']]; } if ($prog['book_count'] <= 0) return ['result'=>'err', 'message' => 'BookCount must be greater than zero ' . $prog['title_short']]; if ($prog['book_count'] > 1 && !is_array($prog['pdf'])) return ['result'=>'err', 'message' => 'Attribute [pdf] must be an array ' . $prog['title_short']]; if ($prog['book_count'] > 1 && count($prog['pdf']) !== $prog['book_count']) return ['result'=>'err', 'message' => 'Attribute [pdf] must be the correct size ' . $prog['title_short']]; if ($prog['book_count'] === 1 && !is_string($prog['pdf'])) return ['result'=>'err', 'message' => 'Attribute [pdf] must be an string ' . $prog['title_short']]; if ($prog['book_count'] > 1 && !is_array($prog['pages'])) return ['result'=>'err', 'message' => 'Attribute [pages] must be an array ' . $prog['title_short']]; if ($prog['book_count'] > 1 && count($prog['pages']) !== $prog['book_count']) return ['result'=>'err', 'message' => 'Attribute [pages] must be the correct size ' . $prog['title_short']]; if ($prog['book_count'] === 1 && !is_string($prog['pages'])) return ['result'=>'err', 'message' => 'Attribute [pages] must be an string ' . $prog['title_short']]; } if ($warn != null) return $warn; return ['result'=>'ok', 'message' => '']; } public static function checkThumbnails() { foreach (self::listAll() as $book) { if (!file_exists($book['preview_path'])) return ['result'=>'err', 'message' => 'Preview not found ' . $book['title_short']]; } return ['result'=>'ok', 'message' => '']; } public static function createPreview($prog) { global $CONFIG; $src = $prog['imgfront_path']; $dst = $prog['preview_path']; if ($CONFIG['use_magick']) magick_resize_image($src, 200, 0, $dst); else smart_resize_image($src, 200, 0, true, $dst); } public static function getBook($id) { foreach (self::listAll() as $book) { if ($book['id'] == $id) return $book; } return null; } public static function getRepositoryHost($book) { $r = $book['repository']; if (startsWith($r, "http://")) $r = substr($r, strlen("http://")); if (startsWith($r, "https://")) $r = substr($r, strlen("https://")); if (startsWith($r, "www.")) $r = substr($r, strlen("www.")); if (startsWith(strtolower($r), "gitlab")) return "Gitlab"; if (startsWith(strtolower($r), "github")) return "Github"; if (startsWith(strtolower($r), "bitbucket")) return "Bitbucket"; return "Online"; } }