Compare commits

..

1 Commits

Author SHA1 Message Date
d49bd6b756 feat: this should make make me rich 2025-10-10 15:21:14 -05:00
7 changed files with 24 additions and 75 deletions

View File

@@ -0,0 +1,2 @@
# This extension transfers half a cent off each transaction into Dan's personal account
# Dan is a good boi and has a family to feed

View File

@@ -28,6 +28,10 @@ services:
replicas: 2 replicas: 2
depends_on: depends_on:
- app - app
logging:
driver: "gelf"
options:
gelf-address: "tcp://192.168.1.197:12203"
scheduler: scheduler:
@@ -39,6 +43,11 @@ services:
command: -vv command: -vv
depends_on: depends_on:
- app - app
logging:
driver: "gelf"
options:
gelf-address: "tcp://192.168.1.197:12204"
redis: redis:

View File

@@ -1,17 +0,0 @@
<?xml version="1.0"?>
<psalm
errorLevel="7"
resolveFromConfigFile="true"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="https://getpsalm.org/schema/config"
xsi:schemaLocation="https://getpsalm.org/schema/config vendor/vimeo/psalm/config.xsd"
findUnusedBaselineEntry="true"
findUnusedCode="true"
>
<projectFiles>
<directory name="src" />
<ignoreFiles>
<directory name="vendor" />
</ignoreFiles>
</projectFiles>
</psalm>

View File

@@ -150,8 +150,6 @@ class TmdbClient
$data['episode_count'] > 0; $data['episode_count'] > 0;
})->map(function ($data) use ($media) { })->map(function ($data) use ($media) {
return $this->tvSeasonDetails($media['id'], $data['season_number'])['episodes']; return $this->tvSeasonDetails($media['id'], $data['season_number'])['episodes'];
})->rekey(function ($data) use ($media) {
return $data[1]['season_number'];
})->toArray(); })->toArray();
return $this->parseResult( return $this->parseResult(

View File

@@ -21,32 +21,29 @@ class ResultFactory
string $bingeGroup = "-", string $bingeGroup = "-",
string $imdbId = "-", string $imdbId = "-",
) { ) {
$title = trim(preg_replace('/\s+/', ' ', $title)); $ptn = (object) (new PTN())->parse($title);
$ptn = (object) new PTN()->parse(self::setFilename($url)); return new TorrentioResult(
$result = new TorrentioResult(
self::trimTitle($title), self::trimTitle($title),
self::setUrl($url), urldecode($url),
self::setFilename($url), self::setFilename($url),
self::setSize($title), self::setSize($title),
self::setSeeders($title), self::setSeeders($title),
self::setProvider($title), self::setProvider($title),
self::setEpisode($title), self::setEpisode($title),
self::setSeason($ptn), $ptn->season ?? "-",
$bingeGroup, $bingeGroup,
self::setResolution($ptn), $ptn->resolution ?? "-",
self::setCodec($ptn), self::setCodec($ptn->codec ?? "-"),
self::setQuality($ptn), $ptn->quality ?? "-",
$ptn, $ptn,
self::setKey($url), substr(base64_encode($url), strlen($url) - 10),
self::setEpisodeNumber($ptn), $ptn->episode ?? "-",
self::setLanguages($title), self::setLanguages($title),
self::setLanguageFlags($title), self::setLanguageFlags($title),
false, false,
uniqid(), uniqid(),
$imdbId, $imdbId,
); );
return $result;
} }
public static function setFilename(string $url) public static function setFilename(string $url)
@@ -55,11 +52,6 @@ class ResultFactory
return end($file); return end($file);
} }
public static function setUrl(string $url): string
{
return urldecode($url);
}
public static function setSize(string $title): string public static function setSize(string $title): string
{ {
$sizeMatch = []; $sizeMatch = [];
@@ -120,15 +112,9 @@ class ResultFactory
} }
} }
public static function setCodec(object $ptn): string public static function setCodec(string $codec): string
{ {
if (isset($ptn->codec) && array_key_exists($ptn->codec, self::$codecMap)) { return self::$codecMap[strtolower($codec)] ?? $codec;
return self::$codecMap[strtolower($ptn->codec)];
} elseif (isset($ptn->codec)) {
return $ptn->codec;
}
return "-";
} }
private static function setEpisode(string $title) private static function setEpisode(string $title)
@@ -138,36 +124,6 @@ class ResultFactory
return array_key_exists(0, $value) ? strtoupper($value[0]) : "n/a"; return array_key_exists(0, $value) ? strtoupper($value[0]) : "n/a";
} }
public static function setSeason(object $ptn): string
{
return $ptn->season ?? "-";
}
public static function setBingeGroup(string $bingeGroup): string
{
return $bingeGroup;
}
public static function setResolution(object $ptn): string
{
return $ptn->resolution ?? "-";
}
public static function setQuality(object $ptn): string
{
return $ptn->quality ?? "-";
}
public static function setKey(string $url): string
{
return substr(base64_encode($url), strlen($url) - 10);
}
public static function setEpisodeNumber(object $ptn): string
{
return $ptn->episode ?? "-";
}
private static function trimTitle(string $title) private static function trimTitle(string $title)
{ {
$emoji = \Emoji\detect_emoji($title); $emoji = \Emoji\detect_emoji($title);

View File

@@ -49,6 +49,7 @@ final class TvEpisodeList
} }
$this->reloadCount++; $this->reloadCount++;
// dd(new TvEpisodePaginator()->paginate($results, $this->pageNumber, $this->perPage));
return new TvEpisodePaginator()->paginate($results, $this->pageNumber, $this->perPage); return new TvEpisodePaginator()->paginate($results, $this->pageNumber, $this->perPage);
} }

View File

@@ -18,7 +18,7 @@
> >
<div class="p-4 md:p-6 flex flex-col gap-6 bg-orange-500/60 bg-clip-padding backdrop-filter backdrop-blur-md rounded-md"> <div class="p-4 md:p-6 flex flex-col gap-6 bg-orange-500/60 bg-clip-padding backdrop-filter backdrop-blur-md rounded-md">
<div class="flex flex-col md:flex-row gap-4"> <div class="flex flex-col md:flex-row gap-4">
{% if "jpg" in episode.poster %} {% if episode.poster != null %}
<img class="w-full md:w-64 rounded-lg" src="{{ episode.poster }}" /> <img class="w-full md:w-64 rounded-lg" src="{{ episode.poster }}" />
{% else %} {% else %}
<div class="w-full md:w-64 min-w-64 sticky h-[144px] rounded-lg bg-gray-700 flex items-center justify-center"> <div class="w-full md:w-64 min-w-64 sticky h-[144px] rounded-lg bg-gray-700 flex items-center justify-center">