Last active
December 6, 2016 19:05
-
-
Save renoirtech/1d3165d4606f20d6055eb5fa5f8ac784 to your computer and use it in GitHub Desktop.
Snippet que obtem a lista de emails para teste de SPAM do litmus e gera um arquivo CSV.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* jQuery Date Format | |
* https://github.com/phstc/jquery-dateFormat | |
*/ | |
var DateFormat={};!function(a){var b=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],c=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],d=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],e=["January","February","March","April","May","June","July","August","September","October","November","December"],f={Jan:"01",Feb:"02",Mar:"03",Apr:"04",May:"05",Jun:"06",Jul:"07",Aug:"08",Sep:"09",Oct:"10",Nov:"11",Dec:"12"},g=/\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.?\d{0,3}[Z\-+]?(\d{2}:?\d{2})?/;a.format=function(){function a(a){return b[parseInt(a,10)]||a}function h(a){return c[parseInt(a,10)]||a}function i(a){var b=parseInt(a,10)-1;return d[b]||a}function j(a){var b=parseInt(a,10)-1;return e[b]||a}function k(a){return f[a]||a}function l(a){var b,c,d,e,f,g=a,h="";return-1!==g.indexOf(".")&&(e=g.split("."),g=e[0],h=e[e.length-1]),f=g.split(":"),3===f.length?(b=f[0],c=f[1],d=f[2].replace(/\s.+/,"").replace(/[a-z]/gi,""),g=g.replace(/\s.+/,"").replace(/[a-z]/gi,""),{time:g,hour:b,minute:c,second:d,millis:h}):{time:"",hour:"",minute:"",second:"",millis:""}}function m(a,b){for(var c=b-String(a).length,d=0;c>d;d++)a="0"+a;return a}return{parseDate:function(a){var b,c,d={date:null,year:null,month:null,dayOfMonth:null,dayOfWeek:null,time:null};if("number"==typeof a)return this.parseDate(new Date(a));if("function"==typeof a.getFullYear)d.year=String(a.getFullYear()),d.month=String(a.getMonth()+1),d.dayOfMonth=String(a.getDate()),d.time=l(a.toTimeString()+"."+a.getMilliseconds());else if(-1!=a.search(g))b=a.split(/[T\+-]/),d.year=b[0],d.month=b[1],d.dayOfMonth=b[2],d.time=l(b[3].split(".")[0]);else switch(b=a.split(" "),6===b.length&&isNaN(b[5])&&(b[b.length]="()"),b.length){case 6:d.year=b[5],d.month=k(b[1]),d.dayOfMonth=b[2],d.time=l(b[3]);break;case 2:c=b[0].split("-"),d.year=c[0],d.month=c[1],d.dayOfMonth=c[2],d.time=l(b[1]);break;case 7:case 9:case 10:d.year=b[3],d.month=k(b[1]),d.dayOfMonth=b[2],d.time=l(b[4]);break;case 1:c=b[0].split(""),d.year=c[0]+c[1]+c[2]+c[3],d.month=c[5]+c[6],d.dayOfMonth=c[8]+c[9],d.time=l(c[13]+c[14]+c[15]+c[16]+c[17]+c[18]+c[19]+c[20]);break;default:return null}return d.date=d.time?new Date(d.year,d.month-1,d.dayOfMonth,d.time.hour,d.time.minute,d.time.second,d.time.millis):new Date(d.year,d.month-1,d.dayOfMonth),d.dayOfWeek=String(d.date.getDay()),d},date:function(b,c){try{var d=this.parseDate(b);if(null===d)return b;for(var e,f=d.year,g=d.month,k=d.dayOfMonth,l=d.dayOfWeek,n=d.time,o="",p="",q="",r=!1,s=0;s<c.length;s++){var t=c.charAt(s),u=c.charAt(s+1);if(r)"'"==t?(p+=""===o?"'":o,o="",r=!1):o+=t;else switch(o+=t,q="",o){case"ddd":p+=a(l),o="";break;case"dd":if("d"===u)break;p+=m(k,2),o="";break;case"d":if("d"===u)break;p+=parseInt(k,10),o="";break;case"D":k=1==k||21==k||31==k?parseInt(k,10)+"st":2==k||22==k?parseInt(k,10)+"nd":3==k||23==k?parseInt(k,10)+"rd":parseInt(k,10)+"th",p+=k,o="";break;case"MMMM":p+=j(g),o="";break;case"MMM":if("M"===u)break;p+=i(g),o="";break;case"MM":if("M"===u)break;p+=m(g,2),o="";break;case"M":if("M"===u)break;p+=parseInt(g,10),o="";break;case"y":case"yyy":if("y"===u)break;p+=o,o="";break;case"yy":if("y"===u)break;p+=String(f).slice(-2),o="";break;case"yyyy":p+=f,o="";break;case"HH":p+=m(n.hour,2),o="";break;case"H":if("H"===u)break;p+=parseInt(n.hour,10),o="";break;case"hh":e=0===parseInt(n.hour,10)?12:n.hour<13?n.hour:n.hour-12,p+=m(e,2),o="";break;case"h":if("h"===u)break;e=0===parseInt(n.hour,10)?12:n.hour<13?n.hour:n.hour-12,p+=parseInt(e,10),o="";break;case"mm":p+=m(n.minute,2),o="";break;case"m":if("m"===u)break;p+=n.minute,o="";break;case"ss":p+=m(n.second.substring(0,2),2),o="";break;case"s":if("s"===u)break;p+=n.second,o="";break;case"S":case"SS":if("S"===u)break;p+=o,o="";break;case"SSS":var v="000"+n.millis.substring(0,3);p+=v.substring(v.length-3),o="";break;case"a":p+=n.hour>=12?"PM":"AM",o="";break;case"p":p+=n.hour>=12?"p.m.":"a.m.",o="";break;case"E":p+=h(l),o="";break;case"'":o="",r=!0;break;default:p+=t,o=""}}return p+=q}catch(w){return console&&console.log&&console.log(w),b}},prettyDate:function(a){var b,c,d;return("string"==typeof a||"number"==typeof a)&&(b=new Date(a)),"object"==typeof a&&(b=new Date(a.toString())),c=((new Date).getTime()-b.getTime())/1e3,d=Math.floor(c/86400),isNaN(d)||0>d?void 0:60>c?"just now":120>c?"1 minute ago":3600>c?Math.floor(c/60)+" minutes ago":7200>c?"1 hour ago":86400>c?Math.floor(c/3600)+" hours ago":1===d?"Yesterday":7>d?d+" days ago":31>d?Math.ceil(d/7)+" weeks ago":d>=31?"more than 5 weeks ago":void 0},toBrowserTimeZone:function(a,b){return this.date(new Date(a),b||"MM/dd/yyyy HH:mm:ss")}}}()}(DateFormat),function(a){a.format=DateFormat.format}(jQuery); | |
// INICIALIZAÇÃO DE VARIÁVEIS | |
var dominios = []; | |
var dominio = ""; | |
var emails = $('#spam_input').val(); | |
//PROMPT PARA VERIRIFICAR SE DESEJA ADICIONAR ALGUM EMAIL | |
var adicional = prompt('Deseja adicionar mais alguem?'); | |
emails += ', '+adicional | |
/* | |
* Função que lê a variável emails e adiciona alguns campos necessários no arquivo CSV. | |
* Essa função chama a função salvarTXT que faz o download do arquivo com os dados processados. | |
*/ | |
function criaCSV(emails){ | |
var resultado = ""; | |
emails = emails.split(','); | |
for (var i = 0; i < emails.length; i++) { | |
dominio = emails[i].split('@'); | |
resultado += 'Policia' + i +',da Silva,'+emails[i]+',Policial da net,Antecipe \n'; | |
dominios.push(dominio[1]); | |
} | |
//console.log('\n'+resultado); | |
salvarTXT(resultado); | |
} | |
/* FUNÇÃO QUE FAZ TODOS OS PROCESSOS NECESSÁRIOS PARA QUE O DOWNLOAD DO CSV SEJA FEITO DE MANEIRA AUTOMÁTICA | |
* THIS CODE BLOCK WAS MADE BY: @ericZollman AND EDITED BY @renoirfaria TO ATEND MY NEEDS | |
* http://code.runnable.com/U5HC9xtufQpsu5aj/use-javascript-to-save-textarea-as-a-txt-file | |
*/ | |
function salvarTXT(conteudo){ | |
//OBTEM O CONTÉUDO DO ARQUIVO CSV | |
var textToWrite = conteudo; | |
//CRIA ARQUIVO BLOB COM O CONTEÚDO | |
var textFileAsBlob = new Blob([textToWrite], {type:'text/plain'}); | |
//CRIA OBJETO DATA PARA DIFERENCIAR ARQUIVOS | |
var date = new Date(); | |
date = $.format.date(date.toString(),'\[dd-MM-yy\] \[hh-mm\]') | |
//ESPECIFICA O NOME DO ARQUIVO PARA DOWNLOAD | |
var fileNameToSaveAs = "csvLitmus"+date+".csv"; | |
//CRIA ANCORA PARA SER CLICADA POSTERIORMENTE PELO SCRIPT | |
var modal = document.getElementById('new_test_modal'); | |
var downloadLink = document.createElement("a"); | |
// supply the name of the file (from the var above). | |
// you could create the name here but using a var | |
// allows more flexability later. | |
downloadLink.download = fileNameToSaveAs; | |
// provide text for the link. This will be hidden so you | |
// can actually use anything you want. | |
downloadLink.innerHTML = "My Hidden Link"; | |
// allow our code to work in webkit & Gecko based browsers | |
// without the need for a if / else block. | |
window.URL = window.URL || window.webkitURL; | |
// Create the link Object. | |
downloadLink.href = window.URL.createObjectURL(textFileAsBlob); | |
// when link is clicked call a function to remove it from | |
// the DOM in case user wants to save a second file. | |
downloadLink.onclick = destroyClickedElement; | |
// make sure the link is hidden. | |
downloadLink.style.display = "none"; | |
// add the link to the DOM | |
modal.appendChild(downloadLink); | |
// click the new link | |
downloadLink.click(); | |
return true; | |
} | |
/* REMOVE O ELEMENTO 'A' CRIADO PARA REALIZAR O DOWNLOAD | |
* THIS CODE BLOCK WAS MADE BY: @ericZollman | |
* http://code.runnable.com/U5HC9xtufQpsu5aj/use-javascript-to-save-textarea-as-a-txt-file | |
*/ | |
function destroyClickedElement(event){ | |
// remove the link from the DOM | |
document.body.removeChild(event.target); | |
} | |
function mostraDominios(){ | |
console.log(dominios.toString()); | |
} | |
criaCSV(emails); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment