Skip to content

Commit 6ee4368

Browse files
authored
Add source tag with order message link (#520)
Don't publish non public orders on Nostr
1 parent 211763f commit 6ee4368

File tree

3 files changed

+22
-7
lines changed

3 files changed

+22
-7
lines changed

Diff for: bot/messages.ts

+5
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ const {
1313
getUserAge,
1414
getStars,
1515
} = require('../util');
16+
const OrderEvents = require('./modules/events/orders');
1617
const { logger } = require('../logger');
1718
import { MainContext } from './start';
1819
import { UserDocument } from '../models/user'
@@ -601,6 +602,8 @@ const publishBuyOrderMessage = async (
601602
message1 && (message1.message_id).toString() ? (message1.message_id).toString() : null;
602603

603604
await order.save();
605+
// We can publish the order on nostr now becase we have the message id
606+
OrderEvents.orderUpdated(order);
604607
if (messageToUser) {
605608
// Message to user let know the order was published
606609
await pendingBuyMessage(bot, user, order, channel, i18n);
@@ -634,6 +637,8 @@ const publishSellOrderMessage = async (
634637
message1 && (message1.message_id).toString() ? (message1.message_id).toString() : null;
635638

636639
await order.save();
640+
// We can publish the order on nostr now becase we have the message id
641+
OrderEvents.orderUpdated(order);
637642
// Message to user let know the order was published
638643
if (messageToUser)
639644
await pendingSellMessage(ctx, user, order, channel, i18n);

Diff for: bot/modules/nostr/events.js

+14-6
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,11 @@ const orderToTags = async order => {
1616
if (order.fiat_amount === undefined) {
1717
fiat_amount = `${order.min_amount}-${order.max_amount}`;
1818
}
19+
const channel =
20+
process.env.CHANNEL[0] === '@'
21+
? process.env.CHANNEL.slice(1)
22+
: process.env.CHANNEL;
23+
let source = `https://t.me/${channel}/${order.tg_channel_message1}`;
1924
const tags = [];
2025
tags.push(['d', order.id]);
2126
tags.push(['k', order.type]);
@@ -25,21 +30,24 @@ const orderToTags = async order => {
2530
tags.push(['fa', fiat_amount.toString()]);
2631
tags.push(['pm', order.payment_method]);
2732
tags.push(['premium', order.price_margin.toString()]);
28-
tags.push(['y', 'lnp2pbot']);
29-
tags.push(['z', 'order']);
30-
tags.push(['expiration', expiration.toString()]);
3133
if (order.community_id) {
3234
const community = await Community.findById(order.community_id);
33-
if (community.public) {
34-
tags.push(['community_id', order.community_id]);
35-
}
35+
source = `https://t.me/${community.group}/${order.tg_channel_message1}`;
36+
tags.push(['community_id', order.community_id]);
3637
}
38+
tags.push(['source', source]);
39+
tags.push(['y', 'lnp2pbot']);
40+
tags.push(['z', 'order']);
41+
tags.push(['expiration', expiration.toString()]);
3742

3843
return tags;
3944
};
4045

4146
exports.createOrderEvent = async order => {
4247
const myPrivKey = Config.getPrivateKey();
48+
if (order.is_public === false) {
49+
return;
50+
}
4351

4452
const created_at = Math.floor(Date.now() / 1000);
4553
const tags = await orderToTags(order);

Diff for: bot/ordersActions.js

+3-1
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,9 @@ const createOrder = async (
9999
}
100100
await order.save();
101101

102-
OrderEvents.orderUpdated(order);
102+
if (order.status !== 'PENDING') {
103+
OrderEvents.orderUpdated(order);
104+
}
103105

104106
return order;
105107
} catch (error) {

0 commit comments

Comments
 (0)