update redis, provider list

This commit is contained in:
typpo 2012-04-07 15:54:52 -04:00
parent 9347e84dbf
commit 6494478c60
3 changed files with 16 additions and 11 deletions

22
app.js
View File

@ -44,7 +44,6 @@ app.get('/', function(req, res) {
}); });
app.post('/text', function(req, res) { app.post('/text', function(req, res) {
var keystr = req.connection.remoteAddress + '_' + dateStr();
var number = stripPhone(req.body.number); var number = stripPhone(req.body.number);
if (number.length < 9 || number.length > 10) { if (number.length < 9 || number.length > 10) {
@ -52,14 +51,17 @@ app.post('/text', function(req, res) {
return; return;
} }
redis.incr('phone:' + number, function(err, num) { var ipkey = 'textbelt:ip:' + req.connection.remoteAddress + '_' + dateStr();
var phonekey = 'textbelt:phone:' + number;
redis.incr(phonekey, function(err, num) {
if (err) { if (err) {
res.send({success:false,message:'Could not validate phone# quota.'}); res.send({success:false,message:'Could not validate phone# quota.'});
return; return;
} }
setTimeout(function() { setTimeout(function() {
redis.decr('phone:' + number, function(err, num) { redis.decr(phonekey, function(err, num) {
if (err) { if (err) {
console.log('*** WARNING failed to decr ' + number); console.log('*** WARNING failed to decr ' + number);
} }
@ -71,7 +73,7 @@ app.post('/text', function(req, res) {
} }
// now check against ip quota // now check against ip quota
redis.incr(keystr, function(err, num) { redis.incr(ipkey, function(err, num) {
if (err) { if (err) {
res.send({success:false,message:'Could not validate IP quota.'}); res.send({success:false,message:'Could not validate IP quota.'});
return; return;
@ -119,19 +121,23 @@ function sendText(phone, message, cb) {
}); });
for (var i=0; i < providers.length; i++) { _.each(providers, function(provider) {
var provider = providers[i];
var email = provider.replace('%s', phone); var email = provider.replace('%s', phone);
console.log('email', email);
var child = spawn('sendmail', ['-f', 'txt@textbelt.com', email]); var child = spawn('sendmail', ['-f', 'txt@textbelt.com', email]);
child.stdout.on('data', console.log); child.stdout.on('data', console.log);
child.stderr.on('data', console.log); child.stderr.on('data', console.log);
child.on('error', console.log); child.on('error', function() {
console.log('failed', email);
done();
});
child.on('exit', function(code, signal) { child.on('exit', function(code, signal) {
console.log('done', email);
done(); done();
}); });
child.stdin.write(message + '\n.'); child.stdin.write(message + '\n.');
child.stdin.end(); child.stdin.end();
} });
/* /*

View File

@ -6,8 +6,7 @@ module.exports = {
'%s@paging.acswireless.com', '%s@paging.acswireless.com',
'%s@txt.att.net', '%s@txt.att.net',
'%s@myboostmobile.com', '%s@myboostmobile.com',
'%s@mobile.celloneusa.com', //'%s@sms.edgewireless.com', // slow
'%s@sms.edgewireless.com',
'%s@messaging.sprintpcs.com', '%s@messaging.sprintpcs.com',
'%s@tmomail.net', '%s@tmomail.net',
'%s@mymetropcs.com', '%s@mymetropcs.com',

View File

@ -58,7 +58,7 @@
<ul> <ul>
<li><p>IP addresses are limited to 75 texts per day. Phone numbers are limited to 3 texts every 3 minutes. If you need increased limits, please contact admin@textbelt.com.</p></li> <li><p>IP addresses are limited to 75 texts per day. Phone numbers are limited to 3 texts every 3 minutes. If you need increased limits, please contact admin@textbelt.com.</p></li>
<li><p>Some carriers may deliver text messages from "txt@textbelt.com"</p></li> <li><p>Some carriers may deliver text messages from "txt@textbelt.com"</p></li>
<li><p>We support the following U.S. providers: Alltel, Ameritech, AT&amp;T Wireless, Boost, CellularOne, Cingular, Edge Wireless, Sprint PCS, Telus Mobility, T-Mobile, Metro PCS, Nextel, O2, Orange, Qwest, Rogers Wireless, US Cellular, Verizon, Virgin Mobile.</p></li> <li><p>We support the following U.S. providers: Alltel, Ameritech, AT&amp;T Wireless, Boost, CellularOne, Cingular, Sprint PCS, Telus Mobility, T-Mobile, Metro PCS, Nextel, O2, Orange, Qwest, Rogers Wireless, US Cellular, Verizon, Virgin Mobile.</p></li>
</ul> </ul>
</section> </section>