@takeoffmedia/react-native-penthera 0.2.0 → 0.2.1

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.
@@ -70,94 +70,6 @@ class Penthera: RCTEventEmitter, VirtuosoDownloadEngineNotificationsDelegate {
70
70
  }
71
71
 
72
72
 
73
- @objc(getDownloads:withResolver:withRejecter:)
74
- func getDownloads(blank: String, resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) -> Void {
75
- let completedAssets = VirtuosoAsset.completedAssets(withAvailabilityFilter: false)
76
- let pendingAssets = VirtuosoAsset.pendingAssets(withAvailabilityFilter: false)
77
- var offlineCatalogs: [OfflineCatalog] = []
78
-
79
- for case let va as VirtuosoAsset in completedAssets {
80
- let thumbnail = va.findAllAncillaries(withTag: "thumbnail").first
81
- let show = va.findAllAncillaries(withTag: "show").first
82
- let thumbnails = Thumbnails(
83
- thumbnail: thumbnail?.fileDownloadURL ?? "",
84
- show: show?.fileDownloadURL ?? ""
85
- )
86
-
87
- let expiryDate = va.expiryDate // Assuming this is a valid Date object
88
- let effectiveExpiryDate = va.effectiveExpiryDate // Assuming this is a valid Date object
89
-
90
- let dataItem = DataItem(
91
- title: va.userInfo?["title"] as? String,
92
- seasonId: va.userInfo?["seasonId"] as? String,
93
- seasonTitle: va.userInfo?["seasonTitle"] as? String,
94
- duration: va.duration,
95
- estimatedSize: Int(va.estimatedSize),
96
- dataOffers: parseDataOffer(offer: va.userInfo?["dataOffers"] as Any),
97
- expiryDate: dateToString(expiryDate),
98
- expiryAfterPlay: timeIntervalToString(va.expiryAfterPlay),
99
- expiryAfterDownload: timeIntervalToString(va.expiryAfterDownload),
100
- isExpired: va.isExpired,
101
- inForcedExpire: va.inForcedExpire,
102
- effectiveExpiryDate: dateToString(effectiveExpiryDate!)
103
- )
104
- let catalog = OfflineCatalog(
105
- id: va.assetID,
106
- title: va.description,
107
- data: dataItem,
108
- thumbnails: thumbnails,
109
- isCompleted: va.isPlayable,
110
- isPaused: va.isPaused,
111
- percentage: Float(va.fractionComplete) / Float(va.estimatedSize)
112
- )
113
- offlineCatalogs.append(catalog)
114
- }
115
-
116
- for case let va as VirtuosoAsset in pendingAssets {
117
-
118
- let thumbnail = va.findAllAncillaries(withTag: "thumbnail").first
119
- let show = va.findAllAncillaries(withTag: "show").first
120
- let thumbnails = Thumbnails(
121
- thumbnail: thumbnail?.fileDownloadURL ?? "",
122
- show: show?.fileDownloadURL ?? ""
123
- )
124
-
125
- let expiryDate = va.expiryDate // Assuming this is a valid Date object
126
- let effectiveExpiryDate = va.effectiveExpiryDate // Assuming this is a valid Date object
127
- let dataItem = DataItem(
128
- title: va.userInfo?["title"] as? String,
129
- seasonId: va.userInfo?["seasonId"] as? String,
130
- seasonTitle: va.userInfo?["seasonTitle"] as? String,
131
- duration: va.duration,
132
- estimatedSize: Int(va.estimatedSize),
133
- dataOffers: parseDataOffer(offer: va.userInfo?["dataOffers"] as Any),
134
- expiryAfterPlay: timeIntervalToString(va.expiryAfterPlay),
135
- expiryAfterDownload: timeIntervalToString(va.expiryAfterDownload),
136
- isExpired: va.isExpired
137
- )
138
-
139
- let catalog = OfflineCatalog(
140
- id: va.assetID,
141
- title: va.description,
142
- data: dataItem,
143
- thumbnails: thumbnails,
144
- isCompleted: false,
145
- isPaused: va.isPaused,
146
- percentage: Float(va.fractionComplete) / Float(va.estimatedSize)
147
- )
148
- offlineCatalogs.append(catalog)
149
- }
150
-
151
- let decoder = JSONEncoder()
152
- do {
153
- let data = try decoder.encode(offlineCatalogs)
154
- let json = String(data: data, encoding: .utf8)!
155
- resolve(json)
156
- } catch {
157
- reject("penthere", error.localizedDescription, error)
158
- }
159
- //resolve(downloadComplete.map{ ($0 as? VirtuosoAsset)?.assetID })
160
- }
161
73
 
162
74
  func getDownloadedAsset(assetID: String) -> VirtuosoAsset? {
163
75
  // assets that have finished downloading
@@ -329,6 +241,81 @@ class Penthera: RCTEventEmitter, VirtuosoDownloadEngineNotificationsDelegate {
329
241
  }
330
242
  }
331
243
 
244
+ @objc(getDownloads:withResolver:withRejecter:)
245
+ func getDownloads(blank: String, resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) -> Void {
246
+ let completedAssets = VirtuosoAsset.completedAssets(withAvailabilityFilter: false)
247
+ let pendingAssets = VirtuosoAsset.pendingAssets(withAvailabilityFilter: false)
248
+ var offlineCatalogs: [OfflineCatalog] = []
249
+
250
+ // Process completed and pending assets using a shared function
251
+ func processAsset(_ va: VirtuosoAsset) {
252
+ let thumbnail = va.findAllAncillaries(withTag: "thumbnail").first
253
+ let show = va.findAllAncillaries(withTag: "show").first
254
+ let thumbnails = Thumbnails(
255
+ thumbnail: thumbnail?.fileDownloadURL ?? "",
256
+ show: show?.fileDownloadURL ?? ""
257
+ )
258
+
259
+ let expiryDate = va.expiryDate // Assuming this is a valid Date object
260
+ let effectiveExpiryDate = va.effectiveExpiryDate // Assuming this is a valid Date object
261
+
262
+ var dataItem = DataItem(
263
+ title: va.userInfo?["title"] as? String,
264
+ seasonId: va.userInfo?["seasonId"] as? String,
265
+ seasonTitle: va.userInfo?["seasonTitle"] as? String,
266
+ duration: va.duration,
267
+ estimatedSize: Int(va.estimatedSize),
268
+ dataOffers: parseDataOffer(offer: va.userInfo?["dataOffers"] as Any),
269
+ expiryAfterPlay: timeIntervalToString(va.expiryAfterPlay),
270
+ expiryAfterDownload: timeIntervalToString(va.expiryAfterDownload),
271
+ isExpired: va.isExpired,
272
+ inForcedExpire: va.inForcedExpire
273
+ )
274
+
275
+ if let effectiveExpiryDate = effectiveExpiryDate {
276
+ dataItem.effectiveExpiryDate = dateToString(effectiveExpiryDate)
277
+ }
278
+
279
+ if let expiryDate = expiryDate {
280
+ dataItem.expiryDate = dateToString(expiryDate)
281
+ }
282
+
283
+ if va.isExpired {
284
+ va.delete()
285
+ } else {
286
+ let catalog = OfflineCatalog(
287
+ id: va.assetID,
288
+ title: va.description,
289
+ data: dataItem,
290
+ thumbnails: thumbnails,
291
+ isCompleted: va.isPlayable,
292
+ isPaused: va.isPaused,
293
+ percentage: Float(va.fractionComplete) / Float(va.estimatedSize)
294
+ )
295
+ offlineCatalogs.append(catalog)
296
+ }
297
+ }
298
+
299
+ // Process completed assets
300
+ for case let va as VirtuosoAsset in completedAssets {
301
+ processAsset(va)
302
+ }
303
+
304
+ // Process pending assets
305
+ for case let va as VirtuosoAsset in pendingAssets {
306
+ processAsset(va)
307
+ }
308
+
309
+ let encoder = JSONEncoder()
310
+ do {
311
+ let data = try encoder.encode(offlineCatalogs)
312
+ let json = String(data: data, encoding: .utf8)!
313
+ resolve(json)
314
+ } catch {
315
+ reject("penthera", error.localizedDescription, error)
316
+ }
317
+ }
318
+
332
319
  @objc(delete:withResolver:withRejecter:)
