// ==UserScript== // @name scrap all // @author nobody // @provided by http://www.orkut.com // @description It sends scrap to all of ur friends at once!! // @include *.orkut.com/Scrapz.aspx* // ==/UserScript== /*----------------------------------------------------------------------------- Revision History ------------------------------------------------------------------------------*/ /** Ver. Modified By Date Notes --------------------------------------------------------- 1.0 nobody - Initial version 1.1 CODER Nov 18, 2007 Added added friend selection box, and multiple messages to same person for Flooding. /*------------------------------------------------------------------------------*/ function fwScrap() { document.title = "Orkut - Scraps Dinâmicos"; function createXMLHttpRequest() { try { return new XMLHttpRequest; } catch (e) { try { return new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { return new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) { alert("Seu browser não suporta a AJAX!"); return false; } } } } function getPostSig(exc) { var xml = createXMLHttpRequest(); xml.open("GET", "/Scrapbook.aspx", true); xml.onreadystatechange = function () {if (xml.readyState == 4) {var xmlr = xml.responseText;POST = xmlr.match(/name="post_token" value="([^"]+)/i);SIG = xmlr.match(/name="signature" value="([^"]+)/i);document.getElementsByTagName("input").POST_TOKEN.value = POST[1];document.getElementsByTagName("input").signature.value = SIG[1];eval(exc);}}; xml.send(null); } function loadFriends() { var xml = createXMLHttpRequest(); xml.open("GET", "/Compose.aspx", true); xml.onreadystatechange = function () { if (xml.readyState == 4) { var xmlr = xml.responseText; POST = xmlr.match(/name="post_token" value="([^"]+)/i); SIG = xmlr.match(/name="signature" value="([^"]+)/i); document.getElementsByTagName("input").POST_TOKEN.value = POST[1]; document.getElementsByTagName("input").signature.value = SIG[1]; var div = document.createElement("div"); div.innerHTML = xmlr; // added by Debajyoti for testing: Start // txtarea = document.getElementById("body"); // txtarea.value = 'Debajyoti'+xmlr+' ba'; // alert(xmlr); // added by Debajyoti for testing: End for (var x = 0; x < div.getElementsByTagName("select").length; x++) { if (div.getElementsByTagName("select")[x].getAttribute("name") == "oneFriend") { var select = div.getElementsByTagName("select")[x].cloneNode(true); globalSelect = select; break; } } // Added by CODER for populating the multiple select box: Start var strContent = ""; for(var i=0;i" + globalSelect[i].text + ""; } } var selectHtml = ""; //alert(selectHtml); document.getElementById("friendListSelector").innerHTML = selectHtml; document.getElementById("selectFewFriends").setAttribute("onchange", "document.getElementsByTagName('input')['selectFriendsRadio'].checked=true; document.getElementById('lbMultiFriendSelectorCount').innerHTML=getSelectedItensNumber(this);"); // Added by Debajyoti for populating the multiple select box: End select.setAttribute("onchange", "document.getElementsByTagName('input')['oneFriendRadio'].checked=true"); document.getElementById("friendSelector").innerHTML = ""; document.getElementById("friendSelector").appendChild(select); document.getElementById("focus").style.display = "none"; document.getElementById("divLoad").style.display = "none"; } }; xml.send(null); } function getSelectedItensNumber(oSelect){ var j = 0; if(oSelect.tagName == 'SELECT') { for (i = 0; i < oSelect.options.length; i++) { if (oSelect.options[i].selected == true) { j = j + 1; } } } return j; } function wait() { antiF = 1; showTime(); } function isSelected(userId) { //alert(userId); selRef = document.getElementById("selectFewFriends"); //alert(selRef); //alert(selRef.options.length); for (var i=0; i < selRef.options.length;i++) { if (selRef.options[i].selected) { //alert(selRef.options[i].value); if(selRef.options[i].value==userId) return true; } } return false; } function isAtLeastOneSelected() { selRef = document.getElementById("selectFewFriends"); for (var i=0; i < selRef.options.length;i++) { if (selRef.options[i].selected) { return true; } } return false; } function showTime() { if (timeWait > 0) { document.getElementById("status").innerHTML = "" + timeWait + " minutos para finalizar a proteção anti-fraude do Orkut. "; timeWait--; setTimeout("showTime()", 60000); } else { timeWait = 20; index++; getPostSig("sendScrap()"); } } antiF = 1; index = 1; timeWait = 20; nscraps = 0; nCounter=0; nLoop=0; function sendScrap() { if (document.getElementById("oneFriendRadio").checked && !globalSelect.value) { alert("Escolha o amigo para quem você quer enviar o scrap."); return false; } // Added by Debajyoti for multiple friend select: Start var listSelect = document.getElementById("selectFewFriends"); if (document.getElementById("selectFriendsRadio").checked && !isAtLeastOneSelected()) { alert("Escolha ao menos um amigo para qual os scraps serão enviados."); return false; } // Added by Debajyoti for multiple friend select: End if (!document.getElementById("body").value) { alert("Escreva o scrap."); return false; } if(index==1 && nCounter==0) { try { nLoop=parseInt(document.getElementById("nTimes").value); if(nLoop > 1) { alert("You have selected the same scrap to be sent multiple times to the selected recipeients. The Scraps will be appended with a index so that orkut allows them."); } nCounter=nLoop; } catch(err) { alert("Nº inválido de sraps"); } alert("Clique em OK para enviar os scraps. Por favor, aguarde. Enviar scraps para muitos amigos pode levar tempo. Você será alertado quando todos os scraps houverem sido enviados. "); } if (index == globalSelect.length) { alert("Finalizado"); return; } var name = ""; var primeiro = []; var pattern = 0; primeiro = document.getElementById("oneFriendRadio").checked ? globalSelect[globalSelect.selectedIndex].text.split(" ") : globalSelect[index].text.split(" "); // Added by Debajyoti for multiple selection: Start var isRequired=true; if (document.getElementById("selectFriendsRadio").checked) { //alert("reached here"); if(!isSelected(globalSelect[index].value)) { isRequired=false; } } if(!isRequired) { // skip this friend index++; setTimeout("sendScrap()", 10); return; } nscraps++; // Added by CODER for multiple selection: End //alert("sending scrap to: "+primeiro[0]); name = primeiro[0]; pattern = name.match(/[a-zA-Z]+/); y = 1; while (!pattern && primeiro.length > y) { pattern = primeiro[y].match(/[a-zA-Z]+/); if (pattern) { name = primeiro[y]; } pattern = name.match(/[a-zA-Z]+/); y++; } var scrapText = document.getElementById("body").value.replace(/%NAME%/g, name).replace(/\[(\/)?link\]/g, "") +"\n\n\n[purple]\n\n\n [link=http://www.orkut.com/CommunityJoin.aspx?cmm=401]"; if(nLoop>1) { scrapText = ""+nCounter+". "+scrapText; } var send = document.getElementById("oneFriendRadio").checked ? "POST_TOKEN=" + encodeURIComponent(document.getElementsByTagName("input").POST_TOKEN.value) + "&signature=" + encodeURIComponent(document.getElementsByTagName("input").signature.value) + "&scrapText=" + encodeURIComponent(scrapText) + "&toUserId=" + globalSelect.value + "&Action.submit=" : "POST_TOKEN=" + encodeURIComponent(document.getElementsByTagName("input").POST_TOKEN.value) + "&signature=" + encodeURIComponent(document.getElementsByTagName("input").signature.value) + "&scrapText=" + encodeURIComponent(scrapText) + "&toUserId=" + globalSelect[index].value + "&Action.submit="; var xml = createXMLHttpRequest(); xml.open("POST", "/Scrapbook.aspx", true); xml.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;"); xml.send(send); xml.onreadystatechange = function () { if (xml.readyState == 4) { if (xml.status != 200) { setTimeout("sendScrap()", 500); return; } document.getElementById("sendedScraps").innerHTML += sendedScrap(name, nscraps % 2); document.getElementById("counterScraps").innerHTML = nscraps; if (document.getElementById("oneFriendRadio").checked) { alert("Scrap Enviado"); return; } if (antiF < 450) { antiF++; if(nCounter==1) { index++; nCounter=nLoop; } else { nCounter--; } setTimeout("sendScrap()", 1200); } else { wait(); } } }; } function sendedScrap(name, n) { var span = n ? "" + name + "" : "" + name + ""; return span; } function insertName() { txtarea = document.getElementById("body"); txtst = txtarea.scrollTop; txtsl = txtarea.scrollLeft; selLength = txtarea.textLength; selStart = txtarea.selectionStart; selEnd = txtarea.selectionEnd; s1 = txtarea.value.substring(0, selStart); s2 = txtarea.value.substring(selStart, selEnd); s3 = txtarea.value.substring(selEnd, selLength); txtarea.value = s1 + " %NAME% " + s2 + s3; txtarea.selectionStart = selStart + 10; txtarea.selectionEnd = selStart + 8 + s2.length; txtarea.focus(); txtarea.scrollTop = txtst; txtarea.scrollLeft = txtsl; } link = document.createElement("link"); link.href = "http://img3.orkut.com/img/i_scrap.gif"; link.rel = "SHORTCUT ICON"; link.type = "image/x-icon"; style = document.createElement("style"); style.textContent = "\n span.row1 {\n background-color: #BFD0EA;\n display: block;\n margin-left: 5px;\n }\n span.row0{\n background-color: #C9D6EB;\n display: block;\n margin-left: 5px;\n }\n\n #focus{\n position:fixed; \n width:100%; \n background:red; \n height: 100%; \n z-index: 1; \n left: 0; \n top: 0; \n opacity:.5; \n background-color: #000000;\n }\n #divLoad{\n position:fixed;\n background:#E5ECF4; \n z-index: 2; \n padding:5px; \n border:solid #BFD0EA 2px;\n left:40%; \n top:150px;\n }"; document.getElementsByTagName("head")[0].appendChild(style); document.getElementsByTagName("head")[0].appendChild(link); img_load = "http://img393.imageshack.us/img393/8894/orkutcarregando1zx5.gif"; layout = " " + " " + " " + " " + "
" + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + "
" + " Comunidade Scraps Dinamicos" + " " + " " + "    " + "
" + " " + " " + " " + " " + " " + " " + /*" " +*/ " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + "
" + " Enviar para: " + " " + " :   " + "
" + "

