|
1 | | -const PICTURE_COUNT = 25; |
| 1 | +// Import |
| 2 | +import { createPictures } from './data.js'; |
2 | 3 |
|
3 | | -const LIKE_MIN_COUNT = 15; |
4 | | -const LIKE_MAX_COUNT = 200; |
| 4 | +// Generate pictures data |
| 5 | +const pictures = createPictures(); |
5 | 6 |
|
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); |
0 commit comments