mirror of
https://github.com/FranP-code/Baileys.git
synced 2025-10-13 00:32:22 +00:00
fix: exclude emails from URL gen
This commit is contained in:
@@ -20,6 +20,7 @@ export const NOISE_WA_HEADER = Buffer.from(
|
|||||||
) // last is "DICT_VERSION"
|
) // last is "DICT_VERSION"
|
||||||
/** from: https://stackoverflow.com/questions/3809401/what-is-a-good-regular-expression-to-match-a-url */
|
/** from: https://stackoverflow.com/questions/3809401/what-is-a-good-regular-expression-to-match-a-url */
|
||||||
export const URL_REGEX = /[-a-zA-Z0-9@:%._+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_+.~#?&//=]*)?/gi
|
export const URL_REGEX = /[-a-zA-Z0-9@:%._+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_+.~#?&//=]*)?/gi
|
||||||
|
export const URL_EXCLUDE_REGEX = /.*@.*/
|
||||||
|
|
||||||
export const WA_CERT_DETAILS = {
|
export const WA_CERT_DETAILS = {
|
||||||
SERIAL: 0,
|
SERIAL: 0,
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ import axios from 'axios'
|
|||||||
import { promises as fs } from 'fs'
|
import { promises as fs } from 'fs'
|
||||||
import { Logger } from 'pino'
|
import { Logger } from 'pino'
|
||||||
import { proto } from '../../WAProto'
|
import { proto } from '../../WAProto'
|
||||||
import { MEDIA_KEYS, URL_REGEX, WA_DEFAULT_EPHEMERAL } from '../Defaults'
|
import { MEDIA_KEYS, URL_EXCLUDE_REGEX, URL_REGEX, WA_DEFAULT_EPHEMERAL } from '../Defaults'
|
||||||
import {
|
import {
|
||||||
AnyMediaMessageContent,
|
AnyMediaMessageContent,
|
||||||
AnyMessageContent,
|
AnyMessageContent,
|
||||||
@@ -57,11 +57,20 @@ const MessageTypeProto = {
|
|||||||
|
|
||||||
const ButtonType = proto.Message.ButtonsMessage.HeaderType
|
const ButtonType = proto.Message.ButtonsMessage.HeaderType
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Uses a regex to test whether the string contains a URL, and returns the URL if it does.
|
||||||
|
* @param text eg. hello https://google.com
|
||||||
|
* @returns the URL, eg. https://google.com
|
||||||
|
*/
|
||||||
|
export const extractUrlFromText = (text: string) => (
|
||||||
|
!URL_EXCLUDE_REGEX.test(text) ? text.match(URL_REGEX)?.[0] : undefined
|
||||||
|
)
|
||||||
|
|
||||||
export const generateLinkPreviewIfRequired = async(text: string, getUrlInfo: MessageGenerationOptions['getUrlInfo'], logger: MessageGenerationOptions['logger']) => {
|
export const generateLinkPreviewIfRequired = async(text: string, getUrlInfo: MessageGenerationOptions['getUrlInfo'], logger: MessageGenerationOptions['logger']) => {
|
||||||
const matchedUrls = text.match(URL_REGEX)
|
const url = extractUrlFromText(text)
|
||||||
if(!!getUrlInfo && matchedUrls) {
|
if(!!getUrlInfo && url) {
|
||||||
try {
|
try {
|
||||||
const urlInfo = await getUrlInfo(matchedUrls[0])
|
const urlInfo = await getUrlInfo(url)
|
||||||
return urlInfo
|
return urlInfo
|
||||||
} catch(error) { // ignore if fails
|
} catch(error) { // ignore if fails
|
||||||
logger?.warn({ trace: error.stack }, 'url generation failed')
|
logger?.warn({ trace: error.stack }, 'url generation failed')
|
||||||
|
|||||||
Reference in New Issue
Block a user