// Обработка изображения через Google Vision API для анализа async function analyzeImage(imageData) { const visionAPIUrl = 'https://vision.googleapis.com/v1/images:annotate?key=AIzaSyCO9pOMdLJiXGHKptcnAAXi8aUdAshbg-s'; const response = await fetch(visionAPIUrl, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ requests: [ { image: { content: imageData }, features: [{ type: 'LABEL_DETECTION' }] } ] }) }); const result = await response.json(); return result.responses[0].labelAnnotations.map(label => label.description).join(' '); } // Поиск в Airtable по описанию async function searchInAirtable(description) { const airtableUrl = 'https://api.airtable.com/v0/appUnbZwjYVfE7oMR/YOUR_TABLE_NAME'; const airtableToken = 'Bearer pat3LBnQ6krx6PV28.1d49bd3f076a14845a326b4f71f1c18090dd76144c4b8df05fc29460d062c09c'; const response = await fetch(`${airtableUrl}?filterByFormula=SEARCH('${description}', {GVA})`, { headers: { Authorization: airtableToken } }); const data = await response.json(); return data.records; } // Отображение карточек в Zero Block с адаптивностью function renderCards(records) { const zeroBlock = document.querySelector('#rec825180610'); zeroBlock.innerHTML = ''; const breakpoints = [1200, 960, 640, 480, 320]; const cardsPerRow = [6, 4, 3, 2, 2]; let cardsInRow = cardsPerRow[0]; for (let i = 0; i < breakpoints.length; i++) { if (window.innerWidth <= breakpoints[i]) { cardsInRow = cardsPerRow[i]; } } records.forEach((record, index) => { const card = document.createElement('div'); card.classList.add('card'); // Добавляем картинку const img = document.createElement('img'); img.src = record.fields['Image URL']; card.appendChild(img); // Добавляем тексты const likes = document.createElement('div'); likes.classList.add('likes'); likes.textContent = record.fields['Кол во лайков (from CATALOG)']; card.appendChild(likes); const number = document.createElement('div'); number.classList.add('Number'); number.textContent = record.fields['Number (from CATALOG)']; card.appendChild(number); const author = document.createElement('div'); author.classList.add('n-k'); author.textContent = record.fields['Nameautor (from CATALOG)']; card.appendChild(author); // Добавляем ссылки const link1 = document.createElement('a'); link1.classList.add('goto'); link1.href = record.fields['ССЫЛКА ДЛЯ КНОПКИ 1 (from CATALOG)']; link1.textContent = 'Перейти'; card.appendChild(link1); const link2 = document.createElement('a'); link2.classList.add('blike'); link2.href = record.fields['ССЫЛКА ДЛЯ ЛАЙКА (НА СТРАНИЦУ ТОВАРА)']; link2.textContent = 'Лайк'; card.appendChild(link2); zeroBlock.appendChild(card); }); // CSS для адаптивности zeroBlock.style.display = 'flex'; zeroBlock.style.flexWrap = 'wrap'; zeroBlock.querySelectorAll('.card').forEach(card => { card.style.flex = `0 0 calc(100% / ${cardsInRow} - 10px)`; }); }
Guides
contacts
Menu
Guides
contacts
Menu
Made on
Tilda