Skip to content

Commit

Permalink
✔ Fix String
Browse files Browse the repository at this point in the history
  • Loading branch information
bifeldy committed Apr 30, 2023
1 parent e03e77a commit 97526b0
Show file tree
Hide file tree
Showing 3 changed files with 61 additions and 50 deletions.
85 changes: 45 additions & 40 deletions src/api/services/global.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -83,54 +83,59 @@ export class GlobalService {
}

cleanIpOrigin(ipOrigin: string): string {
ipOrigin = ipOrigin || '';
// Remove Prefixes
if (ipOrigin.startsWith('::ffff:')) {
ipOrigin = ipOrigin.slice(7, ipOrigin.length);
}
if (ipOrigin.startsWith('http://')) {
ipOrigin = ipOrigin.slice(7, ipOrigin.length);
} else if (ipOrigin.startsWith('https://')) {
ipOrigin = ipOrigin.slice(8, ipOrigin.length);
}
if (ipOrigin.startsWith('www.')) {
ipOrigin = ipOrigin.slice(4, ipOrigin.length);
}
// Get Domain Or IP Maybe With Port Included And Remove Folder Path
ipOrigin = ipOrigin.split('/')[0];
// Remove Port
let totalColon = 0;
for (let i = 0; i < ipOrigin.length; i++) {
if (ipOrigin[i] === ':') {
totalColon++;
if (ipOrigin) {
// Remove Prefixes
if (ipOrigin.startsWith('::ffff:')) {
ipOrigin = ipOrigin.slice(7, ipOrigin.length);
}
if (totalColon > 1) {
break;
if (ipOrigin.startsWith('http://')) {
ipOrigin = ipOrigin.slice(7, ipOrigin.length);
} else if (ipOrigin.startsWith('https://')) {
ipOrigin = ipOrigin.slice(8, ipOrigin.length);
}
}
if (totalColon === 1) {
// IPv4
ipOrigin = ipOrigin.split(':')[0];
} else {
// IPv6
ipOrigin = ipOrigin.split(']')[0];
if (ipOrigin.startsWith('[')) {
ipOrigin = ipOrigin.slice(1, ipOrigin.length);
if (ipOrigin.startsWith('www.')) {
ipOrigin = ipOrigin.slice(4, ipOrigin.length);
}
// Get Domain Or IP Maybe With Port Included And Remove Folder Path
ipOrigin = ipOrigin.split('/')[0];
// Remove Port
let totalColon = 0;
for (let i = 0; i < ipOrigin.length; i++) {
if (ipOrigin[i] === ':') {
totalColon++;
}
if (totalColon > 1) {
break;
}
}
if (totalColon === 1) {
// IPv4
ipOrigin = ipOrigin.split(':')[0];
} else {
// IPv6
ipOrigin = ipOrigin.split(']')[0];
if (ipOrigin.startsWith('[')) {
ipOrigin = ipOrigin.slice(1, ipOrigin.length);
}
}
return ipOrigin;
}
return ipOrigin;
return '';
}

cleanUpUrlStringRecord(text: string): string {
if (text.startsWith('http://')) {
text = text.slice(7, text.length);
} else if (text.startsWith('https://')) {
text = text.slice(8, text.length);
}
if (text.startsWith('www.')) {
text = text.slice(4, text.length);
if (text) {
if (text.startsWith('http://')) {
text = text.slice(7, text.length);
} else if (text.startsWith('https://')) {
text = text.slice(8, text.length);
}
if (text.startsWith('www.')) {
text = text.slice(4, text.length);
}
return text;
}
return text;
return '';
}

}
23 changes: 13 additions & 10 deletions src/app/_shared/services/global.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -206,16 +206,19 @@ export class GlobalService {
}

linkify(text: string): string {
// http://, https://, ftp://
const urlPattern = /\b(?:https?|ftp):\/\/[a-z0-9-+&@#\/%?=~_|!:,.;]*[a-z0-9-+&@#\/%=~_|]/gim;
// www. sans http:// or https://
const pseudoUrlPattern = /(^|[^\/])(www\.[\S]+(\b|$))/gim;
// Email addresses
const emailAddressPattern = /[\w.]+@[a-zA-Z_-]+?(?:\.[a-zA-Z]{2,6})+/gim;
text = text.replace(urlPattern, '<a class="text-decoration-none" href="$&" target="_blank">$&</a>')
.replace(pseudoUrlPattern, '$1<a class="text-decoration-none" href="http://$2" target="_blank">$2</a>')
.replace(emailAddressPattern, '<a class="text-decoration-none" href="mailto:$&" target="_blank">$&</a>');
return text;
if (text) {
// http://, https://, ftp://
const urlPattern = /\b(?:https?|ftp):\/\/[a-z0-9-+&@#\/%?=~_|!:,.;]*[a-z0-9-+&@#\/%=~_|]/gim;
// www. sans http:// or https://
const pseudoUrlPattern = /(^|[^\/])(www\.[\S]+(\b|$))/gim;
// Email addresses
const emailAddressPattern = /[\w.]+@[a-zA-Z_-]+?(?:\.[a-zA-Z]{2,6})+/gim;
text = text.replace(urlPattern, '<a class="text-decoration-none" href="$&" target="_blank">$&</a>')
.replace(pseudoUrlPattern, '$1<a class="text-decoration-none" href="http://$2" target="_blank">$2</a>')
.replace(emailAddressPattern, '<a class="text-decoration-none" href="mailto:$&" target="_blank">$&</a>');
return text;
}
return '';
}

toggleDarkTheme(firstRun = false): void {
Expand Down
3 changes: 3 additions & 0 deletions src/constants.ts
Original file line number Diff line number Diff line change
Expand Up @@ -57,4 +57,7 @@ export const CONSTANTS = {
timeJwtEncryption: 3 * 60, // 3 Minutes
timeLoginRememberMe: 7 * 24 * 60 * 60, // 7 Days
timeMaxDaysNotification: 7 * 24 * 60 * 60 * 1000, // 7 Days
verificationDomain: [
'ghs.google.com'
]
};

0 comments on commit 97526b0

Please sign in to comment.