Skip to content

Commit

Permalink
Merge pull request #7 from Daniil888-m/module5-task1
Browse files Browse the repository at this point in the history
  • Loading branch information
keksobot authored Nov 30, 2024
2 parents 14799bb + 02e1df3 commit a9093d7
Show file tree
Hide file tree
Showing 6 changed files with 117 additions and 118 deletions.
40 changes: 40 additions & 0 deletions js/data.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
const NAMES = [
'Кристина',
'Игорь',
'Зина',
'Петруша',
'Макс',
'Кирилл',
'Алекс',
'Коля',
'Ксения',
'Алина',
];
const DESCRIPTIONS = [
'Солнечный берег с белым песком и пальмами.',
'Ночной город с огнями и движением автомобилей.',
'Улыбающиеся дети, играющие в парке.',
'Закат над горами с яркими оранжевыми и красными оттенками.',
'Стейк на гриле с овощами на стороне.',
'Старый замок на вершине холма, окруженный туманом.',
'Лесная тропинка среди осенних деревьев с разноцветной листвой.',
'Пара, прогуливающаяся по мосту, держа друг друга за руки.',
'Домашний офис с приятной атмосферой и растениями.',
'Уютный кафе с чашкой кофе и книгой на столе.',
'Дети, строящие снеговика на зимнем дворе.',
'Спокойное озеро с отражением облаков на воде.',
'Уличный рынок с яркими фруктами и овощами.',
'Групповой снимок друзей на пляже.',
'Кошка, спящая на окне в солнечный день.',
];
const MESSAGES = [
'Всё отлично!',
'В целом всё неплохо.Но не всё.',
'Когда вы делаете фотографию, хорошо бы убирать палец из кадра.В конце концов это просто непрофессионально.',
'Моя бабушка случайно чихнула с фотоаппаратом в руках и у неё получилась фотография лучше.',
'Я поскользнулся на банановой кожуре и уронил фотоаппарат на кота и у меня получилась фотография лучше.',
'Лица у людей на фотке перекошены, как будто их избивают.Как можно было поймать такой неудачный момент ? !',
];
const PHOTOS_COUNT = 25;

export { NAMES, DESCRIPTIONS, MESSAGES, PHOTOS_COUNT };
24 changes: 0 additions & 24 deletions js/functions.js

This file was deleted.

24 changes: 24 additions & 0 deletions js/get-comments.js
Original file line number Diff line number Diff line change
@@ -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 };

26 changes: 26 additions & 0 deletions js/get-photos.js
Original file line number Diff line number Diff line change
@@ -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 };
95 changes: 1 addition & 94 deletions js/main.js
Original file line number Diff line number Diff line change
@@ -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();

26 changes: 26 additions & 0 deletions js/utils.js
Original file line number Diff line number Diff line change
@@ -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 };

0 comments on commit a9093d7

Please sign in to comment.