Advertisement
Guest User

Danbooru uploader statistics

a guest
Aug 16th, 2015
197
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. //This code assumes Danbooru JSON API's posts.json result is in a pre tag in the documents body.
  2. //(This is the case if you open the API result directly in Firefox and run the code below in the web console)
  3.  
  4. //parse the data:
  5. var array = JSON.parse(document.getElementsByTagName("pre")[0].textContent);
  6. var uploaders = {};    //If you want to analyze e.g. a whole day you have to analyze several pages of results; therefore to add the values of page(n) to the previous page's results initialize this with the output from page(n-1).
  7. for (var i = 0; i < array.length; i++) {
  8. if (uploaders[array[i].uploader_name]) {
  9. uploaders[array[i].uploader_name].count++;
  10. } else {
  11. uploaders[array[i].uploader_name] = {};
  12. uploaders[array[i].uploader_name].id = array[i].uploader_id;
  13. uploaders[array[i].uploader_name].count = 1;
  14. }
  15. }
  16. console.log(JSON.stringify(uploaders)); //This is the output mentioned above
  17.  
  18. //number of posts:
  19. var uploaders_keys = Object.keys(uploaders);
  20. var posts = 0;
  21. for (var i = 0; i < uploaders_keys.length; i++) {
  22. posts += uploaders[uploaders_keys[i]].count;
  23. }
  24. console.log("Posts:" + posts);
  25.  
  26. //number of uploaders:
  27. console.log("Uploaders:" + Object.keys(uploaders).length);
  28.  
  29. //sort into categories:
  30. var uploaders_keys = Object.keys(uploaders);
  31. var categories = {"1":0,"2-5":0,"6-10":0,"11-20":0,"21-30":0,"31-40":0,"41-50":0, "51+":0};
  32. for (var i = 0; i < uploaders_keys.length; i++) {
  33. if (uploaders[uploaders_keys[i]].count < 2) {
  34. categories["1"]++;
  35. } else if (uploaders[uploaders_keys[i]].count < 6) {
  36. categories["2-5"]++;
  37. } else if (uploaders[uploaders_keys[i]].count < 11) {
  38. categories["6-10"]++;
  39. } else if (uploaders[uploaders_keys[i]].count < 21) {
  40. categories["11-20"]++;
  41. } else if (uploaders[uploaders_keys[i]].count < 31) {
  42. categories["21-30"]++;
  43. } else if (uploaders[uploaders_keys[i]].count < 41) {
  44. categories["31-40"]++;
  45. } else if (uploaders[uploaders_keys[i]].count < 51) {
  46. categories["41-50"]++;
  47. } else {
  48. categories["51+"]++;
  49. }}
  50. console.log(categories);
  51.  
  52. //pretty print for Danbooru forum:
  53. var categories_keys = Object.keys(categories);
  54. var string = "";
  55. for (var i = 0; i < categories_keys.length; i++) {
  56. string += "\[b\]" + categories[categories_keys[i]] + " user(s)\[\/b\] with \[b\]" + categories_keys[i] + " uploads\[\/b\].\n";
  57. }
  58. console.log(string)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement