Loading Dockerfile +2 −0 Original line number Diff line number Diff line Loading @@ -50,6 +50,8 @@ RUN apt-get update \ # gd for image processing && docker-php-ext-configure gd --with-webp --with-jpeg --with-freetype \ && docker-php-ext-install gd \ && docker-php-ext-install exif \ && docker-php-ext-enable exif \ # redis extension for cache && pecl install -o -f redis \ && rm -rf /tmp/pear \ Loading app/Controllers/MapController.php +1 −1 Original line number Diff line number Diff line Loading @@ -46,7 +46,7 @@ class MapController extends BaseController 'location_url' => $episode->location->url, 'episode_link' => $episode->link, 'podcast_link' => $episode->podcast->link, 'cover_path' => $episode->cover->thumbnail_url, 'cover_url' => $episode->cover->thumbnail_url, 'podcast_title' => $episode->podcast->title, 'episode_title' => $episode->title, ]; Loading app/Database/Migrations/2020-05-29-120000_add_media.php 0 → 100644 +83 −0 Original line number Diff line number Diff line <?php declare(strict_types=1); /** * @copyright 2021 Podlibre * @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3 * @link https://castopod.org/ */ namespace App\Database\Migrations; use CodeIgniter\Database\Migration; class AddMedia extends Migration { public function up(): void { $this->forge->addField([ 'id' => [ 'type' => 'INT', 'unsigned' => true, 'auto_increment' => true, ], 'file_path' => [ 'type' => 'VARCHAR', 'constraint' => 255, ], 'file_size' => [ 'type' => 'INT', 'unsigned' => true, 'comment' => 'File size in bytes', ], 'file_content_type' => [ 'type' => 'VARCHAR', 'constraint' => 45, ], 'file_metadata' => [ 'type' => 'JSON', 'nullable' => true, ], 'type' => [ 'type' => 'ENUM', 'constraint' => ['image', 'audio', 'video', 'transcript', 'chapters', 'document'], ], 'description' => [ 'type' => 'TEXT', ], 'language_code' => [ 'type' => 'VARCHAR', 'constraint' => 2, ], 'uploaded_by' => [ 'type' => 'INT', 'unsigned' => true, ], 'updated_by' => [ 'type' => 'INT', 'unsigned' => true, ], 'uploaded_at' => [ 'type' => 'DATETIME', ], 'updated_at' => [ 'type' => 'DATETIME', ], 'deleted_at' => [ 'type' => 'DATETIME', 'null' => true, ], ]); $this->forge->addKey('id', true); $this->forge->addForeignKey('uploaded_by', 'users', 'id'); $this->forge->addForeignKey('updated_by', 'users', 'id'); $this->forge->createTable('media'); } public function down(): void { $this->forge->dropTable('media'); } } app/Database/Migrations/2020-05-30-101500_add_podcasts.php +8 −18 Original line number Diff line number Diff line Loading @@ -46,25 +46,13 @@ class AddPodcasts extends Migration 'description_html' => [ 'type' => 'TEXT', ], 'cover_path' => [ 'type' => 'VARCHAR', 'constraint' => 255, ], // constraint is 13 because the longest safe mimetype for images is image/svg+xml, // see https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types#image_types 'cover_mimetype' => [ 'type' => 'VARCHAR', 'constraint' => 13, ], 'banner_path' => [ 'type' => 'VARCHAR', 'constraint' => 255, 'null' => true, 'default' => null, 'cover_id' => [ 'type' => 'INT', 'unsigned' => true, ], 'banner_mimetype' => [ 'type' => 'VARCHAR', 'constraint' => 13, 'banner_id' => [ 'type' => 'INT', 'unsigned' => true, 'null' => true, 'default' => null, ], Loading Loading @@ -209,6 +197,8 @@ class AddPodcasts extends Migration $this->forge->addUniqueKey('guid'); $this->forge->addUniqueKey('actor_id'); $this->forge->addForeignKey('actor_id', config('Fediverse')->tablesPrefix . 'actors', 'id', '', 'CASCADE'); $this->forge->addForeignKey('cover_id', 'media', 'id'); $this->forge->addForeignKey('banner_id', 'media', 'id'); $this->forge->addForeignKey('category_id', 'categories', 'id'); $this->forge->addForeignKey('language_code', 'languages', 'code'); $this->forge->addForeignKey('created_by', 'users', 'id'); Loading app/Database/Migrations/2020-06-05-170000_add_episodes.php +16 −39 Original line number Diff line number Diff line Loading @@ -40,29 +40,9 @@ class AddEpisodes extends Migration 'type' => 'VARCHAR', 'constraint' => 128, ], 'audio_file_path' => [ 'type' => 'VARCHAR', 'constraint' => 255, ], 'audio_file_duration' => [ // exact value for duration with max 99999,999 ~ 27.7 hours 'type' => 'DECIMAL(8,3)', 'unsigned' => true, 'comment' => 'Playtime in seconds', ], 'audio_file_mimetype' => [ 'type' => 'VARCHAR', 'constraint' => 255, ], 'audio_file_size' => [ 'type' => 'INT', 'unsigned' => true, 'comment' => 'File size in bytes', ], 'audio_file_header_size' => [ 'audio_id' => [ 'type' => 'INT', 'unsigned' => true, 'comment' => 'Header size in bytes', ], 'description_markdown' => [ 'type' => 'TEXT', Loading @@ -70,34 +50,27 @@ class AddEpisodes extends Migration 'description_html' => [ 'type' => 'TEXT', ], 'cover_path' => [ 'type' => 'VARCHAR', 'constraint' => 255, 'null' => true, ], // constraint is 13 because the longest safe mimetype for images is image/svg+xml, // see https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types#image_types 'cover_mimetype' => [ 'type' => 'VARCHAR', 'constraint' => 13, 'cover_id' => [ 'type' => 'INT', 'unsigned' => true, 'null' => true, ], 'transcript_file_path' => [ 'type' => 'VARCHAR', 'constraint' => 255, 'transcript_id' => [ 'type' => 'INT', 'unsigned' => true, 'null' => true, ], 'transcript_file_remote_url' => [ 'transcript_remote_url' => [ 'type' => 'VARCHAR', 'constraint' => 512, 'null' => true, ], 'chapters_file_path' => [ 'type' => 'VARCHAR', 'constraint' => 255, 'chapters_id' => [ 'type' => 'INT', 'unsigned' => true, 'null' => true, ], 'chapters_file_remote_url' => [ 'chapters_remote_url' => [ 'type' => 'VARCHAR', 'constraint' => 512, 'null' => true, Loading Loading @@ -183,6 +156,10 @@ class AddEpisodes extends Migration $this->forge->addPrimaryKey('id'); $this->forge->addUniqueKey(['podcast_id', 'slug']); $this->forge->addForeignKey('podcast_id', 'podcasts', 'id', '', 'CASCADE'); $this->forge->addForeignKey('audio_id', 'media', 'id'); $this->forge->addForeignKey('cover_id', 'media', 'id'); $this->forge->addForeignKey('transcript_id', 'media', 'id'); $this->forge->addForeignKey('chapters_id', 'media', 'id'); $this->forge->addForeignKey('created_by', 'users', 'id'); $this->forge->addForeignKey('updated_by', 'users', 'id'); $this->forge->createTable('episodes'); Loading Loading
Dockerfile +2 −0 Original line number Diff line number Diff line Loading @@ -50,6 +50,8 @@ RUN apt-get update \ # gd for image processing && docker-php-ext-configure gd --with-webp --with-jpeg --with-freetype \ && docker-php-ext-install gd \ && docker-php-ext-install exif \ && docker-php-ext-enable exif \ # redis extension for cache && pecl install -o -f redis \ && rm -rf /tmp/pear \ Loading
app/Controllers/MapController.php +1 −1 Original line number Diff line number Diff line Loading @@ -46,7 +46,7 @@ class MapController extends BaseController 'location_url' => $episode->location->url, 'episode_link' => $episode->link, 'podcast_link' => $episode->podcast->link, 'cover_path' => $episode->cover->thumbnail_url, 'cover_url' => $episode->cover->thumbnail_url, 'podcast_title' => $episode->podcast->title, 'episode_title' => $episode->title, ]; Loading
app/Database/Migrations/2020-05-29-120000_add_media.php 0 → 100644 +83 −0 Original line number Diff line number Diff line <?php declare(strict_types=1); /** * @copyright 2021 Podlibre * @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3 * @link https://castopod.org/ */ namespace App\Database\Migrations; use CodeIgniter\Database\Migration; class AddMedia extends Migration { public function up(): void { $this->forge->addField([ 'id' => [ 'type' => 'INT', 'unsigned' => true, 'auto_increment' => true, ], 'file_path' => [ 'type' => 'VARCHAR', 'constraint' => 255, ], 'file_size' => [ 'type' => 'INT', 'unsigned' => true, 'comment' => 'File size in bytes', ], 'file_content_type' => [ 'type' => 'VARCHAR', 'constraint' => 45, ], 'file_metadata' => [ 'type' => 'JSON', 'nullable' => true, ], 'type' => [ 'type' => 'ENUM', 'constraint' => ['image', 'audio', 'video', 'transcript', 'chapters', 'document'], ], 'description' => [ 'type' => 'TEXT', ], 'language_code' => [ 'type' => 'VARCHAR', 'constraint' => 2, ], 'uploaded_by' => [ 'type' => 'INT', 'unsigned' => true, ], 'updated_by' => [ 'type' => 'INT', 'unsigned' => true, ], 'uploaded_at' => [ 'type' => 'DATETIME', ], 'updated_at' => [ 'type' => 'DATETIME', ], 'deleted_at' => [ 'type' => 'DATETIME', 'null' => true, ], ]); $this->forge->addKey('id', true); $this->forge->addForeignKey('uploaded_by', 'users', 'id'); $this->forge->addForeignKey('updated_by', 'users', 'id'); $this->forge->createTable('media'); } public function down(): void { $this->forge->dropTable('media'); } }
app/Database/Migrations/2020-05-30-101500_add_podcasts.php +8 −18 Original line number Diff line number Diff line Loading @@ -46,25 +46,13 @@ class AddPodcasts extends Migration 'description_html' => [ 'type' => 'TEXT', ], 'cover_path' => [ 'type' => 'VARCHAR', 'constraint' => 255, ], // constraint is 13 because the longest safe mimetype for images is image/svg+xml, // see https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types#image_types 'cover_mimetype' => [ 'type' => 'VARCHAR', 'constraint' => 13, ], 'banner_path' => [ 'type' => 'VARCHAR', 'constraint' => 255, 'null' => true, 'default' => null, 'cover_id' => [ 'type' => 'INT', 'unsigned' => true, ], 'banner_mimetype' => [ 'type' => 'VARCHAR', 'constraint' => 13, 'banner_id' => [ 'type' => 'INT', 'unsigned' => true, 'null' => true, 'default' => null, ], Loading Loading @@ -209,6 +197,8 @@ class AddPodcasts extends Migration $this->forge->addUniqueKey('guid'); $this->forge->addUniqueKey('actor_id'); $this->forge->addForeignKey('actor_id', config('Fediverse')->tablesPrefix . 'actors', 'id', '', 'CASCADE'); $this->forge->addForeignKey('cover_id', 'media', 'id'); $this->forge->addForeignKey('banner_id', 'media', 'id'); $this->forge->addForeignKey('category_id', 'categories', 'id'); $this->forge->addForeignKey('language_code', 'languages', 'code'); $this->forge->addForeignKey('created_by', 'users', 'id'); Loading
app/Database/Migrations/2020-06-05-170000_add_episodes.php +16 −39 Original line number Diff line number Diff line Loading @@ -40,29 +40,9 @@ class AddEpisodes extends Migration 'type' => 'VARCHAR', 'constraint' => 128, ], 'audio_file_path' => [ 'type' => 'VARCHAR', 'constraint' => 255, ], 'audio_file_duration' => [ // exact value for duration with max 99999,999 ~ 27.7 hours 'type' => 'DECIMAL(8,3)', 'unsigned' => true, 'comment' => 'Playtime in seconds', ], 'audio_file_mimetype' => [ 'type' => 'VARCHAR', 'constraint' => 255, ], 'audio_file_size' => [ 'type' => 'INT', 'unsigned' => true, 'comment' => 'File size in bytes', ], 'audio_file_header_size' => [ 'audio_id' => [ 'type' => 'INT', 'unsigned' => true, 'comment' => 'Header size in bytes', ], 'description_markdown' => [ 'type' => 'TEXT', Loading @@ -70,34 +50,27 @@ class AddEpisodes extends Migration 'description_html' => [ 'type' => 'TEXT', ], 'cover_path' => [ 'type' => 'VARCHAR', 'constraint' => 255, 'null' => true, ], // constraint is 13 because the longest safe mimetype for images is image/svg+xml, // see https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types#image_types 'cover_mimetype' => [ 'type' => 'VARCHAR', 'constraint' => 13, 'cover_id' => [ 'type' => 'INT', 'unsigned' => true, 'null' => true, ], 'transcript_file_path' => [ 'type' => 'VARCHAR', 'constraint' => 255, 'transcript_id' => [ 'type' => 'INT', 'unsigned' => true, 'null' => true, ], 'transcript_file_remote_url' => [ 'transcript_remote_url' => [ 'type' => 'VARCHAR', 'constraint' => 512, 'null' => true, ], 'chapters_file_path' => [ 'type' => 'VARCHAR', 'constraint' => 255, 'chapters_id' => [ 'type' => 'INT', 'unsigned' => true, 'null' => true, ], 'chapters_file_remote_url' => [ 'chapters_remote_url' => [ 'type' => 'VARCHAR', 'constraint' => 512, 'null' => true, Loading Loading @@ -183,6 +156,10 @@ class AddEpisodes extends Migration $this->forge->addPrimaryKey('id'); $this->forge->addUniqueKey(['podcast_id', 'slug']); $this->forge->addForeignKey('podcast_id', 'podcasts', 'id', '', 'CASCADE'); $this->forge->addForeignKey('audio_id', 'media', 'id'); $this->forge->addForeignKey('cover_id', 'media', 'id'); $this->forge->addForeignKey('transcript_id', 'media', 'id'); $this->forge->addForeignKey('chapters_id', 'media', 'id'); $this->forge->addForeignKey('created_by', 'users', 'id'); $this->forge->addForeignKey('updated_by', 'users', 'id'); $this->forge->createTable('episodes'); Loading