podverse-orm 5.1.9-alpha.0 → 5.1.11-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,3 +1,4 @@
1
+ import { PlaylistResourceIdTextOptions } from 'podverse-helpers';
1
2
  import { EntityManager, FindManyOptions } from 'typeorm';
2
3
  import { PlaylistResource } from '@orm/entities/playlist/playlistResource';
3
4
  import { BaseManyService } from '@orm/services/base/baseManyService';
@@ -7,8 +8,11 @@ export declare class PlaylistResourceService extends BaseManyService<PlaylistRes
7
8
  private itemService;
8
9
  private itemSoundbiteService;
9
10
  constructor(transactionalEntityManager?: EntityManager);
10
- getManyByPlaylistIdText(playlist_id_text: string, options?: Partial<FindManyOptions<PlaylistResource>>): Promise<PlaylistResource[]>;
11
- getAllByPlaylistIdText(playlist_id_text: string): Promise<PlaylistResource[]>;
11
+ private filterPrivateClips;
12
+ getManyByPlaylistIdText(playlist_id_text: string, account_id: number | null, options?: Partial<FindManyOptions<PlaylistResource>>): Promise<PlaylistResource[]>;
13
+ getManyForQueueByListPosition(playlist_id_text: string, idTextOptions: PlaylistResourceIdTextOptions, direction: 'forward' | 'backward', account_id: number | null): Promise<PlaylistResource[]>;
14
+ getManyByPlaylistShuffle(playlist_id_text: string, shuffleHash: string, account_id: number | null, options?: FindManyOptions<PlaylistResource>): Promise<PlaylistResource[]>;
15
+ getAllByPlaylistIdText(playlist_id_text: string, account_id: number | null): Promise<PlaylistResource[]>;
12
16
  getAllByPlaylistIdTextCount(playlist_id_text: string): Promise<number>;
