Risuai 0.6.3 first commit

This commit is contained in:
kwaroran
2023-05-07 12:41:45 +09:00
parent 50e5e1d917
commit 2c5c7d2694
98 changed files with 15070 additions and 0 deletions

49
functions/drive.js Normal file
View File

@@ -0,0 +1,49 @@
export function onRequest(context) {
const request = context.request
return drive(request, context.env);
}
const encodedRedirectUri = encodeURIComponent("https://risu.pages.dev/")
async function drive(request, env){
const url = new URL(request.url);
const headerE = {
"Access-Control-Allow-Origin": "https://risu.pages.dev",
"Access-Control-Allow-Headers": "*"
}
const params = url.searchParams
const code = params.get('code')
if(!code){
return new Response("No code provided", {
status: 400,
headers: headerE
})
}
const resp = await fetch("https://oauth2.googleapis.com/token", {
method: 'POST',
headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
body: `code=${code}&client_id=${env.CLIENT_ID}&client_secret=${env.CLIENT_SECRET}&redirect_uri=${encodedRedirectUri}&grant_type=authorization_code`
})
const json = await resp.json()
if(json.access_token && json.expires_in){
return new Response(JSON.stringify({
access_token: json.access_token,
expires_in: json.expires_in
}), {
status: 200,
headers: headerE
})
}
else{
return new Response("Response Failed", {
status: 400,
headers: headerE
})
}
}

55
functions/proxy.js Normal file
View File

@@ -0,0 +1,55 @@
export function onRequest(context) {
const request = context.request
return fetchProxy(request);
}
const blocked_region = []
async function fetchProxy(request) {
const region = (request.headers.get('cf-ipcountry') ?? '').toUpperCase();
let response = null;
let rurl = new URL(request.url);
const urlParam = rurl.searchParams.get('url')
if(!urlParam){
return new Response('Access denied', {
status: 403
});
}
if (blocked_region.includes(region)) {
response = new Response('Access denied', {
status: 403
});
} else {
let method = request.method;
let requestHeaders = new Headers(request.headers);
let originalResponse = await fetch(urlParam, {
method: method,
headers: requestHeaders,
body: request.body
})
const responseHeaders = originalResponse.headers;
const status = originalResponse.status;
let newResponseHeaders = new Headers(responseHeaders);
newResponseHeaders.set('access-control-allow-origin', 'https://risu.pages.dev/');
newResponseHeaders.set('access-control-allow-credentials', "true");
newResponseHeaders.delete('content-security-policy');
newResponseHeaders.delete('content-security-policy-report-only');
newResponseHeaders.delete('clear-site-data');
const originalBody = originalResponse.body
response = new Response(originalBody, {
status,
headers: newResponseHeaders
})
}
return response;
}