diff --git a/src/app/app.module.ts b/src/app/app.module.ts index 67cd297df6add9d93a47f3730bc367ad699fc1d7..f941de92a72df2c1ddf5e8ecabd191e22d2a91e5 100644 --- a/src/app/app.module.ts +++ b/src/app/app.module.ts @@ -63,6 +63,7 @@ import { TagCloudComponent } from './components/shared/tag-cloud/tag-cloud.compo import { MatDialogModule } from '@angular/material/dialog'; import {TagCloudModule} from 'angular-tag-cloud-module'; import {SpacyService} from './services/http/spacy.service'; +import { CleaningFunctionService} from './services/util/cleaning-function.service'; import 'prismjs'; import 'prismjs/plugins/line-numbers/prism-line-numbers.js'; @@ -176,6 +177,7 @@ export function initializeApp(appConfig: AppConfig) { CustomIconService, WsConnectorService, SpacyService, + CleaningFunctionService, { provide: MatDialogRef, useValue: { diff --git a/src/app/components/shared/_dialogs/create-comment/create-comment.component.ts b/src/app/components/shared/_dialogs/create-comment/create-comment.component.ts index d39c798de3c1a306f8b69596cff455f17c7b1a22..4c59942a4a8dc03160a61a9e33eeb42509382b76 100644 --- a/src/app/components/shared/_dialogs/create-comment/create-comment.component.ts +++ b/src/app/components/shared/_dialogs/create-comment/create-comment.component.ts @@ -116,12 +116,6 @@ export class CreateCommentComponent implements OnInit, OnDestroy { } } - checkUTFEmoji(body: string): string { - const regex = /(?:\:.*?\:|[\u2700-\u27bf]|(?:\ud83c[\udde6-\uddff]){2}|[\ud800-\udbff][\udc00-\udfff]|[\u0023-\u0039]\ufe0f?\u20e3|\u3299|\u3297|\u303d|\u3030|\u24c2|\ud83c[\udd70-\udd71]|\ud83c[\udd7e-\udd7f]|\ud83c\udd8e|\ud83c[\udd91-\udd9a]|\ud83c[\udde6-\uddff]|\ud83c[\ude01-\ude02]|\ud83c\ude1a|\ud83c\ude2f|\ud83c[\ude32-\ude3a]|\ud83c[\ude50-\ude51]|\u203c|\u2049|[\u25aa-\u25ab]|\u25b6|\u25c0|[\u25fb-\u25fe]|\u00a9|\u00ae|\u2122|\u2139|\ud83c\udc04|[\u2600-\u26FF]|\u2b05|\u2b06|\u2b07|\u2b1b|\u2b1c|\u2b50|\u2b55|\u231a|\u231b|\u2328|\u23cf|[\u23e9-\u23f3]|[\u23f8-\u23fa]|\ud83c\udccf|\u2934|\u2935|[\u2190-\u21ff])/g; - - return body.replace(regex, ''); - } - openSpacyDialog(comment: Comment): void { CreateCommentKeywords.isSpellingAcceptable(this.languagetoolService, this.inputText, this.selectedLang) .subscribe((result) => { diff --git a/src/app/components/shared/_dialogs/spacy-dialog/spacy-dialog.component.ts b/src/app/components/shared/_dialogs/spacy-dialog/spacy-dialog.component.ts index 23ef9c3ebb2260255822b95ff9cb8277fe1f5f4d..e9135039b507867e40635f5b5937d4c3a9299c30 100644 --- a/src/app/components/shared/_dialogs/spacy-dialog/spacy-dialog.component.ts +++ b/src/app/components/shared/_dialogs/spacy-dialog/spacy-dialog.component.ts @@ -1,6 +1,7 @@ import { AfterContentInit, Component, Inject, OnInit } from '@angular/core'; import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog'; +import { CleaningFunctionService} from '../../../../services/util/cleaning-function.service'; import { CreateCommentComponent } from '../create-comment/create-comment.component'; import { SpacyService, Model } from '../../../../services/http/spacy.service'; import { LanguageService } from '../../../../services/util/language.service'; @@ -33,6 +34,7 @@ export class SpacyDialogComponent implements OnInit, AfterContentInit { constructor( protected langService: LanguageService, private spacyService: SpacyService, + private cleaningService: CleaningFunctionService, public dialogRef: MatDialogRef<CreateCommentComponent>, @Inject(MAT_DIALOG_DATA) public data) { } @@ -69,7 +71,7 @@ export class SpacyDialogComponent implements OnInit, AfterContentInit { this.isLoading = true; // N at first pos = all Nouns(NN de/en) including singular(NN, NNP en), plural (NNPS, NNS en), proper Noun(NNE, NE de) - this.spacyService.getKeywords(this.commentBodyChecked, model) + this.spacyService.getKeywords(this.cleaningService.cleaningFunction(this.commentBodyChecked), model) .pipe( map(keywords => keywords.map(keyword => ({ word: keyword, diff --git a/src/app/services/util/cleaning-function.service.spec.ts b/src/app/services/util/cleaning-function.service.spec.ts new file mode 100644 index 0000000000000000000000000000000000000000..b1900ddb4f118761b4046d5323f51047e7c8d3ce --- /dev/null +++ b/src/app/services/util/cleaning-function.service.spec.ts @@ -0,0 +1,18 @@ +/* +import { TestBed } from '@angular/core/testing'; + +import { CleaningFunctionService } from './cleaning-function.service'; + +describe('CleaningFunctionService', () => { + let service: CleaningFunctionService; + + beforeEach(() => { + TestBed.configureTestingModule({}); + service = TestBed.inject(CleaningFunctionService); + }); + + it('should be created', () => { + expect(service).toBeTruthy(); + }); +}); + */ diff --git a/src/app/services/util/cleaning-function.service.ts b/src/app/services/util/cleaning-function.service.ts new file mode 100644 index 0000000000000000000000000000000000000000..d32caf3f69037b59742bdbb2820dccc08e1ad2ac --- /dev/null +++ b/src/app/services/util/cleaning-function.service.ts @@ -0,0 +1,19 @@ +import { Injectable } from '@angular/core'; + +@Injectable({ + providedIn: 'root' +}) +export class CleaningFunctionService { + regexKatex = new RegExp('\\$[^$\\n ]+\\$|\\$\\$[^$\\n ]+\\$\\$','g'); + regexEmoji = new RegExp('\u00a9|\u00ae|[\u2000-\u3300]|\ud83c[\ud000-\udfff]|\ud83d[\ud000-\udfff]|\ud83e[\ud000-\udfff]', 'g'); + regexMarkdown = new RegExp('(?:__|[*#])|\\[(.+?)]\\((.+?)\\)', 'g'); + + constructor( + ) {} + cleaningFunction(text: string): string { + text = text.replace(this.regexKatex,''); + text = text.replace(this.regexEmoji,''); + text = text.replace(this.regexMarkdown,''); + return text; + } +}