diff --git a/bot/modules/community/scenes.js b/bot/modules/community/scenes.js index 81eb5f6b..e13f16b0 100644 --- a/bot/modules/community/scenes.js +++ b/bot/modules/community/scenes.js @@ -2,7 +2,11 @@ const { Scenes } = require('telegraf'); const { logger } = require('../../../logger'); const { Community, User, PendingPayment } = require('../../../models'); const { isPendingPayment } = require('../../../ln'); -const { isGroupAdmin, itemsFromMessage } = require('../../../util'); +const { + isGroupAdmin, + itemsFromMessage, + removeAtSymbol, +} = require('../../../util'); const messages = require('../../messages'); const { isValidInvoice } = require('../../validations'); const { @@ -351,8 +355,7 @@ const createCommunitySteps = { const usernames = itemsFromMessage(text); if (usernames.length > 0 && usernames.length < 10) { for (let i = 0; i < usernames.length; i++) { - const username = - usernames[i][0] == '@' ? usernames[i].slice(1) : usernames[i]; + const username = removeAtSymbol(usernames[i]); const user = await User.findOne({ username }); if (user) { solvers.push({ @@ -699,8 +702,7 @@ exports.updateSolversCommunityWizard = new Scenes.WizardScene( if (usernames.length > 0 && usernames.length < 10) { for (let i = 0; i < usernames.length; i++) { - const username = - usernames[i][0] == '@' ? usernames[i].slice(1) : usernames[i]; + const username = removeAtSymbol(usernames[i]); const user = await User.findOne({ username }); if (user) { solvers.push({ diff --git a/bot/modules/dispute/commands.js b/bot/modules/dispute/commands.js index 819b003f..a1f390ed 100644 --- a/bot/modules/dispute/commands.js +++ b/bot/modules/dispute/commands.js @@ -8,6 +8,7 @@ const messages = require('./messages'); const globalMessages = require('../../messages'); const { logger } = require('../../../logger'); const OrderEvents = require('../../modules/events/orders'); +const { removeAtSymbol } = require('../../../util'); const dispute = async ctx => { try { @@ -98,7 +99,7 @@ const deleteDispute = async ctx => { if (!order) { return await globalMessages.notActiveOrderMessage(ctx); } - username = username[0] == '@' ? username.slice(1) : username; + username = removeAtSymbol(username); const user = await User.findOne({ username }); if (!user) { return await globalMessages.notFoundUserMessage(ctx); diff --git a/bot/modules/nostr/events.js b/bot/modules/nostr/events.js index e48e90c3..7bb148de 100644 --- a/bot/modules/nostr/events.js +++ b/bot/modules/nostr/events.js @@ -2,7 +2,7 @@ const { finalizeEvent, verifyEvent } = require('nostr-tools/pure'); const Config = require('./config'); const { Community } = require('../../../models'); -const { toKebabCase } = require('../../../util'); +const { toKebabCase, removeAtSymbol } = require('../../../util'); /// All events broadcasted are Parameterized Replaceable Events, /// the event kind must be between 30000 and 39999 @@ -16,10 +16,7 @@ const orderToTags = async order => { if (order.fiat_amount === undefined) { fiat_amount = `${order.min_amount}-${order.max_amount}`; } - const channel = - process.env.CHANNEL[0] === '@' - ? process.env.CHANNEL.slice(1) - : process.env.CHANNEL; + const channel = removeAtSymbol(process.env.CHANNEL); let source = `https://t.me/${channel}/${order.tg_channel_message1}`; const tags = []; tags.push(['d', order.id]); @@ -32,7 +29,8 @@ const orderToTags = async order => { tags.push(['premium', order.price_margin.toString()]); if (order.community_id) { const community = await Community.findById(order.community_id); - source = `https://t.me/${community.group}/${order.tg_channel_message1}`; + const group = removeAtSymbol(community.group); + source = `https://t.me/${group}/${order.tg_channel_message1}`; tags.push(['community_id', order.community_id]); } tags.push(['source', source]); diff --git a/bot/start.ts b/bot/start.ts index 39b0ad9d..d7544edf 100644 --- a/bot/start.ts +++ b/bot/start.ts @@ -15,7 +15,7 @@ const { Dispute, Config, } = require('../models'); -const { getCurrenciesWithPrice, deleteOrderFromChannel } = require('../util'); +const { getCurrenciesWithPrice, deleteOrderFromChannel, removeAtSymbol } = require('../util'); const { commandArgsMiddleware, stageMiddleware, @@ -65,7 +65,6 @@ const { nodeInfo, } = require('../jobs'); const { logger } = require('../logger'); - export interface MainContext extends Context { match: Array | null; i18n: I18nContext; @@ -591,7 +590,7 @@ const initialize = (botToken: string, options: Partial { return `${roundedRating} ${stars} (${totalReviews})`; }; + +exports.removeAtSymbol = text => { + return text[0] === '@' ? text.slice(1) : text; +};