Skip to content

Commit

Permalink
Добавляет модули
Browse files Browse the repository at this point in the history
  • Loading branch information
margarita0206 committed Jul 8, 2024
1 parent b2319d0 commit 6f0aa78
Show file tree
Hide file tree
Showing 5 changed files with 119 additions and 98 deletions.
1 change: 1 addition & 0 deletions index.html
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
<link rel="stylesheet" href="css/style.css">
<link rel="shortcut icon" href="favicon.ico" type="image/x-icon">
<title>Кекстаграм</title>
<script src="/js/main.js" type="module" defer></script>
</head>

<body>
Expand Down
54 changes: 54 additions & 0 deletions js/constant.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
const POSTS_COUNT = 25;
const AVATAR_MIN_COUNT = 1;
const AVATAR_MAX_COUNT = 25;
const LIKES_MIN_COUNT = 15;
const LIKES_MAX_COUNT = 200;
const COMMENT_MIN_COUNT = 0;
const COMMENT_MAX_COUNT = 30;
const COMMENT_MAX_ID = 500000;

const COMENT_NAMES = [
'Анна',
'Александр',
'Светлана',
'Юра',
'Сергей',
'Полина',
'Олег',
'Андрей',
'Юля',
'Анастасия',
'Соня',
'Татьяна',
'Алексей',
'Артем',
'Вера',
'Ирина',
'Николай',
'Ева',
'Ольга',
'Алиса'
];

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

const DESCRIPTIONS = [
'Моя жизнь меняется, потому что меняю ее я.',
'Не слушай никого, лишь твое сердце, оно все знает.',
'Чтобы достичь новых берегов, мы должны плыть, а не дрейфовать.',
'Навстречу новым приключениям.',
'Каждое мгновенье жизни — еще одна возможность.',
'Пусть эта фотография будет здесь',
'Одна хорошая мысль утром меняет смысл целого дня.',
'Как мало нужно для счастья.',
'Этой фотографии описание не нужно'
];

export {POSTS_COUNT, AVATAR_MIN_COUNT, AVATAR_MAX_COUNT, LIKES_MIN_COUNT, LIKES_MAX_COUNT, COMMENT_MIN_COUNT, COMMENT_MAX_COUNT, COMMENT_MAX_ID, COMENT_NAMES, POSTS_COMMENTS, DESCRIPTIONS};
35 changes: 35 additions & 0 deletions js/data.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
import {
POSTS_COUNT, AVATAR_MIN_COUNT, AVATAR_MAX_COUNT, LIKES_MIN_COUNT, LIKES_MAX_COUNT, COMMENT_MIN_COUNT, COMMENT_MAX_COUNT, COMMENT_MAX_ID, COMENT_NAMES, POSTS_COMMENTS, DESCRIPTIONS
} from './constant.js';

import {
getRandomInteger, getUniqueInteger, getRandomArrayElement
} from './utils.js';

const randomPostId = getUniqueInteger(1, POSTS_COUNT);
const randomPostUrl = getUniqueInteger(1, POSTS_COUNT);
const randomCommentID = getUniqueInteger(1, COMMENT_MAX_ID);

const createPost = () => {

const randomPostDescription = getRandomArrayElement(DESCRIPTIONS);

const createComment = () => ({
'id': randomCommentID,
'avatar': `img/avatar-${getRandomInteger(AVATAR_MIN_COUNT,AVATAR_MAX_COUNT)}.svg`,
'message': getRandomArrayElement(POSTS_COMMENTS),
'name': getRandomArrayElement(COMENT_NAMES),
});

return {
'id': randomPostId(),
'url': `photos/${randomPostUrl()}.jpg`,
'description': randomPostDescription,
'likes': getRandomInteger(LIKES_MIN_COUNT, LIKES_MAX_COUNT),
'comments': Array.from({length: getRandomInteger(COMMENT_MIN_COUNT, COMMENT_MAX_COUNT)}, createComment),
};
};

const randomPosts = () => Array.from({ length: POSTS_COUNT }, createPost);

export {randomPosts};
99 changes: 1 addition & 98 deletions js/main.js
Original file line number Diff line number Diff line change
@@ -1,100 +1,3 @@
const POSTS_COUNT = 25;

const COMENT_NAMES = [
'Анна',
'Александр',
'Светлана',
'Юра',
'Сергей',
'Полина',
'Олег',
'Андрей',
'Юля',
'Анастасия',
'Соня',
'Татьяна',
'Алексей',
'Артем',
'Вера',
'Ирина',
'Николай',
'Ева',
'Ольга',
'Алиса'
];

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

const DESCRIPTIONS = [
'Моя жизнь меняется, потому что меняю ее я.',
'Не слушай никого, лишь твое сердце, оно все знает.',
'Чтобы достичь новых берегов, мы должны плыть, а не дрейфовать.',
'Навстречу новым приключениям.',
'Каждое мгновенье жизни — еще одна возможность.',
'Пусть эта фотография будет здесь',
'Одна хорошая мысль утром меняет смысл целого дня.',
'Как мало нужно для счастья.',
'Этой фотографии описание не нужно'
];

const getRandomInteger = (a, b) => {
const lower = Math.ceil(Math.min(a, b));
const upper = Math.floor(Math.max(a, b));
const result = Math.random() * (upper - lower + 1) + lower;

return Math.floor(result);
};

function getUniqueInteger (min,max) {
const previousValues = [];

return function () {
if (previousValues.length >= (max - min + 1)) {
return null;
}
let currentValue = getRandomInteger(min, max);
while (previousValues.includes(currentValue)) {
currentValue = getRandomInteger(min, max);
}
previousValues.push(currentValue);

return currentValue;
};
}

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

const randomPostId = getUniqueInteger(1, 25);
const randomPostUrl = getUniqueInteger(1, 25);
const randomCommentID = getUniqueInteger(1, 500000);

const createPost = () => {

const randomPostDescription = getRandomArrayElement(DESCRIPTIONS);

const createComment = () => ({
'id': randomCommentID,
'avatar': `img/avatar-${getRandomInteger(1, 6)}.svg`,
'message': getRandomArrayElement(POSTS_COMMENTS),
'name': getRandomArrayElement(COMENT_NAMES),
});

return {
'id': randomPostId(),
'url': `photos/${randomPostUrl()}.jpg`,
'description': randomPostDescription,
'likes': getRandomInteger(15, 200),
'comments': Array.from({length: getRandomInteger(0, 30)}, createComment),
};
};

const randomPosts = Array.from({length: POSTS_COUNT}, createPost);
import {randomPosts} from './data.js';

console.log(randomPosts);

Check failure on line 3 in js/main.js

View workflow job for this annotation

GitHub Actions / Check

Unexpected console statement
28 changes: 28 additions & 0 deletions js/utils.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
const getRandomInteger = (a, b) => {
const lower = Math.ceil(Math.min(a, b));
const upper = Math.floor(Math.max(a, b));
const result = Math.random() * (upper - lower + 1) + lower;

return Math.floor(result);
};

function getUniqueInteger (min,max) {
const previousValues = [];

return function () {
if (previousValues.length >= (max - min + 1)) {
return null;
}
let currentValue = getRandomInteger(min, max);
while (previousValues.includes(currentValue)) {
currentValue = getRandomInteger(min, max);
}
previousValues.push(currentValue);

return currentValue;
};
}

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

export {getRandomInteger, getUniqueInteger, getRandomArrayElement};

0 comments on commit 6f0aa78

Please sign in to comment.