Skip to content

Commit

Permalink
Merge pull request #5 from KateSolodchuk/module5-task1
Browse files Browse the repository at this point in the history
  • Loading branch information
keksobot authored Oct 21, 2024
2 parents d92e5cd + 4f699c2 commit 22f26cb
Show file tree
Hide file tree
Showing 5 changed files with 141 additions and 125 deletions.
4 changes: 2 additions & 2 deletions index.html
Original file line number Diff line number Diff line change
Expand Up @@ -234,7 +234,7 @@ <h2 class="data-error__title">Не удалось загрузить данны
</section>
</template>

<script src="/js/functions.js"></script>
<script src="/js/main.js"></script>
<script src="./js/functions.js"></script>
<script src="./js/main.js" type="module"></script>
</body>
</html>
99 changes: 99 additions & 0 deletions js/data.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
import {getRandomInteger} from './util.js';

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

const NAMES = [
'Зина',
'Ирина',
'Арина',
'Мальвина',
'Полина',
'Марина',
'Виталина',
'Катерина',
'Георгина',
'Филипп',
];

const DESCRIPTIONS = [
'Кто на лавочке сидел',
'Кто на улицу глядел',
'Толя пел',
'Борис молчал',
'Николай ногой качал',
'Дело было вечером',
'Делать было нечего',
'Галка села на заборе',
'Кот забрался на чердак',
'Тут сказал ребятам Боря',
'Просто так',
'А у меня в кармане гвоздь!А у вас?',
'А у нас сегодня гость! А у вас?',
'А у нас сегодня кошка родила вчера котят',
'Котята выросли немножко, а есть из блюдца не хотят!',
'А у нас в квартире газ!А у вас?',
'А у нас водопровод! Вот!',
'А из нашего окна площадь Красная видна!',
'А из вашего окошка только улица немножко',
'Мы гуляли по Неглинной',
'Заходили на бульвар',
'Нам купили синий-синий презеленый красный шар!',
'А у нас огонь погас — это раз!',
'Грузовик привез дрова — это два!'
];

const MIN_LIKES = 15;
const MAX_LIKES = 200;
const MIN_COMMENTS = 0;
const MAX_COMMENTS = 30;
const MIN_AVATAR = 1;
const MAX_AVATAR = 6;
const PHOTO_LIST_LENGTH = 25;

const createComment = () => {
let id = 1;
const randomMessageIndex = getRandomInteger(0, MESSAGES.length - 1);
const randomNameIndex = getRandomInteger(0, NAMES.length - 1);

return () => {
const comment = {};
const idAvatar = getRandomInteger(MIN_AVATAR, MAX_AVATAR);
comment.id = id++;
comment.avatar = `img/avatar-${idAvatar()}.svg`;
comment.message = MESSAGES[randomMessageIndex()];
comment.name = NAMES[randomNameIndex()];

return comment;
};
};

const createPhoto = () => {
let id = 1;

return () => {
const photo = {};
const quantComments = getRandomInteger(MIN_COMMENTS, MAX_COMMENTS);
const quantLikes = getRandomInteger(MIN_LIKES, MAX_LIKES);
const randomDescriptionIndex = getRandomInteger(0, DESCRIPTIONS.length - 1);

photo.id = id;
photo.url = `photos/${id}.jpg`;
photo.description = DESCRIPTIONS[randomDescriptionIndex()];
photo.likes = quantLikes();
photo.comments = Array.from({length: quantComments()}, createComment());
id++;
return photo;

};
};

const CreatePhotoList = () => Array.from({length: PHOTO_LIST_LENGTH}, createPhoto());

