feat: creates cache pools for torrentio & tmdb
This commit is contained in:
@@ -15,5 +15,8 @@ framework:
|
|||||||
#app: cache.adapter.apcu
|
#app: cache.adapter.apcu
|
||||||
|
|
||||||
# Namespaced pools use the above "app" backend by default
|
# Namespaced pools use the above "app" backend by default
|
||||||
#pools:
|
pools:
|
||||||
#my.dedicated.cache: null
|
torrentio.cache:
|
||||||
|
adapter: cache.app
|
||||||
|
tmdb.cache:
|
||||||
|
adapter: cache.app
|
||||||
|
|||||||
@@ -44,7 +44,7 @@ class Tmdb
|
|||||||
const POSTER_IMG_PATH = "https://image.tmdb.org/t/p/w500";
|
const POSTER_IMG_PATH = "https://image.tmdb.org/t/p/w500";
|
||||||
|
|
||||||
public function __construct(
|
public function __construct(
|
||||||
private readonly CacheItemPoolInterface $cache,
|
private readonly CacheItemPoolInterface $tmdbCache,
|
||||||
private readonly EventDispatcherInterface $eventDispatcher,
|
private readonly EventDispatcherInterface $eventDispatcher,
|
||||||
#[Autowire(env: 'TMDB_API')] string $apiKey,
|
#[Autowire(env: 'TMDB_API')] string $apiKey,
|
||||||
) {
|
) {
|
||||||
@@ -78,7 +78,7 @@ class Tmdb
|
|||||||
$requestListener = new Psr6CachedRequestListener(
|
$requestListener = new Psr6CachedRequestListener(
|
||||||
$this->client->getHttpClient(),
|
$this->client->getHttpClient(),
|
||||||
$this->eventDispatcher,
|
$this->eventDispatcher,
|
||||||
$cache,
|
$tmdbCache,
|
||||||
$this->client->getHttpClient()->getPsr17StreamFactory(),
|
$this->client->getHttpClient()->getPsr17StreamFactory(),
|
||||||
[]
|
[]
|
||||||
);
|
);
|
||||||
@@ -325,7 +325,7 @@ class Tmdb
|
|||||||
|
|
||||||
public function getImdbId(string $tmdbId, $mediaType)
|
public function getImdbId(string $tmdbId, $mediaType)
|
||||||
{
|
{
|
||||||
$externalIds = $this->cache->get("tmdb.externalIds.{$tmdbId}",
|
$externalIds = $this->tmdbCache->get("tmdb.externalIds.{$tmdbId}",
|
||||||
function (ItemInterface $item) use ($tmdbId, $mediaType) {
|
function (ItemInterface $item) use ($tmdbId, $mediaType) {
|
||||||
switch (MediaType::tryFrom($mediaType)->value) {
|
switch (MediaType::tryFrom($mediaType)->value) {
|
||||||
case MediaType::Movie->value:
|
case MediaType::Movie->value:
|
||||||
@@ -346,7 +346,7 @@ class Tmdb
|
|||||||
|
|
||||||
public function getImages($tmdbId, $mediaType)
|
public function getImages($tmdbId, $mediaType)
|
||||||
{
|
{
|
||||||
return $this->cache->get("tmdb.images.{$tmdbId}",
|
return $this->tmdbCache->get("tmdb.images.{$tmdbId}",
|
||||||
function (ItemInterface $item) use ($tmdbId, $mediaType) {
|
function (ItemInterface $item) use ($tmdbId, $mediaType) {
|
||||||
switch (MediaType::tryFrom($mediaType)->value) {
|
switch (MediaType::tryFrom($mediaType)->value) {
|
||||||
case MediaType::Movie->value:
|
case MediaType::Movie->value:
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ class Torrentio
|
|||||||
|
|
||||||
public function __construct(
|
public function __construct(
|
||||||
#[Autowire(env: 'REAL_DEBRID_KEY')] private string $realDebridKey,
|
#[Autowire(env: 'REAL_DEBRID_KEY')] private string $realDebridKey,
|
||||||
private TagAwareCacheInterface $cache,
|
private TagAwareCacheInterface $torrentioCache,
|
||||||
private LoggerInterface $logger,
|
private LoggerInterface $logger,
|
||||||
) {
|
) {
|
||||||
$this->searchUrl = str_replace('{realDebridKey}', $this->realDebridKey, $this->baseUrl);
|
$this->searchUrl = str_replace('{realDebridKey}', $this->realDebridKey, $this->baseUrl);
|
||||||
@@ -36,7 +36,7 @@ class Torrentio
|
|||||||
{
|
{
|
||||||
$cacheKey = "torrentio.{$imdbCode}";
|
$cacheKey = "torrentio.{$imdbCode}";
|
||||||
|
|
||||||
$results = $this->cache->get($cacheKey, function (ItemInterface $item) use ($imdbCode, $type) {
|
$results = $this->torrentioCache->get($cacheKey, function (ItemInterface $item) use ($imdbCode, $type) {
|
||||||
$item->expiresAt(Carbon::now()->addHour()->setMinute(0)->setSecond(0));
|
$item->expiresAt(Carbon::now()->addHour()->setMinute(0)->setSecond(0));
|
||||||
$item->tag(['torrentio', $type, $imdbCode]);
|
$item->tag(['torrentio', $type, $imdbCode]);
|
||||||
try {
|
try {
|
||||||
@@ -62,7 +62,7 @@ class Torrentio
|
|||||||
public function fetchEpisodeResults(string $imdbId, int $season, int $episode): array
|
public function fetchEpisodeResults(string $imdbId, int $season, int $episode): array
|
||||||
{
|
{
|
||||||
$cacheKey = "torrentio.$imdbId.$season.$episode";
|
$cacheKey = "torrentio.$imdbId.$season.$episode";
|
||||||
$results = $this->cache->get($cacheKey, function (ItemInterface $item) use ($imdbId, $season, $episode) {
|
$results = $this->torrentioCache->get($cacheKey, function (ItemInterface $item) use ($imdbId, $season, $episode) {
|
||||||
$item->expiresAt(Carbon::now()->addHour()->setMinute(0)->setSecond(0));
|
$item->expiresAt(Carbon::now()->addHour()->setMinute(0)->setSecond(0));
|
||||||
$item->tag(['torrentio', 'tvshows', 'torrentio.tvshows', $imdbId, "torrentio.$imdbId", "$imdbId.$season", "torrentio.$imdbId.$season", "$imdbId.$season.$episode", "torrentio.$imdbId.$season.$episode"]);
|
$item->tag(['torrentio', 'tvshows', 'torrentio.tvshows', $imdbId, "torrentio.$imdbId", "$imdbId.$season", "torrentio.$imdbId.$season", "$imdbId.$season.$episode", "torrentio.$imdbId.$season.$episode"]);
|
||||||
try {
|
try {
|
||||||
|
|||||||
Reference in New Issue
Block a user