From 83e2ac1a98bd50d1d9f7c9b27267341d19ccd1e3 Mon Sep 17 00:00:00 2001 From: Michael DiCarlo Date: Tue, 15 Jun 2021 06:59:25 -0400 Subject: [PATCH 1/3] Start v2.3.32 --- electron/package.json | 2 +- package-lock.json | 8 ++++---- package.json | 4 ++-- src/app/app.error.logger.ts | 5 +++-- 4 files changed, 10 insertions(+), 9 deletions(-) diff --git a/electron/package.json b/electron/package.json index 47ab34901..7916b8ada 100644 --- a/electron/package.json +++ b/electron/package.json @@ -1,6 +1,6 @@ { "name": "postybirb", - "version": "2.3.31", + "version": "2.3.32", "description": "PostyBirb is an application that helps artists post art and other multimedia to multiple websites more quickly.", "main": "main.js", "scripts": { diff --git a/package-lock.json b/package-lock.json index 7e35610e7..36f9fbf18 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "postybirb", - "version": "2.3.23", + "version": "2.3.32", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -821,9 +821,9 @@ } }, "@tinymce/tinymce-angular": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/@tinymce/tinymce-angular/-/tinymce-angular-3.6.1.tgz", - "integrity": "sha512-b154SoykjDlXtL7Lw1W7N+ld22TKoDRMgQ/1VCJuh/uOTGs7HsdZVzWaaEeAd8NHxHc2x09tZeKSKbzok7B3zA==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/@tinymce/tinymce-angular/-/tinymce-angular-3.3.1.tgz", + "integrity": "sha512-a7WyOAQso7RVCllklicE1M9wvNAXrnB+SC4/JTlZvXEy57fH/t3XHT9c4fd0BqlAUsBxDobUmERcWLjc/qhCnA==", "requires": { "tslib": "^1.9.0" } diff --git a/package.json b/package.json index 8960ebb35..ae9c24744 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "postybirb", - "version": "2.3.31", + "version": "2.3.32", "scripts": { "ng": "ng", "compile": "ng build --vendor-chunk=false", @@ -25,7 +25,7 @@ "@fortawesome/fontawesome-free": "^5.6.3", "@ngx-translate/core": "^11.0.1", "@ngx-translate/http-loader": "^4.0.0", - "@tinymce/tinymce-angular": "^3.3.1", + "@tinymce/tinymce-angular": "~3.3.1", "angular2-hotkeys": "~2.1.4", "bootstrap-css-only": "^4.2.1", "core-js": "^2.5.4", diff --git a/src/app/app.error.logger.ts b/src/app/app.error.logger.ts index 2b4aeb52d..27a6859e0 100644 --- a/src/app/app.error.logger.ts +++ b/src/app/app.error.logger.ts @@ -72,8 +72,9 @@ export class ErrorLoggerHandler extends ErrorHandler { if (this.seenList.includes(error.message)) return; this.seenList.push(error.message); if (error.message) { - this.http.post('https://postybirb-error-server.now.sh/log/error', { errorLog: error }) - .subscribe(res => console.debug('Error logging success', res), err => console.debug('Error logging failure', err)); + // Haven't logged errors to any server in a long time + // this.http.post('https://postybirb-error-server.now.sh/log/error', { errorLog: error }) + // .subscribe(res => console.debug('Error logging success', res), err => console.debug('Error logging failure', err)); } } } From f744f6c650d571067b0b37b16242f57ceb0436df Mon Sep 17 00:00:00 2001 From: Michael DiCarlo Date: Tue, 15 Jun 2021 07:21:18 -0400 Subject: [PATCH 2/3] Fix: DeviantArt folders now iterates through new folder structure --- .../deviant-art/deviant-art.service.ts | 31 +++++++++++++++++-- 1 file changed, 29 insertions(+), 2 deletions(-) diff --git a/src/app/websites/website-services/deviant-art/deviant-art.service.ts b/src/app/websites/website-services/deviant-art/deviant-art.service.ts index bd23c67dc..ea791a01c 100644 --- a/src/app/websites/website-services/deviant-art/deviant-art.service.ts +++ b/src/app/websites/website-services/deviant-art/deviant-art.service.ts @@ -53,6 +53,15 @@ function descriptionParse(html: string): string { .replace(/\n/g, ''); } +interface DeviantArtFolder { + description: string; + folderid: string; + has_subfolders: boolean; + name: string; + parent?: string; + subfolders: DeviantArtFolder[]; +} + @Injectable({ providedIn: 'root' }) @@ -150,13 +159,31 @@ export class DeviantArt extends BaseWebsiteService implements WebsiteService { }); } + private flattenFolders(folder: DeviantArtFolder): DeviantArtFolder[] { + const folders = [folder]; + + if (!folder) { + return []; + } + + if (!folder.has_subfolders) { + return folders; + } + + folder.subfolders.forEach(sf => folders.push(...this.flattenFolders(sf))) + return folders; + } + private async _getFolders(profileId: string, accessToken: string): Promise { const folderResponse = await got.get(`${this.BASE_URL}/api/v1/oauth2/gallery/folders?calculate_size=false&limit=50&access_token=${accessToken}`, this.BASE_URL, [], profileId); const results = (JSON.parse(folderResponse.body).results || []); const folders: Folder[] = []; - results.forEach(folder => { - const parent = folder.parent ? results.find(f => f.folderid === folder.parent && f.name !== 'Featured') : undefined; + const flattenedFolders: DeviantArtFolder[] = []; + results.forEach((r: DeviantArtFolder) => flattenedFolders.push(...this.flattenFolders(r))); + + flattenedFolders.forEach(folder => { + const parent = folder.parent ? flattenedFolders.find(f => f.folderid === folder.parent && f.name !== 'Featured') : undefined; folders.push({ id: folder.folderid, title: parent ? `${parent.name} / ${folder.name}` : folder.name, From f4f528cfab0bdb81a5ac5ab41f19911b40435a79 Mon Sep 17 00:00:00 2001 From: Michael DiCarlo Date: Tue, 15 Jun 2021 07:31:23 -0400 Subject: [PATCH 3/3] FurryNetwork: Filter . in tags --- .../website-services/furry-network/furry-network.service.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/app/websites/website-services/furry-network/furry-network.service.ts b/src/app/websites/website-services/furry-network/furry-network.service.ts index 716c789d5..b9c3e61a7 100644 --- a/src/app/websites/website-services/furry-network/furry-network.service.ts +++ b/src/app/websites/website-services/furry-network/furry-network.service.ts @@ -358,7 +358,7 @@ export class FurryNetwork extends BaseWebsiteService implements WebsiteService { formatTags(defaultTags: string[] = [], other: string[] = []): any { return super.formatTags(defaultTags, other, '-').filter(tag => tag.length <= 30 && tag.length >= 3) - .map(tag => { return tag.replace(/(\(|\)|:|#|;|\]|\[|')/g, '').replace(/(\\|\/)/g, '-').replace(/\?/g, 'unknown') }) + .map(tag => { return tag.replace(/(\(|\)|:|#|;|\]|\[|'|\.)/g, '').replace(/(\\|\/)/g, '-').replace(/\?/g, 'unknown') }) .filter(tag => tag.length >= 3) .slice(0, 30); }