1- const EventEmitter = require ( ' events' ) ;
1+ const EventEmitter = require ( " events" ) ;
22
3- const makeWASocket = require ( ' @adiwajshing/baileys' ) . default
3+ const makeWASocket = require ( " @adiwajshing/baileys" ) . default ;
44const {
5- DisconnectReason,
6- useSingleFileAuthState,
7- Browsers
8- } = require ( ' @adiwajshing/baileys' )
5+ DisconnectReason,
6+ useSingleFileAuthState,
7+ Browsers,
8+ } = require ( " @adiwajshing/baileys" ) ;
99
1010class WhatsappClient extends EventEmitter {
11- #sock;
12-
13- constructor ( sessionPath ) {
14- super ( ) ;
15- var self = this ;
16- async function connectToWhatsApp ( ) {
17- const { state, saveState } = useSingleFileAuthState ( sessionPath )
18-
19- self . #sock = makeWASocket ( {
20- auth : state ,
21- syncFullHistory : false ,
22- browser : Browsers . macOS ( 'Desktop' ) ,
23- logger : require ( "pino" ) ( { level : 'silent' } )
24- } )
25-
26- self . #sock. ev . on ( 'creds.update' , saveState )
27-
28- self . #sock. ev . on ( 'connection.update' , ( update ) => {
29- const { connection, lastDisconnect, qr } = update
30-
31- if ( qr ) {
32- self . emit ( 'qr' , qr )
33- }
34-
35- if ( connection === 'close' ) {
36- const shouldReconnect = lastDisconnect . error . output ?. statusCode !== DisconnectReason . loggedOut
37- if ( shouldReconnect ) {
38- connectToWhatsApp ( )
39- } else {
40- self . emit ( 'disconnected' )
41- }
42- } else if ( connection === 'open' ) {
43- self . emit ( 'ready' )
44- }
45- } )
46-
47- self . #sock. ev . on ( 'messages.upsert' , ( Message ) => {
48- let msg = Message . messages [ 0 ]
49- if ( ! msg . key . fromMe )
50- self . emit ( 'message' , msg )
51- } )
11+ #sock;
12+
13+ constructor ( sessionPath ) {
14+ super ( ) ;
15+ var self = this ;
16+ async function connectToWhatsApp ( ) {
17+ const { state, saveState } = useSingleFileAuthState ( sessionPath ) ;
18+
19+ self . #sock = makeWASocket ( {
20+ auth : state ,
21+ syncFullHistory : false ,
22+ browser : Browsers . macOS ( "Desktop" ) ,
23+ logger : require ( "pino" ) ( { level : "silent" } ) ,
24+ } ) ;
25+
26+ self . #sock. ev . on ( "creds.update" , saveState ) ;
27+
28+ self . #sock. ev . on ( "connection.update" , ( update ) => {
29+ const { connection, lastDisconnect, qr } = update ;
30+
31+ if ( qr ) {
32+ self . emit ( "qr" , qr ) ;
5233 }
5334
54- connectToWhatsApp ( )
55- }
35+ if ( connection === "close" ) {
36+ const shouldReconnect =
37+ lastDisconnect . error . output ?. statusCode !==
38+ DisconnectReason . loggedOut ;
39+ if ( shouldReconnect ) {
40+ connectToWhatsApp ( ) ;
41+ } else {
42+ self . emit ( "disconnected" ) ;
43+ }
44+ } else if ( connection === "open" ) {
45+ self . emit ( "ready" ) ;
46+ }
47+ } ) ;
5648
57- async sendMessage ( chatId , msg , options ) {
58- return await this . #sock. sendMessage ( chatId , msg , options ) ;
59- }
49+ self . #sock. ev . on ( "messages.upsert" , ( Message ) => {
50+ let msg = Message . messages [ 0 ] ;
51+ if ( ! msg . key . fromMe ) self . emit ( "message" , msg ) ;
52+ } ) ;
6053
61- async presenceSubscribe ( chatId ) {
62- return await this . #sock. presenceSubscribe ( chatId ) ;
54+ self . #sock. ev . on ( "presence.update" , ( presence ) => {
55+ self . emit ( "presence_update" , presence ) ;
56+ } ) ;
6357 }
6458
65- async updateProfileStatus ( status ) {
66- return await this . #sock. updateProfileStatus ( status )
67- }
59+ connectToWhatsApp ( ) ;
60+ }
6861
69- async updateProfileName ( name ) {
70- return await this . #sock. updateProfileName ( name )
71- }
62+ async sendMessage ( chatId , msg , options ) {
63+ return await this . #sock. sendMessage ( chatId , msg , options ) ;
64+ }
7265
73- async isOnWhatsapp ( id ) {
74- return await this . #sock. onWhatsApp ( id )
75- }
66+ async presenceSubscribe ( chatId ) {
67+ return await this . #sock. presenceSubscribe ( chatId ) ;
68+ }
7669
77- async updateBlockStatus ( id , status ) {
78- return await this . #sock. updateBlockStatus ( id , status )
79- }
70+ async updateProfileStatus ( status ) {
71+ return await this . #sock. updateProfileStatus ( status ) ;
72+ }
73+
74+ async updateProfileName ( name ) {
75+ return await this . #sock. updateProfileName ( name ) ;
76+ }
77+
78+ async isOnWhatsapp ( id ) {
79+ return await this . #sock. onWhatsApp ( id ) ;
80+ }
81+
82+ async updateBlockStatus ( id , status ) {
83+ return await this . #sock. updateBlockStatus ( id , status ) ;
84+ }
85+
86+ async sendPresenceUpdate ( type , id ) {
87+ return await this . #sock. sendPresenceUpdate ( type , id ) ;
88+ }
8089}
8190
82- module . exports = WhatsappClient
91+ module . exports = WhatsappClient ;
0 commit comments