Напиши расширение для турбоварп где будет через лю...
Создано: 16 августа 2025 г.
Создано: 16 августа 2025 г.
Напиши расширение для турбоварп где будет через любое апи поиска без подписок токенов и тд отдавать json по запросу (блок (json по запросу (запрос)))
Вот пример расширения для TurboWarp, реализующего блок json по запросу (запрос)
с использованием свободного API, которое не требует токена, подписки или регистрации. Мы будем использовать открытое API, например DuckDuckGo Instant Answer API, которое отдаёт JSON по запросу.
Добавляет блок:
(json по запросу [запрос])
Который возвращает JSON-ответ на основе строки запроса.
javascriptclass JsonSearchExtension { getInfo() { return { id: 'jsonSearch', name: 'JSON Поисковик', blocks: [ { opcode: 'getJson', blockType: Scratch.BlockType.REPORTER, text: 'json по запросу [QUERY]', arguments: { QUERY: { type: Scratch.ArgumentType.STRING, defaultValue: 'котики', }, }, }, ], }; } async getJson(args) { const query = encodeURIComponent(args.QUERY.trim()); const url = `https://api.duckduckgo.com/?q=${query}&format=json&no_redirect=1&no_html=1`; try { const response = await fetch(url); if (!response.ok) throw new Error(`Ошибка: ${response.status}`); const data = await response.json(); // Возврат в виде JSON-строки (ограничено Scratch) return JSON.stringify(data); } catch (error) { return `Ошибка: ${error.message}`; } } } Scratch.extensions.register(new JsonSearchExtension());
json по запросу (что-то)
— он вернёт строку с JSON-ответом.котики
погода в Москве
кто такой Эйнштейн
Хочешь, чтобы я добавил поддержку разбора JSON прямо в блоки (например, доставал поле AbstractText
или RelatedTopics
)?
faled of fetch
Если у тебя не работает fetch
(получаешь ошибку failed to fetch
), возможные причины:
failed to fetch
fetch
https://api.duckduckgo.com
) не поддерживает CORS, и не будет работать в браузере напрямую.🔧 Решение:
https://api.publicapis.org/entries
Это открытый API со списком публичных API. Поддерживает CORS, работает без токена.
javascriptclass JsonSearchExtension { getInfo() { return { id: 'jsonSearch', name: 'JSON Поисковик', blocks: [ { opcode: 'getJson', blockType: Scratch.BlockType.REPORTER, text: 'json по запросу [QUERY]', arguments: { QUERY: { type: Scratch.ArgumentType.STRING, defaultValue: 'cat', }, }, }, ], }; } async getJson(args) { const query = encodeURIComponent(args.QUERY.trim()); const url = `https://api.publicapis.org/entries?title=${query}`; try { const response = await fetch(url); if (!response.ok) throw new Error(`Ошибка: ${response.status}`); const data = await response.json(); return JSON.stringify(data.entries.slice(0, 3)); // Ограничим до 3 результатов } catch (error) { return `Ошибка: ${error.message}`; } } } Scratch.extensions.register(new JsonSearchExtension());
cat
weather
news
Можно использовать https://api.dictionaryapi.dev/ — тоже не требует токена и работает с CORS.
Хочешь, чтобы я переписал код под этот словарь API или другой, безопасный для использования?