Skip to content

Commit

Permalink
Merge pull request #753 from podverse/develop
Browse files Browse the repository at this point in the history
Release v4.16.19
  • Loading branch information
mitchdowney committed Apr 29, 2024
2 parents 4314494 + 4a57272 commit 8c6b84e
Show file tree
Hide file tree
Showing 19 changed files with 199 additions and 204 deletions.
79 changes: 79 additions & 0 deletions migrations/0060_drop_unused_tables.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
DROP TABLE auth_group CASCADE;
DROP TABLE auth_group_permissions CASCADE;
DROP TABLE auth_permission CASCADE;
DROP TABLE auth_user CASCADE;
DROP TABLE auth_user_groups CASCADE;
DROP TABLE auth_user_user_permissions CASCADE;
DROP TABLE django_admin_log CASCADE;
DROP TABLE django_content_type CASCADE;
DROP TABLE django_mfa_u2fkey CASCADE;
DROP TABLE django_mfa_userotp CASCADE;
DROP TABLE django_mfa_userrecoverycodes CASCADE;
DROP TABLE django_migrations CASCADE;
DROP TABLE django_session CASCADE;

DROP TABLE "recentEpisodesByCategory" CASCADE;
DROP TABLE "recentEpisodesByCategoryTemp0" CASCADE;
DROP TABLE "recentEpisodesByCategoryTemp1" CASCADE;
DROP TABLE "recentEpisodesByCategoryTemp2" CASCADE;
DROP TABLE "recentEpisodesByCategoryTemp3" CASCADE;
DROP TABLE "recentEpisodesByCategoryTemp4" CASCADE;
DROP TABLE "recentEpisodesByCategoryTemp5" CASCADE;
DROP TABLE "recentEpisodesByCategoryTemp6" CASCADE;
DROP TABLE "recentEpisodesByCategoryTemp7" CASCADE;
DROP TABLE "recentEpisodesByCategoryTemp8" CASCADE;
DROP TABLE "recentEpisodesByCategoryTemp9" CASCADE;
DROP TABLE "recentEpisodesByCategoryTemp10" CASCADE;
DROP TABLE "recentEpisodesByCategoryTemp11" CASCADE;
DROP TABLE "recentEpisodesByCategoryTemp12" CASCADE;
DROP TABLE "recentEpisodesByCategoryTemp13" CASCADE;
DROP TABLE "recentEpisodesByCategoryTemp14" CASCADE;
DROP TABLE "recentEpisodesByCategoryTemp15" CASCADE;
DROP TABLE "recentEpisodesByCategoryTemp16" CASCADE;
DROP TABLE "recentEpisodesByCategoryTemp17" CASCADE;
DROP TABLE "recentEpisodesByCategoryTemp18" CASCADE;
DROP TABLE "recentEpisodesByCategoryTemp19" CASCADE;
DROP TABLE "recentEpisodesByCategoryTemp20" CASCADE;
DROP TABLE "recentEpisodesByCategoryTemp21" CASCADE;
DROP TABLE "recentEpisodesByCategoryTemp22" CASCADE;
DROP TABLE "recentEpisodesByCategoryTemp23" CASCADE;
DROP TABLE "recentEpisodesByCategoryTemp24" CASCADE;
DROP TABLE "recentEpisodesByCategoryTemp25" CASCADE;
DROP TABLE "recentEpisodesByCategoryTemp26" CASCADE;
DROP TABLE "recentEpisodesByCategoryTemp27" CASCADE;
DROP TABLE "recentEpisodesByCategoryTemp28" CASCADE;
DROP TABLE "recentEpisodesByCategoryTemp29" CASCADE;
DROP TABLE "recentEpisodesByCategoryTemp30" CASCADE;

