Skip to content

Instantly share code, notes, and snippets.

@mjlescano
Last active September 26, 2016 18:17
Show Gist options
  • Select an option

  • Save mjlescano/c9b3582562d18711c2afa559d0478c3c to your computer and use it in GitHub Desktop.

Select an option

Save mjlescano/c9b3582562d18711c2afa559d0478c3c to your computer and use it in GitHub Desktop.

Revisions

  1. mjlescano revised this gist Sep 26, 2016. 1 changed file with 4 additions and 8 deletions.
    12 changes: 4 additions & 8 deletions script.js
    Original file line number Diff line number Diff line change
    @@ -1,16 +1,12 @@
    /**
    * Just paste this file on the root of your DemocracyOS and run it with:
    * NODE_PATH=. node script.js
    *
    * Dont forget to edit OWNER_EMAIL
    */

    var OWNER_EMAIL = process.env.OWNER_EMAIL || 'debug-email@gmail.com'

    //--------------------------

    require('lib/models')()

    var config = require('lib/config')
    var models = require('lib/models')

    var User = models.User

    Promise.all([
    @@ -28,7 +24,7 @@ Promise.all([
    User.find({
    email: {$ne: OWNER_EMAIL}
    }).stream().on('data', function (user) {
    user.email = owner.email.replace('@', `+${DB}+${user._id}@`)
    user.email = owner.email.replace('@', `+${user._id}@`)
    user.salt = owner.salt
    user.hash = owner.hash

  2. mjlescano revised this gist Sep 26, 2016. 1 changed file with 22 additions and 16 deletions.
    38 changes: 22 additions & 16 deletions script.js
    Original file line number Diff line number Diff line change
    @@ -2,39 +2,45 @@
    * Just paste this file on the root of your DemocracyOS and run it with:
    * NODE_PATH=. node script.js
    *
    * Dont forget to edit EMAIL
    * Dont forget to edit OWNER_EMAIL
    */

    var EMAIL = process.env.EMAIL || 'debug-email@gmail.com'
    var DB = process.env.DATABASE || 'DemocracyOS-dev'
    var OWNER_EMAIL = process.env.OWNER_EMAIL || 'debug-email@gmail.com'

    //--------------------------

    require('lib/models')()
    var models = require('lib/models')
    var User = models.User

    User.find({
    email: {$ne: EMAIL}
    }).count().exec(function (err, count) {
    if (err) return console.error('error on count: ', err)
    Promise.all([
    User.findOne({email: OWNER_EMAIL}).exec(),
    User.find({email: {$ne: OWNER_EMAIL}}).count().exec()
    ]).then(function (results) {
    var owner = results[0]
    var count = results[1]

    if (!owner) throw new Error('need to set a real owner reference User')

    console.log(`· processing ${count} users`)

    var done = 0
    User.find({
    email: {$ne: EMAIL}
    email: {$ne: OWNER_EMAIL}
    }).stream().on('data', function (user) {
    var identifier = `+${user._id}`
    var mail = EMAIL.replace('@', `+${DB}+${identifier}@`)
    user.email = owner.email.replace('@', `+${DB}+${user._id}@`)
    user.salt = owner.salt
    user.hash = owner.hash

    user.email = mail
    user.save(function (err) {
    if (err) console.error(err, mail)
    if (err) console.error(err, user.email)
    if (++done === count) {
    console.log('· done!')
    process.exit(0)
    }
    })
    }).on('error', function (err) {
    console.error(err)
    })
    })
    }).on('error', console.error.bind(console))
    }).catch(function (err) {
    console.error(err)
    process.exit(1)
    })
  3. mjlescano created this gist Sep 20, 2016.
    40 changes: 40 additions & 0 deletions script.js
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,40 @@
    /**
    * Just paste this file on the root of your DemocracyOS and run it with:
    * NODE_PATH=. node script.js
    *
    * Dont forget to edit EMAIL
    */

    var EMAIL = process.env.EMAIL || 'debug-email@gmail.com'
    var DB = process.env.DATABASE || 'DemocracyOS-dev'

    require('lib/models')()
    var models = require('lib/models')
    var User = models.User

    User.find({
    email: {$ne: EMAIL}
    }).count().exec(function (err, count) {
    if (err) return console.error('error on count: ', err)

    console.log(`· processing ${count} users`)

    var done = 0
    User.find({
    email: {$ne: EMAIL}
    }).stream().on('data', function (user) {
    var identifier = `+${user._id}`
    var mail = EMAIL.replace('@', `+${DB}+${identifier}@`)

    user.email = mail
    user.save(function (err) {
    if (err) console.error(err, mail)
    if (++done === count) {
    console.log('· done!')
    process.exit(0)
    }
    })
    }).on('error', function (err) {
    console.error(err)
    })
    })