mirror of
https://github.com/PrimalHQ/primal-web-app.git
synced 2024-09-30 00:41:09 +00:00
Potential fix for urls in content surrounded with gunk
This commit is contained in:
parent
dfce5fe748
commit
3725943ecf
@ -39,7 +39,7 @@ import { hookForDev } from '../../lib/devTools';
|
||||
import { getMediaUrl as getMediaUrlDefault } from "../../lib/media";
|
||||
import NoteImage from '../NoteImage/NoteImage';
|
||||
import { createStore } from 'solid-js/store';
|
||||
import { linebreakRegex } from '../../constants';
|
||||
import { linebreakRegex, urlExtractRegex } from '../../constants';
|
||||
|
||||
const specialChars = [",", "?", ";", "!", "'", ".", "-"];
|
||||
|
||||
@ -81,8 +81,14 @@ const ParsedNote: Component<{
|
||||
|
||||
if (index > 0) {
|
||||
const prefix = token.slice(0, index);
|
||||
const url = token.slice(index);
|
||||
return <>{parseToken(prefix)} {parseToken(url)}</>;
|
||||
|
||||
const matched = token.match(urlExtractRegex)[0];
|
||||
if (matched) {
|
||||
const suffix = token.substring(matched.length + index, token.length);
|
||||
return <>{parseToken(prefix)}{parseToken(matched)}{parseToken(suffix)}</>;
|
||||
} else {
|
||||
return <>{parseToken(prefix)}{parseToken(token.slice(index))}</>;
|
||||
}
|
||||
}
|
||||
|
||||
if (!props.ignoreMedia) {
|
||||
@ -421,7 +427,6 @@ const ParsedNote: Component<{
|
||||
preview.url &&
|
||||
((!!preview.description && preview.description.length > 0) ||
|
||||
!preview.images?.some(x => x === '') ||
|
||||
!preview.favicons?.some(x => x === '') ||
|
||||
!!preview.title
|
||||
);
|
||||
|
||||
|
@ -245,6 +245,7 @@ export const nostrNestsRegex = /nostrnests\.com\/[a-zA-Z0-9]+/i;
|
||||
export const wavlakeRegex = /https?:\/\/(?:player\.|www\.)?wavlake\.com\/(?!top|new|artists|account|activity|login|preferences|feed|profile)(?:(?:track|album)\/[a-f0-9]{8}(?:-[a-f0-9]{4}){3}-[a-f0-9]{12}|[a-z-]+)/i;
|
||||
export const youtubeRegex = /(?:https?:\/\/)?(?:www|m\.)?(?:youtu\.be\/|youtube\.com\/(?:live\/|shorts\/|embed\/|v\/|watch\?v=|watch\?.+&v=))((\w|-){11})/;
|
||||
export const urlRegex = /https?:\/\/(www\.)?[-a-zA-Z0-9\u00F0-\u02AF@:%._\+~#=]{1,256}\.[a-zA-Z0-9\u00F0-\u02AF()]{1,8}\b([-a-zA-Z0-9\u00F0-\u02AF()@:%_\+.~#?&//=]*)/;
|
||||
export const urlExtractRegex = /https?:\/\/\S+\.[^()]+(?:\([^)]*\))*/;
|
||||
export const interpunctionRegex = /^(\.|,|;|\?|\!)$/;
|
||||
|
||||
export const hashtagRegex = /(?:\s|^)#[^\s!@#$%^&*(),.?":{}|<>]+/i;
|
||||
|
Loading…
Reference in New Issue
Block a user