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/functions.js b/js/functions.js deleted file mode 100644 index d44d3ed..0000000 --- a/js/functions.js +++ /dev/null @@ -1,24 +0,0 @@ -function checkStr(string, length) { - return string.length <= length; -} -checkStr('fff', 3); - -function isPalindrome(string) { - string = string.toLowerCase().replaceAll(' ', ''); - const reversedString = string.split('').reverse().join(''); - return string === reversedString; -} -isPalindrome('ooppoo ooppoo'); -function getNums(string) { - string = String(string); - let result = ''; - for (let i = 0; i < string.length; i++) { - if (!isNaN(parseInt(string[i], 10))) { - result += string[i]; - } - } - return parseInt(result, 10); -} - -getNums('ou8kj9'); - 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 d50da5a..f86c06a 100644 --- a/js/main.js +++ b/js/main.js @@ -1,96 +1,3 @@ -const NAMES = [ - 'Кристина', - 'Игорь', - 'Зина', - 'Петруша', - 'Макс', - 'Кирилл', - 'Алекс', - 'Коля', - 'Ксения', - 'Алина' -]; -const DESCRIPTIONS = [ - 'Солнечный берег с белым песком и пальмами.', - 'Ночной город с огнями и движением автомобилей.', - 'Улыбающиеся дети, играющие в парке.', - 'Закат над горами с яркими оранжевыми и красными оттенками.', - 'Стейк на гриле с овощами на стороне.', - 'Старый замок на вершине холма, окруженный туманом.', - 'Лесная тропинка среди осенних деревьев с разноцветной листвой.', - 'Пара, прогуливающаяся по мосту, держа друг друга за руки.', - 'Домашний офис с приятной атмосферой и растениями.', - 'Уютный кафе с чашкой кофе и книгой на столе.', - 'Дети, строящие снеговика на зимнем дворе.', - 'Спокойное озеро с отражением облаков на воде.', - 'Уличный рынок с яркими фруктами и овощами.', - 'Групповой снимок друзей на пляже.', - 'Кошка, спящая на окне в солнечный день.' -]; -const MESSAGES = [ - 'Всё отлично!', - 'В целом всё неплохо.Но не всё.', - 'Когда вы делаете фотографию, хорошо бы убирать палец из кадра.В конце концов это просто непрофессионально.', - 'Моя бабушка случайно чихнула с фотоаппаратом в руках и у неё получилась фотография лучше.', - 'Я поскользнулся на банановой кожуре и уронил фотоаппарат на кота и у меня получилась фотография лучше.', - 'Лица у людей на фотке перекошены, как будто их избивают.Как можно было поймать такой неудачный момент ? !' -]; -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 = []; - - for (let j = 0; j < getRandomInt(0, 30); j++) { - const commentId = getCommentId(); - const comment = { - id: commentId, - avatar: `img/avatar-${getRandomInt(1, 6)}.svg`, - message: getRandomElement(MESSAGES), - name: getRandomElement(NAMES), - }; - comments.push(comment); - } - const photo = { - id: photoId, - url: `photos/${photoId}.jpg`, - description: getRandomElement(DESCRIPTIONS), - likes: getRandomInt(15, 200), - comments: comments - }; - - return photo; -} - -function getPhotos() { - const photos = Array.from({ length: 25 }, createPhoto); - return photos; -} - +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 };