mirror of
https://github.com/FranP-code/Baileys.git
synced 2025-10-13 00:32:22 +00:00
mobile: deprecation.
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
import { Boom } from '@hapi/boom'
|
||||
import NodeCache from 'node-cache'
|
||||
import readline from 'readline'
|
||||
import makeWASocket, { AnyMessageContent, BinaryInfo, delay, DisconnectReason, downloadAndProcessHistorySyncNotification, encodeWAM, fetchLatestBaileysVersion, getAggregateVotesInPollMessage, getHistoryMsg, isJidNewsletter, makeCacheableSignalKeyStore, makeInMemoryStore, PHONENUMBER_MCC, proto, useMultiFileAuthState, WAMessageContent, WAMessageKey } from '../src'
|
||||
import makeWASocket, { AnyMessageContent, BinaryInfo, delay, DisconnectReason, downloadAndProcessHistorySyncNotification, encodeWAM, fetchLatestBaileysVersion, getAggregateVotesInPollMessage, getHistoryMsg, isJidNewsletter, makeCacheableSignalKeyStore, makeInMemoryStore, proto, useMultiFileAuthState, WAMessageContent, WAMessageKey } from '../src'
|
||||
//import MAIN_LOGGER from '../src/Utils/logger'
|
||||
import open from 'open'
|
||||
import fs from 'fs'
|
||||
@@ -13,7 +13,6 @@ logger.level = 'trace'
|
||||
const useStore = !process.argv.includes('--no-store')
|
||||
const doReplies = process.argv.includes('--do-reply')
|
||||
const usePairingCode = process.argv.includes('--use-pairing-code')
|
||||
const useMobile = process.argv.includes('--mobile')
|
||||
|
||||
// external map to store retry counts of messages when decryption/encryption fails
|
||||
// keep this out of the socket itself, so as to prevent a message decryption/encryption loop across socket restarts
|
||||
@@ -45,7 +44,6 @@ const startSock = async() => {
|
||||
version,
|
||||
logger,
|
||||
printQRInTerminal: !usePairingCode,
|
||||
mobile: useMobile,
|
||||
auth: {
|
||||
creds: state.creds,
|
||||
/** caching makes the store faster to send/recv messages */
|
||||
@@ -63,93 +61,13 @@ const startSock = async() => {
|
||||
store?.bind(sock.ev)
|
||||
|
||||
// Pairing code for Web clients
|
||||
if(usePairingCode && !sock.authState.creds.registered) {
|
||||
if(useMobile) {
|
||||
throw new Error('Cannot use pairing code with mobile api')
|
||||
}
|
||||
|
||||
const phoneNumber = await question('Please enter your mobile phone number:\n')
|
||||
if (usePairingCode && !sock.authState.creds.registered) {
|
||||
// todo move to QR event
|
||||
const phoneNumber = await question('Please enter your phone number:\n')
|
||||
const code = await sock.requestPairingCode(phoneNumber)
|
||||
console.log(`Pairing code: ${code}`)
|
||||
}
|
||||
|
||||
// If mobile was chosen, ask for the code
|
||||
if(useMobile && !sock.authState.creds.registered) {
|
||||
const { registration } = sock.authState.creds || { registration: {} }
|
||||
|
||||
if(!registration.phoneNumber) {
|
||||
registration.phoneNumber = await question('Please enter your mobile phone number:\n')
|
||||
}
|
||||
|
||||
const libPhonenumber = await import("libphonenumber-js")
|
||||
const phoneNumber = libPhonenumber.parsePhoneNumber(registration!.phoneNumber)
|
||||
if(!phoneNumber?.isValid()) {
|
||||
throw new Error('Invalid phone number: ' + registration!.phoneNumber)
|
||||
}
|
||||
|
||||
registration.phoneNumber = phoneNumber.format('E.164')
|
||||
registration.phoneNumberCountryCode = phoneNumber.countryCallingCode
|
||||
registration.phoneNumberNationalNumber = phoneNumber.nationalNumber
|
||||
const mcc = PHONENUMBER_MCC[phoneNumber.countryCallingCode]
|
||||
if(!mcc) {
|
||||
throw new Error('Could not find MCC for phone number: ' + registration!.phoneNumber + '\nPlease specify the MCC manually.')
|
||||
}
|
||||
|
||||
registration.phoneNumberMobileCountryCode = mcc
|
||||
|
||||
async function enterCode() {
|
||||
try {
|
||||
const code = await question('Please enter the one time code:\n')
|
||||
const response = await sock.register(code.replace(/["']/g, '').trim().toLowerCase())
|
||||
console.log('Successfully registered your phone number.')
|
||||
console.log(response)
|
||||
rl.close()
|
||||
} catch(error) {
|
||||
console.error('Failed to register your phone number. Please try again.\n', error)
|
||||
await askForOTP()
|
||||
}
|
||||
}
|
||||
|
||||
async function enterCaptcha() {
|
||||
const response = await sock.requestRegistrationCode({ ...registration, method: 'captcha' })
|
||||
const path = __dirname + '/captcha.png'
|
||||
fs.writeFileSync(path, Buffer.from(response.image_blob!, 'base64'))
|
||||
|
||||
open(path)
|
||||
const code = await question('Please enter the captcha code:\n')
|
||||
fs.unlinkSync(path)
|
||||
registration.captcha = code.replace(/["']/g, '').trim().toLowerCase()
|
||||
}
|
||||
|
||||
async function askForOTP() {
|
||||
if (!registration.method) {
|
||||
await delay(2000)
|
||||
let code = await question('How would you like to receive the one time code for registration? "sms" or "voice"\n')
|
||||
code = code.replace(/["']/g, '').trim().toLowerCase()
|
||||
if(code !== 'sms' && code !== 'voice') {
|
||||
return await askForOTP()
|
||||
}
|
||||
|
||||
registration.method = code
|
||||
}
|
||||
|
||||
try {
|
||||
await sock.requestRegistrationCode(registration)
|
||||
await enterCode()
|
||||
} catch(error) {
|
||||
console.error('Failed to request registration code. Please try again.\n', error)
|
||||
|
||||
if(error?.reason === 'code_checkpoint') {
|
||||
await enterCaptcha()
|
||||
}
|
||||
|
||||
await askForOTP()
|
||||
}
|
||||
}
|
||||
|
||||
askForOTP()
|
||||
}
|
||||
|
||||
const sendMessageWTyping = async(msg: AnyMessageContent, jid: string) => {
|
||||
await sock.presenceSubscribe(jid)
|
||||
await delay(500)
|
||||
|
||||
Reference in New Issue
Block a user