Skip to content

Commit

Permalink
Merge pull request #4 from HomerSimpsonj/module4-task1
Browse files Browse the repository at this point in the history
  • Loading branch information
keksobot authored Dec 16, 2024
2 parents 5a39a46 + 4837f61 commit b9c91f0
Show file tree
Hide file tree
Showing 2 changed files with 95 additions and 0 deletions.
1 change: 1 addition & 0 deletions index.html
Original file line number Diff line number Diff line change
Expand Up @@ -234,6 +234,7 @@ <h2 class="success__title">Изображение успешно загруже
<h2 class="data-error__title">Не удалось загрузить данные</h2>
</section>
</template>
<script src="./js/main.js"></script>
<script src="./js/function.js"></script>
</body>

Expand Down
94 changes: 94 additions & 0 deletions js/main.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
const DESCRIPTIONS_PHOTO = [
'Красивый вид',
'Получилось хорошее фото',
'Смотрится очень здорово',
'Снято в спешке',
'Старались чтобы всё поместилось в кадр',
'Вышло не плохо на мой взгляд',
];

const NUMBER_OF_OBJECTS_GENERATED = 25;

const QUANTITY_LIKES = {
MIN: 15,
MAX: 200,
};

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

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

const createIDGenerator = () => {
let lastCreateID = 0;
return function() {
lastCreateID++;
return lastCreateID;
};
};

const createIDPhoto = createIDGenerator();
const createIDUrl = createIDGenerator();

const createRandomNumber = (min, max) => Math.round(Math.random() * (max - min) + min);

const returnUniqueID = (min, max) => {
const previousValue = [];

return () => {
let uniqueId = createRandomNumber(min, max);
if(previousValue.length >= max) {
// console.error('Перебраны все числа из диапазона');
return null;
}
while (previousValue.includes(uniqueId)) {
uniqueId = createRandomNumber(min, max);
}
previousValue.push(uniqueId);
return uniqueId;
};
};

const createUniqueID = returnUniqueID(1, 1000);

const createListComments = (min, max) => {
const commentsList = [];
const iterationNumber = createRandomNumber(min, max);
for(let i = 0; i <= iterationNumber; i++) {
commentsList.push({
id: createUniqueID(),
avatar: `img/avatar-${createRandomNumber(1, 6)}.svg`,
message: COMMENTS_MESSAGES[createRandomNumber(0, 5)],
name: AUTHORS_NAMES[createRandomNumber(0, 5)],
});
}
return commentsList;
};

const createPhotoData = (quantityObject) => {
const objectList = [];
for(let i = 0; i <= quantityObject - 1; i++) {
objectList.push({
id: createIDPhoto(),
url:`photos/${createIDUrl()}.jpg`,
description: DESCRIPTIONS_PHOTO[createRandomNumber(0, 5)],
likes: createRandomNumber(QUANTITY_LIKES.MIN, QUANTITY_LIKES.MAX),
comments: createListComments(0, 30),
});
}
return objectList;
};
createPhotoData(NUMBER_OF_OBJECTS_GENERATED);

0 comments on commit b9c91f0

Please sign in to comment.