333
320
  func delete(assetID: String, resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) -> Void {
334
321
  //DispatchQueue.global(qos: .background).async {
@@ -22,12 +22,23 @@ const usePenthera = (0, _zustand.create)(set => ({
22
22
  deleteManyAssets: assetIds => set(state => ({
23
23
  assets: state.assets.filter(asset => !assetIds.includes(asset.id))
24
24
  })),
25
- updateAssetsProgress: progress => set(state => ({
26
- assetsProgress: {
27
- ...state.assetsProgress,
28
- ...progress
25
+ updateAssetsProgress: progress => set(state => {
26
+ var _Object$keys;
27
+ const assetId = (_Object$keys = Object.keys(progress)) === null || _Object$keys === void 0 ? void 0 : _Object$keys[0];
28
+ if (assetId && state.assetsProgress && progress && assetId in progress && assetId in state.assetsProgress) {
29
+ var _state$assetsProgress;
30
+ const prevProgress = (_state$assetsProgress = state.assetsProgress) === null || _state$assetsProgress === void 0 ? void 0 : _state$assetsProgress[assetId];
31
+ const newProgress = progress === null || progress === void 0 ? void 0 : progress[assetId];
32
+ if (prevProgress >= newProgress) return {}; // TODO: This a workaround for solution of inconsistent events from penthera module.
29
33
  }
30
- })),
34
+
35
+ return {
36
+ assetsProgress: {
37
+ ...state.assetsProgress,
38
+ ...progress
39
+ }
40
+ };
41
+ }),
31
42
  onGetAllAssets: async () => {
32
43
  try {
33
44
  const assets = await (0, _nativeModules.getDownloads)('');
@@ -139,12 +150,6 @@ function usePentheraInit(_ref2) {
139
150
  updateAssetsProgress({
140
151
  [info === null || info === void 0 ? void 0 : info.assetId]: '0'
141
152
  });
142
- addAsset({
143
- id: info.assetId,
144
- title: '',
145
- path: '',
146
- drm: ''
147
- }); // TODO: Add others field item information
148
153
  break;
149
154
  case _usePenthera.PentheraEvent.PROGRESS_UPDATED:
150
155
  updateAssetsProgress({
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","_reactNative","_zustand","_usePenthera","_nativeModules","usePenthera","create","set","assets","assetsProgress","loadAssets","addAsset","asset","state","deleteManyAssets","assetIds","filter","includes","id","updateAssetsProgress","progress","onGetAllAssets","getDownloads","length","error","console","log","onDownload","_ref","_item$thumbnails","item","url","drm","dataAndroid","asset_id","content_url","poster","thumbnails","thumbnail","subtitle","dataBySO","Platform","OS","download","JSON","stringify","onDelete","response","deleteMany","deleted","Object","keys","updatedAssetsProgress","forEach","assetId","onPauseDownload","pauseDownload","onPlayVideo","playAsset","exports","onListener","sessionConnect","NEventEmitter","NativeModules","Penthera","eventEmitter","NativeEventEmitter","removeAllListeners","eventListener","addListener","usePentheraInit","_ref2","userId","BACKPLANE_PRIVATE_KEY","BACKPLANE_PUBLIC_KEY","BACKPLANE_URL","isInitialized","setIsInitialized","useState","useEffect","init","initialize","newEvent","info","parse","code","PentheraEvent","VIRTUOSO_SUCCESS","DID_START_DOWNLOADING","title","path","PROGRESS_UPDATED","body","DOWNLOAD_COMPLETE","ASSET_RESUME_DOWNLOAD_UPDATED","ASSET_DELETED","CONFIG_ASSET_FAILED","ERROR_DOWNLOAD","PENDING_ASSET_FOUND","_eventListener","remove"],"sourceRoot":"../../../../src","sources":["hooks/usePenthera/usePenthera.tsx"],"mappings":"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"}
1
+ {"version":3,"names":["_react","require","_reactNative","_zustand","_usePenthera","_nativeModules","usePenthera","create","set","assets","assetsProgress","loadAssets","addAsset","asset","state","deleteManyAssets","assetIds","filter","includes","id","updateAssetsProgress","progress","_Object$keys","assetId","Object","keys","_state$assetsProgress","prevProgress","newProgress","onGetAllAssets","getDownloads","length","error","console","log","onDownload","_ref","_item$thumbnails","item","url","drm","dataAndroid","asset_id","content_url","poster","thumbnails","thumbnail","subtitle","dataBySO","Platform","OS","download","JSON","stringify","onDelete","response","deleteMany","deleted","updatedAssetsProgress","forEach","onPauseDownload","pauseDownload","onPlayVideo","playAsset","exports","onListener","sessionConnect","NEventEmitter","NativeModules","Penthera","eventEmitter","NativeEventEmitter","removeAllListeners","eventListener","addListener","usePentheraInit","_ref2","userId","BACKPLANE_PRIVATE_KEY","BACKPLANE_PUBLIC_KEY","BACKPLANE_URL","isInitialized","setIsInitialized","useState","useEffect","init","initialize","newEvent","info","parse","code","PentheraEvent","VIRTUOSO_SUCCESS","DID_START_DOWNLOADING","PROGRESS_UPDATED","body","DOWNLOAD_COMPLETE","ASSET_RESUME_DOWNLOAD_UPDATED","ASSET_DELETED","CONFIG_ASSET_FAILED","ERROR_DOWNLOAD","PENDING_ASSET_FOUND","_eventListener","remove"],"sourceRoot":"../../../../src","sources":["hooks/usePenthera/usePenthera.tsx"],"mappings":"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"}
@@ -15,12 +15,23 @@ export const usePenthera = create(set => ({
15
15
  deleteManyAssets: assetIds => set(state => ({
16
16
  assets: state.assets.filter(asset => !assetIds.includes(asset.id))
17
17
  })),
18
- updateAssetsProgress: progress => set(state => ({
19
- assetsProgress: {
20
- ...state.assetsProgress,
21
- ...progress
18
+ updateAssetsProgress: progress => set(state => {
19
+ var _Object$keys;
20
+ const assetId = (_Object$keys = Object.keys(progress)) === null || _Object$keys === void 0 ? void 0 : _Object$keys[0];
21
+ if (assetId && state.assetsProgress && progress && assetId in progress && assetId in state.assetsProgress) {
22
+ var _state$assetsProgress;
23
+ const prevProgress = (_state$assetsProgress = state.assetsProgress) === null || _state$assetsProgress === void 0 ? void 0 : _state$assetsProgress[assetId];
24
+ const newProgress = progress === null || progress === void 0 ? void 0 : progress[assetId];
25
+ if (prevProgress >= newProgress) return {}; // TODO: This a workaround for solution of inconsistent events from penthera module.
22
26
  }
23
- })),
27
+
28
+ return {
29
+ assetsProgress: {
30
+ ...state.assetsProgress,
31
+ ...progress
32
+ }
33
+ };
34
+ }),
24
35
  onGetAllAssets: async () => {
25
36
  try {
26
37
  const assets = await getDownloads('');
@@ -131,12 +142,6 @@ export function usePentheraInit(_ref2) {
131
142
  updateAssetsProgress({
132
143
  [info === null || info === void 0 ? void 0 : info.assetId]: '0'
133
144
  });
134
- addAsset({
135
- id: info.assetId,
136
- title: '',
137
- path: '',
138
- drm: ''
139
- }); // TODO: Add others field item information
140
145
  break;
141
146
  case PentheraEvent.PROGRESS_UPDATED:
142
147
  updateAssetsProgress({
@@ -1 +1 @@
1
- {"version":3,"names":["useEffect","useState","NativeEventEmitter","NativeModules","Platform","create","PentheraEvent","deleteMany","download","getDownloads","initialize","pauseDownload","playAsset","usePenthera","set","assets","assetsProgress","loadAssets","addAsset","asset","state","deleteManyAssets","assetIds","filter","includes","id","updateAssetsProgress","progress","onGetAllAssets","length","error","console","log","onDownload","_ref","_item$thumbnails","item","url","drm","dataAndroid","asset_id","content_url","poster","thumbnails","thumbnail","subtitle","dataBySO","OS","JSON","stringify","onDelete","response","deleted","Object","keys","updatedAssetsProgress","forEach","assetId","onPauseDownload","onPlayVideo","onListener","sessionConnect","NEventEmitter","Penthera","eventEmitter","removeAllListeners","eventListener","addListener","usePentheraInit","_ref2","userId","BACKPLANE_PRIVATE_KEY","BACKPLANE_PUBLIC_KEY","BACKPLANE_URL","isInitialized","setIsInitialized","init","newEvent","info","parse","code","VIRTUOSO_SUCCESS","DID_START_DOWNLOADING","title","path","PROGRESS_UPDATED","body","DOWNLOAD_COMPLETE","ASSET_RESUME_DOWNLOAD_UPDATED","ASSET_DELETED","CONFIG_ASSET_FAILED","ERROR_DOWNLOAD","PENDING_ASSET_FOUND","_eventListener","remove"],"sourceRoot":"../../../../src","sources":["hooks/usePenthera/usePenthera.tsx"],"mappings":"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"}
1
+ {"version":3,"names":["useEffect","useState","NativeEventEmitter","NativeModules","Platform","create","PentheraEvent","deleteMany","download","getDownloads","initialize","pauseDownload","playAsset","usePenthera","set","assets","assetsProgress","loadAssets","addAsset","asset","state","deleteManyAssets","assetIds","filter","includes","id","updateAssetsProgress","progress","_Object$keys","assetId","Object","keys","_state$assetsProgress","prevProgress","newProgress","onGetAllAssets","length","error","console","log","onDownload","_ref","_item$thumbnails","item","url","drm","dataAndroid","asset_id","content_url","poster","thumbnails","thumbnail","subtitle","dataBySO","OS","JSON","stringify","onDelete","response","deleted","updatedAssetsProgress","forEach","onPauseDownload","onPlayVideo","onListener","sessionConnect","NEventEmitter","Penthera","eventEmitter","removeAllListeners","eventListener","addListener","usePentheraInit","_ref2","userId","BACKPLANE_PRIVATE_KEY","BACKPLANE_PUBLIC_KEY","BACKPLANE_URL","isInitialized","setIsInitialized","init","newEvent","info","parse","code","VIRTUOSO_SUCCESS","DID_START_DOWNLOADING","PROGRESS_UPDATED","body","DOWNLOAD_COMPLETE","ASSET_RESUME_DOWNLOAD_UPDATED","ASSET_DELETED","CONFIG_ASSET_FAILED","ERROR_DOWNLOAD","PENDING_ASSET_FOUND","_eventListener","remove"],"sourceRoot":"../../../../src","sources":["hooks/usePenthera/usePenthera.tsx"],"mappings":"AAAA,SAASA,SAAS,EAAEC,QAAQ,QAAQ,OAAO;AAC3C,SAASC,kBAAkB,EAAEC,aAAa,EAAEC,QAAQ,QAAQ,cAAc;AAE1E,SAASC,MAAM,QAAQ,SAAS;AAEhC,SACEC,aAAa,QAMR,qBAAqB;AAC5B,SACEC,UAAU,EACVC,QAAQ,EACRC,YAAY,EACZC,UAAU,EACVC,aAAa,EACbC,SAAS,QACJ,qBAAqB;AAG5B,OAAO,MAAMC,WAAW,GAAGR,MAAM,CAAkCS,GAAG,KAAM;EAC1EC,MAAM,EAAE,EAAE;EACVC,cAAc,EAAE,CAAC,CAAC;EAClBC,UAAU,EAAGF,MAA+B,IAC1CD,GAAG,CAAC,OAAO;IACTC;EACF,CAAC,CAAC,CAAC;EACLG,QAAQ,EAAGC,KAAK,IACdL,GAAG,CAAEM,KAAK,KAAM;IACdL,MAAM,EAAE,CAAC,GAAGK,KAAK,CAACL,MAAM,EAAEI,KAAK;EACjC,CAAC,CAAC,CAAC;EACLE,gBAAgB,EAAGC,QAAQ,IACzBR,GAAG,CAAEM,KAAK,KAAM;IACdL,MAAM,EAAEK,KAAK,CAACL,MAAM,CAACQ,MAAM,CAAEJ,KAAK,IAAK,CAACG,QAAQ,CAACE,QAAQ,CAACL,KAAK,CAACM,EAAE,CAAC;EACrE,CAAC,CAAC,CAAC;EACLC,oBAAoB,EAAGC,QAAQ,IAC7Bb,GAAG,CAAEM,KAAK,IAAK;IAAA,IAAAQ,YAAA;IACb,MAAMC,OAAwC,IAAAD,YAAA,GAC5CE,MAAM,CAACC,IAAI,CAACJ,QAAQ,CAAC,cAAAC,YAAA,uBAArBA,YAAA,CAAwB,CAAC,CAAC;IAC5B,IACEC,OAAO,IACPT,KAAK,CAACJ,cAAc,IACpBW,QAAQ,IACRE,OAAO,IAAIF,QAAQ,IACnBE,OAAO,IAAIT,KAAK,CAACJ,cAAc,EAC/B;MAAA,IAAAgB,qBAAA;MACA,MAAMC,YAAoB,IAAAD,qBAAA,GACxBZ,KAAK,CAACJ,cAAc,cAAAgB,qBAAA,uBAApBA,qBAAA,CAAuBH,OAAO,CAAsC;MACtE,MAAMK,WAAW,GAAGP,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAGE,OAAO,CAA0B;MAChE,IAAII,YAAY,IAAIC,WAAY,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IAC/C;;IACA,OAAO;MACLlB,cAAc,EAAE;QACd,GAAGI,KAAK,CAACJ,cAAc;QACvB,GAAGW;MACL;IACF,CAAC;EACH,CAAC,CAAC;EACJQ,cAAc,EAAE,MAAAA,CAAA,KAAY;IAC1B,IAAI;MACF,MAAMpB,MAAmC,GAAG,MAAMN,YAAY,CAAC,EAAE,CAAC;MAClE,IAAIM,MAAM,CAACqB,MAAM,GAAG,CAAC,EAAE;QACrB,OAAOtB,GAAG,CAAC,OAAO;UAChBC;QACF,CAAC,CAAC,CAAC;MACL;IACF,CAAC,CAAC,OAAOsB,KAAK,EAAE;MACdC,OAAO,CAACC,GAAG,CAAC,uBAAuB,EAAEF,KAAK,CAAC;IAC7C;EACF,CAAC;EACDG,UAAU,EAAE,MAAAC,IAAA,IAA8B;IAAA,IAAAC,gBAAA;IAAA,IAAvB;MAAEC,IAAI;MAAEC,GAAG;MAAEC;IAAI,CAAC,GAAAJ,IAAA;IACnC,MAAMK,WAAW,GAAG;MAClBC,QAAQ,EAAEJ,IAAI,CAAClB,EAAE;MACjBuB,WAAW,EAAEJ,GAAG;MAChBK,MAAM,GAAAP,gBAAA,GAAEC,IAAI,CAACO,UAAU,cAAAR,gBAAA,uBAAfA,gBAAA,CAAiBS,SAAS;MAClCC,QAAQ,EAAE;IACZ,CAAC;IACD,MAAMC,QAAQ,GACZjD,QAAQ,CAACkD,EAAE,KAAK,SAAS,GAAGR,WAAW,GAAG;MAAEH,IAAI;MAAEC,GAAG;MAAEC;IAAI,CAAC;IAC9D,IAAI;MACF,MAAMrC,QAAQ,CAAC+C,IAAI,CAACC,SAAS,CAACH,QAAQ,CAAC,CAAC;MACxC,OAAOvC,GAAG,CAAEM,KAAK,KAAM;QACrBL,MAAM,EAAE,CAAC,GAAGK,KAAK,CAACL,MAAM,EAAE4B,IAAI;MAChC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,OAAON,KAAK,EAAE;MACdC,OAAO,CAACD,KAAK,CAAC,sBAAsB,EAAEA,KAAK,CAAC;IAC9C;EACF,CAAC;EACDoB,QAAQ,EAAE,MAAOnC,QAAkB,IAAK;IACtC,IAAI;MACF,MAAMoC,QAAQ,GAAG,MAAMnD,UAAU,CAACe,QAAQ,CAAC;MAC3C,MAAMqC,OAAO,GAAG7B,MAAM,CAACC,IAAI,CAAC2B,QAAQ,CAAC,CAACnC,MAAM,CAAEoB,IAAI,IAAKe,QAAQ,CAACf,IAAI,CAAC,CAAC;MAEtE,OAAO7B,GAAG,CAAEM,KAAK,IAAK;QACpB,MAAMwC,qBAAqB,GAAG;UAAE,GAAGxC,KAAK,CAACJ;QAAe,CAAC;QACzD2C,OAAO,CAACE,OAAO,CAAEhC,OAAe,IAAK;UACnC,IAAIT,KAAK,EAAE;YACT,OAAOwC,qBAAqB,CAAC/B,OAAO,CAAC;UACvC;QACF,CAAC,CAAC;QACF,OAAO;UACLd,MAAM,EAAEK,KAAK,CAACL,MAAM,CAACQ,MAAM,CACxBJ,KAAK,IAAK,CAACwC,OAAO,CAACnC,QAAQ,CAACL,KAAK,CAACM,EAAE,CAAW,CACjD;UACDT,cAAc,EAAE4C;QAClB,CAAC;MACH,CAAC,CAAC;IACJ,CAAC,CAAC,OAAOvB,KAAK,EAAE;MACdC,OAAO,CAACD,KAAK,CAAC,mBAAmB,EAAEA,KAAK,CAAC;IAC3C;EACF,CAAC;EACDyB,eAAe,EAAE,MAAOjC,OAAe,IAAK;IAC1C,MAAMlB,aAAa,CAACkB,OAAO,CAAC;EAC9B,CAAC;EACDkC,WAAW,EAAE,MAAOlC,OAAe,IAAK;IACtC,OAAO,MAAMjB,SAAS,CAACiB,OAAO,CAAC;EACjC;AACF,CAAC,CAAC,CAAC;AAEH,MAAMmC,UAAU,GAAIC,cAAuC,IAAK;EAC9D,MAAMC,aAAa,GAAG/D,aAAa,CAACgE,QAAQ;EAC5C,MAAMC,YAAY,GAAG,IAAIlE,kBAAkB,CAACgE,aAAa,CAAC;EAC1DE,YAAY,CAACC,kBAAkB,CAAC,UAAU,CAAC;EAC3C,MAAMC,aAAa,GAAGF,YAAY,CAACG,WAAW,CAAC,UAAU,EAAEN,cAAc,CAAC;EAC1E,OAAOK,aAAa;AACtB,CAAC;AAED,OAAO,SAASE,eAAeA,CAAAC,KAAA,EAKL;EAAA,IALM;IAC9BC,MAAM;IACNC,qBAAqB;IACrBC,oBAAoB;IACpBC;EACqB,CAAC,GAAAJ,KAAA;EACtB,MAAM,CAACK,aAAa,EAAEC,gBAAgB,CAAC,GAAG9E,QAAQ,CAAC,KAAK,CAAC;EACzD,MAAMiB,QAAQ,GAAGL,WAAW,CAAEO,KAAK,IAAKA,KAAK,CAACF,QAAQ,CAAC;EACvD,MAAMG,gBAAgB,GAAGR,WAAW,CAAEO,KAAK,IAAKA,KAAK,CAACC,gBAAgB,CAAC;EACvE,MAAMK,oBAAoB,GAAGb,WAAW,CACrCO,KAAK,IAAKA,KAAK,CAACM,oBAAoB,CACtC;EACD,MAAMS,cAAc,GAAGtB,WAAW,CAAEO,KAAK,IAAKA,KAAK,CAACe,cAAc,CAAC;EACnEnC,SAAS,CAAC,MAAM;IACd,IACE,CAAC0E,MAAM,IACP,CAACC,qBAAqB,IACtB,CAACC,oBAAoB,IACrB,CAACC,aAAa,EACd;MACA;IACF;IAEA,MAAMG,IAAI,GAAG,MAAAA,CAAA,KAAY;MACvB,MAAMtE,UAAU,CACdgE,MAAM,EACNG,aAAa,EACbD,oBAAoB,EACpBD,qBAAqB,CACtB;MACDI,gBAAgB,CAAC,IAAI,CAAC;IACxB,CAAC;IACDC,IAAI,EAAE;EACR,CAAC,EAAE,CAACN,MAAM,EAAEC,qBAAqB,EAAEC,oBAAoB,EAAEC,aAAa,CAAC,CAAC;EAExE7E,SAAS,CAAC,MAAM;IACd,IAAI,CAAC8E,aAAa,EAAE;IACpBxC,OAAO,CAACC,GAAG,CAAC,eAAe,CAAC;IAC5B,MAAM0B,cAAc,GAAIgB,QAAgB,IAAK;MAC3C,MAAMC,IAAW,GAAG3B,IAAI,CAAC4B,KAAK,CAACF,QAAQ,CAAC;MACxC3C,OAAO,CAACC,GAAG,CAAC,MAAM,EAAE2C,IAAI,CAAC;MACzB,QAAQA,IAAI,CAACE,IAAI;QACf,KAAK9E,aAAa,CAAC+E,gBAAgB;UACjC;QAEF,KAAK/E,aAAa,CAACgF,qBAAqB;UACtC5D,oBAAoB,CAAC;YAAE,CAACwD,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAErD,OAAO,GAAG;UAAI,CAAC,CAAC;UAC9C;QAEF,KAAKvB,aAAa,CAACiF,gBAAgB;UACjC7D,oBAAoB,CAAC;YAAE,CAACwD,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAErD,OAAO,GAAGqD,IAAI,CAACM;UAAK,CAAC,CAAC;UACpD;QAEF,KAAKlF,aAAa,CAACmF,iBAAiB;UAClC/D,oBAAoB,CAAC;YAAE,CAACwD,IAAI,CAACrD,OAAO,GAAG;UAAM,CAAC,CAAC;UAC/CM,cAAc,EAAE;UAChB;QAEF,KAAK7B,aAAa,CAACoF,6BAA6B;UAC9C;UACA;QAEF,KAAKpF,aAAa,CAACqF,aAAa;UAC9BtE,gBAAgB,CAAC,CAAC6D,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAErD,OAAO,CAAC,CAAC;UACjC;QAEF,KAAKvB,aAAa,CAACsF,mBAAmB;QACtC,KAAKtF,aAAa,CAACuF,cAAc;QACjC,KAAKvF,aAAa,CAACwF,mBAAmB;QACtC;UACExD,OAAO,CAACC,GAAG,CAAC,kBAAkB,EAAE2C,IAAI,CAAC;UACrC;MAAM;IAEZ,CAAC;IACD/C,cAAc,EAAE;IAChB,IAAImC,aAA8C;IAClDA,aAAa,GAAGN,UAAU,CAACC,cAAc,CAAC;IAE1C,OAAO,MAAM;MAAA,IAAA8B,cAAA;MACX,CAAAA,cAAA,GAAAzB,aAAa,cAAAyB,cAAA,uBAAbA,cAAA,CAAeC,MAAM,EAAE;MACvBjB,gBAAgB,CAAC,KAAK,CAAC;IACzB,CAAC;EACH,CAAC,EAAE,CACDD,aAAa,EACb5D,QAAQ,EACRG,gBAAgB,EAChBc,cAAc,EACdT,oBAAoB,CACrB,CAAC;AACJ"}
@@ -1 +1 @@
1
- {"version":3,"file":"usePenthera.d.ts","sourceRoot":"","sources":["../../../../src/hooks/usePenthera/usePenthera.tsx"],"names":[],"mappings":"AAKA,OAAO,EAEL,KAAK,aAAa,EAClB,KAAK,qBAAqB,EAC1B,cAAc,EAEf,MAAM,qBAAqB,CAAC;AAW7B,eAAO,MAAM,WAAW,6FAiFrB,CAAC;AAUJ,wBAAgB,eAAe,CAAC,EAC9B,MAAM,EACN,qBAAqB,EACrB,oBAAoB,EACpB,aAAa,GACd,EAAE,qBAAqB,QA0FvB"}
1
+ {"version":3,"file":"usePenthera.d.ts","sourceRoot":"","sources":["../../../../src/hooks/usePenthera/usePenthera.tsx"],"names":[],"mappings":"AAKA,OAAO,EAEL,KAAK,aAAa,EAClB,KAAK,qBAAqB,EAC1B,cAAc,EAGf,MAAM,qBAAqB,CAAC;AAW7B,eAAO,MAAM,WAAW,6FAiGrB,CAAC;AAUJ,wBAAgB,eAAe,CAAC,EAC9B,MAAM,EACN,qBAAqB,EACrB,oBAAoB,EACpB,aAAa,GACd,EAAE,qBAAqB,QAoFvB"}
@@ -11,9 +11,11 @@ export declare enum PentheraEvent {
11
11
  ERROR_DOWNLOAD = "ERROR_DOWNLOAD",
12
12
  PENDING_ASSET_FOUND = "PENDING_ASSET_FOUND"
13
13
  }
14
- type AssetId = string;
14
+ export type AssetId = string;
15
15
  type Progress = string;
16
- export type AssetProgress = Record<AssetId, Progress>;
16
+ export type AssetProgress = {
17
+ [key: string]: Progress;
18
+ };
17
19
  export type PentheraState = {
18
20
  assets: PentheraTypes.ItemCatalog[] | [];
19
21
  assetsProgress: AssetProgress | {};
@@ -1 +1 @@
1
- {"version":3,"file":"usePenthera.types.d.ts","sourceRoot":"","sources":["../../../../src/hooks/usePenthera/usePenthera.types.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAEjE,oBAAY,aAAa;IACvB,gBAAgB,qBAAqB;IACrC,qBAAqB,0BAA0B;IAC/C,gBAAgB,qBAAqB;IACrC,iBAAiB,sBAAsB;IACvC,mBAAmB,wBAAwB;IAC3C,6BAA6B,kCAAkC;IAC/D,aAAa,kBAAkB;IAC/B,cAAc,mBAAmB;IACjC,mBAAmB,wBAAwB;CAC5C;AACD,KAAK,OAAO,GAAG,MAAM,CAAC;AACtB,KAAK,QAAQ,GAAG,MAAM,CAAC;AACvB,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;AAEtD,MAAM,MAAM,aAAa,GAAG;IAC1B,MAAM,EAAE,aAAa,CAAC,WAAW,EAAE,GAAG,EAAE,CAAC;IACzC,cAAc,EAAE,aAAa,GAAG,EAAE,CAAC;CACpC,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG,KAAK,CAAC,iBAAiB,CAAC;IAC1D,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,qBAAqB,EAAE,MAAM,CAAC;CAC/B,CAAC,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG;IAC3B,UAAU,EAAE,CAAC,MAAM,EAAE,aAAa,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC;IAC1D,QAAQ,EAAE,CAAC,KAAK,EAAE,aAAa,CAAC,WAAW,KAAK,IAAI,CAAC;IACrD,gBAAgB,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IAC/C,oBAAoB,EAAE,CAAC,aAAa,EAAE,aAAa,KAAK,IAAI,CAAC;IAC7D,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,UAAU,EAAE,CAAC,IAAI,EAAE,aAAa,CAAC,cAAc,KAAK,IAAI,CAAC;IACzD,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACvC,eAAe,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,WAAW,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACxC,CAAC;AAEF,MAAM,MAAM,KAAK,GAAG;IAClB,IAAI,EAAE,aAAa,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC"}
1
+ {"version":3,"file":"usePenthera.types.d.ts","sourceRoot":"","sources":["../../../../src/hooks/usePenthera/usePenthera.types.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAEjE,oBAAY,aAAa;IACvB,gBAAgB,qBAAqB;IACrC,qBAAqB,0BAA0B;IAC/C,gBAAgB,qBAAqB;IACrC,iBAAiB,sBAAsB;IACvC,mBAAmB,wBAAwB;IAC3C,6BAA6B,kCAAkC;IAC/D,aAAa,kBAAkB;IAC/B,cAAc,mBAAmB;IACjC,mBAAmB,wBAAwB;CAC5C;AACD,MAAM,MAAM,OAAO,GAAG,MAAM,CAAC;AAC7B,KAAK,QAAQ,GAAG,MAAM,CAAC;AAEvB,MAAM,MAAM,aAAa,GAAG;IAC1B,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,MAAM,EAAE,aAAa,CAAC,WAAW,EAAE,GAAG,EAAE,CAAC;IACzC,cAAc,EAAE,aAAa,GAAG,EAAE,CAAC;CACpC,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG,KAAK,CAAC,iBAAiB,CAAC;IAC1D,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,qBAAqB,EAAE,MAAM,CAAC;CAC/B,CAAC,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG;IAC3B,UAAU,EAAE,CAAC,MAAM,EAAE,aAAa,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC;IAC1D,QAAQ,EAAE,CAAC,KAAK,EAAE,aAAa,CAAC,WAAW,KAAK,IAAI,CAAC;IACrD,gBAAgB,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IAC/C,oBAAoB,EAAE,CAAC,aAAa,EAAE,aAAa,KAAK,IAAI,CAAC;IAC7D,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,UAAU,EAAE,CAAC,IAAI,EAAE,aAAa,CAAC,cAAc,KAAK,IAAI,CAAC;IACzD,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACvC,eAAe,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,WAAW,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACxC,CAAC;AAEF,MAAM,MAAM,KAAK,GAAG;IAClB,IAAI,EAAE,aAAa,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@takeoffmedia/react-native-penthera",
3
- "version": "0.2.0",
3
+ "version": "0.2.1",
4
4
  "description": "test",
5
5
  "main": "lib/commonjs/index",
6
6
  "module": "lib/module/index",
@@ -9,6 +9,7 @@ import {
9
9
  type PentheraProviderProps,
10
10
  PentheraAction,
11
11
  Event,
12
+ AssetProgress,
12
13
  } from './usePenthera.types';
13
14
  import {
14
15
  deleteMany,
@@ -36,12 +37,28 @@ export const usePenthera = create<PentheraState & PentheraAction>((set) => ({
36
37
  assets: state.assets.filter((asset) => !assetIds.includes(asset.id)),
37
38
  })),
38
39
  updateAssetsProgress: (progress) =>
39
- set((state) => ({
40
- assetsProgress: {
41
- ...state.assetsProgress,
42
- ...progress,
43
- },
44
- })),
40
+ set((state) => {
41
+ const assetId: keyof AssetProgress | undefined =
42
+ Object.keys(progress)?.[0];
43
+ if (
44
+ assetId &&
45
+ state.assetsProgress &&
46
+ progress &&
47
+ assetId in progress &&
48
+ assetId in state.assetsProgress
49
+ ) {
50
+ const prevProgress: string =
51
+ state.assetsProgress?.[assetId as keyof typeof state.assetsProgress];
52
+ const newProgress = progress?.[assetId as keyof typeof progress];
53
+ if (prevProgress >= newProgress!) return {}; // TODO: This a workaround for solution of inconsistent events from penthera module.
54
+ }
55
+ return {
56
+ assetsProgress: {
57
+ ...state.assetsProgress,
58
+ ...progress,
59
+ },
60
+ };
61
+ }),
45
62
  onGetAllAssets: async () => {
46
63
  try {
47
64
  const assets: PentheraTypes.ItemCatalog[] = await getDownloads('');
@@ -158,12 +175,6 @@ export function usePentheraInit({
158
175
 
159
176
  case PentheraEvent.DID_START_DOWNLOADING:
160
177
  updateAssetsProgress({ [info?.assetId]: '0' });
161
- addAsset({
162
- id: info.assetId,
163
- title: '',
164
- path: '',
165
- drm: '',
166
- }); // TODO: Add others field item information
167
178
  break;
168
179
 
169
180
  case PentheraEvent.PROGRESS_UPDATED:
@@ -11,9 +11,12 @@ export enum PentheraEvent {
11
11
  ERROR_DOWNLOAD = 'ERROR_DOWNLOAD',
12
12
  PENDING_ASSET_FOUND = 'PENDING_ASSET_FOUND',
13
13
  }
14
- type AssetId = string;
14
+ export type AssetId = string;
15
15
  type Progress = string;
16
- export type AssetProgress = Record<AssetId, Progress>;
16
+
17
+ export type AssetProgress = {
18
+ [key: string]: Progress;
19
+ };
17
20
 
18
21
  export type PentheraState = {
19
22
  assets: PentheraTypes.ItemCatalog[] | [];
@@ -1,501 +0,0 @@
1
- import VirtuosoClientDownloadEngine
2
-
3
- @objc(Penthera)
4
- class Penthera: RCTEventEmitter, VirtuosoDownloadEngineNotificationsDelegate {
5
- var downloadEngineNotifications: VirtuosoDownloadEngineNotificationManager!
6
-
7
- public override init() {
8
- super.init()
9
- EventEmitter.sharedInstance.registerEventEmitter(eventEmitter: self)
10
- }
11
-
12
- var statusDownload: StatusDownload = StatusDownload()
13
-
14
- @objc(initializeSdk:withBackplaneUrl:withPublicKey:withPrivateKey:withResolver:withRejecter:)
15
- func initializeSdk(user: String, backplaneUrl: String, publicKey: String, privateKey: String, resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) -> Void {
16
- guard let engineConfig = VirtuosoEngineConfig(
17
- user: user,
18
- backplaneUrl: backplaneUrl,
19
- publicKey: publicKey,
20
- privateKey: privateKey) else {
21
- return reject("Penthera", "engine Config", nil)
22
- }
23
- self.downloadEngineNotifications = VirtuosoDownloadEngineNotificationManager.init(delegate: self)
24
- let virtuoso = VirtuosoDownloadEngine.instance()
25
- virtuoso.startup(engineConfig) { status in
26
- switch(status) {
27
- case .vde_EngineStartupSuccess:
28
- EventEmitter.sharedInstance.dispatch(name: "penthera", code: "Virtuoso Success", assetId: "test", body: "asset")
29
- resolve("Success")
30
- case .vde_EngineStartupAlreadyStarted:
31
- //EventEmitter.sharedInstance.dispatch(name: "penthera", body: "Virtuoso Aready Started")
32
- resolve("Already Started")
33
- case .vde_EngineStartupSuccessNoBackplane:
34
- //EventEmitter.sharedInstance.dispatch(name: "penthera", body: "Virtuoso Backplane")
35
- resolve("No Backplane")
36
- case .vde_EngineStartupInvalidOptions:
37
- //EventEmitter.sharedInstance.dispatch(name: "penthera", body: "Virtuoso Invalid")
38
- resolve("Invalid Option")
39
- case .vde_EngineStartupMethodIsDeprecated:
40
- //EventEmitter.sharedInstance.dispatch(name: "penthera", body: "Virtuoso Method Decraped")
41
- resolve("Decraped")
42
- case .vde_EngineStartupInternalException:
43
- //EventEmitter.sharedInstance.dispatch(name: "penthera", body: "Virtuoso Internal Exception")
44
- resolve("Internal Exception")
45
- case .vde_EngineDataMigrationError:
46
- //EventEmitter.sharedInstance.dispatch(name: "penthera", body: "Virtuoso Migrate Error")
47
- resolve("Error")
48
- @unknown default:
49
- //EventEmitter.sharedInstance.dispatch(name: "penthera", body: "Virtuoso Default")
50
- resolve("Error Default")
51
- }
52
- }
53
- }
54
-
55
- func timeIntervalToString(_ timeInterval: TimeInterval?) -> String {
56
- let formatter = DateComponentsFormatter()
57
- formatter.allowedUnits = [.hour, .minute, .second]
58
- formatter.unitsStyle = .positional
59
- formatter.zeroFormattingBehavior = .pad
60
- guard let interval = timeInterval else {
61
- return "00:00:00"
62
- }
63
- return formatter.string(from: interval) ?? "00:00:00"
64
- }
65
-
66
- func dateToString (_ date: Date?) -> String? {
67
- let dateFormatter = DateFormatter()
68
- dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ssZ"
69
- return date != nil ? dateFormatter.string(from: date!) : nil
70
- }
71
-
72
-
73
- @objc(getDownloads:withResolver:withRejecter:)
74
- func getDownloads(blank: String, resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) -> Void {
75
- let completedAssets = VirtuosoAsset.completedAssets(withAvailabilityFilter: false)
76
- let pendingAssets = VirtuosoAsset.pendingAssets(withAvailabilityFilter: false)
77
- var offlineCatalogs: [OfflineCatalog] = []
78
-
79
- for case let va as VirtuosoAsset in completedAssets {
80
- let thumbnail = va.findAllAncillaries(withTag: "thumbnail").first
81
- let show = va.findAllAncillaries(withTag: "show").first
82
- let thumbnails = Thumbnails(
83
- thumbnail: thumbnail?.fileDownloadURL ?? "",
84
- show: show?.fileDownloadURL ?? ""
85
- )
86
-
87
- let expiryDate = va.expiryDate // Assuming this is a valid Date object
88
- let effectiveExpiryDate = va.effectiveExpiryDate // Assuming this is a valid Date object
89
-
90
- let dataItem = DataItem(
91
- title: va.userInfo?["title"] as? String,
92
- seasonId: va.userInfo?["seasonId"] as? String,
93
- seasonTitle: va.userInfo?["seasonTitle"] as? String,
94
- duration: va.duration,
95
- estimatedSize: Int(va.estimatedSize),
96
- dataOffers: parseDataOffer(offer: va.userInfo?["dataOffers"] as Any),
97
- expiryDate: dateToString(expiryDate),
98
- expiryAfterPlay: timeIntervalToString(va.expiryAfterPlay),
99
- expiryAfterDownload: timeIntervalToString(va.expiryAfterDownload),
100
- isExpired: va.isExpired,
101
- inForcedExpire: va.inForcedExpire,
102
- effectiveExpiryDate: dateToString(effectiveExpiryDate!)
103
- )
104
- let catalog = OfflineCatalog(
105
- id: va.assetID,
106
- title: va.description,
107
- data: dataItem,
108
- thumbnails: thumbnails,
109
- isCompleted: va.isPlayable,
110
- isPaused: va.isPaused,
111
- percentage: Float(va.fractionComplete) / Float(va.estimatedSize)
112
- )
113
- offlineCatalogs.append(catalog)
114
- }
115
-
116
- for case let va as VirtuosoAsset in pendingAssets {
117
-
118
- let thumbnail = va.findAllAncillaries(withTag: "thumbnail").first
119
- let show = va.findAllAncillaries(withTag: "show").first
120
- let thumbnails = Thumbnails(
121
- thumbnail: thumbnail?.fileDownloadURL ?? "",
122
- show: show?.fileDownloadURL ?? ""
123
- )
124
-
125
- let expiryDate = va.expiryDate // Assuming this is a valid Date object
126
- let effectiveExpiryDate = va.effectiveExpiryDate // Assuming this is a valid Date object
127
- let dataItem = DataItem(
128
- title: va.userInfo?["title"] as? String,
129
- seasonId: va.userInfo?["seasonId"] as? String,
130
- seasonTitle: va.userInfo?["seasonTitle"] as? String,
131
- duration: va.duration,
132
- estimatedSize: Int(va.estimatedSize),
133
- dataOffers: parseDataOffer(offer: va.userInfo?["dataOffers"] as Any),
134
- expiryAfterPlay: timeIntervalToString(va.expiryAfterPlay),
135
- expiryAfterDownload: timeIntervalToString(va.expiryAfterDownload),
136
- isExpired: va.isExpired
137
- )
138
-
139
- let catalog = OfflineCatalog(
140
- id: va.assetID,
141
- title: va.description,
142
- data: dataItem,
143
- thumbnails: thumbnails,
144
- isCompleted: false,
145
- isPaused: va.isPaused,
146
- percentage: Float(va.fractionComplete) / Float(va.estimatedSize)
147
- )
148
- offlineCatalogs.append(catalog)
149
- }
150
-
151
- let decoder = JSONEncoder()
152
- do {
153
- let data = try decoder.encode(offlineCatalogs)
154
- let json = String(data: data, encoding: .utf8)!
155
- resolve(json)
156
- } catch {
157
- reject("penthere", error.localizedDescription, error)
158
- }
159
- //resolve(downloadComplete.map{ ($0 as? VirtuosoAsset)?.assetID })
160
- }
161
-
162
- func getDownloadedAsset(assetID: String) -> VirtuosoAsset? {
163
- // assets that have finished downloading
164
- let completedAssets = VirtuosoAsset.completedAssets(withAvailabilityFilter: false)
165
- guard let asset = completedAssets.filter({ ($0 as! VirtuosoAsset).assetID == assetID }).first as? VirtuosoAsset else {
166
- return nil
167
- }
168
- return asset
169
- }
170
-
171
- public func downloadEngineDidStartDownloadingAsset(_ asset: VirtuosoAsset) {
172
- EventEmitter.sharedInstance.dispatch(name: "penthera", code: PentheraEvent.DID_START_DOWNLOADING, assetId: asset.assetID, body: "")
173
- }
174
-
175
- public func downloadEngineProgressUpdated(for asset: VirtuosoAsset) {
176
- let percentage: Float = Float(asset.fractionComplete)/Float(asset.estimatedSize)
177
- if(percentage.isFinite) {
178
- EventEmitter.sharedInstance.dispatch(name: "penthera", code: PentheraEvent.PROGRESS_UPDATED, assetId: asset.assetID, body: "\(Int(asset.fractionComplete*100))")
179
- }
180
- }
181
-
182
- public func downloadEngineProgressUpdatedProcessing(for asset: VirtuosoAsset) {
183
-
184
- }
185
-
186
- public func downloadEngineDidFinishDownloadingAsset(_ asset: VirtuosoAsset) {
187
- EventEmitter.sharedInstance.dispatch(name: "penthera", code: PentheraEvent.DOWNLOAD_COMPLETE, assetId: asset.assetID, body: "")
188
- }
189
-
190
- public func downloadEngineDidEncounterError(for asset: VirtuosoAsset, error: Error?, task: URLSessionTask?, data: Data?, statusCode: NSNumber?) {
191
- asset.delete()
192
- EventEmitter.sharedInstance.dispatch(name: "penthera", code: PentheraEvent.ERROR_DOWNLOAD, assetId: asset.assetID, body: error.debugDescription ?? "Error downloading")
193
- /*EventEmitter.sharedInstance.dispatch(name: "penthera", body: "\(asset.assetID): Engine did encounter error \(error?.localizedDescription ?? "-")")*/
194
- }
195
-
196
- public func downloadEngineInternalQueueUpdate(asset: VirtuosoAsset) {
197
- //EventEmitter.sharedInstance.dispatch(name: "penthera", code: "TEST downloadEngineInternalQueueUpdate", body: "Queue updated", assetId: asset.assetID)
198
- EventEmitter.sharedInstance.dispatch(name: "penthera", code: "TEST downloadEngineInternalQueueUpdate", assetId: asset.assetID, body: "Queue updated")
199
- }
200
-
201
- public func downloadEngineStartupComplete(_ succeeded: Bool, asset: VirtuosoAsset) {
202
- //EventEmitter.sharedInstance.dispatch(name: "penthera", code: "Test downloadEngineStartupComplete", body: "SDK startup complete", assetId: asset.assetID)
203
- EventEmitter.sharedInstance.dispatch(name: "penthera", code: "TEST downloadEngineStartupComplete", assetId: asset.assetID, body: "SDK startup complete")
204
- }
205
- func getPendingAsset(assetID: String) -> VirtuosoAsset? {
206
- let pendingAssets = VirtuosoAsset.pendingAssets(withAvailabilityFilter: false)
207
- guard let asset = pendingAssets.filter({ ($0 as! VirtuosoAsset).assetID == assetID }).first as? VirtuosoAsset else {
208
- return nil
209
- }
210
- return asset
211
- }
212
- func getAncillaryFiles(files: [String: AnyObject]) -> [VirtuosoAncillaryFile] {
213
- var ancillaryFiles: [VirtuosoAncillaryFile] = []
214
- files.forEach { file in
215
- guard let url = file.value as? String else {
216
- return
217
- }
218
- guard let ancillaryFile = VirtuosoAncillaryFile(downloadUrl: url, andTag: file.key) else {
219
- return
220
- }
221
- ancillaryFiles.append(ancillaryFile)
222
- }
223
- return ancillaryFiles
224
- }
225
-
226
- @objc(download:withResolver:withRejecter:)
227
- func download(catalogString: String, resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) -> Void {
228
- let virtuoso = VirtuosoDownloadEngine.instance()
229
- var queue = virtuoso.assetsInQueue()
230
-
231
- //let decoder = JSONDecoder()
232
-
233
- do {
234
-
235
-
236
- let data = catalogString.getDictionary()
237
-
238
- guard let item = data!["item"] as! [String: AnyObject]? else {
239
- reject("No item", nil, nil)
240
- return
241
- }
242
- guard let url = data!["url"] as? String else {
243
- reject("No url", nil, nil)
244
- return
245
- }
246
-
247
- let assetID = item["id"] as! String? ?? ""
248
- let hasDRM = item["drm"] as! Bool? ?? false
249
- let title = item["title"] as! String? ?? ""
250
-
251
- let downloadAsset = getDownloadedAsset(assetID: assetID)
252
- let pendingAsset = getPendingAsset(assetID: assetID)
253
-
254
- if (pendingAsset != nil) {
255
- EventEmitter.sharedInstance.dispatch(name: "penthera", code: PentheraEvent.PENDING_ASSET_FOUND, assetId: assetID, body: "")
256
- pendingAsset?.delete()
257
- return
258
- }
259
-
260
- if(downloadAsset == nil && pendingAsset == nil) {
261
- DispatchQueue.global(qos: .background).async {
262
- guard let config = VirtuosoAssetConfig(url: url,
263
- assetID: assetID,
264
- description: String(describing: title),
265
- type: .vde_AssetTypeHLS) else {
266
- EventEmitter.sharedInstance.dispatch(name: "penthera", code: PentheraEvent.CONFIG_ASSET_FAILED, assetId: assetID, body: "-")
267
- return
268
- }
269
- // Ancillary Files
270
- let thumbnails = item["thumbnails"] as! [String: AnyObject]? ?? [:]
271
- let subtitles = item["subtitles"] as! [String: AnyObject]? ?? [:]
272
- config.ancillaries = self.getAncillaryFiles(files: thumbnails) + self.getAncillaryFiles(files: subtitles)
273
-
274
-
275
- //DRM
276
- if(hasDRM) {
277
-
278
- guard let drm = data!["drm"] as! [String: AnyObject]? else {
279
- reject("No drm", nil, nil)
280
- return
281
- }
282
-
283
- let token = drm["token"] as! String? ?? ""
284
- let licenceHttpHeader = drm["licence_server_http_header"] as! String? ?? ""
285
- let licence = drm["licence_server"] as! String? ?? ""
286
- let cert = drm["fairplay_cert"] as! String? ?? ""
287
-
288
- guard let drmSetup = FairPlayDrmSetup(assetID: assetID, certificateUrl: cert, licenceUrl: licence, header: licenceHttpHeader, token: token) else {
289
- EventEmitter.sharedInstance.dispatch(name: "penthera", code: PentheraEvent.FAIR_PLAY_LICENSE_DELEGATE_ERROR, assetId: "", body: "")
290
- return
291
- }
292
-
293
- if !drmSetup.configure() {
294
- EventEmitter.sharedInstance.dispatch(name: "penthera", code: PentheraEvent.FAIR_PLAY_LICENSE_DELEGATE_ERROR, assetId: "", body: "")
295
- return
296
- }
297
- config.protectionType = .vde_AssetProtectionTypeFairPlay
298
-
299
- }
300
-
301
- let asset = VirtuosoAsset.init(config: config)
302
-
303
- let data = item["data"] as! [String: AnyObject]? ?? [:]
304
-
305
- asset?.userInfo = data
306
-
307
- config.ancillaries?.forEach{ file in
308
- asset?.add(file)
309
- }
310
-
311
-
312
- //asset?.add(subtitle!)
313
-
314
- //let calendar = Calendar.current
315
- //guard let expiryDate = calendar.date(byAdding: .minute, value: 1, to: Date()) else {
316
- // return
317
- //}
318
-
319
- //asset?.expiryAfterDownload = expiryDate.timeIntervalSinceNow
320
-
321
- queue.append(asset!)
322
- resolve(assetID)
323
- //resolve(queue.count)
324
- }
325
- }
326
-
327
- } catch {
328
- reject("penthera", error.localizedDescription, error)
329
- }
330
- }
331
-
332
- @objc(delete:withResolver:withRejecter:)
333
- func delete(assetID: String, resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) -> Void {
334
- //DispatchQueue.global(qos: .background).async {
335
-
336
- let downloadComplete = VirtuosoAsset.completedAssets(withAvailabilityFilter: false)
337
- if(downloadComplete.count > 0) {
338
- for case let va as VirtuosoAsset in downloadComplete {
339
- if(va.assetID == assetID){
340
- va.delete()
341
- }
342
- }
343
- //(downloadComplete.first as! VirtuosoAsset).delete()
344
- }
345
- resolve("Delete complete")
346
- DispatchQueue.main.asyncAfter(deadline: .now() + 1.0) {
347
- EventEmitter.sharedInstance.dispatch(name: "penthera", code: PentheraEvent.ASSET_DELETED, assetId: assetID, body: "")
348
- }
349
- }
350
-
351
-
352
-
353
- @objc(deleteMany:withResolver:withRejecter:)
354
- func deleteMany(assetIDS: [String], resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) -> Void {
355
- // initialize assetResponse {}. Ex {"123":false, "543":false}
356
- var assetsResponse: [String: Bool] = Dictionary(uniqueKeysWithValues: assetIDS.map { ($0, false) })
357
-
358
- let downloadComplete = VirtuosoAsset.completedAssets(withAvailabilityFilter: false)
359
- if(downloadComplete.count > 0) {
360
- var assetsToDelete: [VirtuosoAsset] = []
361
- for asset in downloadComplete {
362
- if let va = asset as? VirtuosoAsset, assetIDS.contains(va.assetID) {
363
- assetsToDelete.append(va)
364
- assetsResponse[va.assetID] = true
365
- if assetsToDelete.count == assetIDS.count { // Se encontraron todos los assets, break for.
366
- break
367
- }
368
- }
369
- }
370
-
371
-
372
- VirtuosoAsset.delete(assetsToDelete) { () in
373
- resolve(assetsResponse)
374
- }
375
- } else {
376
- // No hay assets completados para eliminar
377
- let errorMessage = "deleteMany: completedAssets is empty"
378
- let userInfo = [NSLocalizedDescriptionKey: errorMessage]
379
- let error = NSError(domain: "takeoffmedia-react-native-penthera", code: 0, userInfo: userInfo)
380
- reject("ASSET_DELETE_ERROR", errorMessage, error)
381
- }
382
- }
383
-
384
-
385
-
386
- @objc open override func supportedEvents() -> [String] {
387
- return EventEmitter.sharedInstance.allEvents
388
- }
389
-
390
- @objc(playAsset:withResolver:withRejecter:)
391
- func playAsset(assetID: String, resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) -> Void {
392
-
393
- let downloadComplete = VirtuosoAsset.completedAssets(withAvailabilityFilter: false)
394
- guard let asset = downloadComplete.filter({ ($0 as! VirtuosoAsset).assetID == assetID }).first as? VirtuosoAsset else {
395
- reject("Error streaming asset", "", nil)
396
- return
397
- }
398
-
399
- let decoder = JSONEncoder()
400
-
401
- do {
402
-
403
-
404
- // let subtitle = vcHttpServer?.ancillaryURLForAncillary(withTag: "subtitle", usingMime: "text/vtt")
405
- // let thumbnailOffline = asset.findAllAncillaries(withTag: "thumbnailOffline").first
406
- //let wallpaper = asset.findAllAncillaries(withTag: "wallpaper").first
407
-
408
- let vcHttpServer = VirtuosoClientHTTPServer(asset: asset)
409
-
410
- let licenseURL = vcHttpServer?.fairPlayLicenseServerURL
411
- let certificateURL = vcHttpServer?.fairPlayCertificateDataURL(forSubType: nil)
412
-
413
- //let avContentKeySession = VirtuosoLicenseManager.registeredAVContentKeySession()
414
-
415
- //let userInfoData = try encoder.encode(asset.userInfo)
416
- //let userInfo = String(data: userInfoData, encoding: .utf8)
417
-
418
- let assetData = [
419
- "id": asset.assetID,
420
- "url": vcHttpServer?.playbackURL ?? "",
421
- "certificate": certificateURL ,
422
- "license": licenseURL
423
- ]
424
-
425
- let data = try decoder.encode(assetData)
426
- let json = String(data: data, encoding: .utf8)!
427
- resolve(json)
428
-
429
- // let config = PlayerConfig()
430
- // config.styleConfig.userInterfaceType = .system
431
- // config.key = "ASSSSSS"
432
-
433
- // let player = PlayerFactory.create(playerConfig: config)
434
-
435
- // guard let streamUrl = URL(string: vcHttpServer!.playbackURL) else {
436
- // return
437
- // }
438
-
439
- // // Create a SourceConfig
440
- // let sourceConfig = SourceConfig(url: streamUrl, type: .hls)
441
- // print(streamUrl.absoluteString)
442
-
443
- // // Optionally set additional properties
444
- // sourceConfig.title = "Art of motion"
445
-
446
- // DispatchQueue.main.async {
447
- // let source = SourceFactory.create(from: sourceConfig)
448
-
449
- // player.load(source: source)
450
-
451
-
452
- // let viewController = UIApplication.shared.windows.first?.rootViewController as? UIViewController
453
-
454
- // let playerView = PlayerView(player: player, frame: (viewController?.view.bounds)!)
455
-
456
- // // Adding the view to the a container View
457
- // viewController?.view.addSubview(playerView)
458
- // viewController?.view.bringSubviewToFront(playerView)
459
- // }
460
-
461
-
462
- /*
463
- let demoPlayer = DemoPlayerViewController()
464
- DispatchQueue.main.async {
465
- asset.play(using: .vde_AssetPlaybackTypeLocal,
466
- andPlayer: demoPlayer as VirtuosoPlayer,
467
- onSuccess: {
468
- // Present the player
469
-
470
- let viewController = UIApplication.shared.windows.first?.rootViewController as? UIViewController
471
- viewController?.present(demoPlayer, animated: true)
472
- //self.present(demoPlayer, animated: true, completion: nil)
473
- },
474
- onFail: {
475
- //self.error = nil
476
- })
477
- }*/
478
-
479
- } catch {
480
- reject("penthere", error.localizedDescription, error)
481
- }
482
- }
483
-
484
-
485
- @objc(pauseDownload:withResolver:withRejecter:)
486
- func pauseDownload(assetID: String, resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) -> Void {
487
- let pendingAsset = getPendingAsset(assetID: assetID)
488
- if (pendingAsset != nil) {
489
- self.pauseAsset(asset: pendingAsset!)
490
- return
491
- }
492
-
493
- }
494
-
495
- func pauseAsset(asset: VirtuosoAsset) {
496
- asset.isPaused = !asset.isPaused
497
- EventEmitter.sharedInstance.dispatch(name: "penthera", code: PentheraEvent.ASSET_RESUME_DOWNLOAD_UPDATED, assetId: asset.assetID, body: "\(asset.isPaused)")
498
- }
499
-
500
-
501
- }