diff --git a/dist/bundle.es.js b/dist/bundle.es.js index d615edc..9a8e531 100644 --- a/dist/bundle.es.js +++ b/dist/bundle.es.js @@ -1566,21 +1566,21 @@ const doCheckSubscription = (subscriptionUri, shouldNotify) => (dispatch, getSta lbryRedux.Lbry.claim_search({ channel: subscriptionUri, - page: 1, - page_size: PAGE_SIZE, valid_channel_signature: true, - order_by: ['release_time'] - }).then(result => { + order_by: ['release_time'], + page: 1, + page_size: PAGE_SIZE + }).then(claimListByChannel => { const { items: claimsInChannel - } = result; // may happen if subscribed to an abandoned channel or an empty channel + } = claimListByChannel; // may happen if subscribed to an abandoned channel or an empty channel if (!claimsInChannel || !claimsInChannel.length) { return; } // Determine if the latest subscription currently saved is actually the latest subscription - const latestIndex = claimsInChannel.findIndex(claim => `${claim.name}#${claim.claim_id}` === savedSubscription.latest); // If latest is -1, it is a newly subscribed channel or there have been 10+ claims published since last viewed + const latestIndex = claimsInChannel.findIndex(claim => claim.permanent_url === savedSubscription.latest); // If latest is -1, it is a newly subscribed channel or there have been 10+ claims published since last viewed const latestIndexToNotify = latestIndex === -1 ? 10 : latestIndex; // If latest is 0, nothing has changed // Do not download/notify about new content, it would download/notify 10 claims per channel @@ -1589,10 +1589,7 @@ const doCheckSubscription = (subscriptionUri, shouldNotify) => (dispatch, getSta let downloadCount = 0; const newUnread = []; claimsInChannel.slice(0, latestIndexToNotify).forEach(claim => { - const uri = lbryRedux.buildURI({ - claimName: claim.name, - claimId: claim.claim_id - }, true); + const uri = claim.permanent_url; if (shouldNotify) { newUnread.push(uri); @@ -1603,18 +1600,11 @@ const doCheckSubscription = (subscriptionUri, shouldNotify) => (dispatch, getSta // This allows the app to know if there has been new content since it was last set - const latestClaim = claimsInChannel[0]; - const latestClaimChannel = latestClaim.signing_channel.name; + const latest = claimsInChannel[0]; dispatch(setSubscriptionLatest({ - channelName: latestClaimChannel, - uri: lbryRedux.buildURI({ - channelName: latestClaimChannel, - claimId: latestClaim.claim_id - }, false) - }, lbryRedux.buildURI({ - claimName: latestClaim.name, - claimId: latestClaim.claim_id - }, false))); // calling FETCH_CHANNEL_CLAIMS_COMPLETED after not calling STARTED + channelName: latest.signing_channel.name, + uri: latest.signing_channel.permanent_url + }, latest.permanent_url)); // calling FETCH_CHANNEL_CLAIMS_COMPLETED after not calling STARTED // means it will delete a non-existant fetchingChannelClaims[uri] dispatch({ @@ -1647,12 +1637,12 @@ const doChannelSubscribe = subscription => (dispatch, getState) => { if (isSharingData) { const { - claimId + channelClaimId } = lbryRedux.parseURI(subscription.uri); // They are sharing data, we can store their subscriptions in our internal database Lbryio.call('subscription', 'new', { channel_name: subscription.channelName, - claim_id: claimId + claim_id: channelClaimId }); dispatch(doClaimRewardType(rewards.TYPE_SUBSCRIPTION, { failSilently: true @@ -1675,10 +1665,10 @@ const doChannelUnsubscribe = subscription => (dispatch, getState) => { if (isSharingData) { const { - claimId + channelClaimId } = lbryRedux.parseURI(subscription.uri); Lbryio.call('subscription', 'delete', { - claim_id: claimId + claim_id: channelClaimId }); } }; @@ -1727,16 +1717,9 @@ const doFetchMySubscriptions = () => (dispatch, getState) => { }); reduxSubscriptions.forEach(sub => { const { - claimId + channelClaimId } = lbryRedux.parseURI(sub.uri); - reduxSubMap[claimId] = 1; - - if (!dbSubMap[claimId]) { - subsNotInDB.push({ - claim_id: claimId, - channel_name: sub.channelName - }); - } + reduxSubMap[channelClaimId] = 1; }); storedSubscriptions.forEach(sub => { if (!reduxSubMap[sub.claim_id]) { diff --git a/dist/bundle.js b/dist/bundle.js index 3338462..4a0ceb7 100644 --- a/dist/bundle.js +++ b/dist/bundle.js @@ -2575,12 +2575,12 @@ var doCheckSubscription = function doCheckSubscription(subscriptionUri, shouldNo lbry_redux__WEBPACK_IMPORTED_MODULE_3__["Lbry"].claim_search({ channel: subscriptionUri, - page: 1, - page_size: constants_claim__WEBPACK_IMPORTED_MODULE_0__["PAGE_SIZE"], valid_channel_signature: true, - order_by: ['release_time'] - }).then(function (result) { - var claimsInChannel = result.items; // may happen if subscribed to an abandoned channel or an empty channel + order_by: ['release_time'], + page: 1, + page_size: constants_claim__WEBPACK_IMPORTED_MODULE_0__["PAGE_SIZE"] + }).then(function (claimListByChannel) { + var claimsInChannel = claimListByChannel.items; // may happen if subscribed to an abandoned channel or an empty channel if (!claimsInChannel || !claimsInChannel.length) { return; @@ -2588,7 +2588,7 @@ var doCheckSubscription = function doCheckSubscription(subscriptionUri, shouldNo var latestIndex = claimsInChannel.findIndex(function (claim) { - return "".concat(claim.name, "#").concat(claim.claim_id) === savedSubscription.latest; + return claim.permanent_url === savedSubscription.latest; }); // If latest is -1, it is a newly subscribed channel or there have been 10+ claims published since last viewed var latestIndexToNotify = latestIndex === -1 ? 10 : latestIndex; // If latest is 0, nothing has changed @@ -2598,11 +2598,8 @@ var doCheckSubscription = function doCheckSubscription(subscriptionUri, shouldNo var downloadCount = 0; var newUnread = []; claimsInChannel.slice(0, latestIndexToNotify).forEach(function (claim) { - var uri = Object(lbry_redux__WEBPACK_IMPORTED_MODULE_3__["buildURI"])({ - claimName: claim.name, - claimId: claim.claim_id - }, true); - var shouldDownload = shouldAutoDownload && Boolean(downloadCount < SUBSCRIPTION_DOWNLOAD_LIMIT && !claim.value.stream.metadata.fee); // Add the new content to the list of "un-read" subscriptions + var uri = claim.permanent_url; + var shouldDownload = shouldAutoDownload && Boolean(downloadCount < SUBSCRIPTION_DOWNLOAD_LIMIT && !claim.value.fee); // Add the new content to the list of "un-read" subscriptions if (shouldNotify) { newUnread.push(uri); @@ -2620,18 +2617,11 @@ var doCheckSubscription = function doCheckSubscription(subscriptionUri, shouldNo // This allows the app to know if there has been new content since it was last set - var latestClaim = claimsInChannel[0]; - var latestClaimChannel = latestClaim.signing_channel.name; + var latest = claimsInChannel[0]; dispatch(setSubscriptionLatest({ - channelName: latestClaimChannel, - uri: Object(lbry_redux__WEBPACK_IMPORTED_MODULE_3__["buildURI"])({ - channelName: latestClaimChannel, - claimId: latestClaim.claim_id - }, false) - }, Object(lbry_redux__WEBPACK_IMPORTED_MODULE_3__["buildURI"])({ - claimName: latestClaim.name, - claimId: latestClaim.claim_id - }, false))); // calling FETCH_CHANNEL_CLAIMS_COMPLETED after not calling STARTED + channelName: latest.signing_channel.name, + uri: latest.signing_channel.permanent_url + }, latest.permanent_url)); // calling FETCH_CHANNEL_CLAIMS_COMPLETED after not calling STARTED // means it will delete a non-existant fetchingChannelClaims[uri] dispatch({ @@ -2664,12 +2654,12 @@ var doChannelSubscribe = function doChannelSubscribe(subscription) { if (isSharingData) { var _parseURI = Object(lbry_redux__WEBPACK_IMPORTED_MODULE_3__["parseURI"])(subscription.uri), - claimId = _parseURI.claimId; // They are sharing data, we can store their subscriptions in our internal database + channelClaimId = _parseURI.channelClaimId; // They are sharing data, we can store their subscriptions in our internal database lbryio__WEBPACK_IMPORTED_MODULE_6__["default"].call('subscription', 'new', { channel_name: subscription.channelName, - claim_id: claimId + claim_id: channelClaimId }); dispatch(Object(redux_actions_rewards__WEBPACK_IMPORTED_MODULE_1__["doClaimRewardType"])(rewards__WEBPACK_IMPORTED_MODULE_7__["default"].TYPE_SUBSCRIPTION, { failSilently: true @@ -2692,10 +2682,10 @@ var doChannelUnsubscribe = function doChannelUnsubscribe(subscription) { if (isSharingData) { var _parseURI2 = Object(lbry_redux__WEBPACK_IMPORTED_MODULE_3__["parseURI"])(subscription.uri), - claimId = _parseURI2.claimId; + channelClaimId = _parseURI2.channelClaimId; lbryio__WEBPACK_IMPORTED_MODULE_6__["default"].call('subscription', 'delete', { - claim_id: claimId + claim_id: channelClaimId }); } }; @@ -2746,16 +2736,9 @@ var doFetchMySubscriptions = function doFetchMySubscriptions() { }); reduxSubscriptions.forEach(function (sub) { var _parseURI3 = Object(lbry_redux__WEBPACK_IMPORTED_MODULE_3__["parseURI"])(sub.uri), - claimId = _parseURI3.claimId; + channelClaimId = _parseURI3.channelClaimId; - reduxSubMap[claimId] = 1; - - if (!dbSubMap[claimId]) { - subsNotInDB.push({ - claim_id: claimId, - channel_name: sub.channelName - }); - } + reduxSubMap[channelClaimId] = 1; }); storedSubscriptions.forEach(function (sub) { if (!reduxSubMap[sub.claim_id]) { diff --git a/src/redux/actions/subscriptions.js b/src/redux/actions/subscriptions.js index 10e467a..67847a3 100644 --- a/src/redux/actions/subscriptions.js +++ b/src/redux/actions/subscriptions.js @@ -11,7 +11,7 @@ import type { import { PAGE_SIZE } from 'constants/claim'; import { doClaimRewardType } from 'redux/actions/rewards'; import { selectSubscriptions, selectUnreadByChannel } from 'redux/selectors/subscriptions'; -import { Lbry, buildURI, parseURI, doResolveUris, doPurchaseUri } from 'lbry-redux'; +import { Lbry, parseURI, doResolveUris, doPurchaseUri } from 'lbry-redux'; import * as ACTIONS from 'constants/action_types'; import * as NOTIFICATION_TYPES from 'constants/subscriptions'; import Lbryio from 'lbryio'; @@ -159,12 +159,12 @@ export const doCheckSubscription = (subscriptionUri: string, shouldNotify?: bool // We may be duplicating calls here. Can this logic be baked into doFetchClaimsByChannel? Lbry.claim_search({ channel: subscriptionUri, - page: 1, - page_size: PAGE_SIZE, valid_channel_signature: true, order_by: ['release_time'], - }).then(result => { - const { items: claimsInChannel } = result; + page: 1, + page_size: PAGE_SIZE, + }).then(claimListByChannel => { + const { items: claimsInChannel } = claimListByChannel; // may happen if subscribed to an abandoned channel or an empty channel if (!claimsInChannel || !claimsInChannel.length) { @@ -173,7 +173,7 @@ export const doCheckSubscription = (subscriptionUri: string, shouldNotify?: bool // Determine if the latest subscription currently saved is actually the latest subscription const latestIndex = claimsInChannel.findIndex( - claim => `${claim.name}#${claim.claim_id}` === savedSubscription.latest + claim => claim.permanent_url === savedSubscription.latest ); // If latest is -1, it is a newly subscribed channel or there have been 10+ claims published since last viewed @@ -186,10 +186,10 @@ export const doCheckSubscription = (subscriptionUri: string, shouldNotify?: bool const newUnread = []; claimsInChannel.slice(0, latestIndexToNotify).forEach(claim => { - const uri = buildURI({ claimName: claim.name, claimId: claim.claim_id }, true); + const uri = claim.permanent_url; const shouldDownload = shouldAutoDownload && - Boolean(downloadCount < SUBSCRIPTION_DOWNLOAD_LIMIT && !claim.value.stream.metadata.fee); + Boolean(downloadCount < SUBSCRIPTION_DOWNLOAD_LIMIT && !claim.value.fee); // Add the new content to the list of "un-read" subscriptions if (shouldNotify) { @@ -213,21 +213,14 @@ export const doCheckSubscription = (subscriptionUri: string, shouldNotify?: bool // Set the latest piece of content for a channel // This allows the app to know if there has been new content since it was last set - const latestClaim = claimsInChannel[0]; - const latestClaimChannel = latestClaim.signing_channel.name; + const latest = claimsInChannel[0]; dispatch( setSubscriptionLatest( { - channelName: latestClaimChannel, - uri: buildURI( - { - channelName: latestClaimChannel, - claimId: latestClaim.claim_id, - }, - false - ), + channelName: latest.signing_channel.name, + uri: latest.signing_channel.permanent_url, }, - buildURI({ claimName: latestClaim.name, claimId: latestClaim.claim_id }, false) + latest.permanent_url ) ); @@ -268,11 +261,11 @@ export const doChannelSubscribe = (subscription: Subscription) => ( // if the user isn't sharing data, keep the subscriptions entirely in the app if (isSharingData) { - const { claimId } = parseURI(subscription.uri); + const { channelClaimId } = parseURI(subscription.uri); // They are sharing data, we can store their subscriptions in our internal database Lbryio.call('subscription', 'new', { channel_name: subscription.channelName, - claim_id: claimId, + claim_id: channelClaimId, }); dispatch(doClaimRewardType(rewards.TYPE_SUBSCRIPTION, { failSilently: true })); @@ -296,9 +289,9 @@ export const doChannelUnsubscribe = (subscription: Subscription) => ( }); if (isSharingData) { - const { claimId } = parseURI(subscription.uri); + const { channelClaimId } = parseURI(subscription.uri); Lbryio.call('subscription', 'delete', { - claim_id: claimId, + claim_id: channelClaimId, }); } }; @@ -354,15 +347,8 @@ export const doFetchMySubscriptions = () => (dispatch: ReduxDispatch, getState: }); reduxSubscriptions.forEach(sub => { - const { claimId } = parseURI(sub.uri); - reduxSubMap[claimId] = 1; - - if (!dbSubMap[claimId]) { - subsNotInDB.push({ - claim_id: claimId, - channel_name: sub.channelName, - }); - } + const { channelClaimId } = parseURI(sub.uri); + reduxSubMap[channelClaimId] = 1; }); storedSubscriptions.forEach(sub => {