Skip to content

Commit

Permalink
Merge pull request #5 from pilmeha/module5-task1
Browse files Browse the repository at this point in the history
  • Loading branch information
keksobot authored Oct 27, 2024
2 parents 4986963 + cc3d554 commit 4a116a1
Show file tree
Hide file tree
Showing 4 changed files with 88 additions and 82 deletions.
2 changes: 1 addition & 1 deletion index.html
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +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>
<script src="js/main.js" type="module"></script>
</head>

<body>
Expand Down
67 changes: 67 additions & 0 deletions js/data.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
import { createIdGenerator, getRandomInteger, getRandomArrayElement } from './util';

const COMMENT_MESSAGES = [
'Всё отлично!',
'В целом всё неплохо. Но не всё.',
'Когда вы делаете фотографию, хорошо бы убирать палец из кадра. В конце концов это просто непрофессионально.',
'Моя бабушка случайно чихнула с фотоаппаратом в руках и у неё получилась фотография лучше.',
'Я поскользнулся на банановой кожуре и уронил фотоаппарат на кота и у меня получилась фотография лучше.',
'Лица у людей на фотке перекошены, как будто их избивают. Как можно было поймать такой неудачный момент?!'
];

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

const MAX_ID_FOR_PHOTOS = 25;

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;
}

export { createArrayPhotos };
82 changes: 1 addition & 81 deletions js/main.js
Original file line number Diff line number Diff line change
@@ -1,83 +1,3 @@
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;
}
import { createArrayPhotos } from './data';

createArrayPhotos();
19 changes: 19 additions & 0 deletions js/util.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
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)];

export { createIdGenerator, getRandomInteger, getRandomArrayElement };

0 comments on commit 4a116a1

Please sign in to comment.