1
1
// @ts -ignore
2
2
import { b64 } from '@diary-spo/crypto'
3
- import type TelegramBot from 'node-telegram-bot-api'
4
3
import { AuthModel } from '../../../../models/Auth'
5
4
import { DiaryUserModel } from '../../../../models/DiaryUser'
6
5
import { SubscribeModel } from '../../../../models/Subscribe'
7
6
import { INTERVAL_RUN } from '../../config'
7
+ import { Telegram } from "puregram" ;
8
8
9
- export const registerLogic = ( bot : TelegramBot | null ) => {
9
+ export const registerLogic = ( bot : Telegram | null ) => {
10
10
if ( ! bot ) return
11
- bot . on ( 'message' , async ( msg ) => {
11
+ bot . updates . on ( 'message' , async ( msg ) => {
12
12
const chatId = msg . chat . id
13
13
14
- if ( ! msg . text ) bot . sendMessage ( chatId , 'Такое сообщение не поддерживается' )
14
+ if ( ! msg . text ) {
15
+ msg . reply ( 'Такое сообщение не поддерживается' )
16
+ return
17
+ }
15
18
16
19
const command = ( msg . text ?? '' ) . split ( ' ' )
17
20
18
21
switch ( command [ 0 ] ) {
19
22
case '/subscribe' : {
20
23
if ( command . length < 2 ) {
21
- bot . sendMessage (
22
- chatId ,
24
+ msg . reply (
23
25
'Передайте вторым параметром актуальный токен, чтобы подписаться на уведомления'
24
26
)
25
27
return
@@ -30,17 +32,15 @@ export const registerLogic = (bot: TelegramBot | null) => {
30
32
try {
31
33
tokenSecure = atob ( command [ 1 ] )
32
34
} catch {
33
- bot . sendMessage (
34
- chatId ,
35
+ msg . reply (
35
36
'Вы что-то не то шлёте и всё ломаете. В бан захотели?'
36
37
)
37
38
return
38
39
}
39
40
const secureTokenParams = tokenSecure . split ( ':' )
40
41
41
42
if ( secureTokenParams . length !== 2 && ! Number ( secureTokenParams [ 0 ] ) ) {
42
- bot . sendMessage (
43
- chatId ,
43
+ msg . reply (
44
44
'У вашего токена неверная структура. В бан захотел(-а)?'
45
45
)
46
46
return
@@ -53,7 +53,7 @@ export const registerLogic = (bot: TelegramBot | null) => {
53
53
} )
54
54
55
55
if ( ! auth ) {
56
- bot . sendMessage ( chatId , 'Переданная авторизация не найдена ...' )
56
+ msg . reply ( 'Переданная авторизация не найдена ...' )
57
57
return
58
58
}
59
59
@@ -65,8 +65,7 @@ export const registerLogic = (bot: TelegramBot | null) => {
65
65
const secureToken = await b64 ( JSON . stringify ( tokenObject ) )
66
66
67
67
if ( secureToken !== secureTokenParams [ 1 ] ) {
68
- bot . sendMessage (
69
- chatId ,
68
+ msg . reply (
70
69
`Ваш токен какой-то не такой. Если вы ничего не трогали, то проблема у нас.\nПожалуйста, покажите это сообщение разработчикам.\nDebug info: ${ btoa (
71
70
JSON . stringify ( {
72
71
tokenSecure,
@@ -84,8 +83,7 @@ export const registerLogic = (bot: TelegramBot | null) => {
84
83
} )
85
84
86
85
if ( subscribes . length >= 1 ) {
87
- bot . sendMessage (
88
- chatId ,
86
+ msg . reply (
89
87
'Вы уже подписаны на уведомления. Сначала отпишитесь (/unsubscribe)'
90
88
)
91
89
return
@@ -103,8 +101,7 @@ export const registerLogic = (bot: TelegramBot | null) => {
103
101
}
104
102
} )
105
103
106
- bot . sendMessage (
107
- chatId ,
104
+ msg . reply (
108
105
`<b><i>${ user ?. firstName } ${ user ?. lastName } !</i></b> Вы успешно подписались на уведомления.\nПрежде чем Вы начнёте получать уведомления, нам нужно извлечь все ваши оценки (это просиходит примерно каждые <b>${ INTERVAL_RUN } секунд</b>).\nПо окончанию подготовительных процедур, мы уведомим Вас о готовности принимать уведомления.\nСпасибо, что выбираете нас!` ,
109
106
{ parse_mode : 'HTML' }
110
107
)
@@ -116,14 +113,12 @@ export const registerLogic = (bot: TelegramBot | null) => {
116
113
tgId : chatId
117
114
}
118
115
} )
119
- bot . sendMessage (
120
- chatId ,
116
+ msg . reply (
121
117
'Вы успешно отписались от всех аккаунтов. Можете привязать новый (/subscribe)'
122
118
)
123
119
break
124
120
default :
125
- bot . sendMessage (
126
- chatId ,
121
+ msg . reply (
127
122
'Этой команды нету, но есть такие:' +
128
123
'\n/subscribe <code>[token]</code> — подписаться на уведомления по токену' +
129
124
'\n/unsubscribe — отписаться от уведомлений' ,
0 commit comments