// vim: set fenc=utf8 ts=4 : // ==UserScript== // @name Compact Hootsuite // @include http://hootsuite.com/* // @match http://hootsuite.com/* // ==/UserScript== (function(){ //onload funciton var onloadFunc = function(){ //追加機能配置 var addExTools=function(){ var toolsLink=document.createElement("a"); var title=window._AddHeight==0?"[Hide Tools]":"[Show Tools]"; toolsLink.id="showTools"; toolsLink.innerHTML=title; $(".selectProfiles").append(toolsLink); var htagbox=document.createElement("a"); htagbox.id="autoappend"; htagbox.innerHTML='[AutoAppend]'; $(".selectProfiles").append(htagbox); } addExTools(); //高さの調整、標準のupdateStreamsHeight関数を置き換え var f=window.updateStreamsHeight; window._AddHeight=65; window.updateStreamsHeight=function(){ f(); //標準の処理 //footerを消した分の高さを追加 $("#streamScrollContent").height($("#streamScrollContent").height()+window._AddHeight); $("#streamBoxesContainer").width(''); }; $("#showTools").live("click", function(){ var display=window._AddHeight==0?"none":"block"; window._AddHeight=window._AddHeight==0?65:0; var title=window._AddHeight==0?"[Hide Tools]":"[Show Tools]"; $("#streamTabInfo, #usernav, .footerContent").css("display", display); $("#showTools").text(title); window.updateStreamsHeight(); }); //ステータス更新時の関数置き換え var f2=hs.statusObj.update; hs.statusObj.update=function(message, type, isAutoHide, hideTimeout) { //標準の処理 f2.call(hs.statusObj, message, type, isAutoHide, hideTimeout); if (message=='Message posted'){ //投稿成功時 if (window._autoAppendStr.length > 0){ $("#messageBoxMessage").val($("#messageBoxMessage").val() + " " + window._autoAppendStr); } $("#messageBoxMessage").focus(); //フォーカスセット $("#messageBoxMessage").get(0).setSelectionRange(0, 0); addExTools(); } } //showLessProfiles関数の無効化(Profile要素の高さが調整されないようにする) window.showLessProfiles= function(){}; //テキストボックスのShift+Enterキーでの投稿 $("#messageBoxMessage").live("keydown", function(evt){ if(evt.keyCode==13 && evt.shiftKey){ //アカウント未選択時は最初のアカウントを選択 var selected=false; var first=null; $("._multiImgSelectorContainer a._selectAll").closest("._multiImgSelectorContainer").find("._imageCheckboxes a._imageLink").each(function(){ if(!first){ first=$(this); } if ($(this).hasClass("selected")){ selected=true; } }); if (!selected && first){ first.addClass("selected"); } //投稿処理 createMessage(); } }); window._autoAppendStr=""; $("#autoappend").live("click", function(e){ var appendstr = prompt("Set auto append string.(Set empty, if you want clear)", window._autoAppendStr); if (appendstr!=null){ window._autoAppendStr=appendstr; if (window._autoAppendStr.length > 0){ $("#messageBoxMessage").val($("#messageBoxMessage").val() + " " + window._autoAppendStr); $("#messageBoxMessage").focus(); $("#messageBoxMessage").get(0).setSelectionRange(0, 0); } } }); //Conversationのコメントから、クリックでReplyできるようにする $(".comment").live("click", function(){ //クリックした次の要素のinput属性から、IDを取得 var tid=$(this).next().find("input").val(); if(!tid){ //最下層の要素は、Conversationの親メッセージのreplyと同様 tid=$(this).parents(".message").find("input[name='originalTweetId']").val(); console.log(tid); } //screenName var uid=$(this).find("a:first").attr("title"); //Replyのための@~追加 newActionTweet($("#messageBoxForm ._imageCheckboxes input:first").val(), '@'+uid+" ", tid, uid); }); }; //onload functionを文字列としてScriptタグで追加 var script=document.createElement("script"); script.type="text/javascript"; script.innerHTML="$(document).ready("+onloadFunc.toString()+")"; document.body.appendChild(script); //cssの読みこみ要素追加 var rules = [ "html {background: gray}", "#showTools, #sBtn, #reload, #autoappend{cursor:pointer; font-size: x-small; margin: 2px;}", "#streamTabInfo, #usernav, .footerContent{display : none}", ".multi-message .multiImgSelector a.selected .checkmark {top: 2px; width: 18px; height: 18px;}", ".multi-message #addLinkBlock input{width: 80px;}", ".btn b{font-size: 7pt;}", ".multi-message .charCountBox{width: 30px; font-size: 5pt;}", ".multi-message textarea{width: 200px;}", ".tabs div.tab a.text span.cap{display:none}", "#saveMessageButtons{display:none;}", ".path{display:none;}", ".multi-message .selectProfiles{position: static;}", ".multi-message .messageInfo{width: 255px;}", ".multi-message .selectProfiles{height: 55px;}", ".tabs{height: 10px;}", ".tabs div.tab {height: 10px;}", ".tabs div.tab a.close{top: 0px;}", "a#addTab .icon-19{display: none;}", ".tabs div.tab-plus a.text{padding-top: 0px;}", ".tabs div.tab a.text span.cap {height: 3px;}", ".column {padding-top: 15px;}", ".column .header .title {padding: 0px;}", ".column .header .title .feedName, .column .header .title .feedName em{font-size: 7pt;}", ".g-w .close{top:0px;}", ".column .header .title .btns{top:0px;}", // "#streamBoxesContainer{width:auto;}", ".message {padding: 0px;}", ".message .messageContent {font-size: 8pt; padding: 0px; background: transparent;} ", ".message .messageData a.username, .message .messageData .messageUserInfo{margin: 0px; font-size: 7pt;}", "a.replyLink, a.replyLinkMain{font-size: 5pt; padding: 0px; line-height: 8pt;}", ".messageUserInfo br{display:none;}", ".messageUserInfo, .username{font-size: 7pt}", ".round-30 span.corners, .round-30, .round-30 img, messageUserImage {width: 16px; height: 16px;}", "#container{padding: 0px}" ]; var css=document.styleSheets[document.styleSheets.length - 1]; for (var i=0;i