Skip to content

Commit 13337c8

Browse files
authored
Merge pull request #5 from TaliUltra/module5-task1
2 parents 805d62c + 68365ea commit 13337c8

File tree

5 files changed

+163
-121
lines changed

5 files changed

+163
-121
lines changed

index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -234,6 +234,6 @@ <h2 class="data-error__title">Не удалось загрузить данны
234234
</section>
235235
</template>
236236
<script src="js/functions.js">
237-
</script><script src="js/main.js"></script>
237+
</script><script type="module" src="js/main.js"></script>
238238
</body>
239239
</html>

js/constants.js

Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
1+
const PICTURE_COUNT = 25;
2+
3+
const LIKE_MIN_COUNT = 15;
4+
const LIKE_MAX_COUNT = 200;
5+
6+
const COMMENT_MIN_COUNT = 0;
7+
const COMMENT_MAX_COUNT = 30;
8+
9+
const AVATAR_MIN_COUNT = 1;
10+
const AVATAR_MAX_COUNT = 6;
11+
12+
const COMMENT_LINES = [
13+
'Это фотография просто огонь! Я в полном восторге.',
14+
'Хорошая фотография, но можно было бы добавить больше света.',
15+
'Интересный ракурс, но композиция могла бы быть лучше.',
16+
'Цвета на фотографии выглядят немного тускло.',
17+
'Мне нравится настроение этой фотографии.',
18+
'Эта фотография рассказывает историю, которая меня зацепила.',
19+
'Технически это хорошая фотография, но ей не хватает эмоциональной глубины.',
20+
'Мне нравится, как вы использовали естественный свет в этой фотографии.',
21+
'Композиция этой фотографии действительно выделяется.',
22+
'Эта фотография вызывает у меня ностальгию.',
23+
'Мне нравится, как вы уловили движение в этой фотографии.',
24+
'Эта фотография заставляет меня задуматься о жизни.',
25+
'Мне нравится, как вы использовали тени в этой фотографии.',
26+
'Всё отлично!',
27+
'В целом всё неплохо. Но не всё.',
28+
'Когда вы делаете фотографию, хорошо бы убирать палец из кадра. В конце концов это просто непрофессионально.',
29+
'Моя бабушка случайно чихнула с фотоаппаратом в руках и у неё получилась фотография лучше.',
30+
'Я поскользнулся на банановой кожуре и уронил фотоаппарат на кота, но снимок получился лучше.',
31+
'Лица у людей на фотке перекошены, как будто их избивают. Как можно было поймать такой неудачный момент?!',
32+
'Моя любимая фотография из всех когда-либо сделанных мной. Я просто в восторге.',
33+
];
34+
35+
const DESCRIPTIONS = [
36+
'Лучшие моменты этого лета',
37+
'Отпуск!!!',
38+
'Жаркий закат на пляже',
39+
'Невероятные приключения в диких джунглях',
40+
'Вкусный обед в кафе у моря',
41+
'Прогулка по городу',
42+
'Восхитительный вид с вершины горы',
43+
'Ночная жизнь мегаполиса',
44+
'Расслабляющий день у бассейна',
45+
'Захватывающий поход в горы',
46+
'Красивый закат на пляже',
47+
'Веселая вечеринка с друзьями',
48+
'Тестим новую камеру!',
49+
'Затусили с друзьями на море',
50+
'Как же круто тут кормят!',
51+
'Отдыхаем...',
52+
'Цените каждое мгновение. Цените тех, кто рядом с вами и отгоняйте все сомнения. Не обижайте всех словами......',
53+
'Вот это тачка!',
54+
'Лето на море',
55+
'Собираемся в путь-дорогу',
56+
57+
];
58+
59+
const NAMES = [
60+
'Артем',
61+
'Максим',
62+
'Иван',
63+
'Дмитрий',
64+
'Никита',
65+
'Михаил',
66+
'Алексей',
67+
'Кирилл',
68+
'Екатерина',
69+
'Алина',
70+
'Виктория',
71+
'Дарья',
72+
'Полина',
73+
'Анастасия',
74+
'Юлия',
75+
'Мария',
76+
'Елена',
77+
];
78+
79+
// Export
80+
export {
81+
PICTURE_COUNT,
82+
LIKE_MIN_COUNT,
83+
LIKE_MAX_COUNT,
84+
COMMENT_MIN_COUNT,
85+
COMMENT_MAX_COUNT,
86+
AVATAR_MIN_COUNT,
87+
AVATAR_MAX_COUNT,
88+
COMMENT_LINES,
89+
DESCRIPTIONS,
90+
NAMES,
91+
};

