I've pretty much always had technical skills on account of growing up around computing. I've started using them more in my current job and am open to a technical career, but it's not really new. Like they say, I never let my formal education get in the way of my learning.[Edited on July 30, 2009 at 1:24 PM. Reason : Peace, we outta here.]
7/30/2009 1:24:24 PM
Version 0.2 is up: http://jlhamilt.freeshell.org/better_wolf_web.user.jsRelease notes:* Instead of PM parsing, I decided to experiment with something a little more radical. Click the wolf icon in the header to toggle a quick message board search box!* Simple user blocking is there. Check the source for details. Works in the message board list, thread list, and threads themselves.* Cool MP3 link handling: An embedded player lets you stream the file instantly, and a download link is provided beneath it. Example:http://jlhamilt.freeshell.org/audio/beautiful_life.mp3[Edited on July 30, 2009 at 4:39 PM. Reason : w00t]
7/30/2009 4:34:07 PM
Very nice
7/30/2009 4:39:52 PM
well done sir. given the go-ahead, i'd love to integrate some of these features into the main codebase at some point[Edited on July 30, 2009 at 4:47 PM. Reason : i like how lilalavendar and not dnl are blocked users by default. ]
7/30/2009 4:46:04 PM
Glad you guys are digging it. Extra-special bit I forgot to mention: AUTOSTART PROTECTION. No more EMBEDs blaring out at you without warning.In future versions, I plan to add a dialog constructor so you can dynamically create your own Wolf Web-styled widgets similar to my search box. I still want to get around to PM parsing, too.But the real hot shit is going to be the more user-friendly blocking feature. Imagine a dialog that lets you manage your blocked users, adding and removing them without leaving the browser window. Imagine the option to click and see the blocked post...or the option to never see a blocked user at all. Oh yeah. It's percolating.[Edited on July 30, 2009 at 4:50 PM. Reason : ...]
7/30/2009 4:47:39 PM
Image resizing... maybe I misunderstood what it does, but the one in the OP didn't get auto-resized for me here: message_topic.aspx?topic=572542
7/30/2009 4:58:17 PM
Well spotted. Patched. Reinstall.
7/30/2009 5:02:00 PM
That, my friend, is A+. Will buy from again!!
7/30/2009 5:12:23 PM
Oh yeah, there's always the annoying part of replying to a thread... clicking any of the buttons adds whatever to the end of the text box, not at the cursor. That, and the iframe below not showing the last page of the thread. Any hope for fixing that?
7/30/2009 5:45:15 PM
lol at blocked users[Edited on July 30, 2009 at 7:05 PM. Reason : aha wins]
7/30/2009 7:04:39 PM
If it's possible, I'd love for blocked users to also disappear from the chatterbox too.I still see blah blah blah son blah blah blah son up there.Actually if you could just remove all instances of the word son from SaabLameo's posts, he might be tolerable.
7/30/2009 9:32:18 PM
In addition to what I said ^^^ there, can we make the frame wider??
7/31/2009 3:41:03 AM
7/31/2009 6:32:09 AM
lol, you have dnl on autoblock?? all his stuff is blocked for me, though I never blocked him
7/31/2009 8:30:38 AM
I chose not dnl and lilalavender as default test cases for blocking. I didn't think anyone would mind.
7/31/2009 8:33:12 AM
nope
7/31/2009 8:57:16 AM
Okay, 0.3 is probably not going to be an exciting release. Here is a rundown of the changes I'm working on:* Reorganizing the scaffolding procedures, i.e. what order they're executed in. I think I can get this going faster, and if I get the order right, I should produce a nice cascade of data available right when helper methods need it.* Reworking the slide-down search box to adapt to the current message board.* Tentatively planning to include a working quote & reply function, but I don't even have that working yet.
7/31/2009 9:40:12 AM
you mind adding the search by user fields to the quick search thing?
7/31/2009 9:58:55 AM
Can do. Might even get fancy with it!
7/31/2009 10:02:23 AM
How might one edit the source and reinstall (for the purposes of adding userID 35889 to the block list)?
7/31/2009 10:10:15 AM
Right-click the Greasemonkey icon in the lower righthand corner of your browser window and choose Manage Userscripts. Choose Better Wolf Web from the list and click the Edit button.
7/31/2009 10:11:49 AM
Thank you, sir.
7/31/2009 10:17:05 AM
Microphone check 1Microphone check 2Peace, this is a very nice add-on.Any chance of a link resize like the photo one? Example:message_topic.aspx?topic=567656&page=3#13106443]
7/31/2009 10:19:00 AM
scanning chit chat without euphalo is refreshing
7/31/2009 2:08:30 PM
agreed. it's f'in awesome actually. an easier way of changing who is blocked would be cool but not a big deal[Edited on July 31, 2009 at 2:14 PM. Reason : a]
7/31/2009 2:10:14 PM
Easier blocking is definitely on my mind. I'm pretty sure I can use GM_setValue and GM_getValue to track your blocking preferences persistently.
7/31/2009 2:46:23 PM
well, i can change it pretty quick now.. i was trying to figure out the best way to open the .js file, change stuff, save it & reinstall. first time took me a little while but can do it in like 30 seconds now
7/31/2009 2:50:25 PM
Hey, why work hard?
7/31/2009 3:01:01 PM
A++ work Frosh, fantastic job
7/31/2009 3:53:01 PM
We need to have the ability for statsbot to run a report on the most blocked users once this is fully functional.
7/31/2009 3:57:07 PM
pretty bad he still hasn't been banned for all the bullshit..
7/31/2009 4:32:28 PM
I could in theory use T-Dub's Google Analytics tracker to track certain script events, e.g. when someone chooses to ban a user through the newer interface I'm working on. It'd be up to qntmfred to report shit like that, though.
7/31/2009 4:35:34 PM
I don't think we need statistics to tell us that noone wants to read anything by RD or dnl
7/31/2009 4:38:00 PM
anyway you can make the "this thread is by a block user" text be a link to the thread?
7/31/2009 4:42:36 PM
Yes, I'm planning to allow you to toggle the visibility of a blocked threads/post/PM.It's pretty clear that blocking is the important feature for you guys. [Edited on July 31, 2009 at 4:46 PM. Reason : ...]
7/31/2009 4:45:40 PM
it is, haha
7/31/2009 4:59:29 PM
Okay, here's the bad news. In the next release, your lists of banned users will be absolutely worthless.The good news is that you'll be able to add and remove users from your block list by clicking a link on the user's profile, and this data will persist across sessions without the use of cookies, the awkward re-declaration of variables, or ritual sacrifice.I still haven't quite mastered toggling the masked posts and threads by banned users, though.
7/31/2009 11:28:38 PM
for someone not familiar enough with css scripts...any suggestions or tips to go about the vanity post highlighting and color coded nsfw threads?or is that something for a future release at some point?
8/1/2009 12:12:37 AM
Why not make it another item in the list under their username on a given post? That's the way the existing one works and it works quite well. Any reason not to do it this way?
8/1/2009 11:53:46 AM
posts are getting pretty long with 4 things over there already.. not a huge deal though
8/1/2009 3:50:46 PM
Honestly, I want it to take some effort to block people. To me, the Wolf Web would not be very interesting if we were all having completely different, sanitized experiences.
8/1/2009 4:36:20 PM
THIS ISN'T UP TO YOU OK!!1!
8/1/2009 5:04:48 PM
Sounds like a config panel of the sorts is warranted:- vanity coloring- blocked users (and blocking settings)- etcI hate adding UIs to things without a UI already
8/1/2009 5:09:53 PM
i added this to your plugin, you're welcome to continue it since i've already gotten bored it modalizes the inbox, basically
function modalInbox() { var superStyles = { 'display':'none', 'position':'absolute', 'z-index':'5', 'top':'100px', 'right':'100px', 'left':'100px', 'padding':'5px', 'background-color':'#fff', 'border':'1px solid #333' }; var superBlockStyles = { 'display':'none', 'position':'absolute', 'z-index':'4', 'top':'0', 'right':'0', 'left':'0', 'height'$('body table').height()), 'background-color':'#000', 'opacity':0.7 }; $("#username").next("a[href*='inbox']").text('superbox').click(function(){ $('embed').css('visibility','hidden'); $.get($(this).attr('href'), function(response) { var inbox_block = response.replace(/^[\s\S]*<form/, '<form').replace(/<\/form>[\s\S]*$/,'</form>'); //alert(inbox_block); var superbox = $('<div id="superbox"></div>').css(superStyles).html(inbox_block).appendTo('body'); var superblock = $('<div id="superblock"></div>').css(superBlockStyles).appendTo('body').click(function(){ superbox.fadeOut('fast', function(){ $(this).remove(); superblock.remove(); $('embed').css('visibility',''); }); }); superbox.find("a[href*='mail_inbox.aspx?page='], a[href*='mail_sent.aspx?page=']").each(function(){ addSuperboxPages(this, superbox); }); superbox.find("tr.medium a[href*='mail_message.aspx?message=']").each(function(){ addSuperboxMessages(this, superbox); }); superbox.find('select').each(function(){ $(this).unbind(); $(this).removeAttr('onChange'); $(this).change(function(){ addSuperboxSelect(this, superbox); }); }); //superbox.find("a[href*='mail_compose.aspx']").each(function(){ //}); superblock.fadeIn('fast', function(){ superbox.fadeIn(); }); }); return false; });}function addSuperboxSelect(el, superbox) { $(el).click(function(){ selectChange = $(el); superbox.fadeOut('fast', function(){ $.get(selectChange.find(':selected').attr('value'), function(response) { var inbox_block = response.replace(/^[\s\S]*<form/, '<form').replace(/<\/form>[\s\S]*$/,'</form>'); superbox.html(inbox_block); superbox.fadeIn('fast', function(){ superbox.find("a[href*='mail_inbox.aspx?page='], a[href*='mail_sent.aspx?page=']").each(function(){ addSuperboxPages(this, superbox); }); superbox.find("tr.medium a[href*='mail_message.aspx?message=']").each(function(){ addSuperboxMessages(this, superbox); }); superbox.find('select').each(function(){ $(this).unbind(); $(this).removeAttr('onChange'); $(this).change(function(){ addSuperboxSelect(this, superbox); }); }); }); }); }); return false; });}function addSuperboxMessages(el, superbox) { $(el).click(function(){ message = $(el); superbox.fadeOut('fast', function(){ $.get(message.attr('href'), function(response) { var inbox_block = response.replace(/^[\s\S]+?<\/table>[\s\S]+?<\/table>[\s\S]+?<\/table>[\s]*<table/, '<table style="margin:0 auto"').replace(/<!--[\s\S]*$/,'').replace(/([\s\S]+)<\/table>[\s\S]+?$/,'$1</table>'); superbox.html(inbox_block); superbox.fadeIn('fast', function(){ superbox.find('select').each(function(){ $(this).unbind(); $(this).removeAttr('onChange'); $(this).change(function(){ addSuperboxSelect(this, superbox); }); }); superbox.find("input[type='button']").each(function(){ $(this).unbind(); $(this).removeAttr('onClick'); $(this).click(function(){ $(this).parent().find('select').change(); return false; }); }); }); }); }); return false; });}function addSuperboxPages(el, superbox) { //alert($(el).text()); $(el).click(function(){ nextPage = $(el); superbox.fadeOut('fast', function(){ $.get(nextPage.attr('href'), function(response) { var inbox_block = response.replace(/^[\s\S]*<form/, '<form style="font-size:5px !important;"').replace(/<\/form>[\s\S]*$/,'</form>'); superbox.html(inbox_block).fadeIn('fast', function(){ superbox.find("a[href*='mail_inbox.aspx?page='], a[href*='mail_sent.aspx?page=']").each(function(){ addSuperboxPages(this, superbox); }); superbox.find("tr.medium a[href*='mail_message.aspx?message=']").each(function(){ addSuperboxMessages(this, superbox); }); superbox.find('select').each(function(){ $(this).unbind(); $(this).removeAttr('onChange'); $(this).change(function(){ addSuperboxSelect(this, superbox); }); }); }); }); }); return false; });}
8/1/2009 5:27:18 PM
i'll someone else put that in with the other code and post a link to one file
8/1/2009 5:33:01 PM
khttp://bigman.x10hosting.com/better_wolf_web.user.jsthat's my code added to frosh'sfixed a few things in my code so that the go button works and so does the reply, compose, etc.delete still doesn't work, but fuck it i never use that anywayalso, you can click in the darkened area around the popup to close ityou'll know it's loaded when 'inbox' says 'superbox'[Edited on August 1, 2009 at 8:40 PM. Reason : and i just updated it again]
8/1/2009 8:34:48 PM
pretty cool man
8/1/2009 10:42:11 PM
<script language="javascript">// Original Example Author: Diego Perini <dperini@nwbox.com>// Hacked into crazycode by: Ryan Smith <HaLo>var sb = new Array( 'leftbox', 'rightbox', 'scrollLeft', 'scrollRight', 'caretPos', 'maxLength', 'textLength', 'availLength', 'beforeCaret', 'afterCaret', 'selectedText')for (var i in sb) eval('var ' + sb[i] + ' = {}')var os = 0var oe = 0function updateLeft(o) { var t = o.value, s = getSelectionStart(o), e = getSelectionEnd(o) os = s oe = e return s}function setup() { for (var i in sb) eval(sb[i] + ' = document.getElementById(sb[i])') update(document.getElementById('textbox'))}function getSelectionStart(o) { if (o.createTextRange) { var r = document.selection.createRange().duplicate() r.moveEnd('character', o.value.length) if (r.text == '') return o.value.length return o.value.lastIndexOf(r.text) } else return o.selectionStart}function getSelectionEnd(o) { if (o.createTextRange) { var r = document.selection.createRange().duplicate() r.moveStart('character', -o.value.length) return r.text.length } else return o.selectionEnd}function Left(str, n){ if (n <= 0) return ""; else if (n > String(str).length) return str; else return String(str).substring(0,n);}function Right(str, n){ if (n <= 0) return ""; else if (n > String(str).length) return str; else { var iLen = String(str).length; return String(str).substring(iLen, iLen - n); }}function addtext (text) { e = document.forms['__aspnetForm']._ctl0_body.value endLength = e.length - updateLeft(document.forms['__aspnetForm']._ctl0_body) document.forms['__aspnetForm']._ctl0_body.value = Left(document.forms['__aspnetForm']._ctl0_body.value,(updateLeft(document.forms['__aspnetForm']._ctl0_body))) + text + Right(document.forms['__aspnetForm']._ctl0_body.value,endLength); document.forms['__aspnetForm']._ctl0_body.focus();}function shortenURL (url){ if(url!=null) { twwDomain1 = "http://www.thewolfweb.com/"; twwDomain2 = "http://thewolfweb.com/"; brentDomain1 = "http://www.brentroad.com/"; brentDomain2 = "http://brentroad.com/"; if(url.toLowerCase().indexOf("http://") != 0 && url.toLowerCase().indexOf("https://") != 0) url = "http://" + url; if(url.toLowerCase().indexOf(twwDomain1) == 0 && url.length > twwDomain1.length) url=url.slice(twwDomain1.length); else if(url.toLowerCase().indexOf(twwDomain2) == 0 && url.length > twwDomain2.length) url=url.slice(twwDomain2.length); else if(url.toLowerCase().indexOf(brentDomain1) == 0 && url.length > brentDomain1.length) url=url.slice(brentDomain1.length); else if(url.toLowerCase().indexOf(brentDomain2) == 0 && url.length > brentDomain2.length) url=url.slice(brentDomain2.length); } return url;}</script>
8/3/2009 1:10:59 AM
this is very niceI'm gonna try and work on this sometime but want to post it so I don't forget...With the new "send pm" link on the userinfo thing on posts....can it be used to launch directly with bigman's thing to pop up to the proper person, shouldn't be too hard to implement. I really wanna try and do it but anyone else feel free.[Edited on August 3, 2009 at 2:42 AM. Reason : .]
8/3/2009 2:38:20 AM
I won't be using or supporting his code at this point.Pop-up composition is actually not in the cards right now. All of the major form submissions--PM composition, posting a new topic, and replying to a thread--submit a hidden input that contains encrypted information about the current session. I can't spoof it, and I can't get a valid one without doing a lot of bullshit I'm not interested in doing.I like that you guys want to add to it, and that is the idea, but I want to warn you that I'm making some big changes in the next couple of releases that will probably break whatever you've come up with.[Edited on August 3, 2009 at 6:11 AM. Reason : ...]
8/3/2009 6:10:24 AM