mirror of
https://activitypub.software/TransFem-org/Sharkey.git
synced 2024-12-16 01:55:44 +01:00
46 lines
749 B
TypeScript
46 lines
749 B
TypeScript
|
import Post from '../../api/models/post';
|
||
|
import User from '../../api/models/user';
|
||
|
|
||
|
export async function predictOne(id) {
|
||
|
console.log(`predict interest of ${id} ...`);
|
||
|
|
||
|
// TODO: repostなども含める
|
||
|
const recentPosts = await Post.find({
|
||
|
user_id: id,
|
||
|
category: {
|
||
|
$exists: true
|
||
|
}
|
||
|
}, {
|
||
|
sort: {
|
||
|
_id: -1
|
||
|
},
|
||
|
limit: 1000,
|
||
|
fields: {
|
||
|
_id: false,
|
||
|
category: true
|
||
|
}
|
||
|
});
|
||
|
|
||
|
const categories = {};
|
||
|
|
||
|
recentPosts.forEach(post => {
|
||
|
if (categories[post.category]) {
|
||
|
categories[post.category]++;
|
||
|
} else {
|
||
|
categories[post.category] = 1;
|
||
|
}
|
||
|
});
|
||
|
}
|
||
|
|
||
|
export async function predictAll() {
|
||
|
const allUsers = await User.find({}, {
|
||
|
fields: {
|
||
|
_id: true
|
||
|
}
|
||
|
});
|
||
|
|
||
|
allUsers.forEach(user => {
|
||
|
predictOne(user._id);
|
||
|
});
|
||
|
}
|