Merge pull request #199 from lbryio/channelImport

support for ytsync transfers
This commit is contained in:
Sean Yesmunt 2019-09-23 11:14:47 -04:00 committed by GitHub
commit d44cd9ca56
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
9 changed files with 84 additions and 3 deletions

38
dist/bundle.es.js vendored
View file

@ -106,6 +106,9 @@ const CREATE_CHANNEL_FAILED = 'CREATE_CHANNEL_FAILED';
const UPDATE_CHANNEL_STARTED = 'UPDATE_CHANNEL_STARTED';
const UPDATE_CHANNEL_COMPLETED = 'UPDATE_CHANNEL_COMPLETED';
const UPDATE_CHANNEL_FAILED = 'UPDATE_CHANNEL_FAILED';
const IMPORT_CHANNEL_STARTED = 'IMPORT_CHANNEL_STARTED';
const IMPORT_CHANNEL_COMPLETED = 'IMPORT_CHANNEL_COMPLETED';
const IMPORT_CHANNEL_FAILED = 'IMPORT_CHANNEL_FAILED';
const PUBLISH_STARTED = 'PUBLISH_STARTED';
const PUBLISH_COMPLETED = 'PUBLISH_COMPLETED';
const PUBLISH_FAILED = 'PUBLISH_FAILED';
@ -342,6 +345,9 @@ var action_types = /*#__PURE__*/Object.freeze({
UPDATE_CHANNEL_STARTED: UPDATE_CHANNEL_STARTED,
UPDATE_CHANNEL_COMPLETED: UPDATE_CHANNEL_COMPLETED,
UPDATE_CHANNEL_FAILED: UPDATE_CHANNEL_FAILED,
IMPORT_CHANNEL_STARTED: IMPORT_CHANNEL_STARTED,
IMPORT_CHANNEL_COMPLETED: IMPORT_CHANNEL_COMPLETED,
IMPORT_CHANNEL_FAILED: IMPORT_CHANNEL_FAILED,
PUBLISH_STARTED: PUBLISH_STARTED,
PUBLISH_COMPLETED: PUBLISH_COMPLETED,
PUBLISH_FAILED: PUBLISH_FAILED,
@ -734,6 +740,7 @@ const Lbry = {
claim_list: params => daemonCallWithResult('claim_list', params),
channel_create: params => daemonCallWithResult('channel_create', params),
channel_update: params => daemonCallWithResult('channel_update', params),
channel_import: params => daemonCallWithResult('channel_import', params),
channel_list: params => daemonCallWithResult('channel_list', params),
stream_abandon: params => daemonCallWithResult('stream_abandon', params),
channel_abandon: params => daemonCallWithResult('channel_abandon', params),
@ -756,6 +763,7 @@ const Lbry = {
account_set: (params = {}) => daemonCallWithResult('account_set', params),
address_is_mine: (params = {}) => daemonCallWithResult('address_is_mine', params),
address_unused: (params = {}) => daemonCallWithResult('address_unused', params),
address_list: (params = {}) => daemonCallWithResult('address_list', params),
transaction_list: (params = {}) => daemonCallWithResult('transaction_list', params),
utxo_release: (params = {}) => daemonCallWithResult('utxo_release', params),
support_abandon: (params = {}) => daemonCallWithResult('support_abandon', params),
@ -1686,6 +1694,8 @@ const selectMyChannelClaims = reselect.createSelector(selectState$2, selectClaim
const selectResolvingUris = reselect.createSelector(selectState$2, state => state.resolvingUris || []);
const selectChannelImportPending = reselect.createSelector(selectState$2, state => state.pendingChannelImport);
const makeSelectIsUriResolving = uri => reselect.createSelector(selectResolvingUris, resolvingUris => resolvingUris && resolvingUris.indexOf(uri) !== -1);
const selectPlayingUri = reselect.createSelector(selectState$2, state => state.playingUri);
@ -2502,6 +2512,25 @@ function doUpdateChannel(params) {
};
}
function doImportChannel(certificate) {
return dispatch => {
dispatch({
type: IMPORT_CHANNEL_STARTED
});
return lbryProxy.channel_import({ channel_data: certificate }).then(result => {
dispatch({
type: IMPORT_CHANNEL_COMPLETED
});
}).catch(error => {
dispatch({
type: IMPORT_CHANNEL_FAILED,
data: error
});
});
};
}
function doFetchChannelListMine() {
return dispatch => {
dispatch({
@ -3598,7 +3627,8 @@ const defaultState = {
updateChannelError: '',
updatingChannel: false,
creatingChannel: false,
createChannelError: undefined
createChannelError: undefined,
pendingChannelImport: false
};
function handleClaimAction(state, action) {
@ -3877,6 +3907,10 @@ reducers[UPDATE_CHANNEL_FAILED] = (state, action) => {
});
};
reducers[IMPORT_CHANNEL_STARTED] = state => Object.assign({}, state, { pendingChannelImports: true });
reducers[IMPORT_CHANNEL_COMPLETED] = state => Object.assign({}, state, { pendingChannelImports: false });
reducers[CLAIM_SEARCH_STARTED] = (state, action) => {
const fetchingClaimSearchByQuery = Object.assign({}, state.fetchingClaimSearchByQuery);
fetchingClaimSearchByQuery[action.data.query] = true;
@ -4961,6 +4995,7 @@ exports.doFileGet = doFileGet;
exports.doFileList = doFileList;
exports.doFocusSearchInput = doFocusSearchInput;
exports.doGetNewAddress = doGetNewAddress;
exports.doImportChannel = doImportChannel;
exports.doPopulateSharedUserState = doPopulateSharedUserState;
exports.doPrepareEdit = doPrepareEdit;
exports.doPublish = doPublish;
@ -5061,6 +5096,7 @@ exports.selectBlockedChannels = selectBlockedChannels;
exports.selectBlockedChannelsCount = selectBlockedChannelsCount;
exports.selectBlocks = selectBlocks;
exports.selectChannelClaimCounts = selectChannelClaimCounts;
exports.selectChannelImportPending = selectChannelImportPending;
exports.selectChannelIsBlocked = selectChannelIsBlocked;
exports.selectClaimSearchByQuery = selectClaimSearchByQuery;
exports.selectClaimSearchByQueryLastPageReached = selectClaimSearchByQueryLastPageReached;

View file

@ -190,6 +190,7 @@ declare type LbryTypes = {
claim_list: (params?: {}) => Promise<ClaimListResponse>,
channel_create: (params: {}) => Promise<ChannelCreateResponse>,
channel_update: (params: {}) => Promise<ChannelUpdateResponse>,
channel_import: (params: {}) => Promise<string>,
channel_list: () => Promise<ChannelListResponse>,
stream_abandon: (params: {}) => Promise<GenericTxResponse>,
channel_abandon: (params: {}) => Promise<GenericTxResponse>,
@ -214,6 +215,7 @@ declare type LbryTypes = {
account_set: (params: {}) => Promise<AccountSetResponse>,
address_is_mine: (params: {}) => Promise<boolean>,
address_unused: (params: {}) => Promise<string>, // New address
address_list: (params: {}) => Promise<string>,
transaction_list: (params: {}) => Promise<TxListResponse>,
support_abandon: (params: {}) => Promise<SupportAbandonResponse>,

2
flow-typed/Lbry.js vendored
View file

@ -190,6 +190,7 @@ declare type LbryTypes = {
claim_list: (params?: {}) => Promise<ClaimListResponse>,
channel_create: (params: {}) => Promise<ChannelCreateResponse>,
channel_update: (params: {}) => Promise<ChannelUpdateResponse>,
channel_import: (params: {}) => Promise<string>,
channel_list: () => Promise<ChannelListResponse>,
stream_abandon: (params: {}) => Promise<GenericTxResponse>,
channel_abandon: (params: {}) => Promise<GenericTxResponse>,
@ -214,6 +215,7 @@ declare type LbryTypes = {
account_set: (params: {}) => Promise<AccountSetResponse>,
address_is_mine: (params: {}) => Promise<boolean>,
address_unused: (params: {}) => Promise<string>, // New address
address_list: (params: {}) => Promise<string>,
transaction_list: (params: {}) => Promise<TxListResponse>,
support_abandon: (params: {}) => Promise<SupportAbandonResponse>,

View file

@ -83,6 +83,9 @@ export const CREATE_CHANNEL_FAILED = 'CREATE_CHANNEL_FAILED';
export const UPDATE_CHANNEL_STARTED = 'UPDATE_CHANNEL_STARTED';
export const UPDATE_CHANNEL_COMPLETED = 'UPDATE_CHANNEL_COMPLETED';
export const UPDATE_CHANNEL_FAILED = 'UPDATE_CHANNEL_FAILED';
export const IMPORT_CHANNEL_STARTED = 'IMPORT_CHANNEL_STARTED';
export const IMPORT_CHANNEL_COMPLETED = 'IMPORT_CHANNEL_COMPLETED';
export const IMPORT_CHANNEL_FAILED = 'IMPORT_CHANNEL_FAILED';
export const PUBLISH_STARTED = 'PUBLISH_STARTED';
export const PUBLISH_COMPLETED = 'PUBLISH_COMPLETED';
export const PUBLISH_FAILED = 'PUBLISH_FAILED';

View file

@ -55,6 +55,7 @@ export {
doCreateChannel,
doUpdateChannel,
doClaimSearch,
doImportChannel,
} from 'redux/actions/claims';
export { doDeletePurchasedUri, doPurchaseUri, doFileGet } from 'redux/actions/file';
@ -206,6 +207,7 @@ export {
selectUpdateChannelError,
selectCreatingChannel,
selectCreateChannelError,
selectChannelImportPending,
} from 'redux/selectors/claims';
export { makeSelectCommentsForUri } from 'redux/selectors/comments';

View file

@ -79,6 +79,7 @@ const Lbry: LbryTypes = {
claim_list: params => daemonCallWithResult('claim_list', params),
channel_create: params => daemonCallWithResult('channel_create', params),
channel_update: params => daemonCallWithResult('channel_update', params),
channel_import: params => daemonCallWithResult('channel_import', params),
channel_list: params => daemonCallWithResult('channel_list', params),
stream_abandon: params => daemonCallWithResult('stream_abandon', params),
channel_abandon: params => daemonCallWithResult('channel_abandon', params),
@ -101,6 +102,7 @@ const Lbry: LbryTypes = {
account_set: (params = {}) => daemonCallWithResult('account_set', params),
address_is_mine: (params = {}) => daemonCallWithResult('address_is_mine', params),
address_unused: (params = {}) => daemonCallWithResult('address_unused', params),
address_list: (params = {}) => daemonCallWithResult('address_list', params),
transaction_list: (params = {}) => daemonCallWithResult('transaction_list', params),
utxo_release: (params = {}) => daemonCallWithResult('utxo_release', params),
support_abandon: (params = {}) => daemonCallWithResult('support_abandon', params),

View file

@ -323,6 +323,27 @@ export function doUpdateChannel(params: any) {
};
}
export function doImportChannel(certificate: string) {
return (dispatch: Dispatch) => {
dispatch({
type: ACTIONS.IMPORT_CHANNEL_STARTED,
});
return Lbry.channel_import({ channel_data: certificate })
.then((result: string) => {
dispatch({
type: ACTIONS.IMPORT_CHANNEL_COMPLETED,
});
})
.catch(error => {
dispatch({
type: ACTIONS.IMPORT_CHANNEL_FAILED,
data: error,
});
});
};
}
export function doFetchChannelListMine() {
return (dispatch: Dispatch) => {
dispatch({

View file

@ -34,6 +34,7 @@ type State = {
},
updateChannelError: string,
updatingChannel: boolean,
pendingChannelImport: string | boolean,
};
const reducers = {};
@ -58,6 +59,7 @@ const defaultState = {
updatingChannel: false,
creatingChannel: false,
createChannelError: undefined,
pendingChannelImport: false,
};
function handleClaimAction(state: State, action: any): State {
@ -348,6 +350,12 @@ reducers[ACTIONS.UPDATE_CHANNEL_FAILED] = (state: State, action: any): State =>
});
};
reducers[ACTIONS.IMPORT_CHANNEL_STARTED] = (state: State): State =>
Object.assign({}, state, { pendingChannelImports: true });
reducers[ACTIONS.IMPORT_CHANNEL_COMPLETED] = (state: State): State =>
Object.assign({}, state, { pendingChannelImports: false });
reducers[ACTIONS.CLAIM_SEARCH_STARTED] = (state: State, action: any): State => {
const fetchingClaimSearchByQuery = Object.assign({}, state.fetchingClaimSearchByQuery);
fetchingClaimSearchByQuery[action.data.query] = true;

View file

@ -240,8 +240,8 @@ export const makeSelectDateForUri = (uri: string) =>
(claim.value.release_time
? claim.value.release_time * 1000
: claim.meta && claim.meta.creation_timestamp
? claim.meta.creation_timestamp * 1000
: null);
? claim.meta.creation_timestamp * 1000
: null);
if (!timestamp) {
return undefined;
}
@ -382,6 +382,11 @@ export const selectResolvingUris = createSelector(
state => state.resolvingUris || []
);
export const selectChannelImportPending = createSelector(
selectState,
state => state.pendingChannelImport
);
export const makeSelectIsUriResolving = (uri: string) =>
createSelector(
selectResolvingUris,