podverse-parser 5.0.7 → 5.0.9

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.
@@ -7,7 +7,7 @@ const value_1 = require("./value");
7
7
  const compatItemDto = (parsedItem) => {
8
8
  var _a, _b;
9
9
  return ({
10
- guid: ((_a = parsedItem.guid) === null || _a === void 0 ? void 0 : _a.slice(0, podverse_helpers_1.DATABASE_CONSTANTS.varchar_guid)) || null,
10
+ guid: ((_a = parsedItem.guid) === null || _a === void 0 ? void 0 : _a.slice(0, podverse_helpers_1.DATABASE_CONSTANTS.varchar_url)) || null,
11
11
  guid_enclosure_url: parsedItem.enclosure.url.slice(0, podverse_helpers_1.DATABASE_CONSTANTS.varchar_url),
12
12
  pubdate: parsedItem.pubDate || null,
13
13
  title: ((_b = parsedItem.title) === null || _b === void 0 ? void 0 : _b.slice(0, podverse_helpers_1.DATABASE_CONSTANTS.varchar_normal)) || null
@@ -1 +1 @@
1
- {"version":3,"file":"item.d.ts","sourceRoot":"","sources":["../../../../src/lib/rss/item/item.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAE5C,OAAO,EAAiB,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAe,MAAM,cAAc,CAAC;AAmBtG,eAAO,MAAM,iBAAiB,gBAAuB,OAAO,EAAE,WAAW,OAAO,sBAAsB,kBAAkB,kBAuBvH,CAAC;AAEF,eAAO,MAAM,gBAAgB,eACf,OAAO,WACV,OAAO,sBACI,kBAAkB,8BACV,aAAa,kBAkC1C,CAAC"}
1
+ {"version":3,"file":"item.d.ts","sourceRoot":"","sources":["../../../../src/lib/rss/item/item.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAE5C,OAAO,EAAiB,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAe,MAAM,cAAc,CAAC;AA+BtG,eAAO,MAAM,iBAAiB,gBAAuB,OAAO,EAAE,WAAW,OAAO,sBAAsB,kBAAkB,kBAyBvH,CAAC;AAEF,eAAO,MAAM,gBAAgB,eACf,OAAO,WACV,OAAO,sBACI,kBAAkB,8BACV,aAAa,kBAkC1C,CAAC"}
@@ -29,12 +29,24 @@ const itemTranscript_1 = require("@parser/lib/rss/item/itemTranscript");
29
29
  const itemTxt_1 = require("@parser/lib/rss/item/itemTxt");
30
30
  const itemValue_1 = require("@parser/lib/rss/item/itemValue");
31
31
  const itemChat_1 = require("@parser/lib/rss/item/itemChat");
32
+ const removeDuplicates = (parsedItems) => {
33
+ const seen = new Set();
34
+ return parsedItems.reduce((acc, item) => {
35
+ const enclosureUrl = item.enclosure.url.slice(0, podverse_helpers_1.DATABASE_CONSTANTS.varchar_url);
36
+ if (!seen.has(enclosureUrl)) {
37
+ seen.add(enclosureUrl);
38
+ acc.push(item);
39
+ }
40
+ return acc;
41
+ }, []);
42
+ };
32
43
  const handleParsedItems = (parsedItems, channel, channelSeasonIndex) => __awaiter(void 0, void 0, void 0, function* () {
33
44
  const itemService = new podverse_orm_1.ItemService();
34
45
  const existingItems = yield itemService.getAllItemsByChannel(channel, { select: ['id'] });
35
46
  const existingItemIds = existingItems.map(item => item.id);
36
47
  const updatedItemIds = [];
37
- const parsedItemBatchs = (0, podverse_helpers_1.chunkArray)(parsedItems, 50);
48
+ const uniqueParsedItems = removeDuplicates(parsedItems);
49
+ const parsedItemBatchs = (0, podverse_helpers_1.chunkArray)(uniqueParsedItems, 50);
38
50
  for (const parsedItemBatch of parsedItemBatchs) {
39
51
  yield podverse_orm_1.AppDataSource.manager.transaction((transactionalEntityManager) => __awaiter(void 0, void 0, void 0, function* () {
40
52
  for (const parsedItem of parsedItemBatch) {
@@ -1,4 +1,4 @@
1
- export declare const parseAllRSSFeeds: () => Promise<any>;
1
+ export declare const parseAllRSSFeeds: () => Promise<void>;
2
2
  export declare const getAndParseRSSFeed: (url: string) => Promise<import("podcast-partytime").FeedObject>;
3
- export declare const parseRSSFeedAndSaveToDatabase: (url: string, podcast_index_id: number) => Promise<any>;
3
+ export declare const parseRSSFeedAndSaveToDatabase: (url: string, podcast_index_id: number) => Promise<void>;
4
4
  //# sourceMappingURL=parser.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../../src/lib/rss/parser.ts"],"names":[],"mappings":"AAeA,eAAO,MAAM,gBAAgB,oBAM5B,CAAC;AAEF,eAAO,MAAM,kBAAkB,QAAe,MAAM,oDASnD,CAAC;AAQF,eAAO,MAAM,6BAA6B,QAAe,MAAM,oBAAoB,MAAM,iBAgExF,CAAC"}
1
+ {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../../src/lib/rss/parser.ts"],"names":[],"mappings":"AAeA,eAAO,MAAM,gBAAgB,qBAM5B,CAAC;AAEF,eAAO,MAAM,kBAAkB,QAAe,MAAM,oDASnD,CAAC;AAQF,eAAO,MAAM,6BAA6B,QAAe,MAAM,oBAAoB,MAAM,kBA+DxF,CAAC"}
@@ -66,6 +66,7 @@ const parseRSSFeedAndSaveToDatabase = (url, podcast_index_id) => __awaiter(void
66
66
  throw new Error(`parseRSSFeedAndSaveToDatabase: feed not found for ${url}`);
67
67
  }
68
68
  const parsedFeed = yield (0, feed_1.handleGetRSSFeed)(feed);
69
+ podverse_helpers_1.logger.info(`item count: ${parsedFeed.items.length}`);
69
70
  feed = yield (0, feed_1.handleParsedFeed)(parsedFeed, feed);
70
71
  try {
71
72
  yield feedService.update(feed.id, { is_parsing: new Date() });
@@ -89,13 +90,11 @@ const parseRSSFeedAndSaveToDatabase = (url, podcast_index_id) => __awaiter(void
89
90
  yield feedLogService.update(feed, { last_finished_parse_time: new Date() });
90
91
  }
91
92
  catch (error) {
92
- const err = error;
93
- podverse_helpers_1.logger.error('parseRSSFeedAndSaveToDatabase error:', err.stack);
94
- throw err;
93
+ (0, podverse_helpers_1.logError)('parseRSSFeedAndSaveToDatabase', error);
95
94
  }
96
95
  finally {
97
96
  yield feedService.update(feed.id, { is_parsing: null });
98
97
  }
99
- return feed;
98
+ return;
100
99
  });
101
100
  exports.parseRSSFeedAndSaveToDatabase = parseRSSFeedAndSaveToDatabase;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "podverse-parser",
3
- "version": "5.0.7",
3
+ "version": "5.0.9",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",