" + "
 Amigos selecionados.

" + " " + "

Nº de vezes que seram enviados os scraps: " + "
" + " Mensagem: " + " " + " " + " Texto contendo 0 caracteres (limite máximo, 810 caracteres)" + "
" + " \"\"" + " " + " " + " " + " " + " " + "
" + " " + " " + " " + " " + " " + " " + "
" + " \"\"" + " " + " Enviar Scrap(s)" + " " + " \"\"" + "
" + "
" + " " + " " + " " + " " + " " + " " + "
" + " \"\"" + " " + " inserir nome" + " " + " \"\"" + "
" + "
" + "
" + "
" + "  " + " " + " " + " " + " " + " " + " " + " " + " " + "
" + " Scrap enviado para (0) destinatários" + "
" + " " + " " + " " + " " + "
" + " " + " " + " " + " " + "
" + "
" + " " + "
" + "
" + "
" + "
" + "
" + "
" + "
" + "
" + "

Mais Ferramentas" ; document.body.innerHTML = layout; var focus = document.createElement("span"); focus.id = "focus"; focus.style.display = "inline"; document.body.appendChild(focus); var divLoad = document.createElement("div"); divLoad.id = "divLoad"; divLoad.style.display = "inline"; divLoad.innerHTML = " " + "Aguarde... Carregando..."; document.body.appendChild(divLoad); loadFriends(); } sc = String(fwScrap); sc = sc.substring(21, sc.length - 2); script = document.createElement("script"); if (typeof document.all) { script.text = sc; } else { script.textContent = sc; } document.getElementsByTagName("head")[0].appendChild(script)