Spaces:
Running
Running
async () => { | |
async function uploadFile(file){ | |
const UPLOAD_URL = 'https://huggingface.co/uploads'; | |
const response = await fetch(UPLOAD_URL, { | |
method: 'POST', | |
headers: { | |
'Content-Type': file.type, | |
'X-Requested-With': 'XMLHttpRequest', | |
}, | |
body: file, /// <- File inherits from Blob | |
}); | |
const url = await response.text(); | |
return url; | |
} | |
async function getInputImgFile(imgEl){ | |
const res = await fetch(imgEl.src); | |
const blob = await res.blob(); | |
const imgId = Date.now() % 200; | |
const isPng = imgEl.src.startsWith(`data:image/png`); | |
if(isPng){ | |
const fileName = `sd-perception-${{imgId}}.png`; | |
return new File([blob], fileName, { type: 'image/png' }); | |
}else{ | |
const fileName = `sd-perception-${{imgId}}.jpg`; | |
return new File([blob], fileName, { type: 'image/jpeg' }); | |
} | |
} | |
// const gradioEl = document.querySelector('body > gradio-app'); | |
const gradioEl = document.querySelector("gradio-app"); | |
const inputTxt = gradioEl.querySelector('#q-input textarea').value; | |
let outputTxt = gradioEl.querySelector('#q-output .codemirror-wrapper .cm-scroller > div:nth-of-type(2)').innerText; | |
outputTxt = `<pre>${outputTxt}</pre>` | |
const titleLength = 150; | |
let titleTxt = inputTxt; | |
if(titleTxt.length > titleLength){ | |
titleTxt = titleTxt.slice(0, titleLength) + ' ...'; | |
} | |
const shareBtnEl = gradioEl.querySelector('#share-btn'); | |
const shareIconEl = gradioEl.querySelector('#share-btn-share-icon'); | |
const loadingIconEl = gradioEl.querySelector('#share-btn-loading-icon'); | |
if(!inputTxt || !outputTxt){ | |
return; | |
}; | |
shareBtnEl.style.pointerEvents = 'none'; | |
shareIconEl.style.display = 'none'; | |
loadingIconEl.style.removeProperty('display'); | |
const descriptionMd = `### Question: | |
${inputTxt} | |
### Answer: | |
${outputTxt}`; | |
const params = { | |
title: titleTxt, | |
description: descriptionMd, | |
}; | |
const paramsStr = Object.entries(params) | |
.map(([key, value]) => `${encodeURIComponent(key)}=${encodeURIComponent(value)}`) | |
.join('&'); | |
window.open(`https://huggingface.co/spaces/fisharp/starcoder-playground/discussions/new?${paramsStr}`, '_blank'); | |
shareBtnEl.style.removeProperty('pointer-events'); | |
shareIconEl.style.removeProperty('display'); | |
loadingIconEl.style.display = 'none'; | |
} | |