Skip to content
Snippets Groups Projects
Commit 4c5669a9 authored by Marcelo Schmidt's avatar Marcelo Schmidt
Browse files

Unsubscribe e-mails from CSV

parent c28b36c2
No related branches found
No related tags found
No related merge requests found
{
"name": "unsubscribe_csv",
"version": "0.0.1",
"private": true,
"scripts": {
"start": "coffee unsubscribe.coffee",
"test": "mocha --compilers coffee:coffee-script --timeout 5s -R spec"
},
"dependencies": {
"coffee-script": "~1.6.3",
"commander": "^2.9.0",
"ddp": "^0.11.0",
"line-by-line": "^0.1.3",
"line-reader": "^0.2.4",
"moment": "^2.10.2",
"mongodb": "^2.1.0",
"underscore": "^1.6.0",
"wait.for": "^0.6.6"
}
}
_ = require 'underscore'
fs = require('fs')
lineReader = require('line-reader')
moment = require('moment')
path = require('path')
program = require('commander')
wait = require('wait.for')
MongoClient = require('mongodb').MongoClient
program
.usage '[options]'
.option '-v, --verbose', 'Verbose', ((v, total) -> total + 1), 0
.option '-M, --mongo-db [mongo db]', 'Mongo DB', 'localhost:27017'
.option '-N, --db-name [db name]', 'DB Name', 'meteor'
.on '--help', ->
console.log ' Example:'
console.log ''
console.log ' $ coffee unsubscribe.coffee'
console.log ''
.parse process.argv
wait.launchFiber ->
db = wait.forMethod MongoClient, 'connect', "mongodb://#{program.mongoDb}/#{program.dbName}", { replSet: { socketOptions: { connectTimeoutMS: 300000 } } }
User = db.collection 'users'
lineReader.eachLine './unsubscribe.csv', (line, last) ->
row = line.split ','
console.log row[0] if program.verbose
wait.launchFiber ->
updated = wait.forMethod User, 'update', { "emails.address": row[0] }, { $set: { "mailer.unsubscribed": true } }
if last
process.exit()
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment