From 9017e430b8c1317b90144fbb52e2fb6432cbb9aa Mon Sep 17 00:00:00 2001 From: OldHawk Date: Fri, 16 Mar 2018 11:57:30 +0800 Subject: [PATCH] feat(core): add new common variable configure file --- config/env/comm-variable.js | 55 +++++++++++++++++++++++++++++++++++++ config/env/default.js | 16 ++++++----- config/env/development.js | 14 ++-------- config/env/production.js | 15 ++-------- config/env/test.js | 16 +++-------- config/env/torrents.js | 26 ++++++++++-------- 6 files changed, 88 insertions(+), 54 deletions(-) create mode 100644 config/env/comm-variable.js diff --git a/config/env/comm-variable.js b/config/env/comm-variable.js new file mode 100644 index 00000000..6afdc462 --- /dev/null +++ b/config/env/comm-variable.js @@ -0,0 +1,55 @@ +'use strict'; + +module.exports = { + variable: { + /** + * site settings + */ + site: { + site_name: 'MEAN.im', + site_namekey: 'MEAN', + site_host: '127.0.0.1', + site_port: 3000, + site_domain: 'http://localhost', + site_sessionSecret: 'mean.im.session.secret', + + site_admin_mail: 'admin@mean.im', + site_webmaster_mail: 'webmaster@mean.im', + + site_title: 'meanTorrent', + site_description: 'MEAN.JS BitTorrent - Full-Stack JavaScript Using MongoDB, Express, AngularJS, and Node.js, a Private/Public BitTorrent Tracker CMS with Multilingual and IRC announce support', + site_keywords: 'mongodb, express, angularjs, node.js, mongoose, passport, torrent, bitTorrent, tracker, announce' + }, + + /** + * mongodb settings + */ + db: { + db_host: 'localhost', + db_name: 'mean-v2' + }, + + /** + * meanTorrent load movie and tvserial info from TMDB[https://www.themoviedb.org/], please get a access key at there and config in here + */ + tmdb: { + key: 'this is access key from tmdb' + }, + + /** + * meanTorrent need send mail to user when restore password, send invitations etc. before send these mail, + * you need change the mail options at here, meanTorrent used module nodemailer, if you have any config question you can find at nodemailer. + * nodemailer url: https://nodemailer.com/about/ + */ + mailer: { + from: process.env.MAILER_FROM || 'admin@mean.im', + options: { + service: process.env.MAILER_SERVICE_PROVIDER || 'Gmail', + auth: { + user: process.env.MAILER_EMAIL_ID || 'sample@gmail.com', + pass: process.env.MAILER_PASSWORD || 'password' + } + } + } + } +}; diff --git a/config/env/default.js b/config/env/default.js index c4e677d9..dd1c78c6 100644 --- a/config/env/default.js +++ b/config/env/default.js @@ -1,20 +1,22 @@ 'use strict'; +var commonEnvConfig = require('./comm-variable'); + module.exports = { app: { - title: 'meanTorrent', - description: 'MEAN.JS BitTorrent - Full-Stack JavaScript Using MongoDB, Express, AngularJS, and Node.js, a Private/Public BitTorrent Tracker CMS with Multilingual and IRC announce support', - keywords: 'mongodb, express, angularjs, node.js, mongoose, passport, torrent, bitTorrent, tracker, announce', + title: commonEnvConfig.variable.site.site_title, + description: commonEnvConfig.variable.site.site_description, + keywords: commonEnvConfig.variable.site.site_keywords, googleAnalyticsTrackingID: process.env.GOOGLE_ANALYTICS_TRACKING_ID || 'GOOGLE_ANALYTICS_TRACKING_ID' }, db: { promise: global.Promise }, - port: process.env.PORT || 3000, - host: process.env.HOST || '0.0.0.0', + port: process.env.PORT || commonEnvConfig.variable.site.site_port, + host: process.env.HOST || commonEnvConfig.variable.site.site_host, // DOMAIN config should be set to the fully qualified application accessible // URL. For example: https://www.myapp.com (including port if required). - domain: process.env.DOMAIN || 'mean.im', + domain: process.env.DOMAIN || commonEnvConfig.variable.site.site_domain, // Session Cookie settings sessionCookie: { // session expiration is set by default to 24 hours @@ -28,7 +30,7 @@ module.exports = { secure: false }, // sessionSecret should be changed for security measures and concerns - sessionSecret: process.env.SESSION_SECRET || 'imean.io.secret', + sessionSecret: process.env.SESSION_SECRET || commonEnvConfig.variable.site.site_sessionSecret, // sessionKey is the cookie session name sessionKey: 'sessionId', sessionCollection: 'sessions', diff --git a/config/env/development.js b/config/env/development.js index f9930c9b..092282a4 100644 --- a/config/env/development.js +++ b/config/env/development.js @@ -1,10 +1,11 @@ 'use strict'; var defaultEnvConfig = require('./default'); +var commonEnvConfig = require('./comm-variable'); module.exports = { db: { - uri: process.env.MONGOHQ_URL || process.env.MONGODB_URI || 'mongodb://' + (process.env.DB_1_PORT_27017_TCP_ADDR || 'localhost') + '/mean-dev-v2', + uri: process.env.MONGOHQ_URL || process.env.MONGODB_URI || 'mongodb://' + (process.env.DB_1_PORT_27017_TCP_ADDR || commonEnvConfig.variable.db.db_host) + '/' + commonEnvConfig.variable.db.db_name + '-dev', options: {}, // Enable mongoose debug mode debug: process.env.MONGODB_DEBUG || false @@ -56,16 +57,7 @@ module.exports = { callbackURL: '/api/auth/paypal/callback', sandbox: true }, - mailer: { - from: process.env.MAILER_FROM || 'admin@chd.im', - options: { - service: process.env.MAILER_SERVICE_PROVIDER || 'Gmail', - auth: { - user: process.env.MAILER_EMAIL_ID || 'taobataoma@gmail.com', - pass: process.env.MAILER_PASSWORD || 'ykyghbmpjfdliyph' - } - } - }, + mailer: commonEnvConfig.variable.mailer, livereload: true, seedDB: { seed: process.env.MONGO_SEED === 'true', diff --git a/config/env/production.js b/config/env/production.js index d563d6f2..f30bf633 100644 --- a/config/env/production.js +++ b/config/env/production.js @@ -1,6 +1,6 @@ 'use strict'; -var fs = require('fs'); +var commonEnvConfig = require('./comm-variable'); module.exports = { secure: { @@ -12,7 +12,7 @@ module.exports = { port: process.env.PORT || 3001, host: process.env.HOST || 'mean.im', db: { - uri: process.env.MONGOHQ_URL || process.env.MONGODB_URI || 'mongodb://' + (process.env.DB_1_PORT_27017_TCP_ADDR || 'localhost') + '/mean-demo-v2', + uri: process.env.MONGOHQ_URL || process.env.MONGODB_URI || 'mongodb://' + (process.env.DB_1_PORT_27017_TCP_ADDR || commonEnvConfig.variable.db.db_host) + '/' + commonEnvConfig.variable.db.db_name, options: { /** * Uncomment to enable ssl certificate based authentication to mongodb @@ -77,16 +77,7 @@ module.exports = { callbackURL: '/api/auth/paypal/callback', sandbox: false }, - mailer: { - from: process.env.MAILER_FROM || 'admin@chd.im', - options: { - service: process.env.MAILER_SERVICE_PROVIDER || 'Gmail', - auth: { - user: process.env.MAILER_EMAIL_ID || 'taobataoma@gmail.com', - pass: process.env.MAILER_PASSWORD || 'ykyghbmpjfdliyph' - } - } - }, + mailer: commonEnvConfig.variable.mailer, seedDB: { seed: process.env.MONGO_SEED === 'true', options: { diff --git a/config/env/test.js b/config/env/test.js index e2c74f01..6f997474 100644 --- a/config/env/test.js +++ b/config/env/test.js @@ -1,10 +1,11 @@ 'use strict'; var defaultEnvConfig = require('./default'); +var commonEnvConfig = require('./comm-variable'); module.exports = { db: { - uri: process.env.MONGOHQ_URL || process.env.MONGODB_URI || 'mongodb://' + (process.env.DB_1_PORT_27017_TCP_ADDR || 'localhost') + '/mean-test', + uri: process.env.MONGOHQ_URL || process.env.MONGODB_URI || 'mongodb://' + (process.env.DB_1_PORT_27017_TCP_ADDR || commonEnvConfig.variable.db.db_host) + '/' + commonEnvConfig.variable.db.db_name + '-test', options: {}, // Enable mongoose debug mode debug: process.env.MONGODB_DEBUG || false @@ -21,7 +22,7 @@ module.exports = { // json: false // } }, - port: process.env.PORT || 3001, + port: process.env.PORT || commonEnvConfig.variable.site.site_port, app: { title: defaultEnvConfig.app.title + ' - Test Environment' }, @@ -67,16 +68,7 @@ module.exports = { callbackURL: '/api/auth/paypal/callback', sandbox: true }, - mailer: { - from: process.env.MAILER_FROM || 'MAILER_FROM', - options: { - service: process.env.MAILER_SERVICE_PROVIDER || 'MAILER_SERVICE_PROVIDER', - auth: { - user: process.env.MAILER_EMAIL_ID || 'MAILER_EMAIL_ID', - pass: process.env.MAILER_PASSWORD || 'MAILER_PASSWORD' - } - } - }, + mailer: commonEnvConfig.variable.mailer, seedDB: { seed: process.env.MONGO_SEED === 'true', options: { diff --git a/config/env/torrents.js b/config/env/torrents.js index c5f0406a..91326e9a 100644 --- a/config/env/torrents.js +++ b/config/env/torrents.js @@ -1,5 +1,7 @@ 'use strict'; +var commonEnvConfig = require('./comm-variable'); + module.exports = { /**------------------------------------------------------------------------------------------------ @@ -26,8 +28,8 @@ module.exports = { * if web server used proxyPass setting, this should set to false */ app: { - name: 'MEAN.im', - domain: 'http://mean.im', + name: commonEnvConfig.variable.site.site_name, + domain: commonEnvConfig.variable.site.site_domain, showDemoWarningPopup: true, cronTimeZone: 'Asia/Shanghai', showDebugLog: true, @@ -94,10 +96,10 @@ module.exports = { */ announce: { url: '/announce', - comment: 'meanTorrent group', + comment: commonEnvConfig.variable.site.site_name + ' group', announceInterval: 60 * 1000 * 5, - announcePrefix: '{MEAN.im}.', - admin: 'admin@mean.im', + announcePrefix: '{' + commonEnvConfig.variable.site.site_namekey + '}.', + admin: commonEnvConfig.variable.site.site_admin_mail, clientBlackListUrl: '/about/black', privateTorrentCmsMode: true, downloadCheck: { @@ -137,9 +139,9 @@ module.exports = { title: '[%s] - RSS torrents', description: 'Latest torrents from [%s]', copyright: 'Copyright (c) [%s] 2012-2017, all rights reserved', - managingEditor: 'admin@mean.im (%s Admin)', - webMaster: 'webmaster@mean.im (%s Webmaster)', - generator: 'meanTorrent RSS Generator', + managingEditor: commonEnvConfig.variable.site.site_admin_mail + ' (%s Admin)', + webMaster: commonEnvConfig.variable.site.site_webmaster_mail + ' (%s Webmaster)', + generator: commonEnvConfig.variable.site.site_name + ' RSS Generator', ttl: 60, image_url: '/modules/core/client/img/rss.jpeg' }, @@ -195,10 +197,10 @@ module.exports = { debug: false, server: 'irc.mean.im', port: 16667, - nick: 'meanAnnouncer', + nick: commonEnvConfig.variable.site.site_namekey.toLowerCase() + 'Announcer', userName: 'meanTorrent', realName: 'IRC announce client', - channel: '#meanAnnounce', + channel: '#' + commonEnvConfig.variable.site.site_namekey.toLowerCase() + 'Announce', defaultMsgFormat: '%s uploaded - torrent: %s, type: %s, size: %d, sale: %s, url: %s, at %s', tvserialMsgFormat: '%s uploaded - torrent: %s, type: %s, size: %d, seasons: %d, episodes: %s, sale: %s, url: %s, at %s', showErrors: true, @@ -971,7 +973,7 @@ module.exports = { * @castImgBaseUrl: image link url */ tmdbConfig: { - key: '7888f0042a366f63289ff571b68b7ce0', + key: commonEnvConfig.variable.tmdb.key, tmdbHome: 'https://www.themoviedb.org', tmdbMovieLinkUrl: 'https://www.themoviedb.org/movie/', tmdbTvserialLinkUrl: 'https://www.themoviedb.org/tv/', @@ -1004,7 +1006,7 @@ module.exports = { */ voteTitle: { imdb: 'IMDB', - mt: 'MEAN' + mt: commonEnvConfig.variable.site.site_namekey }, /**