UserNotes

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

当前为 2014-11-04 提交的版本,查看 最新版本

  1. // ==UserScript==
  2. // @name UserNotes
  3. // @author Gipnokote
  4. // @version 1.6
  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.replace(/"/g,'&quot;')+'\'); return false;">'+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. onSuccess: function(){
  44. getNote(user_id);
  45. }
  46. });
  47. noteRequest.send('user='+user_id+'&note='+encodeURIComponent(note)+'&csrf_token='+globals.user['csrf_token']);
  48. }
  49.  
  50. unsafeWindow.setUserNote = function (user_id, currentNote){
  51. var z = prompt('Введите заметку:',currentNote);
  52. if (z!=null) {
  53. setNote(user_id, z);
  54. }
  55. }
  56.  
  57. function eliminateDuplicates(arr) {
  58. var i,
  59. len=arr.length,
  60. out=[],
  61. obj={};
  62. for (i=0;i<len;i++) {
  63. obj[arr[i]]=0;
  64. }
  65. for (i in obj) {
  66. out.push(i);
  67. }
  68. return out;
  69. }
  70.  
  71. var emptyArray = [];
  72. var uids = eliminateDuplicates($$('div.ddi a.c_user').getProperty('data-user_id'));
  73. uids.map(function process(uid){
  74. getNote(uid);
  75. });