diff --git a/index.html b/index.html
index 33c46ee..87a9e35 100644
--- a/index.html
+++ b/index.html
@@ -7,6 +7,7 @@
Кекстаграм
+
diff --git a/js/constant.js b/js/constant.js
new file mode 100644
index 0000000..246a283
--- /dev/null
+++ b/js/constant.js
@@ -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};
diff --git a/js/data.js b/js/data.js
new file mode 100644
index 0000000..3649858
--- /dev/null
+++ b/js/data.js
@@ -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};
diff --git a/js/main.js b/js/main.js
index 9da6848..3d7f23c 100644
--- a/js/main.js
+++ b/js/main.js
@@ -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);
diff --git a/js/utils.js b/js/utils.js
new file mode 100644
index 0000000..965e080
--- /dev/null
+++ b/js/utils.js
@@ -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};