register_rest_route('nv','dashboard-posttypes',{
methods: 'post',
callback(data,req) {
var now = Date.now();
var posttypes = apply_filters('_nv_posttypes',[]);
var results = {
__UNDEFINED__: {
count: 0,
publish: 0,
pending: 0,
comment_count: 0,
tba: 0, //待发布
}
};
posttypes.forEach(r=>{
results[r.post_type] = {
...r.opts,
count: 0,
publish: 0,
pending: 0,
comment_count: 0,
tba: 0, //待发布
}
})
nvdb.posts.find(r=>{
var posttype = results[r.post_type] || results.__UNDEFINED__;
posttype.count += 1;
posttype.comment_count += r.comment_count;
if (r.status == 'pending') { posttype.pending += 1 }
if (r.status == 'publish') {
if (now < r.modified_time) { posttype.tba += 1 }
else {posttype.publish += 1}
}
return;
})
return results;
},
permission_callback: power=>power >= 6,
});
register_rest_route('nv','dashboard-comments',{
methods: 'post',
callback(data,req) {
var three_month_ago = Date.now() - 60*60*24*90*1000;
var results = {
count: 0,
has_parents: 0,
has_user_id: 0,
has_ip: 0,
has_ua: 0,
anonymous: 0,
recent_count: 0,
publish: 0,
pending: 0,
spam: 0,
};
nvdb.comments.find(r=>{
results.count++;
if (!r.name) {results.anonymous++}
if (r.parent) {results.has_parents++}
if (r.user_id) {results.has_user_id++}
if (r.ip) {results.has_ip++}
if (r.ua) {results.has_ua++}
if (r.date > three_month_ago) {results.recent_count++}
if (r.status == 'publish') {results.publish++}
else if (r.status == 'pending') {results.pending++}
else if (r.status == 'spam') {results.spam++}
return;
})
return results;
},
permission_callback: power=>power >= 8,
});