HF Scripts - PM From Post

This will let you PM users from posts. -updated by xadamxk

  1. // ==UserScript==
  2. // @name HF Scripts - PM From Post
  3. // @namespace xerotic/pmfrompost
  4. // @description This will let you PM users from posts. -updated by xadamxk
  5. // @include hackforums.net/showthread.php*
  6. // @include http://hackforums.net/showthread.php*
  7. // @version 1.0.2
  8. // ==/UserScript==
  9.  
  10.  
  11. var links = document.getElementsByTagName('a');
  12. var element;
  13. //my_post_key start
  14. for ( i = 0; i < links.length; i++ ) {
  15. element = links[i];
  16. if( element.href.indexOf( "my_post_key" ) != -1 ) {
  17. postkey = element.href.split(/my_post_key\=/);
  18. postkey = postkey[1];
  19. }
  20. }
  21. //my_post_key end
  22.  
  23. //pid start
  24. var pid
  25. var divList = new Array();
  26. var divCount = 0;
  27. var divs;
  28. divs = document.getElementsByTagName('div');
  29. for (j = 0; j < divs.length; j++ ) {
  30. element = divs[j];
  31. if(element.id.indexOf( "post_meta" ) != -1 ) {
  32. pid = element.id.match(/post_meta_(\d*)/);
  33. pid = pid[1];
  34. divList[divCount]=pid;
  35. divCount++;
  36. }
  37. }
  38. //pid end
  39.  
  40. //div author_buttons float_left start
  41. var divsnew = document.getElementsByTagName('div');
  42. var divListnew = new Array();
  43. var divcountnew = 0;
  44. for(i = 0; i < divsnew.length; i++){
  45. var e = divsnew[i];
  46. if(e.className == 'author_buttons float_left') {
  47. divListnew[divcountnew] = e;
  48. divcountnew++;
  49. }
  50. }
  51. //div author_buttons float_left end
  52.  
  53. //uid start
  54. var uidList = new Array();
  55. var userList = new Array();
  56. var tds = document.getElementsByTagName('td');
  57. var uidCount = 0;
  58. for ( var i = 0; i < tds.length; i++ ) {
  59. element = tds[i];
  60. if ( element.className == 'post_author') {
  61. var newElement = element.getElementsByTagName('strong')[0].getElementsByTagName('a')[0];
  62. var userStart = newElement.innerHTML;
  63. if(userStart.indexOf('<strong>') != -1){
  64. var user = newElement.getElementsByTagName('strong')[0].innerHTML;
  65. }
  66. else if(userStart.indexOf('<span') != -1){
  67. var user = newElement.getElementsByTagName('span')[0].innerHTML;
  68. } else {
  69. user = userStart;
  70. }
  71. var uid = newElement.href.match(/uid\=(\d*)/);
  72. uid = uid[1];
  73. uidList[uidCount]=uid;
  74. userList[uidCount]=user;
  75. uidCount++;
  76. }
  77. }
  78. //uid end
  79.  
  80. var cur;
  81. for (i = 0; i < uidList.length; i++ ) {
  82. // alert(postkey + '<br />' + uidList[i]);
  83. //form start
  84. var formaction = '<div id="xeropmfrompost'+i+'" style="display:none;"><form action="private.php" method="post" name="input" target="_blank"><input type="hidden" name="action" value="do_send" />';
  85. var formpmid = '<input type="hidden" name="pmid" value="" />';
  86. var formdo = '<input type="hidden" name="do" value="" />';
  87. var formicon = '<input type="hidden" name="icon" value="" />';
  88. var formmy_post_key = '<input type="hidden" name="my_post_key" value="'+postkey+'" />';
  89. var formuid = '<input type="hidden" name="uid" value="'+uidList[i]+'" />';
  90. var formto = '<strong>Recipients: </strong><input type="text" class="textbox" name="to" id="to" tabindex="3" value="'+userList[i]+'" />';
  91. var formsubject = '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<strong>Subject: </strong><input type="text" class="textbox" name="subject" size="40" maxlength="85" value="" tabindex="3" /><br />';
  92. var formchecks = '<input type="checkbox" class="checkbox" name="options[signature]" value="1" tabindex="5" checked="checked" />Signature - <input type="checkbox" class="checkbox" name="options[savecopy]" value="1" tabindex="7" checked="checked" />Save a Copy - <input type="checkbox" class="checkbox" name="options[readreceipt]" value="1" tabindex="8" checked="checked" />Request Read Receipt';
  93. var formsend = '<input type="submit" class="button" name="submit" value="Send Message" tabindex="9" accesskey="s" /><input type="submit" class="button" name="saveasdraft" value="Save as Draft" tabindex="10" /><input type="submit" class="button" name="preview" value="Preview" tabindex="11" />';
  94. var formmessage = '<textarea name="message" rows="7" cols="90" tabindex="3">[size=x-small]Sent from [url=http://www.hackforums.net/showthread.php?pid='+divList[i]+'#pid'+divList[i]+']this post[/url]. [/size] \n\n</textarea><br />';
  95. var finalform = formaction+formpmid+formdo+formicon+formmy_post_key+formuid+formto+formsubject+formmessage+formsend+formchecks+'</form></div>';
  96. //form end
  97. cur = 'post_meta_'+divList[i];
  98. divListnew[i].innerHTML='<a class="bitButton" href="javascript:void(0);" onclick="javascript:document.getElementById(\'xeropmfrompost'+i+'\').style.display = (document.getElementById(\'xeropmfrompost'+i+'\').style.display == \'block\') ? \'none\' : \'block\'">Quick PM</a>' + divListnew[i].innerHTML;
  99. document.getElementById(cur).innerHTML = document.getElementById(cur).innerHTML + finalform;
  100. }