From ba28e2311ce269bd8e2f001424eb64978c185684 Mon Sep 17 00:00:00 2001 From: Daniil888-m Date: Sat, 30 Nov 2024 23:26:05 +0300 Subject: [PATCH 1/6] modulation --- index.html | 2 +- js/data.js | 40 ++++++++++++++++++ js/get-comments.js | 24 +++++++++++ js/get-photos.js | 26 ++++++++++++ js/main.js | 103 +-------------------------------------------- js/utils.js | 26 ++++++++++++ 6 files changed, 119 insertions(+), 102 deletions(-) create mode 100644 js/data.js create mode 100644 js/get-comments.js create mode 100644 js/get-photos.js create mode 100644 js/utils.js diff --git a/index.html b/index.html index 78b2916..d9ad13b 100644 --- a/index.html +++ b/index.html @@ -234,7 +234,7 @@

Изображение успешно загруже

Не удалось загрузить данные

- + diff --git a/js/data.js b/js/data.js new file mode 100644 index 0000000..36ed269 --- /dev/null +++ b/js/data.js @@ -0,0 +1,40 @@ +const NAMES = [ + 'Кристина', + 'Игорь', + 'Зина', + 'Петруша', + 'Макс', + 'Кирилл', + 'Алекс', + 'Коля', + 'Ксения', + 'Алина', +]; +const DESCRIPTIONS = [ + 'Солнечный берег с белым песком и пальмами.', + 'Ночной город с огнями и движением автомобилей.', + 'Улыбающиеся дети, играющие в парке.', + 'Закат над горами с яркими оранжевыми и красными оттенками.', + 'Стейк на гриле с овощами на стороне.', + 'Старый замок на вершине холма, окруженный туманом.', + 'Лесная тропинка среди осенних деревьев с разноцветной листвой.', + 'Пара, прогуливающаяся по мосту, держа друг друга за руки.', + 'Домашний офис с приятной атмосферой и растениями.', + 'Уютный кафе с чашкой кофе и книгой на столе.', + 'Дети, строящие снеговика на зимнем дворе.', + 'Спокойное озеро с отражением облаков на воде.', + 'Уличный рынок с яркими фруктами и овощами.', + 'Групповой снимок друзей на пляже.', + 'Кошка, спящая на окне в солнечный день.', +]; +const MESSAGES = [ + 'Всё отлично!', + 'В целом всё неплохо.Но не всё.', + 'Когда вы делаете фотографию, хорошо бы убирать палец из кадра.В конце концов это просто непрофессионально.', + 'Моя бабушка случайно чихнула с фотоаппаратом в руках и у неё получилась фотография лучше.', + 'Я поскользнулся на банановой кожуре и уронил фотоаппарат на кота и у меня получилась фотография лучше.', + 'Лица у людей на фотке перекошены, как будто их избивают.Как можно было поймать такой неудачный момент ? !', +]; +const PHOTOS_COUNT = 25; + +export { NAMES, DESCRIPTIONS, MESSAGES, PHOTOS_COUNT }; diff --git a/js/get-comments.js b/js/get-comments.js new file mode 100644 index 0000000..a7f44ce --- /dev/null +++ b/js/get-comments.js @@ -0,0 +1,24 @@ +import { getRandomInt, getUniqueId, getRandomElement } from './utils.js'; +import { NAMES, MESSAGES } from './data.js'; + +const getCommentId = getUniqueId(1, 1000); + +function createComment() { + const commentId = getCommentId(); + const comment = { + id: commentId, + avatar: `img/avatar-${getRandomInt(1, 6)}.svg`, + message: getRandomElement(MESSAGES), + name: getRandomElement(NAMES), + }; + + return comment; +} +const comments = Array.from({ length: getRandomInt(0, 30) }, createComment); + +function getComments() { + return comments; +} + +export { getComments }; + diff --git a/js/get-photos.js b/js/get-photos.js new file mode 100644 index 0000000..fc7bce3 --- /dev/null +++ b/js/get-photos.js @@ -0,0 +1,26 @@ +import { getComments } from './get-comments.js'; +import { DESCRIPTIONS, PHOTOS_COUNT } from './data.js'; +import { getRandomInt, getUniqueId, getRandomElement } from './utils.js'; + +const getPhotoId = getUniqueId(1, 25); +function createPhoto() { + const photoId = getPhotoId(); + const comments = getComments(); + + const photo = { + id: photoId, + url: `photos/${photoId}.jpg`, + description: getRandomElement(DESCRIPTIONS), + likes: getRandomInt(15, 200), + comments, + }; + + return photo; +} +const photos = Array.from({ length: PHOTOS_COUNT }, createPhoto); + +function getPhotos() { + return photos; +} + +export { getPhotos }; diff --git a/js/main.js b/js/main.js index 1bf4531..f86c06a 100644 --- a/js/main.js +++ b/js/main.js @@ -1,102 +1,3 @@ -const NAMES = [ - 'Кристина', - 'Игорь', - 'Зина', - 'Петруша', - 'Макс', - 'Кирилл', - 'Алекс', - 'Коля', - 'Ксения', - 'Алина', -]; -const DESCRIPTIONS = [ - 'Солнечный берег с белым песком и пальмами.', - 'Ночной город с огнями и движением автомобилей.', - 'Улыбающиеся дети, играющие в парке.', - 'Закат над горами с яркими оранжевыми и красными оттенками.', - 'Стейк на гриле с овощами на стороне.', - 'Старый замок на вершине холма, окруженный туманом.', - 'Лесная тропинка среди осенних деревьев с разноцветной листвой.', - 'Пара, прогуливающаяся по мосту, держа друг друга за руки.', - 'Домашний офис с приятной атмосферой и растениями.', - 'Уютный кафе с чашкой кофе и книгой на столе.', - 'Дети, строящие снеговика на зимнем дворе.', - 'Спокойное озеро с отражением облаков на воде.', - 'Уличный рынок с яркими фруктами и овощами.', - 'Групповой снимок друзей на пляже.', - 'Кошка, спящая на окне в солнечный день.', -]; -const MESSAGES = [ - 'Всё отлично!', - 'В целом всё неплохо.Но не всё.', - 'Когда вы делаете фотографию, хорошо бы убирать палец из кадра.В конце концов это просто непрофессионально.', - 'Моя бабушка случайно чихнула с фотоаппаратом в руках и у неё получилась фотография лучше.', - 'Я поскользнулся на банановой кожуре и уронил фотоаппарат на кота и у меня получилась фотография лучше.', - 'Лица у людей на фотке перекошены, как будто их избивают.Как можно было поймать такой неудачный момент ? !', -]; -const PHOTOS_COUNT = 25; -function getRandomInt(min, max) { - min = Math.ceil(min); - max = Math.floor(max); - const randomInt = Math.floor(Math.random() * (max - min + 1)) + min; - return randomInt; -} -function getUniqueId(min, max) { - const receivedId = []; - - return function () { - if (receivedId.length >= max - min + 1) { - return receivedId[receivedId.length - 1]; - } - let currentId = getRandomInt(min, max); - while (receivedId.includes(currentId)) { - currentId = getRandomInt(min, max); - } - receivedId.push(currentId); - return currentId; - }; -} -function getRandomElement(elements) { - return elements[getRandomInt(0, elements.length - 1)]; -} -const getPhotoId = getUniqueId(1, 25); -const getCommentId = getUniqueId(1, 1000); -function createPhoto() { - const photoId = getPhotoId(); - const comments = getComments(); - - const photo = { - id: photoId, - url: `photos/${photoId}.jpg`, - description: getRandomElement(DESCRIPTIONS), - likes: getRandomInt(15, 200), - comments, - }; - - return photo; -} - -function getPhotos() { - const photos = Array.from({ length: PHOTOS_COUNT }, createPhoto); - return photos; -} - -function createComment() { - const commentId = getCommentId(); - const comment = { - id: commentId, - avatar: `img/avatar-${getRandomInt(1, 6)}.svg`, - message: getRandomElement(MESSAGES), - name: getRandomElement(NAMES), - }; - - return comment; -} - -function getComments() { - const comments = Array.from({ length: getRandomInt(0, 30) }, createComment); - return comments; -} - +import { getPhotos } from './get-photos.js'; getPhotos(); + diff --git a/js/utils.js b/js/utils.js new file mode 100644 index 0000000..f97cbe0 --- /dev/null +++ b/js/utils.js @@ -0,0 +1,26 @@ +function getRandomInt(min, max) { + min = Math.ceil(min); + max = Math.floor(max); + const randomInt = Math.floor(Math.random() * (max - min + 1)) + min; + return randomInt; +} +function getUniqueId(min, max) { + const receivedId = []; + + return function () { + if (receivedId.length >= max - min + 1) { + return receivedId[receivedId.length - 1]; + } + let currentId = getRandomInt(min, max); + while (receivedId.includes(currentId)) { + currentId = getRandomInt(min, max); + } + receivedId.push(currentId); + return currentId; + }; +} +function getRandomElement(elements) { + return elements[getRandomInt(0, elements.length - 1)]; +} + +export { getRandomInt, getUniqueId, getRandomElement }; From ff4ccd07804ac0c882c4ff543d832a54097286a0 Mon Sep 17 00:00:00 2001 From: Daniil888-m Date: Sun, 1 Dec 2024 00:30:44 +0300 Subject: [PATCH 2/6] added function checkMeetingTime --- js/functions.js | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/js/functions.js b/js/functions.js index d44d3ed..8b25fc4 100644 --- a/js/functions.js +++ b/js/functions.js @@ -22,3 +22,30 @@ function getNums(string) { getNums('ou8kj9'); +function getHours(time) { + return parseInt(time.split(':')[0], 10); +} +function getMinutes(time) { + return parseInt(time.split(':')[1], 10); +} +function checkMeetingTime(from, until, meetTime, duration) { + const fromHours = getHours(from); + const fromMinutes = getMinutes(from); + const untilHours = getHours(until); + const untilMinutes = getMinutes(until); + let meetHours = getHours(meetTime); + let meetMinutes = getMinutes(meetTime); + if ((meetHours < fromHours) || (meetHours >= fromHours && meetMinutes < fromMinutes)) { + return false; + } + meetHours += duration / 60; + meetMinutes += duration % 60; + + if (meetMinutes >= 60) { + meetHours++; + meetMinutes -= 60; + } + return meetHours <= untilHours && meetMinutes <= untilMinutes; +} + +checkMeetingTime('08:00', '14:30', '14:00', 90); From 9a347c4e93336ce78ed00e24cb1b9596a69814f4 Mon Sep 17 00:00:00 2001 From: Daniil888-m Date: Mon, 2 Dec 2024 14:01:56 +0300 Subject: [PATCH 3/6] fixed a function that was not working properly --- js/functions.js | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/js/functions.js b/js/functions.js index 8b25fc4..25c65ed 100644 --- a/js/functions.js +++ b/js/functions.js @@ -35,10 +35,10 @@ function checkMeetingTime(from, until, meetTime, duration) { const untilMinutes = getMinutes(until); let meetHours = getHours(meetTime); let meetMinutes = getMinutes(meetTime); - if ((meetHours < fromHours) || (meetHours >= fromHours && meetMinutes < fromMinutes)) { + if ((meetHours < fromHours) || (meetHours === fromHours && meetMinutes < fromMinutes)) { return false; } - meetHours += duration / 60; + meetHours += Math.floor(duration / 60); meetMinutes += duration % 60; if (meetMinutes >= 60) { @@ -48,4 +48,6 @@ function checkMeetingTime(from, until, meetTime, duration) { return meetHours <= untilHours && meetMinutes <= untilMinutes; } -checkMeetingTime('08:00', '14:30', '14:00', 90); + +console.log(checkMeetingTime('08:00', '14:30', '14:00', 30)); + From df391d62c3f437459624889fc889a861360ba4b7 Mon Sep 17 00:00:00 2001 From: Daniil888-m Date: Mon, 2 Dec 2024 14:02:21 +0300 Subject: [PATCH 4/6] deleted console.log --- js/functions.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/js/functions.js b/js/functions.js index 25c65ed..e1687fe 100644 --- a/js/functions.js +++ b/js/functions.js @@ -49,5 +49,5 @@ function checkMeetingTime(from, until, meetTime, duration) { } -console.log(checkMeetingTime('08:00', '14:30', '14:00', 30)); +checkMeetingTime('08:00', '14:30', '14:00', 30); From 4e2949e9678f828c339a16381e8d9070d405315e Mon Sep 17 00:00:00 2001 From: Daniil888-m Date: Tue, 3 Dec 2024 00:10:41 +0300 Subject: [PATCH 5/6] fixed error --- js/functions.js | 1 + 1 file changed, 1 insertion(+) diff --git a/js/functions.js b/js/functions.js index e1687fe..d359f21 100644 --- a/js/functions.js +++ b/js/functions.js @@ -51,3 +51,4 @@ function checkMeetingTime(from, until, meetTime, duration) { checkMeetingTime('08:00', '14:30', '14:00', 30); + From e67aa09ce34fea167ab371149e01b759791550fd Mon Sep 17 00:00:00 2001 From: Daniil888-m Date: Tue, 3 Dec 2024 20:39:00 +0300 Subject: [PATCH 6/6] refactored checkMeetTime function and rework modulation task --- js/{data.js => consts.js} | 0 js/functions.js | 33 ++++++++------------------------- js/get-comments.js | 24 ------------------------ js/get-photos.js | 23 +++++++++++++++++++++-- js/main.js | 1 + 5 files changed, 30 insertions(+), 51 deletions(-) rename js/{data.js => consts.js} (100%) delete mode 100644 js/get-comments.js diff --git a/js/data.js b/js/consts.js similarity index 100% rename from js/data.js rename to js/consts.js diff --git a/js/functions.js b/js/functions.js index d359f21..dd7cee9 100644 --- a/js/functions.js +++ b/js/functions.js @@ -22,33 +22,16 @@ function getNums(string) { getNums('ou8kj9'); -function getHours(time) { - return parseInt(time.split(':')[0], 10); -} -function getMinutes(time) { - return parseInt(time.split(':')[1], 10); +function getTimeInMinutes(time) { + const [hours, minutes] = time.split(':').map((elem) => parseInt(elem, 10)); + return hours * 60 + minutes; } + function checkMeetingTime(from, until, meetTime, duration) { - const fromHours = getHours(from); - const fromMinutes = getMinutes(from); - const untilHours = getHours(until); - const untilMinutes = getMinutes(until); - let meetHours = getHours(meetTime); - let meetMinutes = getMinutes(meetTime); - if ((meetHours < fromHours) || (meetHours === fromHours && meetMinutes < fromMinutes)) { - return false; - } - meetHours += Math.floor(duration / 60); - meetMinutes += duration % 60; + from = getTimeInMinutes(from); + until = getTimeInMinutes(until); + meetTime = getTimeInMinutes(meetTime); - if (meetMinutes >= 60) { - meetHours++; - meetMinutes -= 60; - } - return meetHours <= untilHours && meetMinutes <= untilMinutes; + return from <= meetTime && meetTime + duration <= until; } - - checkMeetingTime('08:00', '14:30', '14:00', 30); - - diff --git a/js/get-comments.js b/js/get-comments.js deleted file mode 100644 index a7f44ce..0000000 --- a/js/get-comments.js +++ /dev/null @@ -1,24 +0,0 @@ -import { getRandomInt, getUniqueId, getRandomElement } from './utils.js'; -import { NAMES, MESSAGES } from './data.js'; - -const getCommentId = getUniqueId(1, 1000); - -function createComment() { - const commentId = getCommentId(); - const comment = { - id: commentId, - avatar: `img/avatar-${getRandomInt(1, 6)}.svg`, - message: getRandomElement(MESSAGES), - name: getRandomElement(NAMES), - }; - - return comment; -} -const comments = Array.from({ length: getRandomInt(0, 30) }, createComment); - -function getComments() { - return comments; -} - -export { getComments }; - diff --git a/js/get-photos.js b/js/get-photos.js index fc7bce3..fbe4661 100644 --- a/js/get-photos.js +++ b/js/get-photos.js @@ -1,7 +1,26 @@ -import { getComments } from './get-comments.js'; -import { DESCRIPTIONS, PHOTOS_COUNT } from './data.js'; +import { DESCRIPTIONS, PHOTOS_COUNT, NAMES, MESSAGES } from './consts.js'; import { getRandomInt, getUniqueId, getRandomElement } from './utils.js'; + +const getCommentId = getUniqueId(1, 1000); + +function createComment() { + const commentId = getCommentId(); + const comment = { + id: commentId, + avatar: `img/avatar-${getRandomInt(1, 6)}.svg`, + message: getRandomElement(MESSAGES), + name: getRandomElement(NAMES), + }; + + return comment; +} + +function getComments() { + const comments = Array.from({ length: getRandomInt(0, 30) }, createComment); + return comments; +} + const getPhotoId = getUniqueId(1, 25); function createPhoto() { const photoId = getPhotoId(); diff --git a/js/main.js b/js/main.js index f86c06a..4453b12 100644 --- a/js/main.js +++ b/js/main.js @@ -1,3 +1,4 @@ import { getPhotos } from './get-photos.js'; + getPhotos();