export {CreatePhotoList};
35 changes: 22 additions & 13 deletions js/functions.js
Original file line number Diff line number Diff line change
@@ -1,22 +1,31 @@
function checkStringLength (string, maxLength) {
const currentLength = string.length;

if (currentLength <= maxLength) {
const checkStringLength = (string, maxLength) => {

Check failure on line 1 in js/functions.js

View workflow job for this annotation

GitHub Actions / Check

'checkStringLength' is assigned a value but never used
if (string.length <= maxLength) {
return true;
}

return false;
}
};

function checkPalindrome (str) {
const normalizedString = str.toLowerCase().replaceAll(' ', '');
const checkPalindrome = (string) => {

Check failure on line 9 in js/functions.js

View workflow job for this annotation

GitHub Actions / Check

'checkPalindrome' is assigned a value but never used
const normalizedString = string.toLowerCase().replaceAll(' ', '');
let newString = '';
const currentLength = normalizedString.length;

for (let currentIndex = currentLength - 1; currentIndex >= 0; currentIndex--) {
let currentSymbol = normalizedString[currentIndex];
newString += currentSymbol;
for (let currentIndex = normalizedString.length - 1; currentIndex >= 0; currentIndex--) {
newString += normalizedString[currentIndex];
}

return newString === normalizedString;
};

const getNumbers = (string) => {

Check failure on line 20 in js/functions.js

View workflow job for this annotation

GitHub Actions / Check

'getNumbers' is assigned a value but never used
let result = '';
string = string.toString();

for (let i = 0; i <= string.length - 1; i++) {
if (Number.isNaN(parseInt(string[i], 10)) === false) {
result += string[i];
}
}

return(newString === normalizedString);
}
return result === '' ? NaN : parseInt(result, 10);
};
113 changes: 3 additions & 110 deletions js/main.js
Original file line number Diff line number Diff line change
@@ -1,111 +1,4 @@
const MESSAGES = [
'Всё отлично!',
'В целом всё неплохо. Но не всё',
'Когда вы делаете фотографию, хорошо бы убирать палец из кадра. В конце концов это просто непрофессионально',
'Моя бабушка случайно чихнула с фотоаппаратом в руках и у неё получилась фотография лучше',
'Я поскользнулся на банановой кожуре и уронил фотоаппарат на кота и у меня получилась фотография лучше',
'Лица у людей на фотке перекошены, как будто их избивают. Как можно было поймать такой неудачный момент?!'
];
import './util.js';
import {CreatePhotoList} from './data.js';

const NAMES = [
'Зина',
'Ирина',
'Арина',
'Мальвина',
'Полина',
'Марина',
'Виталина',
'Катерина',
'Георгина',
'Филипп',
];

const DESCRIPTIONS = [
'Кто на лавочке сидел',
'Кто на улицу глядел',
'Толя пел',
'Борис молчал',
'Николай ногой качал',
'Дело было вечером',
'Делать было нечего',
'Галка села на заборе',
'Кот забрался на чердак',
'Тут сказал ребятам Боря',
'Просто так',
'А у меня в кармане гвоздь!А у вас?',
'А у нас сегодня гость! А у вас?',
'А у нас сегодня кошка родила вчера котят',
'Котята выросли немножко, а есть из блюдца не хотят!',
'А у нас в квартире газ!А у вас?',
'А у нас водопровод! Вот!',
'А из нашего окна площадь Красная видна!',
'А из вашего окошка только улица немножко',
'Мы гуляли по Неглинной',
'Заходили на бульвар',
'Нам купили синий-синий презеленый красный шар!',
'А у нас огонь погас — это раз!',
'Грузовик привез дрова — это два!'
];

const MIN_LIKES = 15;
const MAX_LIKES = 200;
const MIN_COMMENTS = 0;
const MAX_COMMENTS = 30;
const MIN_AVATAR = 1;
const MAX_AVATAR = 6;
const PHOTO_LIST_LENGTH = 25;

const getRandomInteger = (a, b) => {
const lower = Math.ceil(Math.min(a, b));
const upper = Math.floor(Math.max(a, b));
let previousResult = -1;
return () => {
const result = Math.floor(Math.random() * (upper - lower + 1) + lower);
if (previousResult !== result) {
previousResult = result;
return result;
}
return result === upper ? lower : result + 1;
};
};

const createComment = () => {
let id = 1;
const randomMessageIndex = getRandomInteger(0, MESSAGES.length - 1);
const randomNameIndex = getRandomInteger(0, NAMES.length - 1);

return () => {
const comment = {};
const idAvatar = getRandomInteger(MIN_AVATAR, MAX_AVATAR);
comment.id = id++;
comment.avatar = `img/avatar-${idAvatar()}.svg`;
comment.message = MESSAGES[randomMessageIndex()];
comment.name = NAMES[randomNameIndex()];

return comment;
};
};

const createPhoto = () => {
let id = 1;

return () => {
const photo = {};
const quantComments = getRandomInteger(MIN_COMMENTS, MAX_COMMENTS);
const quantLikes = getRandomInteger(MIN_LIKES, MAX_LIKES);
const randomDescriptionIndex = getRandomInteger(0, DESCRIPTIONS.length - 1);

photo.id = id;
photo.url = `photos/${id}.jpg`;
photo.description = DESCRIPTIONS[randomDescriptionIndex()];
photo.likes = quantLikes();
photo.comments = Array.from({length: quantComments()}, createComment());
id++;
return photo;

};
};

const photoList = Array.from({length: PHOTO_LIST_LENGTH}, createPhoto());

console.log(photoList);
console.log(CreatePhotoList());

Check failure on line 4 in js/main.js

View workflow job for this annotation

GitHub Actions / Check

Unexpected console statement
15 changes: 15 additions & 0 deletions js/util.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
const getRandomInteger = (a, b) => {
const lower = Math.ceil(Math.min(a, b));
const upper = Math.floor(Math.max(a, b));
let previousResult = -1;
return () => {
const result = Math.floor(Math.random() * (upper - lower + 1) + lower);
if (previousResult !== result) {
previousResult = result;
return result;
}
return result === upper ? lower : result + 1;
};
};

export {getRandomInteger};

0 comments on commit 22f26cb

Please sign in to comment.