<commit_before>(function(module) {
	"use strict";

	var User = module.parent.require('./user'),
		db = module.parent.require('../src/database'),
		passport = module.parent.require('passport'),
  		fs = module.parent.require('fs'),
  		path = module.parent.require('path'),
  		nconf = module.parent.require('nconf'),
  		winston = module.parent.require('winston'),
  		passportOAuth;
  		
  	if (meta.config['social:oauth:type'] === '2') {
  		passportOAuth = require('passport-oauth').OAuth2Strategy;
  	} else if (meta.config['social:oauth:type'] === '1') {
  		passportOAuth = require('passport-oauth').OAuthStrategy;
  	}

	var constants = Object.freeze({
		'name': "Generic OAuth",
		'admin': {
			'route': '/oauth',
			'icon': 'fa-key'
		}
	});

	var OAuth = {};

	OAuth.getStrategy = function(strategies) {
		var	oAuthKeys = ['social:oauth:reqTokenUrl', 'social:oauth:accessTokenUrl', 'social:oauth:authUrl', 'social:oauth:key', 'social:oauth:secret'],
			oAuth2Keys = ['social:oauth2:authUrl', 'social:oauth2:tokenUrl', 'social:oauth2:id', 'social:oauth2:secret'],
			configOk = oAuthKeys.every(function(key) {
				return meta.config[key];
			}) || oAuth2Keys.every(function(key) {
				return meta.config[key];
			}),
			opts;

		if (passportOAuth && configOk) {
			if (meta.config['social:oauth:type'] === '1') {
				opts = {
					requestTokenURL: meta.config['social:oauth:reqTokenUrl'],
					accessTokenURL: meta.config['social:oauth:accessTokenUrl'],
					userAuthorizationURL: meta.config['social:oauth:authUrl'],
					consumerKey: meta.config['social:oauth:key'],
					consumerSecret: meta.config['social:oauth:secret'],
					callbackURL: nconf.get('url') + '/auth/generic/callback'
				};
			} else if (meta.config['social:oauth:type'] === '2') {
				opts = {
					authorizationURL: meta.config['social:oauth2:authUrl'],
					tokenURL: meta.config['social:oauth2:tokenUrl'],
					clientID: meta.config['social:oauth2:id'],
					clientSecret: meta.config['social:oauth2:secret'],
					callbackURL: nconf.get('url') + '/auth/generic/callback'
				};
			}
			passport.use('Generic OAuth', new passportOAuth(opts, function(token, secret, profile, done) {
				console.log('this is the info I get back:', arguments);
				process.exit();
				OAuth.login(profile.id, profile.displayName, profile.emails[0].value, function(err, user) {
					if (err) {
						return done(err);
					}
					done(null, user);
				});
			}));

			strategies.push({
				name: 'Generic OAuth',
				url: '/auth/oauth',
				callbackURL: '/auth/generic/callback',
				icon: 'check',
				scope: meta.config['social:oauth:scope'].split(',')
			});

			return strategies;
		} else {
			winston.info('[plugins/sso-oauth] OAuth Disabled or misconfigured. Proceeding without Generic OAuth Login');
			return strategies;
		}
	};

	OAuth.login = function(oAuthid, handle, email, callback) {
		OAuth.getUidByOAuthid(oAuthid, function(err, uid) {
			if(err) {
				return callback(err);
			}

			if (uid !== null) {
				// Existing User
				callback(null, {
					uid: uid
				});
			} else {
				// New User
				var success = function(uid) {
					// Save provider-specific information to the user
					User.setUserField(uid, 'oAuthid', oAuthid);
					db.setObjectField('oAuthid:uid', oAuthid, uid);
					callback(null, {
						uid: uid
					});
				};

				User.getUidByEmail(email, function(err, uid) {
					if(err) {
						return callback(err);
					}

					if (!uid) {
						User.create({username: handle, email: email}, function(err, uid) {
							if(err) {
								return callback(err);
							}

							success(uid);
						});
					} else {
						success(uid); // Existing account -- merge
					}
				});
			}
		});
	};

	OAuth.getUidByOAuthid = function(oAuthid, callback) {
		db.getObjectField('oauthid:uid', oAuthid, function(err, uid) {
			if (err) {
				return callback(err);
			}
			callback(null, uid);
		});
	};

	OAuth.addMenuItem = function(custom_header) {
		custom_header.authentication.push({
			"route": constants.admin.route,
			"icon": constants.admin.icon,
			"name": constants.name
		});

		return custom_header;
	}

	OAuth.addAdminRoute = function(custom_routes, callback) {
		fs.readFile(path.resolve(__dirname, './static/admin.tpl'), function (err, template) {
			custom_routes.routes.push({
				"route": constants.admin.route,
				"method": "get",
				"options": function(req, res, callback) {
					callback({
						req: req,
						res: res,
						route: constants.admin.route,
						name: constants.name,
						content: template
					});
				}
			});

			callback(null, custom_routes);
		});
	};

	module.exports = OAuth;
}(module));<commit_msg>random spaces mixed in...<commit_after>(function(module) {
	"use strict";

	var User = module.parent.require('./user'),
		db = module.parent.require('../src/database'),
		passport = module.parent.require('passport'),
		fs = module.parent.require('fs'),
		path = module.parent.require('path'),
		nconf = module.parent.require('nconf'),
		winston = module.parent.require('winston'),
		passportOAuth;

	if (meta.config['social:oauth:type'] === '2') {
		passportOAuth = require('passport-oauth').OAuth2Strategy;
	} else if (meta.config['social:oauth:type'] === '1') {
		passportOAuth = require('passport-oauth').OAuthStrategy;
	}

	var constants = Object.freeze({
		'name': "Generic OAuth",
		'admin': {
			'route': '/oauth',
			'icon': 'fa-key'
		}
	});

	var OAuth = {};

	OAuth.getStrategy = function(strategies) {
		var	oAuthKeys = ['social:oauth:reqTokenUrl', 'social:oauth:accessTokenUrl', 'social:oauth:authUrl', 'social:oauth:key', 'social:oauth:secret'],
			oAuth2Keys = ['social:oauth2:authUrl', 'social:oauth2:tokenUrl', 'social:oauth2:id', 'social:oauth2:secret'],
			configOk = oAuthKeys.every(function(key) {
				return meta.config[key];
			}) || oAuth2Keys.every(function(key) {
				return meta.config[key];
			}),
			opts;

		if (passportOAuth && configOk) {
			if (meta.config['social:oauth:type'] === '1') {
				opts = {
					requestTokenURL: meta.config['social:oauth:reqTokenUrl'],
					accessTokenURL: meta.config['social:oauth:accessTokenUrl'],
					userAuthorizationURL: meta.config['social:oauth:authUrl'],
					consumerKey: meta.config['social:oauth:key'],
					consumerSecret: meta.config['social:oauth:secret'],
					callbackURL: nconf.get('url') + '/auth/generic/callback'
				};
			} else if (meta.config['social:oauth:type'] === '2') {
				opts = {
					authorizationURL: meta.config['social:oauth2:authUrl'],
					tokenURL: meta.config['social:oauth2:tokenUrl'],
					clientID: meta.config['social:oauth2:id'],
					clientSecret: meta.config['social:oauth2:secret'],
					callbackURL: nconf.get('url') + '/auth/generic/callback'
				};
			}
			passport.use('Generic OAuth', new passportOAuth(opts, function(token, secret, profile, done) {
				console.log('this is the info I get back:', arguments);
				process.exit();
				OAuth.login(profile.id, profile.displayName, profile.emails[0].value, function(err, user) {
					if (err) {
						return done(err);
					}
					done(null, user);
				});
			}));

			strategies.push({
				name: 'Generic OAuth',
				url: '/auth/oauth',
				callbackURL: '/auth/generic/callback',
				icon: 'check',
				scope: meta.config['social:oauth:scope'].split(',')
			});

			return strategies;
		} else {
			winston.info('[plugins/sso-oauth] OAuth Disabled or misconfigured. Proceeding without Generic OAuth Login');
			return strategies;
		}
	};

	OAuth.login = function(oAuthid, handle, email, callback) {
		OAuth.getUidByOAuthid(oAuthid, function(err, uid) {
			if(err) {
				return callback(err);
			}

			if (uid !== null) {
				// Existing User
				callback(null, {
					uid: uid
				});
			} else {
				// New User
				var success = function(uid) {
					// Save provider-specific information to the user
					User.setUserField(uid, 'oAuthid', oAuthid);
					db.setObjectField('oAuthid:uid', oAuthid, uid);
					callback(null, {
						uid: uid
					});
				};

				User.getUidByEmail(email, function(err, uid) {
					if(err) {
						return callback(err);
					}

					if (!uid) {
						User.create({username: handle, email: email}, function(err, uid) {
							if(err) {
								return callback(err);
							}

							success(uid);
						});
					} else {
						success(uid); // Existing account -- merge
					}
				});
			}
		});
	};

	OAuth.getUidByOAuthid = function(oAuthid, callback) {
		db.getObjectField('oauthid:uid', oAuthid, function(err, uid) {
			if (err) {
				return callback(err);
			}
			callback(null, uid);
		});
	};

	OAuth.addMenuItem = function(custom_header) {
		custom_header.authentication.push({
			"route": constants.admin.route,
			"icon": constants.admin.icon,
			"name": constants.name
		});

		return custom_header;
	}

	OAuth.addAdminRoute = function(custom_routes, callback) {
		fs.readFile(path.resolve(__dirname, './static/admin.tpl'), function (err, template) {
			custom_routes.routes.push({
				"route": constants.admin.route,
				"method": "get",
				"options": function(req, res, callback) {
					callback({
						req: req,
						res: res,
						route: constants.admin.route,
						name: constants.name,
						content: template
					});
				}
			});

			callback(null, custom_routes);
		});
	};

	module.exports = OAuth;
}(module));
{'fraction_non_alphanumeric': 0.17069225792538278, 'fraction_numerical': 0.003450506793185249, 'mean_word_length': 3.4229852169766333, 'pattern_counts': {'":': 12, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3563824', 'n_tokens_mistral': 3906, 'n_tokens_neox': 3150, 'n_words': 554}