Skip to content

Commit

Permalink
Merge pull request #706 from podverse/develop
Browse files Browse the repository at this point in the history
Release v4.15.11
  • Loading branch information
mitchdowney authored Nov 22, 2023
2 parents e82f554 + 252c355 commit 0b411cf
Show file tree
Hide file tree
Showing 4 changed files with 86 additions and 85 deletions.
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "podverse-api",
"version": "4.15.10",
"version": "4.15.11",
"description": "Data API, database migration scripts, and backend services for all Podverse models.",
"contributors": [
"Mitch Downey"
Expand Down
5 changes: 4 additions & 1 deletion src/controllers/episode.ts
Original file line number Diff line number Diff line change
Expand Up @@ -625,6 +625,8 @@ const getLightningKeysendVTSAsChapters = async (episodeId: string) => {
const includeRelations = true
podcast = await getPodcastByPodcastGuid(remoteFeedGuid, includeRelations)
remotePodcastId = podcast.id
const remoteMedium = podcast.medium

if (podcast?.id && remoteItemGuid && remoteFeedGuid) {
try {
episode = await getEpisodeByPodcastIdAndGuid(podcast.id, remoteItemGuid)
Expand Down Expand Up @@ -669,7 +671,8 @@ const getLightningKeysendVTSAsChapters = async (episodeId: string) => {
startTime,
title,
remoteEpisodeId,
remotePodcastId
remotePodcastId,
remoteMedium
}

vtsChapters.push(vtsChapter)
Expand Down
1 change: 1 addition & 0 deletions src/controllers/playlist.ts
Original file line number Diff line number Diff line change
Expand Up @@ -167,6 +167,7 @@ const getOrCreateDefaultPlaylist = async (medium, loggedInUserId) => {
if (!playlist) {
const newDefaultPlaylistData = {
owner: loggedInUserId,
isDefault: true,
description: '',
isPublic: false,
itemsOrder: [],
Expand Down
163 changes: 80 additions & 83 deletions src/controllers/userHistoryItem.ts
Original file line number Diff line number Diff line change
Expand Up @@ -193,7 +193,7 @@ export const cleanUserItemResults = (results) => {
export const generateGetUserItemsQuery = (table, tableName, loggedInUserId, skip, take, useGetMany: boolean) => {
const orderByParam1 = tableName === 'userHistoryItem' ? `${tableName}.orderChangedDate` : `${tableName}.queuePosition`

const orderByParam2 = tableName === 'userQueueItem' ? 'DESC' : 'ASC'
const orderByParam2 = tableName === 'userHistoryItem' ? 'DESC' : 'ASC'

if (useGetMany) {
return getRepository(table)
Expand Down Expand Up @@ -226,87 +226,85 @@ export const generateGetUserItemsQuery = (table, tableName, loggedInUserId, skip
qb.addSelect(`${tableName}.queuePosition`, 'queuePosition')
}

return (
qb
.addSelect('mediaRef.id', 'clipId')
.addSelect('mediaRef.title', 'clipTitle')
.addSelect('mediaRef.startTime', 'clipStartTime')
.addSelect('mediaRef.endTime', 'clipEndTime')
.addSelect('episode.id', 'episodeId')
.addSelect('episode.alternateEnclosures', 'episodeAlternateEnclosures')
.addSelect('episode.chaptersUrl', 'episodeChaptersUrl')
.addSelect('episode.contentLinks', 'episodeContentLinks')
.addSelect('episode.description', 'episodeDescription')
.addSelect('episode.duration', 'episodeDuration')
.addSelect('episode.funding', 'episodeFunding')
.addSelect('episode.guid', 'episodeGuid')
.addSelect('episode.imageUrl', 'episodeImageUrl')
.addSelect('episode.itunesEpisode', 'episodeItunesEpisode')
.addSelect('episode.itunesEpisodeType', 'episodeItunesEpisodeType')
.addSelect('episode.itunesSeason', 'episodeItunesSeason')
.addSelect('episode.mediaType', 'episodeMediaType')
.addSelect('episode.mediaUrl', 'episodeMediaUrl')
.addSelect('episode.pubDate', 'episodePubDate')
.addSelect('episode.socialInteraction', 'episodeSocialInteraction')
.addSelect('episode.subtitle', 'episodeSubtitle')
.addSelect('episode.title', 'episodeTitle')
.addSelect('episode.transcript', 'episodeTranscript')
.addSelect('episode.value', 'episodeValue')
.addSelect('podcast.funding', 'podcastFunding')
.addSelect('podcast.hasSeasons', 'podcastHasSeasons')
.addSelect('podcast.id', 'podcastId')
.addSelect('podcast.imageUrl', 'podcastImageUrl')
.addSelect('podcast.podcastIndexId', 'podcastPodcastIndexId')
.addSelect('podcast.podcastGuid', 'podcastGuid')
.addSelect('podcast.itunesFeedType', 'podcastItunesFeedType')
.addSelect('podcast.medium', 'podcastMedium')
.addSelect('podcast.shrunkImageUrl', 'podcastShrunkImageUrl')
.addSelect('podcast.title', 'podcastTitle')
.addSelect('podcast.value', 'podcastValue')
.addSelect('clipEpisode.id', 'clipEpisodeId')
.addSelect('clipEpisode.alternateEnclosures', 'clipEpisodeAlternateEnclosures')
.addSelect('clipEpisode.chaptersUrl', 'clipEpisodeChaptersUrl')
.addSelect('clipEpisode.contentLinks', 'clipEpisodeContentLinks')
.addSelect('clipEpisode.description', 'clipEpisodeDescription')
.addSelect('clipEpisode.duration', 'clipEpisodeDuration')
.addSelect('clipEpisode.funding', 'clipEpisodeFunding')
.addSelect('clipEpisode.guid', 'clipEpisodeGuid')
.addSelect('clipEpisode.imageUrl', 'clipEpisodeImageUrl')
.addSelect('clipEpisode.itunesEpisode', 'clipEpisodeItunesEpisode')
.addSelect('clipEpisode.itunesEpisodeType', 'clipEpisodeItunesEpisodeType')
.addSelect('clipEpisode.itunesSeason', 'clipEpisodeItunesSeason')
.addSelect('clipEpisode.mediaType', 'clipEpisodeMediaType')
.addSelect('clipEpisode.mediaUrl', 'clipEpisodeMediaUrl')
.addSelect('clipEpisode.pubDate', 'clipEpisodePubDate')
.addSelect('clipEpisode.socialInteraction', 'clipEpisodeSocialInteraction')
.addSelect('clipEpisode.subtitle', 'clipEpisodeSubtitle')
.addSelect('clipEpisode.title', 'clipEpisodeTitle')
.addSelect('clipEpisode.transcript', 'clipEpisodeTranscript')
.addSelect('clipEpisode.value', 'clipEpisodeValue')
.addSelect('clipPodcast.id', 'clipPodcastId')
.addSelect('clipPodcast.funding', 'clipPodcastFunding')
.addSelect('clipPodcast.hasSeasons', 'clipPodcastHasSeasons')
.addSelect('clipPodcast.imageUrl', 'clipPodcastImageUrl')
.addSelect('clipPodcast.itunesFeedType', 'clipPodcastItunesFeedType')
.addSelect('clipPodcast.medium', 'clipPodcastMedium')
.addSelect('clipPodcast.podcastGuid', 'clipPodcastGuid')
.addSelect('clipPodcast.podcastIndexId', 'clipPodcastIndexId')
.addSelect('clipPodcast.shrunkImageUrl', 'clipPodcastShrunkImageUrl')
.addSelect('clipPodcast.title', 'clipPodcastTitle')
.addSelect('clipPodcast.value', 'clipPodcastValue')
.leftJoin(`${tableName}.episode`, 'episode')
.leftJoinAndSelect(`episode.liveItem`, 'liveItem')
.leftJoin('episode.podcast', 'podcast')
.leftJoin(`${tableName}.mediaRef`, 'mediaRef')
.leftJoin('mediaRef.episode', 'clipEpisode')
.leftJoin('clipEpisode.podcast', 'clipPodcast')
.leftJoin(`${tableName}.owner`, 'owner')
.where('owner.id = :loggedInUserId', { loggedInUserId })
// .orderBy(orderByParam1, orderByParam2)
.offset(skip)
.limit(take)
.getRawMany() as any
)
return qb
.addSelect('mediaRef.id', 'clipId')
.addSelect('mediaRef.title', 'clipTitle')
.addSelect('mediaRef.startTime', 'clipStartTime')
.addSelect('mediaRef.endTime', 'clipEndTime')
.addSelect('episode.id', 'episodeId')
.addSelect('episode.alternateEnclosures', 'episodeAlternateEnclosures')
.addSelect('episode.chaptersUrl', 'episodeChaptersUrl')
.addSelect('episode.contentLinks', 'episodeContentLinks')
.addSelect('episode.description', 'episodeDescription')
.addSelect('episode.duration', 'episodeDuration')
.addSelect('episode.funding', 'episodeFunding')
.addSelect('episode.guid', 'episodeGuid')
.addSelect('episode.imageUrl', 'episodeImageUrl')
.addSelect('episode.itunesEpisode', 'episodeItunesEpisode')
.addSelect('episode.itunesEpisodeType', 'episodeItunesEpisodeType')
.addSelect('episode.itunesSeason', 'episodeItunesSeason')
.addSelect('episode.mediaType', 'episodeMediaType')
.addSelect('episode.mediaUrl', 'episodeMediaUrl')
.addSelect('episode.pubDate', 'episodePubDate')
.addSelect('episode.socialInteraction', 'episodeSocialInteraction')
.addSelect('episode.subtitle', 'episodeSubtitle')
.addSelect('episode.title', 'episodeTitle')
.addSelect('episode.transcript', 'episodeTranscript')
.addSelect('episode.value', 'episodeValue')
.addSelect('podcast.funding', 'podcastFunding')
.addSelect('podcast.hasSeasons', 'podcastHasSeasons')
.addSelect('podcast.id', 'podcastId')
.addSelect('podcast.imageUrl', 'podcastImageUrl')
.addSelect('podcast.podcastIndexId', 'podcastPodcastIndexId')
.addSelect('podcast.podcastGuid', 'podcastGuid')
.addSelect('podcast.itunesFeedType', 'podcastItunesFeedType')
.addSelect('podcast.medium', 'podcastMedium')
.addSelect('podcast.shrunkImageUrl', 'podcastShrunkImageUrl')
.addSelect('podcast.title', 'podcastTitle')
.addSelect('podcast.value', 'podcastValue')
.addSelect('clipEpisode.id', 'clipEpisodeId')
.addSelect('clipEpisode.alternateEnclosures', 'clipEpisodeAlternateEnclosures')
.addSelect('clipEpisode.chaptersUrl', 'clipEpisodeChaptersUrl')
.addSelect('clipEpisode.contentLinks', 'clipEpisodeContentLinks')
.addSelect('clipEpisode.description', 'clipEpisodeDescription')
.addSelect('clipEpisode.duration', 'clipEpisodeDuration')
.addSelect('clipEpisode.funding', 'clipEpisodeFunding')
.addSelect('clipEpisode.guid', 'clipEpisodeGuid')
.addSelect('clipEpisode.imageUrl', 'clipEpisodeImageUrl')
.addSelect('clipEpisode.itunesEpisode', 'clipEpisodeItunesEpisode')
.addSelect('clipEpisode.itunesEpisodeType', 'clipEpisodeItunesEpisodeType')
.addSelect('clipEpisode.itunesSeason', 'clipEpisodeItunesSeason')
.addSelect('clipEpisode.mediaType', 'clipEpisodeMediaType')
.addSelect('clipEpisode.mediaUrl', 'clipEpisodeMediaUrl')
.addSelect('clipEpisode.pubDate', 'clipEpisodePubDate')
.addSelect('clipEpisode.socialInteraction', 'clipEpisodeSocialInteraction')
.addSelect('clipEpisode.subtitle', 'clipEpisodeSubtitle')
.addSelect('clipEpisode.title', 'clipEpisodeTitle')
.addSelect('clipEpisode.transcript', 'clipEpisodeTranscript')
.addSelect('clipEpisode.value', 'clipEpisodeValue')
.addSelect('clipPodcast.id', 'clipPodcastId')
.addSelect('clipPodcast.funding', 'clipPodcastFunding')
.addSelect('clipPodcast.hasSeasons', 'clipPodcastHasSeasons')
.addSelect('clipPodcast.imageUrl', 'clipPodcastImageUrl')
.addSelect('clipPodcast.itunesFeedType', 'clipPodcastItunesFeedType')
.addSelect('clipPodcast.medium', 'clipPodcastMedium')
.addSelect('clipPodcast.podcastGuid', 'clipPodcastGuid')
.addSelect('clipPodcast.podcastIndexId', 'clipPodcastIndexId')
.addSelect('clipPodcast.shrunkImageUrl', 'clipPodcastShrunkImageUrl')
.addSelect('clipPodcast.title', 'clipPodcastTitle')
.addSelect('clipPodcast.value', 'clipPodcastValue')
.leftJoin(`${tableName}.episode`, 'episode')
.leftJoinAndSelect(`episode.liveItem`, 'liveItem')
.leftJoin('episode.podcast', 'podcast')
.leftJoin(`${tableName}.mediaRef`, 'mediaRef')
.leftJoin('mediaRef.episode', 'clipEpisode')
.leftJoin('clipEpisode.podcast', 'clipPodcast')
.leftJoin(`${tableName}.owner`, 'owner')
.where('owner.id = :loggedInUserId', { loggedInUserId })
.orderBy(orderByParam1, orderByParam2)
.offset(skip)
.limit(take)
.getRawMany() as any
}
}

Expand Down Expand Up @@ -506,7 +504,6 @@ export const addOrUpdateHistoryItem = async (loggedInUserId, query) => {
if (!query['userPlaybackPosition'] && query['userPlaybackPosition'] !== 0) {
throw new createError.NotFound('A userPlaybackPosition must be provided.')
}

await addOrUpdateDBHistoryItem(loggedInUserId, query)
}

Expand Down

0 comments on commit 0b411cf

Please sign in to comment.