NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==UserScript== // @name dAmn those links // @namespace http://djordjeungar.com/gmscripts // @description Adds a few handy shortcut links for visiting one's main page, journal, gallery, latest deviation etc. // @include http://chat.deviantart.com* // @creator http://artbit.deviantart.com // @oujs:author artbit // @homepageURL http://fav.me/dwbys0 // @homeURL https://openuserjs.org/scripts/artbit/dAmn_those_links // @grant none // @version 0.3 // ==/UserScript== function wrapper_function() { var SCRIPT_NAME = "dAmn Those Links"; var SCRIPT_VERSION = "0.3"; function trim(stringToTrim) { return stringToTrim.replace(/^\s+|\s+$/g, ""); } showInfoBox = function(channel, body) { var o = dAmn_MakeDiv("userinfo-outer"); var i = dAmn_AddDiv(o, "userinfo-inner"); var u = dAmn_AddDiv(i, "userinfo alt0"); var t = this; dAmnChat_AddImgBox(u, "damncr-close", 'close', 'close', function(el) { dAmn_DeleteSelf(el); t.scroll_once = true; dAmn_InvalidateLayout(); }, o); var r = dAmn_AddDiv(u, 'bodyarea alt1-left-border'); var b = dAmn_AddDiv(r, 'b read pcusers'); dAmn_AddDiv(b, 'read', body); channel.addDiv(o, null, 0); }; dAmnChatInput_onKey_rewire = dAmnChatInput_onKey; dAmnChatInput_onKey = function(e, kc, force) { var el = this.chatinput_el; var didsmth = false; if (kc == 13 && (force || ! this.multiline || e.shiftKey || e.ctrlKey)) { var input = el.value; var rex = /^\/(\S*)\s*(.*)$/i.exec(input); if (rex) { var cmd = rex[1]; var param = trim(rex[2]); var link = ""; //alert("cmd:"+cmd+" param:"+param); if (cmd) { switch (cmd) { case 'da': didsmth = true; if (!param) { showInfoBox(this.channel, '<b>/da <i>deviant</i></b> Opens a link to the <i>deviant</i>\'s deviantArt main page in a new window.<br />'); break; } link = 'http://' + param + '.deviantart.com'; break; case 'dab': didsmth = true; if (!param) { showInfoBox(this.channel, '<b>/dab <i>deviant</i></b> Opens a form for buying a subscription for the <i>deviant</i>.<br />'); break; } link = 'http://my.deviantart.com/services/?subscribe=' + param + '#subscription'; break; case 'daf': didsmth = true; if (!param) { showInfoBox(this.channel, '<b>/daf <i>deviant</i></b> Opens the <i>deviant</i>\'s list of watchers.<br />'); break; } link = 'http://' + param + '.deviantart.com/friends/'; break; case 'dag': didsmth = true; if (!param) { showInfoBox(this.channel, '<b>/dag <i>deviant</i></b> Opens the <i>deviant</i>\'s gallery in a new window.<br />'); break; } link = 'http://' + param + '.deviantart.com/gallery/'; break; case 'daj': didsmth = true; if (!param) { showInfoBox(this.channel, '<b>/daj <i>deviant</i></b> Opens the journals page for the <i>deviant</i> in a new window.<br />'); break; } link = 'http://' + param + '.deviantart.com/journal/'; break; case 'dal': didsmth = true; if (!param) { showInfoBox(this.channel, '<b>/dal <i>deviant</i></b> Opens the <i>deviant</i>\'s latest deviation in a new window.<br />'); break; } link = 'http://' + param + '.deviantart.com/latest/'; break; case 'dam': didsmth = true; if (param == "?") { showInfoBox(this.channel, '<b>/dam</b> Opens your message centre page.<br />'); break; } link = 'http://my.deviantart.com/messages/'; break; case 'dan': didsmth = true; if (!param || trim(param) == dAmn_Client_Username) { showInfoBox(this.channel, '<b>/dan <i>deviant</i></b> Creates a new note to <i>deviant</i>(other than you) in a new window.<br />'); break; } link = 'http://my.deviantart.com/notes/?to=' + param; break; case 'dap': didsmth = true; if (!param) { showInfoBox(this.channel, '<b>/dap <i>deviant</i></b> Opens a new window with the <i>deviant</i>\'s store front.<br />'); break; } link = 'http://' + param + '.deviantart.com/store/'; break; case 'dar': didsmth = true; if (param == "?") { showInfoBox(this.channel, '<b>/dar</b> Opens a random deviant page in a new window.<br />'); break; } link = 'http://www.deviantart.com/random/deviant'; break; case 'das': didsmth = true; if (!param) { showInfoBox(this.channel, '<b>/das <i>search_string</i></b> Opens a new window and searches the deviantArt for the <i>search_string</i>.<br />'); break; } link = 'http://search.deviantart.com/searchcraft/?cmd=1&offset=0&search=' + param; break; case 'dat': didsmth = true; if (!param) { showInfoBox(this.channel, '<b>/dat <i>deviant</i></b> Opens a new window with the <i>deviant</i>\'s scraps (trash not a good word but easy to memorize).<br />'); break; } link = 'http://' + param + '.deviantart.com/gallery/scraps/'; break; case 'dah': case 'da?': didsmth = true; if (!param) { showInfoBox(this.channel, '<span style="font-size:1.1em;"><a href="http://artbit.deviantart.com/art/dAmn-those-links-v0-21-54306000"><b>' + SCRIPT_NAME + '</b> v' + SCRIPT_VERSION + '</a></span> - adds the functionality to quickly access deviantArt pages using only a few simple commands.<br /><br />' + '<b>Here is the list of commands: </b><br />' + '<table style="padding:5px;"><thead></thead>' + '<tr><td><b>/da deviant</b></td><td> - Opens a link to the <b>deviant</b>\'s deviantArt main page in a new window.</td></tr>' + '<tr><td><b>/dab deviant</b></td><td> - Opens a form for buying a subscription for the <b>deviant</b>.</td></tr>' + '<tr><td><b>/daf deviant</b></td><td> - Opens the <b>deviant</b>\'s list of watchers (friends).</td></tr>' + '<tr><td><b>/dag deviant</b></td><td> - Opens the <b>deviant</b>\'s gallery in a new window.</td></tr>' + '<tr><td><b>/dah</b> or <b>/da?</b></td><td> - Shows this screen.</td></tr>' + '<tr><td><b>/daj deviant</b></td><td> - Opens the journal page for the <b>deviant</b> in a new window.</td></tr>' + '<tr><td><b>/dal deviant</b></td><td> - Opens the <b>deviant</b>\'s latest deviation in a new window.</td></tr>' + '<tr><td><b>/dam</b></td><td> - Opens your message centre in a new window.</td></tr>' + '<tr><td><b>/dan deviant</b></td><td> - Creates a new note to <b>deviant</b>(other than you) in a new window.</td></tr>' + '<tr><td><b>/dap deviant</b></td><td> - Opens a new window with the <b>deviant</b>\'s store front (prints).</td></tr>' + '<tr><td><b>/dar</b></td><td> - Opens a random deviant page in a new window.</td></tr>' + '<tr><td><b>/das query</b></td><td> - Opens a new window and searches the deviantArt for the <b>query</b>.</td></tr>' + '<tr><td><b>/dat deviant</b></td><td> - Opens a new window with the <b>deviant</b>\'s scraps (trash - not a good word but easy to memorize).</td></tr>' + '</tbody></table>'); break; } link = 'http://' + param + '.deviantart.com/gallery/scraps/'; break; } //end case if (didsmth) { if (el.value) { //add to history array if (this.history_pos != - 1 && this.history[this.history_pos] == el.value) { // posting from history.. move to the end var before = this.history.slice(0, this.history_pos); var after = this.history.slice(this.history_pos + 1); this.history = before.concat(after).concat(this.history[this.history_pos]); } else { // add to history -- limit to 300 this.history = this.history.concat(el.value); if (this.history.length > 300) this.history = this.history.slice(1); } this.history_pos = - 1; el.value = ''; if (link) window.open(link); el.focus(); } } } } } if (!didsmth) return this.onKey_rewire(e, kc, force) ? true: false; else return false; }; dAmnChatInput.prototype.onKey = dAmnChatInput_onKey; dAmnChatInput.prototype.onKey_rewire = dAmnChatInput_onKey_rewire; } // end wrapper_function var script = document.createElement('script'); script.appendChild(document.createTextNode('(' + wrapper_function + ')();')); document.body.appendChild(script);