DROP TABLE "recentEpisodesByPodcast" CASCADE;
DROP TABLE "recentEpisodesByPodcastTemp0" CASCADE;
DROP TABLE "recentEpisodesByPodcastTemp1" CASCADE;
DROP TABLE "recentEpisodesByPodcastTemp2" CASCADE;
DROP TABLE "recentEpisodesByPodcastTemp3" CASCADE;
DROP TABLE "recentEpisodesByPodcastTemp4" CASCADE;
DROP TABLE "recentEpisodesByPodcastTemp5" CASCADE;
DROP TABLE "recentEpisodesByPodcastTemp6" CASCADE;
DROP TABLE "recentEpisodesByPodcastTemp7" CASCADE;
DROP TABLE "recentEpisodesByPodcastTemp8" CASCADE;
DROP TABLE "recentEpisodesByPodcastTemp9" CASCADE;
DROP TABLE "recentEpisodesByPodcastTemp10" CASCADE;
DROP TABLE "recentEpisodesByPodcastTemp11" CASCADE;
DROP TABLE "recentEpisodesByPodcastTemp12" CASCADE;
DROP TABLE "recentEpisodesByPodcastTemp13" CASCADE;
DROP TABLE "recentEpisodesByPodcastTemp14" CASCADE;
DROP TABLE "recentEpisodesByPodcastTemp15" CASCADE;
DROP TABLE "recentEpisodesByPodcastTemp16" CASCADE;
DROP TABLE "recentEpisodesByPodcastTemp17" CASCADE;
DROP TABLE "recentEpisodesByPodcastTemp18" CASCADE;
DROP TABLE "recentEpisodesByPodcastTemp19" CASCADE;
DROP TABLE "recentEpisodesByPodcastTemp20" CASCADE;
DROP TABLE "recentEpisodesByPodcastTemp21" CASCADE;
DROP TABLE "recentEpisodesByPodcastTemp22" CASCADE;
DROP TABLE "recentEpisodesByPodcastTemp23" CASCADE;
DROP TABLE "recentEpisodesByPodcastTemp24" CASCADE;
DROP TABLE "recentEpisodesByPodcastTemp25" CASCADE;
DROP TABLE "recentEpisodesByPodcastTemp26" CASCADE;
DROP TABLE "recentEpisodesByPodcastTemp27" CASCADE;
DROP TABLE "recentEpisodesByPodcastTemp28" CASCADE;
DROP TABLE "recentEpisodesByPodcastTemp29" CASCADE;
DROP TABLE "recentEpisodesByPodcastTemp30" CASCADE;
6 changes: 3 additions & 3 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "podverse-api",
"version": "4.16.18",
"version": "4.16.19",
"description": "Data API, database migration scripts, and backend services for all Podverse models.",
"contributors": [
"Mitch Downey"
Expand All @@ -19,6 +19,7 @@
"dev:scripts:addAllPublicFeedUrlsToQueue": "ts-node -r dotenv/config -r tsconfig-paths/register ./src/scripts/queue/addAllPublicFeedUrlsToQueue.ts",
"dev:scripts:addAllUntitledPodcastFeedUrlsToQueue": "ts-node -r dotenv/config -r tsconfig-paths/register ./src/scripts/queue/addAllUntitledPodcastFeedUrlsToQueue.ts",
"dev:scripts:addAndParseFeedUrls": "ts-node -r dotenv/config -r tsconfig-paths/register ./src/scripts/feedUrls/addAndParseFeedUrls.ts",
"dev:scripts:addAuthorityFeedUrlByPodcastIdToQueue": "ts-node -r dotenv/config -r tsconfig-paths/register ./src/scripts/queue/addAuthorityFeedUrlByPodcastIdToQueue.ts",
"dev:scripts:addFeedsByPodcastIndexIdToQueue": "ts-node -r dotenv/config -r tsconfig-paths/register ./src/scripts/podcastIndex/addFeedsByPodcastIndexIdToQueue.ts",
"dev:scripts:addFeedsToQueueByPriority": "ts-node -r dotenv/config -r tsconfig-paths/register ./src/scripts/queue/addFeedsToQueueByPriority.ts",
"dev:scripts:addFeedUrls": "ts-node -r dotenv/config -r tsconfig-paths/register ./src/scripts/feedUrls/addFeedUrls.ts",
Expand Down Expand Up @@ -46,7 +47,6 @@
"dev:scripts:removeDeadEpisodes": "ts-node -r dotenv/config -r tsconfig-paths/register ./src/scripts/episodes/removeDeadEpisodes.ts",
"dev:scripts:removePodcastsByIds": "ts-node -r dotenv/config -r tsconfig-paths/register ./src/scripts/podcasts/removePodcastsByIds.ts",
"dev:scripts:syncWithFeedUrlsCSVDump": "ts-node -r dotenv/config -r tsconfig-paths/register ./src/scripts/podcastIndex/syncWithFeedUrlsCSVDump.ts",
"dev:scripts:updateRecentEpisodesTables": "ts-node -r dotenv/config -r tsconfig-paths/register ./src/scripts/recentEpisodes/updateRecentEpisodesTables.ts",
"dev:seeds:categories": "ts-node -r dotenv/config -r tsconfig-paths/register ./src/seeds/categories.ts",
"dev:seeds:podcasts": "ts-node -r dotenv/config -r tsconfig-paths/register ./src/seeds/podcasts.ts",
"dev:seeds:qa:populateDatabase": "ts-node -r dotenv/config -r tsconfig-paths/register ./src/seeds/qa/populateDatabase.ts",
Expand All @@ -56,6 +56,7 @@
"scripts:addAllUntitledPodcastFeedUrlsToQueue": "ts-node -r tsconfig-paths/register ./src/scripts/queue/addAllUntitledPodcastFeedUrlsToQueue.ts",
"scripts:addAndParseFeedUrls": "ts-node -r tsconfig-paths/register ./src/scripts/feedUrls/addAndParseFeedUrls.ts",
"scripts:addFeedsByPodcastIndexIdToQueue": "ts-node -r tsconfig-paths/register ./src/scripts/podcastIndex/addFeedsByPodcastIndexIdToQueue.ts",
"scripts:addAuthorityFeedUrlByPodcastIdToQueue": "ts-node -r tsconfig-paths/register ./src/scripts/queue/addAuthorityFeedUrlByPodcastIdToQueue.ts",
"scripts:addFeedsToQueueByPriority": "ts-node -r tsconfig-paths/register ./src/scripts/queue/addFeedsToQueueByPriority.ts",
"scripts:addFeedUrls": "ts-node -r tsconfig-paths/register ./src/scripts/feedUrls/addFeedUrls.ts",
"scripts:addFeedUrlsByFeedIdToQueue": "ts-node -r tsconfig-paths/register ./src/scripts/queue/addFeedUrlsByFeedIdToQueue.ts",
Expand All @@ -81,7 +82,6 @@
"scripts:removeDeadEpisodes": "ts-node -r tsconfig-paths/register ./src/scripts/episodes/removeDeadEpisodes.ts",
"scripts:removePodcastsByIds": "ts-node -r tsconfig-paths/register ./src/scripts/podcasts/removePodcastsByIds.ts",
"scripts:syncWithFeedUrlsCSVDump": "ts-node -r tsconfig-paths/register ./src/scripts/podcastIndex/syncWithFeedUrlsCSVDump.ts",
"scripts:updateRecentEpisodesTables": "ts-node -r tsconfig-paths/register ./src/scripts/recentEpisodes/updateRecentEpisodesTables.ts",
"seeds:categories": "ts-node -r tsconfig-paths/register ./src/seeds/categories.ts",
"seeds:podcasts": "ts-node -r tsconfig-paths/register ./src/seeds/podcasts.ts",
"start": "ts-node -r tsconfig-paths/register src/server.ts",
Expand Down
14 changes: 14 additions & 0 deletions src/controllers/feedUrl.ts
Original file line number Diff line number Diff line change
Expand Up @@ -120,6 +120,20 @@ const getFeedUrls = (query) => {
})
}

