Compare commits
6 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
bd6918abd1 | ||
|
|
9a0b0443d4 | ||
| 1726b21d1d | |||
|
|
207fd26f50 | ||
|
|
aa357725e8 | ||
|
|
759f64ea22 |
3
.gitignore
vendored
3
.gitignore
vendored
@@ -24,3 +24,6 @@ phpstan.neon
|
||||
/phpunit.xml
|
||||
/.phpunit.cache/
|
||||
###< phpunit/phpunit ###
|
||||
|
||||
docs/examples/movies/
|
||||
docs/examples/tvshows/
|
||||
|
||||
@@ -3,6 +3,9 @@ FROM code.caldwell.digital/home/torsearch-base:php8.4
|
||||
ARG APP_VERSION="0.0.0-dev"
|
||||
ENV APP_VERSION="${APP_VERSION}"
|
||||
|
||||
ARG TMDB_API=""
|
||||
ENV TMDB_API="${TMDB_API}"
|
||||
|
||||
COPY . /app
|
||||
COPY --chmod=775 docker/app/entrypoint.sh /usr/local/bin/docker-entrypoint
|
||||
COPY docker/app/Caddyfile /etc/frankenphp/Caddyfile
|
||||
|
||||
@@ -17,6 +17,9 @@ FROM code.caldwell.digital/home/torsearch-base-worker-supervisord:latest
|
||||
# Set the APP_VERSION in the image
|
||||
ENV APP_VERSION=${APP_VERSION}
|
||||
|
||||
ARG TMDB_API=""
|
||||
ENV TMDB_API="${TMDB_API}"
|
||||
|
||||
# Copy the actual application code from the previously built app
|
||||
COPY --chown=1000:1000 --from=app_image /app /app
|
||||
|
||||
|
||||
@@ -17,6 +17,9 @@ FROM code.caldwell.digital/home/torsearch-base-worker-supervisord:latest
|
||||
# Set the APP_VERSION in the image
|
||||
ENV APP_VERSION=${APP_VERSION}
|
||||
|
||||
ARG TMDB_API=""
|
||||
ENV TMDB_API="${TMDB_API}"
|
||||
|
||||
# Copy the actual application code from the previously built app
|
||||
COPY --chown=1000:1000 --from=app_image /app /app
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
# Torsearch #
|
||||
###################
|
||||
# The version of Torsearch to run. Docker will this tag.
|
||||
TAG=0.38.0
|
||||
TAG=latest
|
||||
|
||||
# The port for which the web server (app container) will
|
||||
# serve the application on the host.
|
||||
@@ -11,8 +11,8 @@ WEB_PORT=8004
|
||||
# The host directories where your media is stored.
|
||||
# If you would like to use a docker driver for a network
|
||||
# share, update the compose.yml file to reflect that.
|
||||
LOCAL_MOVIES_DIR="<enter movies dir>"
|
||||
LOCAL_TVSHOWS_DIR="<enter tvshows dir>"
|
||||
LOCAL_MOVIES_DIR="./movies"
|
||||
LOCAL_TVSHOWS_DIR="./tvshows"
|
||||
|
||||
# Set the timezone you're in. This helps render monitored items correctly on the calendar
|
||||
TZ=America/Chicago
|
||||
@@ -34,6 +34,8 @@ APP_ENV=prod
|
||||
# Mercure is a Caddy module built into the webserver
|
||||
# that facilitates the usage of websockets to transmit
|
||||
# real time data (download progress, etc.)
|
||||
# TBH, I've only run into issues when changing these. If
|
||||
# you have problems after changing them, just revert them.
|
||||
MERCURE_JWT_SECRET="!ChangeThisMercureHubJWTSecretKey!"
|
||||
MERCURE_PUBLISHER_JWT_KEY="!ChangeThisMercureHubJWTSecretKey!"
|
||||
MERCURE_SUBSCRIBER_JWT_KEY="!ChangeThisMercureHubJWTSecretKey!"
|
||||
@@ -45,11 +47,11 @@ MERCURE_SUBSCRIBER_JWT_KEY="!ChangeThisMercureHubJWTSecretKey!"
|
||||
# Use the DATABASE_URL below to use the MariaDB container
|
||||
# provided in the example.compose.yml file, or remove this
|
||||
# line and fill in the details of your own MySQL/MariaDB server
|
||||
MYSQL_RANDOM_ROOT_PASSWORD=true
|
||||
MYSQL_DATABASE=app
|
||||
MYSQL_USER=app
|
||||
MYSQL_PASSWORD=password
|
||||
MYSQL_PASSWORD="P@ssword123"
|
||||
MYSQL_DATABASE=app
|
||||
MYSQL_HOST=database
|
||||
MYSQL_RANDOM_ROOT_PASSWORD=true
|
||||
DATABASE_URL="mysql://${MYSQL_USER}:${MYSQL_PASSWORD}@${MYSQL_HOST}:3306/${MYSQL_DATABASE}?serverVersion=10.11.2-MariaDB&charset=utf8mb4"
|
||||
|
||||
|
||||
@@ -60,15 +62,6 @@ DATABASE_URL="mysql://${MYSQL_USER}:${MYSQL_PASSWORD}@${MYSQL_HOST}:3306/${MYSQL
|
||||
REAL_DEBRID_KEY="<enter real debrid api key>"
|
||||
|
||||
|
||||
###################
|
||||
# TMDB #
|
||||
###################
|
||||
# Enter your TMDB API key
|
||||
# This is used to provide rich search results when searching
|
||||
# for media and rendering the Popular Movies and TV Shows section.
|
||||
TMDB_API="<enter tmdb api key>"
|
||||
|
||||
|
||||
###################
|
||||
# Redis #
|
||||
###################
|
||||
|
||||
@@ -43,7 +43,7 @@ services:
|
||||
- mysql:/var/lib/mysql
|
||||
env_file: .env
|
||||
healthcheck:
|
||||
test: [ "CMD", "mysqladmin", "-u", "${MYSQL_USER}", "-p", "${MYSQL_PASSWORD}" ,"ping", "-h", "localhost" ]
|
||||
test: [ "CMD", "mysqladmin" ,"ping", "-h", "localhost" ]
|
||||
interval: 5s
|
||||
timeout: 5s
|
||||
retries: 10
|
||||
|
||||
@@ -99,6 +99,7 @@ readonly class DownloadMediaHandler implements HandlerInterface
|
||||
|
||||
$badFileLocations = [
|
||||
'https://torrentio.strem.fun/videos/failed_infringement_v2.mp4' => 'Removed for Copyright Infringement.',
|
||||
'https://torrentio.strem.fun/videos/downloading_v2.mp4' => 'Your torrent is downloading to your debrid provider.'
|
||||
];
|
||||
|
||||
$headers = get_headers($downloadUrl, true);
|
||||
|
||||
@@ -71,6 +71,7 @@ readonly class DownloadSeasonHandler implements HandlerInterface
|
||||
$this->logger->info('> [DownloadTvSeasonHandler] ......Found 1 matching result');
|
||||
$this->logger->info('> [DownloadTvSeasonHandler] ......Dispatching DownloadMediaCommand for "' . $series->title . '" season ' . $command->season . ' episode ' . $episode->episodeNumber);
|
||||
$download = $this->createDownload($command, $result->url, $series->title, $result->filename, $episode->episodeNumber);
|
||||
$this->logger->info('> [DownloadTvSeasonHandler] ......Created Download entity with id ' . $download->getId());
|
||||
$downloadCommand = new DownloadMediaCommand(
|
||||
$download->getUrl(),
|
||||
$download->getTitle(),
|
||||
@@ -105,6 +106,7 @@ readonly class DownloadSeasonHandler implements HandlerInterface
|
||||
$download->setEpisodeId($this->getEpisodeNumber($command->season, $episodeNumber));
|
||||
$download->setUser($this->userRepository->find($command->userId));
|
||||
$this->downloadRepository->getEntityManager()->persist($download);
|
||||
$this->downloadRepository->getEntityManager()->flush();
|
||||
return $download;
|
||||
}
|
||||
|
||||
|
||||
@@ -89,6 +89,7 @@ class DownloadOptionEvaluator
|
||||
{
|
||||
$badFileLocations = [
|
||||
'https://torrentio.strem.fun/videos/failed_infringement_v2.mp4' => 'Removed for Copyright Infringement.',
|
||||
'https://torrentio.strem.fun/videos/downloading_v2.mp4' => 'Your torrent is downloading to your debrid provider.'
|
||||
];
|
||||
|
||||
$headers = get_headers($downloadUrl, true);
|
||||
|
||||
@@ -2,15 +2,14 @@
|
||||
|
||||
{% block body %}
|
||||
<h2 class="px-4 py-4 text-3xl font-extrabold text-orange-500">500</h2>
|
||||
<div class="flex flex-col bg-orange-500/50 p-4 rounded-lg gap-4 w-full md:w-[420px] border-orange-500 border-2 text-gray-50 animate-fade">
|
||||
<div class="flex flex-col bg-orange-500/50 p-4 rounded-lg gap-4 w-full md:w-[540px] border-orange-500 border-2 text-gray-50 animate-fade">
|
||||
<div class="flex flex-col m-0 text-center">
|
||||
<h3 class="text-2xl text-bold text-center text-gray-50">Oh crap!</h3>
|
||||
</div>
|
||||
<p class="mb-2">There are many things I'm capable of, but this ain't one of 'em!</p>
|
||||
<pre class="bg-gray-800 text-white p-4 rounded-md overflow-x-auto">
|
||||
<code class="language-plaintext">
|
||||
{{ exception.message }}
|
||||
</code>
|
||||
</pre>
|
||||
<p class="text-sm mb-1">
|
||||
<code>{{ exception.file }}</code>
|
||||
</p>
|
||||
<pre class="bg-gray-800 text-white p-4 rounded-md overflow-x-auto"><code class="language-plaintext">{{ exception.message|trim }}</code></pre>
|
||||
</div>
|
||||
{% endblock %}
|
||||
|
||||
Reference in New Issue
Block a user