mirror of
https://activitypub.software/TransFem-org/Sharkey
synced 2024-11-22 22:15:12 +00:00
Some bug fixes and clean ups
This commit is contained in:
parent
a02ee3a08b
commit
cebea4e94c
8 changed files with 3 additions and 302 deletions
|
@ -1,76 +0,0 @@
|
||||||
/**
|
|
||||||
* Module dependencies
|
|
||||||
*/
|
|
||||||
import $ from 'cafy';
|
|
||||||
import Note from '../../../../../models/note';
|
|
||||||
import Reaction from '../../../../../models/note-reaction';
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Aggregate reaction of a note
|
|
||||||
*
|
|
||||||
* @param {any} params
|
|
||||||
* @return {Promise<any>}
|
|
||||||
*/
|
|
||||||
module.exports = (params) => new Promise(async (res, rej) => {
|
|
||||||
// Get 'noteId' parameter
|
|
||||||
const [noteId, noteIdErr] = $(params.noteId).id().$;
|
|
||||||
if (noteIdErr) return rej('invalid noteId param');
|
|
||||||
|
|
||||||
// Lookup note
|
|
||||||
const note = await Note.findOne({
|
|
||||||
_id: noteId
|
|
||||||
});
|
|
||||||
|
|
||||||
if (note === null) {
|
|
||||||
return rej('note not found');
|
|
||||||
}
|
|
||||||
|
|
||||||
const datas = await Reaction
|
|
||||||
.aggregate([
|
|
||||||
{ $match: { noteId: note._id } },
|
|
||||||
{ $project: {
|
|
||||||
createdAt: { $add: ['$createdAt', 9 * 60 * 60 * 1000] } // Convert into JST
|
|
||||||
}},
|
|
||||||
{ $project: {
|
|
||||||
date: {
|
|
||||||
year: { $year: '$createdAt' },
|
|
||||||
month: { $month: '$createdAt' },
|
|
||||||
day: { $dayOfMonth: '$createdAt' }
|
|
||||||
}
|
|
||||||
}},
|
|
||||||
{ $group: {
|
|
||||||
_id: '$date',
|
|
||||||
count: { $sum: 1 }
|
|
||||||
}}
|
|
||||||
]);
|
|
||||||
|
|
||||||
datas.forEach(data => {
|
|
||||||
data.date = data._id;
|
|
||||||
delete data._id;
|
|
||||||
});
|
|
||||||
|
|
||||||
const graph = [];
|
|
||||||
|
|
||||||
for (let i = 0; i < 30; i++) {
|
|
||||||
const day = new Date(new Date().setDate(new Date().getDate() - i));
|
|
||||||
|
|
||||||
const data = datas.filter(d =>
|
|
||||||
d.date.year == day.getFullYear() && d.date.month == day.getMonth() + 1 && d.date.day == day.getDate()
|
|
||||||
)[0];
|
|
||||||
|
|
||||||
if (data) {
|
|
||||||
graph.push(data);
|
|
||||||
} else {
|
|
||||||
graph.push({
|
|
||||||
date: {
|
|
||||||
year: day.getFullYear(),
|
|
||||||
month: day.getMonth() + 1, // In JavaScript, month is zero-based.
|
|
||||||
day: day.getDate()
|
|
||||||
},
|
|
||||||
count: 0
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
res(graph);
|
|
||||||
});
|
|
|
@ -1,72 +0,0 @@
|
||||||
/**
|
|
||||||
* Module dependencies
|
|
||||||
*/
|
|
||||||
import $ from 'cafy';
|
|
||||||
import Note from '../../../../../models/note';
|
|
||||||
import Reaction from '../../../../../models/note-reaction';
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Aggregate reactions of a note
|
|
||||||
*
|
|
||||||
* @param {any} params
|
|
||||||
* @return {Promise<any>}
|
|
||||||
*/
|
|
||||||
module.exports = (params) => new Promise(async (res, rej) => {
|
|
||||||
// Get 'noteId' parameter
|
|
||||||
const [noteId, noteIdErr] = $(params.noteId).id().$;
|
|
||||||
if (noteIdErr) return rej('invalid noteId param');
|
|
||||||
|
|
||||||
// Lookup note
|
|
||||||
const note = await Note.findOne({
|
|
||||||
_id: noteId
|
|
||||||
});
|
|
||||||
|
|
||||||
if (note === null) {
|
|
||||||
return rej('note not found');
|
|
||||||
}
|
|
||||||
|
|
||||||
const startTime = new Date(new Date().setMonth(new Date().getMonth() - 1));
|
|
||||||
|
|
||||||
const reactions = await Reaction
|
|
||||||
.find({
|
|
||||||
noteId: note._id,
|
|
||||||
$or: [
|
|
||||||
{ deletedAt: { $exists: false } },
|
|
||||||
{ deletedAt: { $gt: startTime } }
|
|
||||||
]
|
|
||||||
}, {
|
|
||||||
sort: {
|
|
||||||
_id: -1
|
|
||||||
},
|
|
||||||
fields: {
|
|
||||||
_id: false,
|
|
||||||
noteId: false
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
const graph = [];
|
|
||||||
|
|
||||||
for (let i = 0; i < 30; i++) {
|
|
||||||
let day = new Date(new Date().setDate(new Date().getDate() - i));
|
|
||||||
day = new Date(day.setMilliseconds(999));
|
|
||||||
day = new Date(day.setSeconds(59));
|
|
||||||
day = new Date(day.setMinutes(59));
|
|
||||||
day = new Date(day.setHours(23));
|
|
||||||
// day = day.getTime();
|
|
||||||
|
|
||||||
const count = reactions.filter(r =>
|
|
||||||
r.createdAt < day && (r.deletedAt == null || r.deletedAt > day)
|
|
||||||
).length;
|
|
||||||
|
|
||||||
graph.push({
|
|
||||||
date: {
|
|
||||||
year: day.getFullYear(),
|
|
||||||
month: day.getMonth() + 1, // In JavaScript, month is zero-based.
|
|
||||||
day: day.getDate()
|
|
||||||
},
|
|
||||||
count: count
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
res(graph);
|
|
||||||
});
|
|
|
@ -1,75 +0,0 @@
|
||||||
/**
|
|
||||||
* Module dependencies
|
|
||||||
*/
|
|
||||||
import $ from 'cafy';
|
|
||||||
import Note from '../../../../../models/note';
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Aggregate reply of a note
|
|
||||||
*
|
|
||||||
* @param {any} params
|
|
||||||
* @return {Promise<any>}
|
|
||||||
*/
|
|
||||||
module.exports = (params) => new Promise(async (res, rej) => {
|
|
||||||
// Get 'noteId' parameter
|
|
||||||
const [noteId, noteIdErr] = $(params.noteId).id().$;
|
|
||||||
if (noteIdErr) return rej('invalid noteId param');
|
|
||||||
|
|
||||||
// Lookup note
|
|
||||||
const note = await Note.findOne({
|
|
||||||
_id: noteId
|
|
||||||
});
|
|
||||||
|
|
||||||
if (note === null) {
|
|
||||||
return rej('note not found');
|
|
||||||
}
|
|
||||||
|
|
||||||
const datas = await Note
|
|
||||||
.aggregate([
|
|
||||||
{ $match: { reply: note._id } },
|
|
||||||
{ $project: {
|
|
||||||
createdAt: { $add: ['$createdAt', 9 * 60 * 60 * 1000] } // Convert into JST
|
|
||||||
}},
|
|
||||||
{ $project: {
|
|
||||||
date: {
|
|
||||||
year: { $year: '$createdAt' },
|
|
||||||
month: { $month: '$createdAt' },
|
|
||||||
day: { $dayOfMonth: '$createdAt' }
|
|
||||||
}
|
|
||||||
}},
|
|
||||||
{ $group: {
|
|
||||||
_id: '$date',
|
|
||||||
count: { $sum: 1 }
|
|
||||||
}}
|
|
||||||
]);
|
|
||||||
|
|
||||||
datas.forEach(data => {
|
|
||||||
data.date = data._id;
|
|
||||||
delete data._id;
|
|
||||||
});
|
|
||||||
|
|
||||||
const graph = [];
|
|
||||||
|
|
||||||
for (let i = 0; i < 30; i++) {
|
|
||||||
const day = new Date(new Date().setDate(new Date().getDate() - i));
|
|
||||||
|
|
||||||
const data = datas.filter(d =>
|
|
||||||
d.date.year == day.getFullYear() && d.date.month == day.getMonth() + 1 && d.date.day == day.getDate()
|
|
||||||
)[0];
|
|
||||||
|
|
||||||
if (data) {
|
|
||||||
graph.push(data);
|
|
||||||
} else {
|
|
||||||
graph.push({
|
|
||||||
date: {
|
|
||||||
year: day.getFullYear(),
|
|
||||||
month: day.getMonth() + 1, // In JavaScript, month is zero-based.
|
|
||||||
day: day.getDate()
|
|
||||||
},
|
|
||||||
count: 0
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
res(graph);
|
|
||||||
});
|
|
|
@ -1,75 +0,0 @@
|
||||||
/**
|
|
||||||
* Module dependencies
|
|
||||||
*/
|
|
||||||
import $ from 'cafy';
|
|
||||||
import Note from '../../../../../models/note';
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Aggregate renote of a note
|
|
||||||
*
|
|
||||||
* @param {any} params
|
|
||||||
* @return {Promise<any>}
|
|
||||||
*/
|
|
||||||
module.exports = (params) => new Promise(async (res, rej) => {
|
|
||||||
// Get 'noteId' parameter
|
|
||||||
const [noteId, noteIdErr] = $(params.noteId).id().$;
|
|
||||||
if (noteIdErr) return rej('invalid noteId param');
|
|
||||||
|
|
||||||
// Lookup note
|
|
||||||
const note = await Note.findOne({
|
|
||||||
_id: noteId
|
|
||||||
});
|
|
||||||
|
|
||||||
if (note === null) {
|
|
||||||
return rej('note not found');
|
|
||||||
}
|
|
||||||
|
|
||||||
const datas = await Note
|
|
||||||
.aggregate([
|
|
||||||
{ $match: { renoteId: note._id } },
|
|
||||||
{ $project: {
|
|
||||||
createdAt: { $add: ['$createdAt', 9 * 60 * 60 * 1000] } // Convert into JST
|
|
||||||
}},
|
|
||||||
{ $project: {
|
|
||||||
date: {
|
|
||||||
year: { $year: '$createdAt' },
|
|
||||||
month: { $month: '$createdAt' },
|
|
||||||
day: { $dayOfMonth: '$createdAt' }
|
|
||||||
}
|
|
||||||
}},
|
|
||||||
{ $group: {
|
|
||||||
_id: '$date',
|
|
||||||
count: { $sum: 1 }
|
|
||||||
}}
|
|
||||||
]);
|
|
||||||
|
|
||||||
datas.forEach(data => {
|
|
||||||
data.date = data._id;
|
|
||||||
delete data._id;
|
|
||||||
});
|
|
||||||
|
|
||||||
const graph = [];
|
|
||||||
|
|
||||||
for (let i = 0; i < 30; i++) {
|
|
||||||
const day = new Date(new Date().setDate(new Date().getDate() - i));
|
|
||||||
|
|
||||||
const data = datas.filter(d =>
|
|
||||||
d.date.year == day.getFullYear() && d.date.month == day.getMonth() + 1 && d.date.day == day.getDate()
|
|
||||||
)[0];
|
|
||||||
|
|
||||||
if (data) {
|
|
||||||
graph.push(data);
|
|
||||||
} else {
|
|
||||||
graph.push({
|
|
||||||
date: {
|
|
||||||
year: day.getFullYear(),
|
|
||||||
month: day.getMonth() + 1, // In JavaScript, month is zero-based.
|
|
||||||
day: day.getDate()
|
|
||||||
},
|
|
||||||
count: 0
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
res(graph);
|
|
||||||
});
|
|
|
@ -3,7 +3,7 @@
|
||||||
*/
|
*/
|
||||||
import $ from 'cafy';
|
import $ from 'cafy';
|
||||||
import { validateFileName, pack } from '../../../../../models/drive-file';
|
import { validateFileName, pack } from '../../../../../models/drive-file';
|
||||||
import create from '../../../../../drive/add-file';
|
import create from '../../../../../services/drive/add-file';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create a file
|
* Create a file
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
*/
|
*/
|
||||||
import $ from 'cafy';
|
import $ from 'cafy';
|
||||||
import { pack } from '../../../../../models/drive-file';
|
import { pack } from '../../../../../models/drive-file';
|
||||||
import uploadFromUrl from '../../../../../drive/upload-from-url';
|
import uploadFromUrl from '../../../../../services/drive/upload-from-url';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create a file from a URL
|
* Create a file from a URL
|
||||||
|
|
|
@ -5,7 +5,7 @@ import $ from 'cafy';
|
||||||
import Vote from '../../../../../models/poll-vote';
|
import Vote from '../../../../../models/poll-vote';
|
||||||
import Note from '../../../../../models/note';
|
import Note from '../../../../../models/note';
|
||||||
import Watching from '../../../../../models/note-watching';
|
import Watching from '../../../../../models/note-watching';
|
||||||
import watch from '../../../../../note/watch';
|
import watch from '../../../../../services/note/watch';
|
||||||
import { publishNoteStream } from '../../../../../publishers/stream';
|
import { publishNoteStream } from '../../../../../publishers/stream';
|
||||||
import notify from '../../../../../publishers/notify';
|
import notify from '../../../../../publishers/notify';
|
||||||
|
|
||||||
|
|
|
@ -2,7 +2,6 @@
|
||||||
* Module dependencies
|
* Module dependencies
|
||||||
*/
|
*/
|
||||||
import $ from 'cafy';
|
import $ from 'cafy';
|
||||||
import Reaction from '../../../../../models/note-reaction';
|
|
||||||
import Note from '../../../../../models/note';
|
import Note from '../../../../../models/note';
|
||||||
import create from '../../../../../services/note/reaction/create';
|
import create from '../../../../../services/note/reaction/create';
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue