diff --git a/index.js b/index.js index cd1e0a8a3f6b1cc116a7ec147fa18a647065169a..694ab63df71a1054e645ac4fb6d3e7a1ce2cba62 100644 --- a/index.js +++ b/index.js @@ -2,10 +2,12 @@ const express = require('express'); const app = express(); const renderer = require('./middleware/render'); +const photoCounter = require('./middleware/photocount'); app.set('view engine', 'ejs'); app.get('/', renderer('chatscreen')); +app.get('/photocount', photoCounter()); app.use(express.static('static')); const server_port = 3000; diff --git a/middleware/photocount.js b/middleware/photocount.js new file mode 100644 index 0000000000000000000000000000000000000000..1eed98aa769dd4344d0e4cee623f6f672a652571 --- /dev/null +++ b/middleware/photocount.js @@ -0,0 +1,10 @@ +const fs = require('fs'); +const dir = './static/pictures'; + +module.exports = function () { + return function (req, res, next) { + return fs.readdir(dir, (err, files) => { + res.status(200).send({ count: files.length }); + }); + } +} \ No newline at end of file diff --git a/static/chat.js b/static/chat.js index a9a382a9a69484ea85f496f525aee3c680e0f80e..a36a4f8e5b2abe492af9dfe93658b89826572990 100644 --- a/static/chat.js +++ b/static/chat.js @@ -1,6 +1,17 @@ var messageComposer; let history; +function selectPhoto() { + return new Promise((resolve, reject) => { + $.ajax({ + url: "/photocount", + success: function (result) { + resolve('<div class="message catmessage" style="padding: 0"><img class="previewpic" src="/pictures/' + Math.floor(Math.random() * result.count) + '.jpg"></div>'); + } + }); + }); +} + const replies = new Map([ ['szia', 'Nyau'], ['helló', 'Nyau'], @@ -18,11 +29,16 @@ const replies = new Map([ ['puszi', 'doromb'], ['ágy', 'Mürr!'], ['gyere', 'Mürr!'], + ['hiány', '😿'], ]); -function selectReply(msg) { - let query = msg.toLowerCase(); - console.log(query); +const dinamicReplies = new Map([ + ['kép', selectPhoto], + ['fotó', selectPhoto], + ['mutas', selectPhoto], +]) + +function selectReply(query) { for (const [key, value] of replies) { if (query.includes(key)) return value; @@ -31,11 +47,26 @@ function selectReply(msg) { return 'Miau'; } +function writeReply(msg) { + let query = msg.toLowerCase(); + + for (const [key, value] of dinamicReplies) { + if (query.includes(key)) { + value().then((content) => { + history.append(content); + }); + return; + } + } + + history.append('<div class="message catmessage">' + selectReply(query) + '</div>'); +} + function sendMessage() { if (messageComposer.val() == "") return; history.append('<div class="message humanmessage">' + messageComposer.val() + '</div>'); - history.append('<div class="message catmessage">' + selectReply(messageComposer.val()) + '</div>'); + writeReply(messageComposer.val()); history.animate({ scrollTop: history[0].scrollHeight }, "fast"); messageComposer.val(''); } diff --git a/static/pictures/1.jpg b/static/pictures/1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..4dff6cafced64ff779abc6a17f6c2477a375a521 Binary files /dev/null and b/static/pictures/1.jpg differ diff --git a/static/pictures/10.jpg b/static/pictures/10.jpg new file mode 100644 index 0000000000000000000000000000000000000000..c9f854017ccc1452d85f617aba1ddfacd2511c2d Binary files /dev/null and b/static/pictures/10.jpg differ diff --git a/static/pictures/11.jpg b/static/pictures/11.jpg new file mode 100644 index 0000000000000000000000000000000000000000..a4da71fdd8e375b74635a805f55d377dd53c5ed4 Binary files /dev/null and b/static/pictures/11.jpg differ diff --git a/static/pictures/12.jpg b/static/pictures/12.jpg new file mode 100644 index 0000000000000000000000000000000000000000..10045d0000911fab6ebfbba414e91b0c878973f0 Binary files /dev/null and b/static/pictures/12.jpg differ diff --git a/static/pictures/13.jpg b/static/pictures/13.jpg new file mode 100644 index 0000000000000000000000000000000000000000..2e1c7f7e77483cfcf84c30d3a6ed9ac8bfc7eab3 Binary files /dev/null and b/static/pictures/13.jpg differ diff --git a/static/pictures/14.jpg b/static/pictures/14.jpg new file mode 100644 index 0000000000000000000000000000000000000000..641f1be67560cb921721fbc8f92a62dd694f9e5d Binary files /dev/null and b/static/pictures/14.jpg differ diff --git a/static/pictures/15.jpg b/static/pictures/15.jpg new file mode 100644 index 0000000000000000000000000000000000000000..44bbc935de0ff23b04235566311e0c5cf0321bbe Binary files /dev/null and b/static/pictures/15.jpg differ diff --git a/static/pictures/2.jpg b/static/pictures/2.jpg new file mode 100644 index 0000000000000000000000000000000000000000..4d69bb7033d91499698dbcd6bf5a6203ddaab4d6 Binary files /dev/null and b/static/pictures/2.jpg differ diff --git a/static/pictures/3.jpg b/static/pictures/3.jpg new file mode 100644 index 0000000000000000000000000000000000000000..5486bb46a92b09eb2b1427ce001a3d543c13222e Binary files /dev/null and b/static/pictures/3.jpg differ diff --git a/static/pictures/4.jpg b/static/pictures/4.jpg new file mode 100644 index 0000000000000000000000000000000000000000..153616d689dd4ae62ac733fb53a34166c2cc91f2 Binary files /dev/null and b/static/pictures/4.jpg differ diff --git a/static/pictures/5.jpg b/static/pictures/5.jpg new file mode 100644 index 0000000000000000000000000000000000000000..23e7b14011c2425b224a6a19e981a3ef38c35641 Binary files /dev/null and b/static/pictures/5.jpg differ diff --git a/static/pictures/6.jpg b/static/pictures/6.jpg new file mode 100644 index 0000000000000000000000000000000000000000..d9295bff35f5f6cd598a051b81bca615ddda11d7 Binary files /dev/null and b/static/pictures/6.jpg differ diff --git a/static/pictures/7.jpg b/static/pictures/7.jpg new file mode 100644 index 0000000000000000000000000000000000000000..cb0aecbdbbc4878ea91430ddc6a89b1565df227c Binary files /dev/null and b/static/pictures/7.jpg differ diff --git a/static/pictures/8.jpg b/static/pictures/8.jpg new file mode 100644 index 0000000000000000000000000000000000000000..6fafa63273b2627c3dc387c5cc6fb2ccb9aa8bf0 Binary files /dev/null and b/static/pictures/8.jpg differ diff --git a/static/pictures/9.jpg b/static/pictures/9.jpg new file mode 100644 index 0000000000000000000000000000000000000000..728df13c03441e8fc886dbb5ae24a9c7fb4b2cfe Binary files /dev/null and b/static/pictures/9.jpg differ diff --git a/static/style.css b/static/style.css index 84c4e7c85709a22b4bdcf026403e56fa1db6e851..fc06dca80bc844b8ff8ff397d2c6eee35d6a027e 100644 --- a/static/style.css +++ b/static/style.css @@ -133,4 +133,10 @@ footer>* { background-color: #ff9d00; color: white; align-self: flex-end; +} + +img.previewpic { + border-radius: 10px; + max-width: 500px; + max-height: 300px; } \ No newline at end of file