UNPKG

sn-sms

Version:

A simple CLI tool for work with sms in standart-n automation

63 lines (57 loc) 4.48 kB
exports.parseMessages = (data) -> parser = global.controls.lib.parser.init() s = data.toString() s = s.replace(/[\s\S]*?IN-BOX/igm,'') s = s.replace(/----------------------------------------------------------------------------------/gm,'') # s = s.replace(/(Sun|Mon|Tue|Wed|Thu|Fri|Sat|Sun)(\s){1,3}(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)(\s){1,3}(\d){1,2}(\s){1,2}([01]\d|2[0-3])(:[0-5]\d){2}(\s){1,3}((19|20)\d\d)/gm,'!!!') s = s.replace(/(.*?)# exit/g,'') s = s.replace(/(.*?)> exit/g,'') parser.parse s exports.snParseMessages = (data) -> sanitize = global.controls.lib.validator.sanitize() ms = [] s = data.toString() s = s.replace(/[\s\S]*?IN-BOX/igm,'') s = s.replace(/(.*?)Index SimIndex PhoneNumber Date Message(.*?)/gm,'') s = s.replace(/----------------------------------------------------------------------------------/gm,'') s = s.replace(/(.*?)# exit/g,'') s = s.replace(/(.*?)> exit/g,'') lines = s.match(/^([\ 0-9]{5}[\ 0-9]{9}[\ 0-9a-zA-Z\.\+\:]{16}[\ 0-9a-zA-Z\.\+\:]{26} .*?)$/gim) if lines if lines.length > 0 lines.filter (value, i) -> ms[i] = {} ms[i].id = sanitize(value.replace(/^([\ 0-9]{5})([\ 0-9]{9})([\ 0-9a-zA-Z\.\+\:]{16})([\ 0-9a-zA-Z\.\+\:]{26}) (.*?)$/i,'$1')).trim() ms[i].sim = sanitize(value.replace(/^([\ 0-9]{5})([\ 0-9]{9})([\ 0-9a-zA-Z\.\+\:]{16})([\ 0-9a-zA-Z\.\+\:]{26}) (.*?)$/i,'$2')).trim() ms[i].phone = sanitize(value.replace(/^([\ 0-9]{5})([\ 0-9]{9})([\ 0-9a-zA-Z\.\+\:]{16})([\ 0-9a-zA-Z\.\+\:]{26}) (.*?)$/i,'$3')).trim() ms[i].text = sanitize(value.replace(/^([\ 0-9]{5})([\ 0-9]{9})([\ 0-9a-zA-Z\.\+\:]{16})([\ 0-9a-zA-Z\.\+\:]{26}) (.*?)$/i,'$5')).trim() date = sanitize(value.replace(/^([\ 0-9]{5})([\ 0-9]{9})([\ 0-9a-zA-Z\.\+\:]{16})([\ 0-9a-zA-Z\.\+\:]{26}) (.*?)$/i,'$4')).trim() ms[i].date = global.controls.parser.parseMessageDate date # console.log value ms exports.parseMessageDate = (s) -> ms = {} ms.D = s.replace(/(Sun|Mon|Tue|Wed|Thu|Fri|Sat|Sun)\s{1,3}(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s{1,3}(\d{1,2})\s{1,2}([0-1][0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9])\s{1,3}((19|20)\d\d)/gm,'$1') ms.M = s.replace(/(Sun|Mon|Tue|Wed|Thu|Fri|Sat|Sun)\s{1,3}(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s{1,3}(\d{1,2})\s{1,2}([0-1][0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9])\s{1,3}((19|20)\d\d)/gm,'$2') ms.j = s.replace(/(Sun|Mon|Tue|Wed|Thu|Fri|Sat|Sun)\s{1,3}(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s{1,3}(\d{1,2})\s{1,2}([0-1][0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9])\s{1,3}((19|20)\d\d)/gm,'$3') ms.H = s.replace(/(Sun|Mon|Tue|Wed|Thu|Fri|Sat|Sun)\s{1,3}(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s{1,3}(\d{1,2})\s{1,2}([0-1][0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9])\s{1,3}((19|20)\d\d)/gm,'$4') ms.i = s.replace(/(Sun|Mon|Tue|Wed|Thu|Fri|Sat|Sun)\s{1,3}(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s{1,3}(\d{1,2})\s{1,2}([0-1][0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9])\s{1,3}((19|20)\d\d)/gm,'$5') ms.s = s.replace(/(Sun|Mon|Tue|Wed|Thu|Fri|Sat|Sun)\s{1,3}(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s{1,3}(\d{1,2})\s{1,2}([0-1][0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9])\s{1,3}((19|20)\d\d)/gm,'$6') ms.Y = s.replace(/(Sun|Mon|Tue|Wed|Thu|Fri|Sat|Sun)\s{1,3}(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s{1,3}(\d{1,2})\s{1,2}([0-1][0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9])\s{1,3}((19|20)\d\d)/gm,'$7') ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'].filter (value,i) -> ms.n = i + 1 if value == ms.M if ms.n < 10 then ms.m = '0' + ms.n.toString() else ms.m = ms.n if ms.j < 10 then ms.d = '0' + ms.j.toString() else ms.d = ms.j ms.date = ms.d + '.' + ms.m + '.' + ms.Y ms.time = ms.H + ':' + ms.i + ':' + ms.s ms.datetime = ms.date+' '+ms.time ms # console.log 'data' # s = data.toString().replace(/[\s\S]*?IN-BOX/igm,'') # s = s.replace(/----------------------------------------------------------------------------------/gm,'') # s = s.replace(/(.*?)Index SimIndex PhoneNumber Date Message(.*?)/gm,'') # s = s.replace(/(Sun|Mon|Tue|Wed|Thu|Fri|Sat|Sun)(\s){1,3}(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)(\s){1,3}(\d){1,2}(\s){1,2}([01]\d|2[0-3])(:[0-5]\d){2}(\s){1,3}((19|20)\d\d)/gm,'!!!') # s = s.replace(/(.*?)# exit/g,'') # s = s.replace(/(.*?)> exit/g,'') # console.log 'data:', s # console.log 'parser:', parser.parse s