From a6f0a9d47c06b2391d2c931bdb27768e78565db0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=90=D0=BB=D0=B5=D0=BA=D1=81=D0=B5=D0=B9=20=D0=A1=D0=B5?= =?UTF-8?q?=D0=BB=D0=B5=D0=B7=D0=BD=D0=B5=D0=B2?= Date: Fri, 29 Nov 2024 20:48:09 +0700 Subject: [PATCH 1/3] Task-4 --- .eslintrc | 5 +-- index.html | 1 + js/main.js | 91 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 95 insertions(+), 2 deletions(-) diff --git a/.eslintrc b/.eslintrc index 4c020d6..dea1ed1 100644 --- a/.eslintrc +++ b/.eslintrc @@ -13,8 +13,9 @@ globals: Pristine: readonly rules: - no-unused-vars: - - warn + quotes: [1, "double", "avoid-escape"] + no-unused-vars: warn + no-console: warn extends: "htmlacademy/vanilla" diff --git a/index.html b/index.html index d6630fe..1c5b308 100644 --- a/index.html +++ b/index.html @@ -7,6 +7,7 @@ + Кекстаграм diff --git a/js/main.js b/js/main.js index e69de29..87c3e2e 100644 --- a/js/main.js +++ b/js/main.js @@ -0,0 +1,91 @@ +// Массив с сообщениями для комментариев +const messages = [ + "Всё отлично!", + "В целом всё неплохо. Но не всё.", + "Когда вы делаете фотографию, хорошо бы убирать палец из кадра. В конце концов это просто непрофессионально.", + "Моя бабушка случайно чихнула с фотоаппаратом в руках и у неё получилась фотография лучше.", + "Я поскользнулся на банановой кожуре и уронил фотоаппарат на кота и у меня получилась фотография лучше.", + "Лица у людей на фотке перекошены, как будто их избивают. Как можно было поймать такой неудачный момент?!" +]; + +// Массив c описаниями фотографии +const descriptions = [ + "Фото сделано в самом центре города, когда солнце только начало садиться.", + "Прекрасный момент, пойманный на природе, с солнечными лучами, пробивающимися через деревья.", + "Эта фотография была сделана во время путешествия по горам. Вечер, туман и немного мистики.", + "Отличный кадр с друзьями на празднике! Эмоции переполняют.", + "Удивительный вид на город с высоты птичьего полета. Горы, дома и небо в одном кадре.", + "Момент из отпуска, когда мы катались на лодке по реке. Спокойствие и умиротворение.", +]; + +// Массив с именами пользователей +const names = [ + "Артём", "Мария", "Иван", "Светлана", "Никита", "Елена", "Дмитрий", "Ольга", "Максим", "Александра" +]; + +/** + * Генерация случайного целого числа в заданном диапазоне. + * @param {number} min - Минимальное значение. + * @param {number} max - Максимальное значение. + * @returns {number} - Случайное целое число от min до max (включительно). +*/ +function getRandomInt(min, max) { + return Math.floor(Math.random() * (max - min + 1) + min); +} + +/** + * Генерация случайных комментариев для фотографии. + * Количество комментариев выбирается случайным образом (от 0 до 30). + * Каждый комментарий состоит из уникального id, сообщения, имени отправителя и аватарки отправителя. + * @returns {Array} - Массив объектов комментариев. +*/ +function generateComments() { + const commentsCount = getRandomInt(0, 30); + const comments = []; + + for (let i = 0; i < commentsCount; i++) { + const randomMessage = messages[getRandomInt(0, messages.length - 1)]; + const randomName = names[getRandomInt(0, names.length - 1)]; + const avatarNumber = getRandomInt(1, 6); + comments.push({ + id: i + 1, + avatar: `img/avatar-${avatarNumber}.svg`, + message: randomMessage, + name: randomName + }); + } + + return comments; +} + +/** + * Генерация одного объекта фотографии. + * Каждая фотография имеет уникальный id, url, описание, количество лайков и случайные комментарии. + * @param {number} id - Идентификатор фотографии. + * @returns {Object} - Объект, представляющий фотографию с уникальными аттрибутами. +*/ +function generatePhoto(id) { + return { + id: id, + url: `photos/${id}.jpg`, + description: descriptions[getRandomInt(0, descriptions.length - 1)], + likes: getRandomInt(15, 200), + comments: generateComments() + }; +} + +/** + * Генерация массива из 25 фотографий. + * Каждая фотография представляет собой объект с уникальным id, url, описанием, лайками и комментариями. + * @returns {Array} - Массив из 25 объектов фотографий. +*/ +function generatePhotos() { + const photos = []; + for (let i = 1; i <= 25; i++) { + photos.push(generatePhoto(i)); + } + return photos; +} + +const generatedPhotos = generatePhotos(); +console.log(generatedPhotos); From 611e3971d5de8311e9decddc3ac7a123c736367a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=90=D0=BB=D0=B5=D0=BA=D1=81=D0=B5=D0=B9=20=D0=A1=D0=B5?= =?UTF-8?q?=D0=BB=D0=B5=D0=B7=D0=BD=D0=B5=D0=B2?= Date: Mon, 2 Dec 2024 10:15:11 +0700 Subject: [PATCH 2/3] Modify messages for comments. Now it's easy to use 3+ messages in one comment --- js/main.js | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/js/main.js b/js/main.js index 87c3e2e..e1b5e58 100644 --- a/js/main.js +++ b/js/main.js @@ -36,7 +36,7 @@ function getRandomInt(min, max) { /** * Генерация случайных комментариев для фотографии. * Количество комментариев выбирается случайным образом (от 0 до 30). - * Каждый комментарий состоит из уникального id, сообщения, имени отправителя и аватарки отправителя. + * Каждый комментарий состоит из уникального id, сообщений, имени отправителя и аватарки отправителя. * @returns {Array} - Массив объектов комментариев. */ function generateComments() { @@ -44,13 +44,20 @@ function generateComments() { const comments = []; for (let i = 0; i < commentsCount; i++) { - const randomMessage = messages[getRandomInt(0, messages.length - 1)]; + const messagesCount = getRandomInt(1, 3); + const randomMessages = []; + + for(let j = 0; j < messagesCount; j++) { + const randomMessage = messages[getRandomInt(0, messages.length - 1)]; + randomMessages.push(randomMessage); + } + const randomName = names[getRandomInt(0, names.length - 1)]; const avatarNumber = getRandomInt(1, 6); comments.push({ id: i + 1, avatar: `img/avatar-${avatarNumber}.svg`, - message: randomMessage, + message: randomMessages.join(" "), name: randomName }); } From de876deede12e6a4fc61dc495d83ba0ce7a5660a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=90=D0=BB=D0=B5=D0=BA=D1=81=D0=B5=D0=B9=20=D0=A1=D0=B5?= =?UTF-8?q?=D0=BB=D0=B5=D0=B7=D0=BD=D0=B5=D0=B2?= Date: Tue, 3 Dec 2024 10:00:58 +0700 Subject: [PATCH 3/3] Messages joined with '\n' --- js/main.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/js/main.js b/js/main.js index e1b5e58..c357381 100644 --- a/js/main.js +++ b/js/main.js @@ -57,7 +57,7 @@ function generateComments() { comments.push({ id: i + 1, avatar: `img/avatar-${avatarNumber}.svg`, - message: randomMessages.join(" "), + message: randomMessages.join("\n"), name: randomName }); }