diff --git a/.eslintrc b/.eslintrc new file mode 100644 index 0000000..eed5cf8 --- /dev/null +++ b/.eslintrc @@ -0,0 +1,3 @@ +{ + "extends": ["cryingbot"] +} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..7c30c16 --- /dev/null +++ b/.gitignore @@ -0,0 +1,10 @@ +# Dependency directories +node_modules/ + +# 토큰(config) +config/ + + +# husky 파일은 우선 공유 +#/.husky +#/.prettier diff --git a/.husky/pre-commit b/.husky/pre-commit new file mode 100755 index 0000000..97c59fb --- /dev/null +++ b/.husky/pre-commit @@ -0,0 +1,4 @@ +#!/usr/bin/env sh +. "$(dirname -- "$0")/_/husky.sh" + +eslint . --ext .js diff --git a/.prettierrc b/.prettierrc new file mode 100644 index 0000000..7c1c81f --- /dev/null +++ b/.prettierrc @@ -0,0 +1,8 @@ +{ + "printWidth": 100, + "tabWidth": 2, + "semi": true, + "singleQuote": true, + "bracketSpacing": true, + "arrowParens": "always" +} \ No newline at end of file diff --git a/config/bot.json b/config/bot.json new file mode 100644 index 0000000..7931d28 --- /dev/null +++ b/config/bot.json @@ -0,0 +1,3 @@ +{ + "Signing_SECRET":"" +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..930d17e --- /dev/null +++ b/package.json @@ -0,0 +1,13 @@ +{ + "dependencies": { + "@slack/rtm-api": "^6.0.0", + "dotenv": "^16.0.3" + }, + "devDependencies": { + "eslint-config-cryingbot": "^1.0.2", + "husky": "^8.0.0" + }, + "scripts": { + "prepare": "husky install" + } +} diff --git a/src/greeting.js b/src/greeting.js new file mode 100644 index 0000000..fc609f9 --- /dev/null +++ b/src/greeting.js @@ -0,0 +1,6 @@ +const greeting = function (rtm, channel) { + console.log('Greeting Here'); + rtm.sendMessage('HIHIHIHIHIHIHIHIHIHII', channel); +}; + +module.exports = greeting; diff --git a/src/main.js b/src/main.js new file mode 100644 index 0000000..52fb79b --- /dev/null +++ b/src/main.js @@ -0,0 +1,30 @@ +require('dotenv').config(); + +const { RTMClient } = require('@slack/rtm-api'); + +const token = require('../config/bot.json').Signing_SECRET; + +const rtm = new RTMClient(token); +rtm.start(); + +const greeting = require('./greeting'); +const square = require('./square'); + +rtm.on('message', (message) => { + const { channel } = message; + const { text } = message; + + if (!isNaN(text)) { + square(rtm, text, channel); + } else { + switch (text) { + case 'hi': + case 'hello': + case '안녕': + greeting(rtm, channel); + break; + default: + rtm.sendMessage('Im alive', channel); + } + } +}); diff --git a/src/square.js b/src/square.js new file mode 100644 index 0000000..dc9a98a --- /dev/null +++ b/src/square.js @@ -0,0 +1,7 @@ +const square = function (rtm, text, channel) { + console.log('square : '); + console.log(text); + rtm.sendMessage(`:::::${text * text}`, channel); +}; + +module.exports = square;