js/data.js

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
// Imports
2+
import {
3+
PICTURE_COUNT,
4+
LIKE_MIN_COUNT,
5+
LIKE_MAX_COUNT,
6+
COMMENT_MIN_COUNT,
7+
COMMENT_MAX_COUNT,
8+
AVATAR_MIN_COUNT,
9+
AVATAR_MAX_COUNT,
10+
COMMENT_LINES,
11+
DESCRIPTIONS,
12+
NAMES,
13+
} from './constants.js';
14+
15+
import { getRandomInteger, getRandomArrayElement } from './utils.js';
16+
17+
18+
let commentId = 1;
19+
20+
// Создать случайный комментарий с уникальным ID случайным аватаром случайным текстом и именем
21+
const createComment = () => ({
22+
id: commentId++,
23+
avatar: `img/avatar-${getRandomInteger(AVATAR_MIN_COUNT, AVATAR_MAX_COUNT)}.svg`,
24+
message: getRandomArrayElement(COMMENT_LINES),
25+
name: getRandomArrayElement(NAMES),
26+
});
27+
28+
// Создать массив случайной длины от 0 до 30 и заполнить его комментариями
29+
const createComments = () => {
30+
const count = getRandomInteger(COMMENT_MIN_COUNT, COMMENT_MAX_COUNT);
31+
return Array.from({ length: count }, createComment);
32+
};
33+
34+
// Создать один объект фотографию, включающий: ID, URL, description, likes and Comments
35+
const createPictureDescription = (i) => {
36+
const randomId = getRandomInteger(1, PICTURE_COUNT);
37+
return {
38+
id: i+1,
39+
url: `photos/${i+1}.jpg`,
40+
description: getRandomArrayElement(DESCRIPTIONS),
41+
likes: getRandomInteger(LIKE_MIN_COUNT, LIKE_MAX_COUNT),
42+
comments: createComments(),
43+
};
44+
};
45+
46+
console.log(createPictureDescription());
47+
48+
// Создать массив из 25 фотографий
49+
const createPictures = () => Array.from({ length: PICTURE_COUNT }, (_, i) => createPictureDescription(i));
50+
51+
console.log(createPictures());
52+
53+
// Export
54+
export { createPictures };

js/main.js

Lines changed: 5 additions & 120 deletions
Original file line numberDiff line numberDiff line change
@@ -1,122 +1,7 @@
1-
const PICTURE_COUNT = 25;
1+
// Import
2+
import { createPictures } from './data.js';
23

3-
const LIKE_MIN_COUNT = 15;
4-
const LIKE_MAX_COUNT = 200;
4+
// Generate pictures data
5+
const pictures = createPictures();
56

