diff --git a/src/commands/curator/abandon.js b/src/commands/curator/abandon.js index ef83207..3468130 100644 --- a/src/commands/curator/abandon.js +++ b/src/commands/curator/abandon.js @@ -11,8 +11,8 @@ module.exports = class Abaondon extends Command { }; } async exec(message, { args }) { - const givenClaim = args[0]; - if (!/^[a-f0-9]{40}$/.test(givenClaim)) + const givenClaim = Util.resolveToClaimID(args[0]); + if (!givenClaim) // @TODO use claim_search for invalid claim ids return message.channel.createMessage('That Claim ID isn\'t valid.'); diff --git a/src/commands/curator/support.js b/src/commands/curator/support.js index 4430160..d165f00 100644 --- a/src/commands/curator/support.js +++ b/src/commands/curator/support.js @@ -15,8 +15,8 @@ module.exports = class Support extends Command { if (!givenAmount) return message.channel.createMessage('The second argument must be a numeric amount of LBC to send!'); - const givenClaim = args[0]; - if (!/^[a-f0-9]{40}$/.test(givenClaim)) + const givenClaim = Util.resolveToClaimID(args[0]); + if (!givenClaim) // @TODO use claim_search for invalid claim ids return message.channel.createMessage('That Claim ID isn\'t valid.'); diff --git a/src/util.js b/src/util.js index 6567d4a..274aa18 100644 --- a/src/util.js +++ b/src/util.js @@ -150,6 +150,20 @@ Util.resolveToUserID = (arg) => { else return null; }; +/** + * Resolve argument to a claim ID + * @memberof Util. + * @param {string} arg + * @returns {?string} + */ +Util.resolveToClaimID = (arg) => { + if (/^[a-f0-9]{40}$/.test(arg)) + return arg; + else if (/^lbry:\/\/@?[\w-]+#([a-f0-9]{40})$/.test(arg)) + return arg.replace(/^<@!?(\d{17,18})>$/, '$1'); + else return null; +}; + /** * Make a promise that resolves after some time * @memberof Util.