UserNotes

Скрипт для Лепры, позволяющий видеть, добавлять и изменять заметки прямо в посте и на глагне

当前为 2014-08-20 提交的版本,查看 最新版本

  1. // ==UserScript==
  2. // @name UserNotes
  3. // @author Gipnokote
  4. // @version 1.2
  5. // @namespace https://leprosorium.ru/*
  6. // @include https://*leprosorium.ru/*
  7. // @description Скрипт для Лепры, позволяющий видеть, добавлять и изменять заметки прямо в посте и на глагне
  8. // run-at document-end
  9. // ==/UserScript==
  10.  
  11.  
  12.  
  13. unsafeWindow.getNote = function(user_id){
  14. var userLinks = $$('div.ddi a.c_user[data-user_id='+user_id+']');
  15. var userNotes = $$('div.ddi span.usernote_'+user_id);
  16. userNotes.destroy();
  17. var noteRequest = new Request({
  18. url: '/ajax/user/note/get/',
  19. method: 'post',
  20. onSuccess: function(responseText){
  21. var response = JSON.parse(responseText);
  22. if (response.user_note) {
  23. userLinks.map(function injectNotes(userLink) {
  24. var userNote = new Element('span', {class: 'usernote_'+user_id, html: ', [<span style="color:green;cursor:pointer;" onClick="setUserNote('+user_id+',\''+response.user_note.body+'\');">'+response.user_note.body+'</span>]'});
  25. userNote.inject(userLink, 'after');
  26. });
  27. } else {
  28. userLinks.map(function injectNotes(userLink) {
  29. var userNote = new Element('span', {class: 'usernote_'+user_id, html: ', [<span style="color:green;cursor:pointer;" onClick="setUserNote('+user_id+',\'\');">+</span>]'});
  30. userNote.inject(userLink, 'after');
  31. });
  32. }
  33. }
  34. });
  35. noteRequest.send('user='+user_id+'&csrf_token='+globals.user['csrf_token']);
  36. }
  37.  
  38. unsafeWindow.setNote = function (user_id, note){
  39. var result = '';
  40. var noteRequest = new Request({
  41. url: '/ajax/user/note/set/',
  42. method: 'post'
  43. });
  44. noteRequest.send('user='+user_id+'&note='+note+'&csrf_token='+globals.user['csrf_token']);
  45. getNote(user_id);
  46. }
  47.  
  48. unsafeWindow.setUserNote = function (user_id, currentNote){
  49. var z = prompt('Введите заметку:',currentNote);
  50. if (z!=null) {
  51. setNote(user_id, z);
  52. }
  53. }
  54.  
  55. function eliminateDuplicates(arr) {
  56. var i,
  57. len=arr.length,
  58. out=[],
  59. obj={};
  60. for (i=0;i<len;i++) {
  61. obj[arr[i]]=0;
  62. }
  63. for (i in obj) {
  64. out.push(i);
  65. }
  66. return out;
  67. }
  68.  
  69. var emptyArray = [];
  70. var uids = eliminateDuplicates($$('div.ddi a.c_user').getProperty('data-user_id'));
  71. uids.map(function process(uid){
  72. getNote(uid);
  73. });