13
17
  getFirstAndLastItemsByPlaylistIdText(playlist_id_text: string): Promise<{
14
18
  firstItem: PlaylistResource | null;
@@ -1 +1 @@
1
- {"version":3,"file":"playlistResource.d.ts","sourceRoot":"","sources":["../../../src/services/playlist/playlistResource.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"playlistResource.d.ts","sourceRoot":"","sources":["../../../src/services/playlist/playlistResource.ts"],"names":[],"mappings":"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"}
@@ -13,6 +13,7 @@ exports.PlaylistResourceService = void 0;
13
13
  // TODO: get rid of "any" in the file
14
14
  /* eslint-disable @typescript-eslint/no-explicit-any */
15
15
  const podverse_helpers_1 = require("podverse-helpers");
16
+ const typeorm_1 = require("typeorm");
16
17
  const playlistResource_1 = require("@orm/entities/playlist/playlistResource");
17
18
  const playlist_1 = require("./playlist");
18
19
  const baseManyService_1 = require("@orm/services/base/baseManyService");
@@ -29,8 +30,18 @@ class PlaylistResourceService extends baseManyService_1.BaseManyService {
29
30
  this.itemService = new item_1.ItemService();
30
31
  this.itemSoundbiteService = new itemSoundbite_1.ItemSoundbiteService(transactionalEntityManager);
31
32
  }
32
- getManyByPlaylistIdText(playlist_id_text_1) {
33
- return __awaiter(this, arguments, void 0, function* (playlist_id_text, options = {}) {
33
+ filterPrivateClips(resources, account_id) {
34
+ return resources.filter(resource => {
35
+ var _a, _b;
36
+ if (((_a = resource.clip) === null || _a === void 0 ? void 0 : _a.sharable_status_id) === 3) {
37
+ // Only include private clips if owned by the account
38
+ return ((_b = resource.clip.account) === null || _b === void 0 ? void 0 : _b.id) === account_id;
39
+ }
40
+ return true;
41
+ });
42
+ }
43
+ getManyByPlaylistIdText(playlist_id_text_1, account_id_1) {
44
+ return __awaiter(this, arguments, void 0, function* (playlist_id_text, account_id, options = {}) {
34
45
  const playlist = yield this.playlistService.getByIdText(playlist_id_text);
35
46
  if (!playlist) {
36
47
  throw new Error("Playlist not found.");
@@ -40,10 +51,117 @@ class PlaylistResourceService extends baseManyService_1.BaseManyService {
40
51
  order: { list_position: 'ASC' },
41
52
  relations: queueResource_1.listResourceRelations
42
53
  };
43
- return this.repositoryRead.find(Object.assign(Object.assign(Object.assign({}, defaultOptions), options), { where: Object.assign(Object.assign({}, defaultOptions.where), (options.where || {})) }));
54
+ const results = yield this.repositoryRead.find(Object.assign(Object.assign(Object.assign({}, defaultOptions), options), { where: Object.assign(Object.assign({}, defaultOptions.where), (options.where || {})) }));
55
+ return this.filterPrivateClips(results, account_id);
56
+ });
57
+ }
58
+ getManyForQueueByListPosition(playlist_id_text, idTextOptions, direction, account_id) {
59
+ return __awaiter(this, void 0, void 0, function* () {
60
+ if (!idTextOptions.item_id_text && !idTextOptions.clip_id_text && !idTextOptions.item_soundbite_id_text) {
61
+ throw new Error('One of item_id_text, clip_id_text, or item_soundbite_id_text must be provided');
62
+ }
63
+ const playlist = yield this.playlistService.getByIdText(playlist_id_text);
64
+ if (!playlist) {
65
+ throw new Error('Playlist not found.');
66
+ }
67
+ let list_position = '0';
68
+ if (idTextOptions.clip_id_text) {
69
+ const clip = yield this.clipService.getByIdText(idTextOptions.clip_id_text);
70
+ if (clip) {
71
+ const pr = yield this.repositoryRead.findOne({
72
+ where: { playlist: { id: playlist.id }, clip: { id: clip.id } }
73
+ });
74
+ if (pr)
75
+ list_position = pr.list_position;
76
+ }
77
+ }
78
+ else if (idTextOptions.item_soundbite_id_text) {
79
+ const soundbite = yield this.itemSoundbiteService.getByIdText(idTextOptions.item_soundbite_id_text);
80
+ if (soundbite) {
81
+ const pr = yield this.repositoryRead.findOne({
82
+ where: { playlist: { id: playlist.id }, item_soundbite: { id: soundbite.id } }
83
+ });
84
+ if (pr)
85
+ list_position = pr.list_position;
86
+ }
87
+ }
88
+ else if (idTextOptions.item_id_text) {
89
+ const item = yield this.itemService.getByIdText(idTextOptions.item_id_text);
90
+ if (item) {
91
+ const pr = yield this.repositoryRead.findOne({
92
+ where: { playlist: { id: playlist.id }, item: { id: item.id } }
93
+ });
94
+ if (pr)
95
+ list_position = pr.list_position;
96
+ }
97
+ }
98
+ const where = {
99
+ playlist: { id: playlist.id },
100
+ list_position: direction === 'forward' ? (0, typeorm_1.MoreThan)(list_position) : (0, typeorm_1.LessThan)(list_position)
101
+ };
102
+ const order = direction === 'forward' ? 'ASC' : 'DESC';
103
+ const results = yield this.repositoryRead.find({
104
+ where,
105
+ order: { list_position: order },
106
+ take: podverse_helpers_1.PAGINATION.DEFAULT_LIMIT,
107
+ relations: queueResource_1.listResourceRelations
108
+ });
109
+ return this.filterPrivateClips(results, account_id);
110
+ });
111
+ }
112
+ getManyByPlaylistShuffle(playlist_id_text, shuffleHash, account_id, options) {
113
+ return __awaiter(this, void 0, void 0, function* () {
114
+ var _a, _b;
115
+ const playlist = yield this.playlistService.getByIdText(playlist_id_text);
116
+ if (!playlist) {
117
+ throw new Error('Playlist not found.');
118
+ }
119
+ if (!shuffleHash) {
120
+ throw new Error('Shuffle hash is required.');
121
+ }
122
+ const skip = (_a = options === null || options === void 0 ? void 0 : options.skip) !== null && _a !== void 0 ? _a : 0;
123
+ const take = (_b = options === null || options === void 0 ? void 0 : options.take) !== null && _b !== void 0 ? _b : podverse_helpers_1.PAGINATION.DEFAULT_LIMIT;
124
+ const createBaseQueryBuilder = () => {
125
+ return this.repositoryRead.createQueryBuilder('pr')
126
+ .where('pr.playlist_id = :playlistId', { playlistId: playlist.id })
127
+ .leftJoinAndSelect('pr.clip', 'clip')
128
+ .leftJoinAndSelect('clip.item', 'clip_item')
129
+ .leftJoinAndSelect('clip_item.item_about', 'clip_item_about')
130
+ .leftJoinAndSelect('clip_item.item_enclosures', 'clip_item_enclosures')
131
+ .leftJoinAndSelect('clip_item_enclosures.item_enclosure_sources', 'clip_item_enclosure_sources')
132
+ .leftJoinAndSelect('clip_item.item_images', 'clip_item_images')
133
+ .leftJoinAndSelect('clip_item.channel', 'clip_channel')
134
+ .leftJoinAndSelect('clip_channel.channel_images', 'clip_channel_images')
135
+ .leftJoinAndSelect('clip.sharable_status', 'sharable_status')
136
+ .leftJoinAndSelect('clip.account', 'clip_account')
137
+ .leftJoinAndSelect('pr.item', 'item')
138
+ .leftJoinAndSelect('item.item_about', 'item_about')
139
+ .leftJoinAndSelect('item.item_enclosures', 'item_enclosures')
140
+ .leftJoinAndSelect('item_enclosures.item_enclosure_sources', 'item_enclosure_sources')
141
+ .leftJoinAndSelect('item.item_images', 'item_images')
142
+ .leftJoinAndSelect('item.channel', 'item_channel')
143
+ .leftJoinAndSelect('item_channel.channel_images', 'item_channel_images')
144
+ .leftJoinAndSelect('pr.item_soundbite', 'item_soundbite')
145
+ .leftJoinAndSelect('item_soundbite.item', 'soundbite_item')
146
+ .leftJoinAndSelect('soundbite_item.item_about', 'soundbite_item_about')
147
+ .leftJoinAndSelect('soundbite_item.item_enclosures', 'soundbite_item_enclosures')
148
+ .leftJoinAndSelect('soundbite_item_enclosures.item_enclosure_sources', 'soundbite_item_enclosure_sources')
149
+ .leftJoinAndSelect('soundbite_item.item_images', 'soundbite_item_images')
150
+ .leftJoinAndSelect('soundbite_item.channel', 'soundbite_channel')
151
+ .leftJoinAndSelect('soundbite_channel.channel_images', 'soundbite_channel_images');
152
+ };
153
+ // Use a deterministic random order based on shuffleHash
154
+ const query = createBaseQueryBuilder()
155
+ .addSelect('MD5(pr.id::text || (:shuffleHash)::text)', 'shuffle_order')
156
+ .setParameter('shuffleHash', String(shuffleHash))
157
+ .orderBy('shuffle_order', 'ASC')
158
+ .skip(skip)
159
+ .take(take);
160
+ const result = yield query.getRawAndEntities();
161
+ return this.filterPrivateClips(result.entities, account_id);
44
162
  });
45
163
  }
46
- getAllByPlaylistIdText(playlist_id_text) {
164
+ getAllByPlaylistIdText(playlist_id_text, account_id) {
47
165
  return __awaiter(this, void 0, void 0, function* () {
48
166
  const playlist = yield this.playlistService.getByIdText(playlist_id_text);
49
167
  if (!playlist) {
@@ -54,7 +172,8 @@ class PlaylistResourceService extends baseManyService_1.BaseManyService {
54
172
  order: { list_position: 'ASC' },
55
173
  relations: queueResource_1.listResourceRelations
56
174
  };
57
- return this.repositoryRead.find(options);
175
+ const results = yield this.repositoryRead.find(options);
176
+ return this.filterPrivateClips(results, account_id);
58
177
  });
59
178
  }
60
179
  getAllByPlaylistIdTextCount(playlist_id_text) {
@@ -1 +1 @@
1
- {"version":3,"file":"queueResource.d.ts","sourceRoot":"","sources":["../../../src/services/queue/queueResource.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"queueResource.d.ts","sourceRoot":"","sources":["../../../src/services/queue/queueResource.ts"],"names":[],"mappings":"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"}
@@ -21,8 +21,9 @@ const clip_1 = require("../clip");
21
21
  const item_1 = require("../item/item");
22
22
  const itemSoundbite_1 = require("../item/itemSoundbite");
23
23
  const QUEUE_LIST_POSITION_INCREMENT = 0.00000001;
24
+ const epsilon = 1e-21;
24
25
  exports.listResourceRelations = [
25
- 'clip', 'clip.item', 'clip.item.item_about', 'clip.item.item_enclosures', 'clip.item.item_enclosures.item_enclosure_sources', 'clip.item.item_images', 'clip.item.channel', 'clip.item.channel.channel_images',
26
+ 'clip', 'clip.item', 'clip.item.item_about', 'clip.item.item_enclosures', 'clip.item.item_enclosures.item_enclosure_sources', 'clip.item.item_images', 'clip.item.channel', 'clip.item.channel.channel_images', 'clip.sharable_status', 'clip.account',
26
27
  'item', 'item.item_about', 'item.item_enclosures', 'item.item_enclosures.item_enclosure_sources', 'item.item_images', 'item.channel', 'item.channel.channel_images',
27
28
  'item_soundbite', 'item_soundbite.item', 'item_soundbite.item.item_about', 'item_soundbite.item.item_enclosures', 'item_soundbite.item.item_enclosures.item_enclosure_sources', 'item_soundbite.item.item_images', 'item_soundbite.item.channel', 'item_soundbite.item.channel.channel_images'
28
29
  ];
@@ -71,7 +72,7 @@ class QueueResourceService extends baseManyService_1.BaseManyService {
71
72
  throw new Error("Queue not found.");
72
73
  }
73
74
  const options = {
74
- where: { queue: { id: queue.id }, list_position: (0, typeorm_1.MoreThanOrEqual)(0) },
75
+ where: { queue: { id: queue.id }, list_position: (0, typeorm_1.Between)(-epsilon, epsilon) },
75
76
  order: { list_position: 'ASC' },
76
77
  relations: exports.listResourceRelations
77
78
  };
@@ -226,7 +227,6 @@ class QueueResourceService extends baseManyService_1.BaseManyService {
226
227
  const resource = yield resourceService.getByIdText(resource_id_text);
227
228
  if (!resource)
228
229
  throw new Error(`${resourceKey} not found.`);
229
- const epsilon = 1e-21;
230
230
  const existingNowPlaying = yield manager.findOne(queueResource_1.QueueResource, {
231
231
  where: { queue: { id: queue.id }, list_position: (0, typeorm_1.Between)(-epsilon, epsilon) }
232
232
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "podverse-orm",
3
- "version": "5.1.9-alpha.0",
3
+ "version": "5.1.11-alpha.0",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -24,7 +24,7 @@
24
24
  "module-alias": "^2.2.3",
25
25
  "nanoid": "^5.1.6",
26
26
  "pg": "^8.16.3",
27
- "podverse-helpers": "^5.1.9-alpha.0",
27
+ "podverse-helpers": "^5.1.11-alpha.0",
28
28
  "typeorm": "^0.3.26",
29
29
  "typeorm-naming-strategies": "^4.1.0"
30
30
  },