From bcae6d8783a0f904b098a2a9e8b5b8c3c1530555 Mon Sep 17 00:00:00 2001 From: Nathan Bonnot Date: Wed, 8 Sep 2021 13:26:13 +0200 Subject: [PATCH 1/4] Statistics Reaction --- .../Discord/getters/getReactedStatistics.ts | 52 ++++++++ .../Facebook/getters/getReactedStatistics.ts | 114 ++++++++++++++++++ .../Reddit/getters/getReactedStatistics.ts | 52 ++++++++ 3 files changed, 218 insertions(+) create mode 100644 src/classes/Standardizer/plugins/Discord/getters/getReactedStatistics.ts create mode 100644 src/classes/Standardizer/plugins/Facebook/getters/getReactedStatistics.ts create mode 100644 src/classes/Standardizer/plugins/Reddit/getters/getReactedStatistics.ts diff --git a/src/classes/Standardizer/plugins/Discord/getters/getReactedStatistics.ts b/src/classes/Standardizer/plugins/Discord/getters/getReactedStatistics.ts new file mode 100644 index 00000000..7674a5cc --- /dev/null +++ b/src/classes/Standardizer/plugins/Discord/getters/getReactedStatistics.ts @@ -0,0 +1,52 @@ +import Discord from '../Discord' +import { StatisticType } from '../../../../../types/schemas/Statistic' + +Discord.prototype.getReactedStatistics = async function getReactedStatistics() { + let Nyear = 1 + let up = 0 + let down = 0 + const reactedData = await this.getReacted({ + parsingOptions: { + pagination: { + offset: 0, + items: Infinity, + }, + }, + }) + + if (!reactedData) { + return null + } + reactedData.data.forEach((entry) => { + const end = new Date(new Date().setFullYear(new Date().getFullYear() + Nyear)) + for (Nyear; entry.reaction.reactionDate! < end; Nyear += 1) { + Nyear += 1 + } + if (entry.reaction.name === 'up') { + up += 1 + } else { + down += 1 + } + }) + console.log((reactedData.data.length / Nyear)) + return { + statistics: [ + { + type: StatisticType.NUMBER, + value: (reactedData.data.length / Nyear), + name: 'reacted over Time', + }, + { + type: StatisticType.NUMBER, + value: (up / reactedData.data.length), + name: 'Up reacted over Time', + }, + { + type: StatisticType.NUMBER, + value: (down / reactedData.data.length), + name: 'Down reacted over Time', + }, + ], + parsedFiles: reactedData?.parsedFiles ?? [], + } +} \ No newline at end of file diff --git a/src/classes/Standardizer/plugins/Facebook/getters/getReactedStatistics.ts b/src/classes/Standardizer/plugins/Facebook/getters/getReactedStatistics.ts new file mode 100644 index 00000000..be6d8d53 --- /dev/null +++ b/src/classes/Standardizer/plugins/Facebook/getters/getReactedStatistics.ts @@ -0,0 +1,114 @@ +import Facebook from '../Facebook' +import { StatisticType } from '../../../../../types/schemas/Statistic' + +Facebook.prototype.getReactedStatistics = async function getReactedStatistics() { + let Nyear = 1 + let like = 0 + let laugh = 0 + let wow = 0 + let sorry = 0 + let love = 0 + let anger = 0 + let post = 0 + let community = 0 + const reactedData = await this.getReacted({ + parsingOptions: { + pagination: { + offset: 0, + items: Infinity, + }, + }, + }) + + if (!reactedData) { + return null + } + reactedData.data.forEach((entry) => { + const end = new Date(new Date().setFullYear(new Date().getFullYear() + Nyear)) + for (Nyear; entry.reaction.reactionDate! < end; Nyear += 1) { + Nyear += 1 + } + if (entry.entityType === 'post') { + post += 1 + } else { + community += 1 + } + switch (entry.reaction.name) { + case 'HAHA': { + laugh += 1 + break + } + case 'WOW': { + wow += 1 + break + } + case 'LOVE': { + love += 1 + break + } + case 'ANGER': { + anger += 1 + break + } + case 'SORRY': { + sorry += 1 + break + } + default: { + like += 1 + break + } + } + }) + console.log((reactedData.data.length / Nyear)) + return { + statistics: [ + { + type: StatisticType.NUMBER, + value: (reactedData.data.length / Nyear), + name: 'reacted over Time', + }, + { + type: StatisticType.NUMBER, + value: (like / reactedData.data.length), + name: 'Like emoji reacted over Time', + }, + { + type: StatisticType.NUMBER, + value: (love / reactedData.data.length), + name: 'Love emoji reacted over Time', + }, + { + type: StatisticType.NUMBER, + value: (anger / reactedData.data.length), + name: 'Anger emoji reacted over Time', + }, + { + type: StatisticType.NUMBER, + value: (wow / reactedData.data.length), + name: 'Wow emoji reacted over Time', + }, + { + type: StatisticType.NUMBER, + value: (laugh / reactedData.data.length), + name: 'Laugh emoji reacted over Time', + }, + { + type: StatisticType.NUMBER, + value: (sorry / reactedData.data.length), + name: 'Sorry emoji reacted over Time', + }, + { + type: StatisticType.NUMBER, + value: (post / reactedData.data.length), + name: 'Post reacted over Time', + }, + { + type: StatisticType.NUMBER, + value: (community / reactedData.data.length), + name: 'Community reacted over Time', + }, + ], + parsedFiles: reactedData?.parsedFiles ?? [], + } +} diff --git a/src/classes/Standardizer/plugins/Reddit/getters/getReactedStatistics.ts b/src/classes/Standardizer/plugins/Reddit/getters/getReactedStatistics.ts new file mode 100644 index 00000000..68010851 --- /dev/null +++ b/src/classes/Standardizer/plugins/Reddit/getters/getReactedStatistics.ts @@ -0,0 +1,52 @@ +import Reddit from '../Reddit' +import { StatisticType } from '../../../../../types/schemas/Statistic' + +Reddit.prototype.getReactedStatistics = async function getReactedStatistics() { + let Nyear = 1 + let up = 0 + let down = 0 + const reactedData = await this.getReacted({ + parsingOptions: { + pagination: { + offset: 0, + items: Infinity, + }, + }, + }) + + if (!reactedData) { + return null + } + reactedData.data.forEach((entry) => { + const end = new Date(new Date().setFullYear(new Date().getFullYear() + Nyear)) + for (Nyear; entry.reaction.reactionDate! < end; Nyear += 1) { + Nyear += 1 + } + if (entry.reaction.name === 'up') { + up += 1 + } else { + down += 1 + } + }) + console.log((reactedData.data.length / Nyear)) + return { + statistics: [ + { + type: StatisticType.NUMBER, + value: (reactedData.data.length / Nyear), + name: 'reacted over Time', + }, + { + type: StatisticType.NUMBER, + value: (up / reactedData.data.length), + name: 'Up reacted over Time', + }, + { + type: StatisticType.NUMBER, + value: (down / reactedData.data.length), + name: 'Down reacted over Time', + }, + ], + parsedFiles: reactedData?.parsedFiles ?? [], + } +} \ No newline at end of file From fef64aba57b9896a66476f2028c7edc3906ceaa5 Mon Sep 17 00:00:00 2001 From: Nathan Bonnot Date: Sat, 11 Sep 2021 13:09:09 +0200 Subject: [PATCH 2/4] Stats reacted --- .../Discord/getters/getReactedStatistics.ts | 23 ++--------- .../Facebook/getters/getReactedStatistics.ts | 39 +++++++------------ .../Reddit/getters/getReactedStatistics.ts | 10 ++--- 3 files changed, 21 insertions(+), 51 deletions(-) diff --git a/src/classes/Standardizer/plugins/Discord/getters/getReactedStatistics.ts b/src/classes/Standardizer/plugins/Discord/getters/getReactedStatistics.ts index 7674a5cc..0685e76f 100644 --- a/src/classes/Standardizer/plugins/Discord/getters/getReactedStatistics.ts +++ b/src/classes/Standardizer/plugins/Discord/getters/getReactedStatistics.ts @@ -3,8 +3,6 @@ import { StatisticType } from '../../../../../types/schemas/Statistic' Discord.prototype.getReactedStatistics = async function getReactedStatistics() { let Nyear = 1 - let up = 0 - let down = 0 const reactedData = await this.getReacted({ parsingOptions: { pagination: { @@ -18,34 +16,19 @@ Discord.prototype.getReactedStatistics = async function getReactedStatistics() { return null } reactedData.data.forEach((entry) => { - const end = new Date(new Date().setFullYear(new Date().getFullYear() + Nyear)) + const end = new Date(new Date().setFullYear(new Date().getFullYear() - Nyear)) for (Nyear; entry.reaction.reactionDate! < end; Nyear += 1) { Nyear += 1 - } - if (entry.reaction.name === 'up') { - up += 1 - } else { - down += 1 + break } }) - console.log((reactedData.data.length / Nyear)) return { statistics: [ { type: StatisticType.NUMBER, - value: (reactedData.data.length / Nyear), + value: (reactedData.data.length / Nyear).toFixed(2), name: 'reacted over Time', }, - { - type: StatisticType.NUMBER, - value: (up / reactedData.data.length), - name: 'Up reacted over Time', - }, - { - type: StatisticType.NUMBER, - value: (down / reactedData.data.length), - name: 'Down reacted over Time', - }, ], parsedFiles: reactedData?.parsedFiles ?? [], } diff --git a/src/classes/Standardizer/plugins/Facebook/getters/getReactedStatistics.ts b/src/classes/Standardizer/plugins/Facebook/getters/getReactedStatistics.ts index be6d8d53..6f1059d9 100644 --- a/src/classes/Standardizer/plugins/Facebook/getters/getReactedStatistics.ts +++ b/src/classes/Standardizer/plugins/Facebook/getters/getReactedStatistics.ts @@ -9,8 +9,6 @@ Facebook.prototype.getReactedStatistics = async function getReactedStatistics() let sorry = 0 let love = 0 let anger = 0 - let post = 0 - let community = 0 const reactedData = await this.getReacted({ parsingOptions: { pagination: { @@ -24,14 +22,10 @@ Facebook.prototype.getReactedStatistics = async function getReactedStatistics() return null } reactedData.data.forEach((entry) => { - const end = new Date(new Date().setFullYear(new Date().getFullYear() + Nyear)) + const end = new Date(new Date().setFullYear(new Date().getFullYear() - Nyear)) for (Nyear; entry.reaction.reactionDate! < end; Nyear += 1) { Nyear += 1 - } - if (entry.entityType === 'post') { - post += 1 - } else { - community += 1 + break } switch (entry.reaction.name) { case 'HAHA': { @@ -54,60 +48,53 @@ Facebook.prototype.getReactedStatistics = async function getReactedStatistics() sorry += 1 break } + case 'LIKE': { + like += 1 + break + } default: { like += 1 break } } }) - console.log((reactedData.data.length / Nyear)) return { statistics: [ { type: StatisticType.NUMBER, - value: (reactedData.data.length / Nyear), + value: (reactedData.data.length / Nyear).toFixed(2), name: 'reacted over Time', }, { type: StatisticType.NUMBER, - value: (like / reactedData.data.length), + value: ((like / reactedData.data.length) * 100).toFixed(2), name: 'Like emoji reacted over Time', }, { type: StatisticType.NUMBER, - value: (love / reactedData.data.length), + value: ((love / reactedData.data.length) * 100).toFixed(2), name: 'Love emoji reacted over Time', }, { type: StatisticType.NUMBER, - value: (anger / reactedData.data.length), + value: ((anger / reactedData.data.length) * 100).toFixed(2), name: 'Anger emoji reacted over Time', }, { type: StatisticType.NUMBER, - value: (wow / reactedData.data.length), + value: ((wow / reactedData.data.length) * 100).toFixed(2), name: 'Wow emoji reacted over Time', }, { type: StatisticType.NUMBER, - value: (laugh / reactedData.data.length), + value: ((laugh / reactedData.data.length) * 100).toFixed(2), name: 'Laugh emoji reacted over Time', }, { type: StatisticType.NUMBER, - value: (sorry / reactedData.data.length), + value: ((sorry / reactedData.data.length) * 100).toFixed(2), name: 'Sorry emoji reacted over Time', }, - { - type: StatisticType.NUMBER, - value: (post / reactedData.data.length), - name: 'Post reacted over Time', - }, - { - type: StatisticType.NUMBER, - value: (community / reactedData.data.length), - name: 'Community reacted over Time', - }, ], parsedFiles: reactedData?.parsedFiles ?? [], } diff --git a/src/classes/Standardizer/plugins/Reddit/getters/getReactedStatistics.ts b/src/classes/Standardizer/plugins/Reddit/getters/getReactedStatistics.ts index 68010851..6d5be934 100644 --- a/src/classes/Standardizer/plugins/Reddit/getters/getReactedStatistics.ts +++ b/src/classes/Standardizer/plugins/Reddit/getters/getReactedStatistics.ts @@ -18,9 +18,10 @@ Reddit.prototype.getReactedStatistics = async function getReactedStatistics() { return null } reactedData.data.forEach((entry) => { - const end = new Date(new Date().setFullYear(new Date().getFullYear() + Nyear)) + const end = new Date(new Date().setFullYear(new Date().getFullYear() - Nyear)) for (Nyear; entry.reaction.reactionDate! < end; Nyear += 1) { Nyear += 1 + break } if (entry.reaction.name === 'up') { up += 1 @@ -28,22 +29,21 @@ Reddit.prototype.getReactedStatistics = async function getReactedStatistics() { down += 1 } }) - console.log((reactedData.data.length / Nyear)) return { statistics: [ { type: StatisticType.NUMBER, - value: (reactedData.data.length / Nyear), + value: (reactedData.data.length / Nyear).toFixed(2), name: 'reacted over Time', }, { type: StatisticType.NUMBER, - value: (up / reactedData.data.length), + value: ((up / reactedData.data.length) * 100).toFixed(2), name: 'Up reacted over Time', }, { type: StatisticType.NUMBER, - value: (down / reactedData.data.length), + value: ((down / reactedData.data.length) * 100).toFixed(2), name: 'Down reacted over Time', }, ], From cbc52979ef5916002eb41dd066843c65203d779b Mon Sep 17 00:00:00 2001 From: Nathan Bonnot Date: Sat, 11 Sep 2021 13:12:29 +0200 Subject: [PATCH 3/4] added new at end of file --- .../plugins/Discord/getters/getReactedStatistics.ts | 2 +- .../Standardizer/plugins/Reddit/getters/getReactedStatistics.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/classes/Standardizer/plugins/Discord/getters/getReactedStatistics.ts b/src/classes/Standardizer/plugins/Discord/getters/getReactedStatistics.ts index 0685e76f..6810b893 100644 --- a/src/classes/Standardizer/plugins/Discord/getters/getReactedStatistics.ts +++ b/src/classes/Standardizer/plugins/Discord/getters/getReactedStatistics.ts @@ -32,4 +32,4 @@ Discord.prototype.getReactedStatistics = async function getReactedStatistics() { ], parsedFiles: reactedData?.parsedFiles ?? [], } -} \ No newline at end of file +} diff --git a/src/classes/Standardizer/plugins/Reddit/getters/getReactedStatistics.ts b/src/classes/Standardizer/plugins/Reddit/getters/getReactedStatistics.ts index 6d5be934..edf45dd6 100644 --- a/src/classes/Standardizer/plugins/Reddit/getters/getReactedStatistics.ts +++ b/src/classes/Standardizer/plugins/Reddit/getters/getReactedStatistics.ts @@ -49,4 +49,4 @@ Reddit.prototype.getReactedStatistics = async function getReactedStatistics() { ], parsedFiles: reactedData?.parsedFiles ?? [], } -} \ No newline at end of file +} From 73c43dfb94f71277dc824fea53e10e9134a61bfe Mon Sep 17 00:00:00 2001 From: Nathan Bonnot Date: Mon, 15 Nov 2021 19:22:32 +0100 Subject: [PATCH 4/4] changed 'reacted over time' to 'reactions over time' --- .../plugins/Discord/getters/getReactedStatistics.ts | 2 +- .../plugins/Facebook/getters/getReactedStatistics.ts | 2 +- .../Standardizer/plugins/Reddit/getters/getReactedStatistics.ts | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/classes/Standardizer/plugins/Discord/getters/getReactedStatistics.ts b/src/classes/Standardizer/plugins/Discord/getters/getReactedStatistics.ts index 6810b893..af974555 100644 --- a/src/classes/Standardizer/plugins/Discord/getters/getReactedStatistics.ts +++ b/src/classes/Standardizer/plugins/Discord/getters/getReactedStatistics.ts @@ -27,7 +27,7 @@ Discord.prototype.getReactedStatistics = async function getReactedStatistics() { { type: StatisticType.NUMBER, value: (reactedData.data.length / Nyear).toFixed(2), - name: 'reacted over Time', + name: 'reactions over Time', }, ], parsedFiles: reactedData?.parsedFiles ?? [], diff --git a/src/classes/Standardizer/plugins/Facebook/getters/getReactedStatistics.ts b/src/classes/Standardizer/plugins/Facebook/getters/getReactedStatistics.ts index 6f1059d9..3905b8ce 100644 --- a/src/classes/Standardizer/plugins/Facebook/getters/getReactedStatistics.ts +++ b/src/classes/Standardizer/plugins/Facebook/getters/getReactedStatistics.ts @@ -63,7 +63,7 @@ Facebook.prototype.getReactedStatistics = async function getReactedStatistics() { type: StatisticType.NUMBER, value: (reactedData.data.length / Nyear).toFixed(2), - name: 'reacted over Time', + name: 'reactions over Time', }, { type: StatisticType.NUMBER, diff --git a/src/classes/Standardizer/plugins/Reddit/getters/getReactedStatistics.ts b/src/classes/Standardizer/plugins/Reddit/getters/getReactedStatistics.ts index edf45dd6..2a0bdd3a 100644 --- a/src/classes/Standardizer/plugins/Reddit/getters/getReactedStatistics.ts +++ b/src/classes/Standardizer/plugins/Reddit/getters/getReactedStatistics.ts @@ -34,7 +34,7 @@ Reddit.prototype.getReactedStatistics = async function getReactedStatistics() { { type: StatisticType.NUMBER, value: (reactedData.data.length / Nyear).toFixed(2), - name: 'reacted over Time', + name: 'reactions over Time', }, { type: StatisticType.NUMBER,