Skip to content

Commit

Permalink
complite 4 task
Browse files Browse the repository at this point in the history
  • Loading branch information
pilmeha committed Oct 27, 2024
1 parent d6ea040 commit ef69cd4
Show file tree
Hide file tree
Showing 2 changed files with 84 additions and 0 deletions.
1 change: 1 addition & 0 deletions index.html
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
<link rel="shortcut icon" href="favicon.ico" type="image/x-icon">
<title>Кекстаграм</title>
<script head="text/javascript" src="js/functions.js"></script>
<script head="text/javascript" src="js/main.js"></script>
</head>

<body>
Expand Down
83 changes: 83 additions & 0 deletions js/main.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
const COMMENT_MESSAGES = [
'Всё отлично!',
'В целом всё неплохо. Но не всё.',
'Когда вы делаете фотографию, хорошо бы убирать палец из кадра. В конце концов это просто непрофессионально.',
'Моя бабушка случайно чихнула с фотоаппаратом в руках и у неё получилась фотография лучше.',
'Я поскользнулся на банановой кожуре и уронил фотоаппарат на кота и у меня получилась фотография лучше.',
'Лица у людей на фотке перекошены, как будто их избивают. Как можно было поймать такой неудачный момент?!'
];

const NAMES = [
'Иван',
'Хуан Себастьян',
'Мария',
'Кристоф',
'Виктор',
'Юлия',
'Люпита',
'Вашингтон',
];

const MAX_ID_FOR_PHOTOS = 25;

function createIdGenerator() {
let lastGeneratedId = 0;

return function() {
return lastGeneratedId++;
};
}

function getRandomInteger(min, max) {
const lower = Math.ceil(Math.min(Math.abs(min), Math.abs(max)));
const upper = Math.floor(Math.max(Math.abs(min), Math.abs(max)));
const result = Math.random() * (upper - lower + 1) + lower;
return Math.floor(result);
}

const getRandomArrayElement = (elements) =>
elements[getRandomInteger(0, elements.length - 1)];

function createArrayComments(count) {
const commentsArray = [];
const generateCommentId = createIdGenerator();
while (commentsArray.length < count) {
const comment = {
id: generateCommentId(),
avatar: `img/avatar-${getRandomInteger(1, 6)}.svg`,
message: `${getRandomArrayElement(COMMENT_MESSAGES)}`,
name: `${getRandomArrayElement(NAMES)}`
};

if (getRandomInteger(1, 2) === 2) {
let secondMessage = `${getRandomArrayElement(COMMENT_MESSAGES)}`;
while (comment.message === secondMessage) {
secondMessage = `${getRandomArrayElement(COMMENT_MESSAGES)}`;
}
comment.message += ` ${secondMessage}`;
}

commentsArray.push(comment);
}

return commentsArray;
}

function createArrayPhotos() {
const generatePhotoId = createIdGenerator();
const photoIdForUrl = createIdGenerator();
const photosArray = [];
while (photosArray.length < MAX_ID_FOR_PHOTOS) {
const photo = {
id: generatePhotoId(),
url: `photos/${photoIdForUrl()}.jpg`,
description: 'Еще не придумал что здесь написать',
likes: getRandomInteger(15, 200),
comments: createArrayComments(getRandomInteger(1, 30))
};
photosArray.push(photo);
}
return photosArray;
}

createArrayPhotos();

0 comments on commit ef69cd4

Please sign in to comment.