Revert "fix: inefficient method of extracting url from text (#741)" (#748)

* Revert "fix: inefficient method of extracting url from text (#741)"

This reverts commit f5c1affc4d.

* fix: link preview should follow redirects

* fix: allow link preview of URLs with @ sign

---------

Co-authored-by: Ezequiel Moraes <ezequielmoraesdev@gmail.com>
This commit is contained in:
arthur simas
2024-04-29 04:44:42 -03:00
committed by GitHub
parent eb5edddf2f
commit d91967aa1c
2 changed files with 2 additions and 5 deletions

View File

@@ -40,7 +40,6 @@ export const PROTOCOL_VERSION = [5, 2]
export const MOBILE_NOISE_HEADER = Buffer.concat([Buffer.from('WA'), Buffer.from(PROTOCOL_VERSION)]) export const MOBILE_NOISE_HEADER = Buffer.concat([Buffer.from('WA'), Buffer.from(PROTOCOL_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 = /(http(s)?:\/\/.)?(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)/ export const URL_REGEX = /(http(s)?:\/\/.)?(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)/
export const URL_EXCLUDE_REGEX = /[\w-\.]+@([\w-]+\.)+[\w-]{2,4}/
export const WA_CERT_DETAILS = { export const WA_CERT_DETAILS = {
SERIAL: 0, SERIAL: 0,

View File

@@ -4,7 +4,7 @@ import { randomBytes } from 'crypto'
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_EXCLUDE_REGEX, URL_REGEX, WA_DEFAULT_EPHEMERAL } from '../Defaults' import { MEDIA_KEYS, URL_REGEX, WA_DEFAULT_EPHEMERAL } from '../Defaults'
import { import {
AnyMediaMessageContent, AnyMediaMessageContent,
AnyMessageContent, AnyMessageContent,
@@ -68,9 +68,7 @@ const ButtonType = proto.Message.ButtonsMessage.HeaderType
* @param text eg. hello https://google.com * @param text eg. hello https://google.com
* @returns the URL, eg. https://google.com * @returns the URL, eg. https://google.com
*/ */
export const extractUrlFromText = (text: string) => ( export const extractUrlFromText = (text: string) => text.match(URL_REGEX)?.[0]
text.split(' ').find(word => URL_REGEX.test(word) && !URL_EXCLUDE_REGEX.test(word)) || 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 url = extractUrlFromText(text) const url = extractUrlFromText(text)