Eric Yang
3 years ago
5 changed files with 191 additions and 4 deletions
@ -0,0 +1,63 @@ |
|||||
|
"use strict"; |
||||
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { |
||||
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } |
||||
|
return new (P || (P = Promise))(function (resolve, reject) { |
||||
|
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } |
||||
|
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } |
||||
|
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } |
||||
|
step((generator = generator.apply(thisArg, _arguments || [])).next()); |
||||
|
}); |
||||
|
}; |
||||
|
var __importDefault = (this && this.__importDefault) || function (mod) { |
||||
|
return (mod && mod.__esModule) ? mod : { "default": mod }; |
||||
|
}; |
||||
|
Object.defineProperty(exports, "__esModule", { value: true }); |
||||
|
exports.connect = exports.updateScore = void 0; |
||||
|
const mongoose_1 = __importDefault(require("mongoose")); |
||||
|
const log_1 = __importDefault(require("../helpers/log")); |
||||
|
const userScore_1 = __importDefault(require("../models/userScore")); |
||||
|
function updateScore(isCorrect, score, authorId) { |
||||
|
return __awaiter(this, void 0, void 0, function* () { |
||||
|
if (!isCorrect) { |
||||
|
return `Nice try! Your score is still ${score}.`; |
||||
|
} |
||||
|
else { |
||||
|
// TODO: Error handling
|
||||
|
const doc = yield userScore_1.default.findOne({ |
||||
|
authorID: authorId, |
||||
|
}); |
||||
|
if (!doc) { |
||||
|
const newUserScore = new userScore_1.default({ |
||||
|
authorID: authorId, |
||||
|
score: score + 4, |
||||
|
}); |
||||
|
newUserScore.save(err => { |
||||
|
if (err) { |
||||
|
(0, log_1.default)({ logger: 'db', content: `Error creating new user ${authorId} for scoring`, level: 'error' }); |
||||
|
} |
||||
|
else { |
||||
|
(0, log_1.default)({ logger: 'db', content: `Successfully created user ${authorId} for scoring`, level: 'debug' }); |
||||
|
} |
||||
|
}); |
||||
|
} |
||||
|
else { |
||||
|
doc.score = doc.score + 4; |
||||
|
doc.save(); |
||||
|
} |
||||
|
return `Great job! Your score is now ${score + 4}.`; |
||||
|
} |
||||
|
}); |
||||
|
} |
||||
|
exports.updateScore = updateScore; |
||||
|
function connect(mongoUri) { |
||||
|
return __awaiter(this, void 0, void 0, function* () { |
||||
|
mongoose_1.default |
||||
|
.connect(mongoUri, { |
||||
|
useUnifiedTopology: true, |
||||
|
useNewUrlParser: true, |
||||
|
}) |
||||
|
.then(() => (0, log_1.default)({ logger: 'db', content: `Connected to the database at ${mongoUri}!`, level: 'info' })) |
||||
|
.catch(err => (0, log_1.default)({ logger: 'db', content: `Failed to connect to the database at ${mongoUri}: ${err}`, level: 'fatal' })); |
||||
|
}); |
||||
|
} |
||||
|
exports.connect = connect; |
@ -0,0 +1,8 @@ |
|||||
|
"use strict"; |
||||
|
Object.defineProperty(exports, "__esModule", { value: true }); |
||||
|
exports.mongoUri = exports.token = exports.testingGuild = exports.clientId = void 0; |
||||
|
require("dotenv/config"); |
||||
|
exports.clientId = process.env.CLIENT_ID || ''; |
||||
|
exports.testingGuild = process.env.TESTING_GUILD || ''; |
||||
|
exports.token = process.env.TOKEN || ''; |
||||
|
exports.mongoUri = process.env.MONGO_URI || 'mongodb://localhost:27017'; |
@ -1,6 +1,6 @@ |
|||||
import 'dotenv/config'; |
import 'dotenv/config'; |
||||
|
|
||||
export const clientId : string = process.env.CLIENT_ID || ''; |
export const clientId = process.env.CLIENT_ID || ''; |
||||
export const testingGuild : string = process.env.TESTING_GUILD || ''; |
export const testingGuild = process.env.TESTING_GUILD || ''; |
||||
export const token : string = process.env.TOKEN || ''; |
export const token = process.env.TOKEN || ''; |
||||
export const mongoUri : string = process.env.MONGO_URI || 'mongodb://mongo:27017/awesome'; |
export const mongoUri = process.env.MONGO_URI = 'mongodb://localhost:27017'; |
||||
|
@ -0,0 +1,34 @@ |
|||||
|
"use strict"; |
||||
|
var __importDefault = (this && this.__importDefault) || function (mod) { |
||||
|
return (mod && mod.__esModule) ? mod : { "default": mod }; |
||||
|
}; |
||||
|
Object.defineProperty(exports, "__esModule", { value: true }); |
||||
|
const log4js_1 = __importDefault(require("log4js")); |
||||
|
function default_1(config) { |
||||
|
const logger = log4js_1.default.getLogger(config.logger); |
||||
|
logger.level = 'debug'; |
||||
|
switch (config.level) { |
||||
|
case 'trace': |
||||
|
logger.trace(config.content); |
||||
|
break; |
||||
|
case 'debug': |
||||
|
logger.debug(config.content); |
||||
|
break; |
||||
|
case 'info': |
||||
|
logger.info(config.content); |
||||
|
break; |
||||
|
case 'warn': |
||||
|
logger.warn(config.content); |
||||
|
break; |
||||
|
case 'error': |
||||
|
logger.error(config.content); |
||||
|
break; |
||||
|
case 'fatal': |
||||
|
logger.fatal(config.content); |
||||
|
break; |
||||
|
default: |
||||
|
logger.debug(config.content); |
||||
|
break; |
||||
|
} |
||||
|
} |
||||
|
exports.default = default_1; |
@ -0,0 +1,82 @@ |
|||||
|
"use strict"; |
||||
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { |
||||
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } |
||||
|
return new (P || (P = Promise))(function (resolve, reject) { |
||||
|
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } |
||||
|
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } |
||||
|
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } |
||||
|
step((generator = generator.apply(thisArg, _arguments || [])).next()); |
||||
|
}); |
||||
|
}; |
||||
|
Object.defineProperty(exports, "__esModule", { value: true }); |
||||
|
exports.paginateInteraction = exports.paginateMessage = void 0; |
||||
|
const discord_js_1 = require("discord.js"); |
||||
|
function paginateMessage(message, embeds) { |
||||
|
return __awaiter(this, void 0, void 0, function* () { |
||||
|
let index = 0; |
||||
|
const row = new discord_js_1.MessageActionRow; |
||||
|
row.addComponents(new discord_js_1.MessageButton() |
||||
|
.setCustomId('paginator-left') |
||||
|
.setEmoji('868552005977788466') |
||||
|
.setStyle('SECONDARY'), new discord_js_1.MessageButton() |
||||
|
.setCustomId('paginator-right') |
||||
|
.setEmoji('868551772887711754') |
||||
|
.setStyle('SECONDARY')); |
||||
|
yield message.reply({ content: `Page 1 of ${embeds.length}:`, embeds: [embeds[index]], components: [row] }) |
||||
|
.then((paginatorMessage) => __awaiter(this, void 0, void 0, function* () { |
||||
|
const filter = m => m.author.id === message.author.id; |
||||
|
const paginatorCollector = paginatorMessage.createMessageComponentCollector({ componentType: 'BUTTON', filter: filter }); |
||||
|
paginatorCollector.on('collect', (i) => __awaiter(this, void 0, void 0, function* () { |
||||
|
switch (i.customId) { |
||||
|
case 'paginator-left': |
||||
|
index--; |
||||
|
if (index < 0) |
||||
|
index = embeds.length - 1; |
||||
|
break; |
||||
|
case 'paginator-right': |
||||
|
index++; |
||||
|
if (index > embeds.length - 1) |
||||
|
index = 0; |
||||
|
break; |
||||
|
} |
||||
|
paginatorMessage.edit({ content: `Page ${index + 1} of ${embeds.length}:`, embeds: [embeds[index]] }); |
||||
|
})); |
||||
|
})); |
||||
|
}); |
||||
|
} |
||||
|
exports.paginateMessage = paginateMessage; |
||||
|
function paginateInteraction(interaction, embeds) { |
||||
|
return __awaiter(this, void 0, void 0, function* () { |
||||
|
let index = 0; |
||||
|
const row = new discord_js_1.MessageActionRow; |
||||
|
row.addComponents(new discord_js_1.MessageButton() |
||||
|
.setCustomId('paginator-left') |
||||
|
.setEmoji('868552005977788466') |
||||
|
.setStyle('SECONDARY'), new discord_js_1.MessageButton() |
||||
|
.setCustomId('paginator-right') |
||||
|
.setEmoji('868551772887711754') |
||||
|
.setStyle('SECONDARY')); |
||||
|
yield interaction.followUp({ content: `Page 1 of ${embeds.length}:`, embeds: [embeds[index]], components: [row], fetchReply: true }) |
||||
|
.then((p) => __awaiter(this, void 0, void 0, function* () { |
||||
|
const paginatorMessage = p; |
||||
|
const filter = i => i.user.id === interaction.user.id; |
||||
|
const paginatorCollector = paginatorMessage.createMessageComponentCollector({ componentType: 'BUTTON', filter: filter }); |
||||
|
paginatorCollector.on('collect', (i) => __awaiter(this, void 0, void 0, function* () { |
||||
|
switch (i.customId) { |
||||
|
case 'paginator-left': |
||||
|
index--; |
||||
|
if (index < 0) |
||||
|
index = embeds.length - 1; |
||||
|
break; |
||||
|
case 'paginator-right': |
||||
|
index++; |
||||
|
if (index > embeds.length - 1) |
||||
|
index = 0; |
||||
|
break; |
||||
|
} |
||||
|
yield i.update({ content: `Page ${index + 1} of ${embeds.length}:`, embeds: [embeds[index]] }); |
||||
|
})); |
||||
|
})); |
||||
|
}); |
||||
|
} |
||||
|
exports.paginateInteraction = paginateInteraction; |
Loading…
Reference in new issue