6-
const COMMENT_MIN_COUNT = 0;
7-
const COMMENT_MAX_COUNT = 30;
8-
9-
const AVATAR_MIN_COUNT = 1;
10-
const AVATAR_MAX_COUNT = 6;
11-
12-
const COMMENT_LINES = [
13-
'Это фотография просто огонь! Я в полном восторге.',
14-
'Хорошая фотография, но можно было бы добавить больше света.',
15-
'Интересный ракурс, но композиция могла бы быть лучше.',
16-
'Цвета на фотографии выглядят немного тускло.',
17-
'Мне нравится настроение этой фотографии.',
18-
'Эта фотография рассказывает историю, которая меня зацепила.',
19-
'Технически это хорошая фотография, но ей не хватает эмоциональной глубины.',
20-
'Мне нравится, как вы использовали естественный свет в этой фотографии.',
21-
'Композиция этой фотографии действительно выделяется.',
22-
'Эта фотография вызывает у меня ностальгию.',
23-
'Мне нравится, как вы уловили движение в этой фотографии.',
24-
'Эта фотография заставляет меня задуматься о жизни.',
25-
'Мне нравится, как вы использовали тени в этой фотографии.',
26-
'Всё отлично!',
27-
'В целом всё неплохо. Но не всё.',
28-
'Когда вы делаете фотографию, хорошо бы убирать палец из кадра. В конце концов это просто непрофессионально.',
29-
'Моя бабушка случайно чихнула с фотоаппаратом в руках и у неё получилась фотография лучше.',
30-
'Я поскользнулся на банановой кожуре и уронил фотоаппарат на кота, но снимок получился лучше.',
31-
'Лица у людей на фотке перекошены, как будто их избивают. Как можно было поймать такой неудачный момент?!',
32-
'Моя любимая фотография из всех когда-либо сделанных мной. Я просто в восторге.',
33-
];
34-
35-
const DESCRIPTIONS = [
36-
'Лучшие моменты этого лета',
37-
'Отпуск!!!',
38-
'Жаркий закат на пляже',
39-
'Невероятные приключения в диких джунглях',
40-
'Вкусный обед в кафе у моря',
41-
'Прогулка по городу',
42-
'Восхитительный вид с вершины горы',
43-
'Ночная жизнь мегаполиса',
44-
'Расслабляющий день у бассейна',
45-
'Захватывающий поход в горы',
46-
'Красивый закат на пляже',
47-
'Веселая вечеринка с друзьями',
48-
'Тестим новую камеру!',
49-
'Затусили с друзьями на море',
50-
'Как же круто тут кормят!',
51-
'Отдыхаем...',
52-
'Цените каждое мгновение. Цените тех, кто рядом с вами и отгоняйте все сомнения. Не обижайте всех словами......',
53-
'Вот это тачка!',
54-
'Лето на море',
55-
'Собираемся в путь-дорогу',
56-
57-
];
58-
59-
const NAMES = [
60-
'Артем',
61-
'Максим',
62-
'Иван',
63-
'Дмитрий',
64-
'Никита',
65-
'Михаил',
66-
'Алексей',
67-
'Кирилл',
68-
'Екатерина',
69-
'Алина',
70-
'Виктория',
71-
'Дарья',
72-
'Полина',
73-
'Анастасия',
74-
'Юлия',
75-
'Мария',
76-
'Елена',
77-
];
78-
79-
let commentId = 1;
80-
81-
// Генерация случайных чисел
82-
const getRandomInteger = (a, b) => {
83-
const lower = Math.ceil(Math.min(a, b));
84-
const upper = Math.floor(Math.max(a, b));
85-
return Math.floor(Math.random() * (upper - lower + 1)) + lower;
86-
};
87-
88-
// получение случайного элемента из массива
89-
const getRandomArrayElement = (array) => array[getRandomInteger(0, array.length - 1)];
90-
91-
// Создать случайный комментарий с уникальным ID случайным аватаром случайным текстом и именем
92-
const createComment = () => ({
93-
id: commentId++,
94-
avatar: `img/avatar-${getRandomInteger(AVATAR_MIN_COUNT, AVATAR_MAX_COUNT)}.svg`,
95-
message: getRandomArrayElement(COMMENT_LINES),
96-
name: getRandomArrayElement(NAMES),
97-
});
98-
99-
// Создать массив случайной длины от 0 до 30 и заполнить его комментариями
100-
const createComments = () => {
101-
const count = getRandomInteger(COMMENT_MIN_COUNT, COMMENT_MAX_COUNT);
102-
return Array.from({ length: count }, createComment);
103-
};
104-
105-
// Создать один объект фотографию, включающий: ID, URL, description, likes and Comments
106-
const createPictureDescription = (i) => {
107-
const randomId = getRandomInteger(1, PICTURE_COUNT);
108-
return {
109-
id: i+1,
110-
url: `photos/${i+1}.jpg`,
111-
description: getRandomArrayElement(DESCRIPTIONS),
112-
likes: getRandomInteger(LIKE_MIN_COUNT, LIKE_MAX_COUNT),
113-
comments: createComments(),
114-
};
115-
};
116-
117-
console.log(createPictureDescription());
118-
119-
// Создать массив из 25 фотографий
120-
const createPictures = () => Array.from({ length: PICTURE_COUNT }, (_, i) => createPictureDescription(i));
121-
122-
console.log(createPictures());
7+
console.log(pictures);

js/utils.js

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
// Генерация случайных чисел
2+
const getRandomInteger = (a, b) => {
3+
const lower = Math.ceil(Math.min(a, b));
4+
const upper = Math.floor(Math.max(a, b));
5+
return Math.floor(Math.random() * (upper - lower + 1)) + lower;
6+
};
7+
8+
// получение случайного элемента из массива
9+
const getRandomArrayElement = (array) => array[getRandomInteger(0, array.length - 1)];
10+
11+
// Export
12+
export { getRandomInteger, getRandomArrayElement };

0 commit comments

Comments
 (0)