1
1
const fetch = require ( 'node-fetch' ) ;
2
+ const {
3
+ cleanMessage,
4
+ wrapInCodeBlock,
5
+ escapeMarkdown,
6
+ } = require ( './telegram/utils' ) ;
7
+
2
8
const api = 'https://dreamland.rocks/api' ;
3
9
4
10
let toDream = Promise . resolve ( ) ;
@@ -39,22 +45,22 @@ class DreamLand {
39
45
}
40
46
41
47
async sendReport ( type , args ) {
42
- const escapeMarkdown = text => {
43
- return text . replace ( / ( [ _ * [ \] ( ) ~ ` > # + \- = | { } . ! ] ) / g, '\\$1' ) ;
44
- } ;
45
-
46
48
const { url, title } = this . types [ type ] ;
49
+
50
+ const cleanedMessage = cleanMessage ( args . message ) ;
51
+ const wrappedMessage = wrapInCodeBlock ( cleanedMessage ) ;
52
+
47
53
const response = await enqueueToDream ( `${ api } ${ url } ` , this . options ( args ) ) ;
48
54
49
55
let result ;
50
56
51
57
if ( response . ok ) {
52
- const { id, message } = args ;
58
+ const { id } = args ;
53
59
54
60
result =
55
61
`${ title } ` +
56
62
`*Відправник:* ${ escapeMarkdown ( id ) } \n` +
57
- `*Текст:* ${ escapeMarkdown ( message ) } \n\n ` +
63
+ `${ wrappedMessage } ` +
58
64
`${ title . trim ( ) } успішно надіслано.` ;
59
65
} else {
60
66
result = `Цей користувач Telegram не повʼязан з жодним персонажем. Використовуй *'режим телеграм'* у грі.` ;
@@ -73,7 +79,6 @@ class DreamLand {
73
79
if ( who . total === 0 ) {
74
80
result = 'У світі нікого немає!' ;
75
81
} else {
76
- result = '```' ;
77
82
if ( who . people && who . people . length > 0 )
78
83
result +=
79
84
'\nЗараз у світі:\n\n' +
@@ -92,10 +97,10 @@ class DreamLand {
92
97
'\n\nЧують канали: ' +
93
98
who . discord . map ( p => p . name . ru || p . name . en ) . join ( ', ' ) ;
94
99
95
- result += '\n\nУсього гравців: ' + who . total + '.\n``` ' ;
100
+ result += '\n\nУсього гравців: ' + who . total + '.' ;
96
101
}
97
102
98
- return result ;
103
+ return wrapInCodeBlock ( result ) ;
99
104
}
100
105
101
106
async whois ( playerName ) {
@@ -112,25 +117,25 @@ class DreamLand {
112
117
const clan = whoisData . clan ? whoisData . clan . name : 'Нет' ;
113
118
const remorts = whoisData . remorts || '0' ;
114
119
const title = whoisData . clan ?. title
115
- ? `* Титул у клані:* ${ whoisData . clan . title } \n`
120
+ ? `Титул у клані: ${ whoisData . clan . title } \n`
116
121
: '' ;
117
122
const capitalizedPlayerName =
118
123
name . charAt ( 0 ) . toUpperCase ( ) + name . slice ( 1 ) ;
119
124
120
125
result =
121
- `* Інформація про гравця:* \n\n` +
122
- `* Ім'я:* ${ capitalizedPlayerName } \n` +
123
- `* Раса:* ${ race } \n` +
124
- `* Клан:* ${ clan } \n` +
126
+ `Інформація про гравця:\n\n` +
127
+ `Ім'я: ${ capitalizedPlayerName } \n` +
128
+ `Раса: ${ race } \n` +
129
+ `Клан: ${ clan } \n` +
125
130
title +
126
- `* Кількість перероджень:* ${ remorts } ` ;
131
+ `Кількість перероджень: ${ remorts } ` ;
127
132
} else if ( whoisData . error === 'player not found' ) {
128
133
result = `Персонаж із таким ім'ям не знайдений` ;
129
134
} else {
130
135
result = 'Сталася помилка, спробуйте пізніше.' ;
131
136
}
132
137
133
- return result ;
138
+ return wrapInCodeBlock ( result ) ;
134
139
}
135
140
136
141
async ooc ( args ) {
0 commit comments