export const getAuthorityFeedUrlByPodcastId = async (podcastId: string): Promise<FeedUrl | null> => {
const feedUrlRepo = getRepository(FeedUrl)

const feedUrl = await feedUrlRepo
.createQueryBuilder('feedUrl')
.select('feedUrl.url')
.addSelect('feedUrl.id')
.innerJoin('feedUrl.podcast', 'podcast')
.where('feedUrl.isAuthority = true AND podcast.id = :podcastId', { podcastId })
.getOne()

return feedUrl || null
}

export const getAuthorityFeedUrlByPodcastIndexId = async (podcastIndexId: string, allowNonPublic?: boolean) => {
const repository = getRepository(FeedUrl)

Expand Down
141 changes: 0 additions & 141 deletions src/controllers/recentEpisodes.ts

This file was deleted.

2 changes: 1 addition & 1 deletion src/entities/episode.ts
Original file line number Diff line number Diff line change
Expand Up @@ -190,7 +190,7 @@ export class Episode {
@OneToMany((type) => UserQueueItem, (userQueueItem) => userQueueItem.episode)
userQueueItems: UserQueueItem[]

@OneToOne(() => StatsEpisode, (stats_episode) => stats_episode.episode)
@OneToMany(() => StatsEpisode, (stats_episode) => stats_episode.episode)
stats_episode?: StatsEpisode

@CreateDateColumn()
Expand Down
2 changes: 0 additions & 2 deletions src/entities/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,6 @@ export { Notification } from './notification'
export { PayPalOrder } from './paypalOrder'
export { Playlist } from './playlist'
export { Podcast } from './podcast'
export { RecentEpisodeByCategory } from './recentEpisodeByCategory'
export { RecentEpisodeByPodcast } from './recentEpisodeByPodcast'
export { StatsEpisode } from './statsEpisode'
export { StatsMediaRef } from './statsMediaRef'
export { StatsPodcast } from './statsPodcast'
Expand Down
3 changes: 1 addition & 2 deletions src/entities/mediaRef.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@ import {
ManyToMany,
ManyToOne,
OneToMany,
OneToOne,
PrimaryColumn,
Unique,
UpdateDateColumn
Expand Down Expand Up @@ -129,7 +128,7 @@ export class MediaRef {
@OneToMany((type) => UserQueueItem, (userQueueItem) => userQueueItem.mediaRef)
userQueueItems: UserQueueItem[]

@OneToOne(() => StatsMediaRef, (stats_media_ref) => stats_media_ref.mediaRef)
@OneToMany(() => StatsMediaRef, (stats_media_ref) => stats_media_ref.mediaRef)
stats_media_ref?: StatsMediaRef

@CreateDateColumn()
Expand Down
3 changes: 1 addition & 2 deletions src/entities/podcast.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@ import {
JoinTable,
ManyToMany,
OneToMany,
OneToOne,
PrimaryColumn,
UpdateDateColumn
} from 'typeorm'
Expand Down Expand Up @@ -199,7 +198,7 @@ export class Podcast {
@OneToMany((type) => Notification, (notification) => notification.podcast)
notifications: Notification[]

@OneToOne(() => StatsPodcast, (stats_podcast) => stats_podcast.podcast)
@OneToMany(() => StatsPodcast, (stats_podcast) => stats_podcast.podcast)
stats_podcast?: StatsPodcast

@CreateDateColumn()
Expand Down
14 changes: 0 additions & 14 deletions src/entities/recentEpisodeByCategory.ts

This file was deleted.

14 changes: 0 additions & 14 deletions src/entities/recentEpisodeByPodcast.ts

This file was deleted.

13 changes: 11 additions & 2 deletions src/entities/statsEpisode.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,15 @@
import { IsInt, Min, ValidateIf } from 'class-validator'
import { Episode } from '~/entities'
import { Column, CreateDateColumn, Entity, Index, JoinColumn, OneToOne, PrimaryColumn, UpdateDateColumn } from 'typeorm'
import {
Column,
CreateDateColumn,
Entity,
Index,
JoinColumn,
ManyToOne,
PrimaryColumn,
UpdateDateColumn
} from 'typeorm'
import { StatsTimeFrames, timeframeEnumValues } from '~/lib/stats'

@Entity('stats_episode')
Expand All @@ -24,7 +33,7 @@ export class StatsEpisode {
timeframe: StatsTimeFrames

@Index()
@OneToOne(() => Episode, { onDelete: 'CASCADE', nullable: false })
@ManyToOne(() => Episode, { onDelete: 'CASCADE', nullable: false })
@JoinColumn({ name: 'episode_id' })
episode: Episode

Expand Down

0 comments on commit 8c6b84e

Please sign in to comment.