[feat] added request methods

This commit is contained in:
kwaroran
2023-05-10 00:57:04 +09:00
parent 34f4d7bedc
commit 478d337d4b
6 changed files with 177 additions and 3 deletions

View File

@@ -476,9 +476,19 @@
<span class="text-neutral-200">{language.requestretrys}</span>
<input class="text-neutral-200 mb-4 p-2 bg-transparent input-text focus:bg-selected text-sm" type="number" min={0} max="20" bind:value={$DataBase.requestRetrys}>
<span class="text-neutral-200">Request Method</span>
<select class="bg-transparent input-text text-gray-200 appearance-none text-sm mb-4" bind:value={$DataBase.requestmet}>
<option value="normal" class="bg-darkbg appearance-none">Normal</option>
<option value="proxy" class="bg-darkbg appearance-none">Proxy</option>
<option value="plain" class="bg-darkbg appearance-none">Plain Fetch</option>
</select>
{#if isTauri}
<span class="text-neutral-200 mt-2">Request Lib</span>
{#if $DataBase.requestmet === 'proxy'}
<span class="text-neutral-200">Request Proxy URL</span>
<input class="text-neutral-200 mb-4 p-2 bg-transparent input-text focus:bg-selected text-sm" bind:value={$DataBase.requestproxy}>
{/if}
{#if isTauri && $DataBase.requestmet === 'normal'}
<span class="text-neutral-200">Request Lib</span>
<select class="bg-transparent input-text text-gray-200 appearance-none text-sm" bind:value={$DataBase.requester}>
<option value="new" class="bg-darkbg appearance-none">Reqwest</option>
<option value="old" class="bg-darkbg appearance-none">Tauri</option>

View File

@@ -172,6 +172,12 @@ export function setDatabase(data:Database){
if(checkNullish(data.bias)){
data.bias = []
}
if(checkNullish(data.requestmet)){
data.requestmet = 'normal'
}
if(checkNullish(data.requestproxy)){
data.requestproxy = ''
}
if(checkNullish(data.sdConfig)){
data.sdConfig = {
width:512,
@@ -340,6 +346,8 @@ export interface Database{
emotionPrompt2:string
useSayNothing:boolean
didFirstSetup: boolean
requestmet: string
requestproxy: string
}

View File

@@ -310,8 +310,84 @@ export async function globalFetch(url:string, arg:{body?:any,headers?:{[key:stri
}
}
if(isTauri){
if(db.requestmet === 'proxy'){
try {
let headers = arg.headers ?? {}
if(!headers["Content-Type"]){
headers["Content-Type"] = `application/json`
}
const furl = new URL(db.requestproxy)
furl.pathname = url
const da = await fetch(furl, {
body: JSON.stringify(arg.body),
headers: arg.headers,
method: method
})
if(arg.rawResponse){
addFetchLog("Uint8Array Response", da.ok)
return {
ok: da.ok,
data: new Uint8Array(await da.arrayBuffer())
}
}
else{
const dat = await da.json()
addFetchLog(dat, da.ok)
return {
ok: da.ok,
data: dat
}
}
} catch (error) {
return {
ok: false,
data: `${error}`,
}
}
}
if(db.requestmet === 'plain'){
try {
let headers = arg.headers ?? {}
if(!headers["Content-Type"]){
headers["Content-Type"] = `application/json`
}
const furl = new URL(url)
const da = await fetch(furl, {
body: JSON.stringify(arg.body),
headers: arg.headers,
method: method
})
if(arg.rawResponse){
addFetchLog("Uint8Array Response", da.ok)
return {
ok: da.ok,
data: new Uint8Array(await da.arrayBuffer())
}
}
else{
const dat = await da.json()
addFetchLog(dat, da.ok)
return {
ok: da.ok,
data: dat
}
}
} catch (error) {
return {
ok: false,
data: `${error}`,
}
}
}
if(isTauri){
if(db.requester === 'new'){
try {
let preHeader = arg.headers ?? {}