Spaces:
Runtime error
Runtime error
Create app.py
Browse files
app.py
ADDED
|
@@ -0,0 +1,79 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
from fastapi import FastAPI, Response
|
| 2 |
+
from fastapi.responses import HTMLResponse, RedirectResponse
|
| 3 |
+
import uvicorn
|
| 4 |
+
|
| 5 |
+
app = FastAPI()
|
| 6 |
+
|
| 7 |
+
# Extracted GitHub cookies from the provided file
|
| 8 |
+
GITHUB_COOKIES = [
|
| 9 |
+
{"name": "_octo", "value": "GH1.1.1252590083.1772014032", "domain": ".github.com"},
|
| 10 |
+
{"name": "_device_id", "value": "514b920e5ffb9ea8b55dc91eeb2c7669", "domain": ".github.com"},
|
| 11 |
+
{"name": "logged_in", "value": "yes", "domain": ".github.com"},
|
| 12 |
+
{"name": "dotcom_user", "value": "bosssamson17-source", "domain": ".github.com"},
|
| 13 |
+
{"name": "user_session", "value": "hALKed-Y82YuiqU8AyfTAoipQ607r-cPRcC8h8W8XfF-_fZ8", "domain": ".github.com"},
|
| 14 |
+
{"name": "__Host-user_session_same_site", "value": "hALKed-Y82YuiqU8AyfTAoipQ607r-cPRcC8h8W8XfF-_fZ8", "domain": ".github.com"},
|
| 15 |
+
{"name": "_gh_sess", "value": "NFGr8TPhi3PjC%2FXxaivj%2FXEa2gVXp%2FDfyeu7yocJO8fNgQU1xykc3as%2Br%2BdfwqtQy6I70pZy9TGrS3cvpDkuF%2BYqdEOtkMw0%2Ba0QaPff7tNLNpMTWQl%2FGS1Vn5RfG1WxMlxTb8RBFlh3sjyTXDCKh4w8HyB9PLRWIHuNKzSORsPBdhicIocTYrv2WtlWxbpGlqm2RW12uLCYpjQWRkblvzxPAgTpc1WnErTQgw3ed2kVwV6Wvo1%2BAfs6Pc5tVClWOEe7rD%2FD%2FcLTYYjkBO2OJE3Ehymqtfa%2Bmis2ydm%2Fq1OHNa5iPge2i7SX5rqXzUm%2BnGOuWwPfFEBwEPy4o2lvRR%2BK2t%2FFHuGrz2I5dA28wm68GXV%2BX0BMA0tIONtlm8%2BtjxNDqn2o31vCgEll6PEde%2FPmFok%3D--FTsBrb%2Bu4uFM7AYM--VsfnRGaCUHwdCxN1WHOWyA%3D%3D", "domain": ".github.com"},
|
| 16 |
+
]
|
| 17 |
+
|
| 18 |
+
TARGET_URL = "https://bug-free-goggles-97p77ppq5vpq2p65v.github.dev/"
|
| 19 |
+
|
| 20 |
+
@app.get("/", response_class=HTMLResponse)
|
| 21 |
+
async def index():
|
| 22 |
+
html_content = f"""
|
| 23 |
+
<!DOCTYPE html>
|
| 24 |
+
<html lang="en">
|
| 25 |
+
<head>
|
| 26 |
+
<meta charset="UTF-8">
|
| 27 |
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
| 28 |
+
<title>GitHub Codespace Redirect</title>
|
| 29 |
+
<script src="https://cdn.tailwindcss.com"></script>
|
| 30 |
+
<style>
|
| 31 |
+
body {{
|
| 32 |
+
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
|
| 33 |
+
}}
|
| 34 |
+
</style>
|
| 35 |
+
</head>
|
| 36 |
+
<body class="h-screen flex items-center justify-center text-white">
|
| 37 |
+
<div class="bg-white/10 backdrop-blur-md p-10 rounded-2xl shadow-2xl border border-white/20 text-center max-w-md w-full">
|
| 38 |
+
<h1 class="text-3xl font-bold mb-6">Welcome Back</h1>
|
| 39 |
+
<p class="mb-8 text-white/80">Click the button below to access your GitHub Codespace instantly without signing in.</p>
|
| 40 |
+
<button onclick="handleRedirect()" class="w-full bg-white text-indigo-600 font-bold py-4 px-6 rounded-xl hover:bg-indigo-50 transition-colors duration-300 shadow-lg flex items-center justify-center gap-2">
|
| 41 |
+
<svg class="w-6 h-6" fill="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.041-1.412-4.041-1.412-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z"/></svg>
|
| 42 |
+
Open Codespace
|
| 43 |
+
</button>
|
| 44 |
+
<div id="status" class="mt-4 text-sm text-white/60 hidden">
|
| 45 |
+
Redirecting...
|
| 46 |
+
</div>
|
| 47 |
+
</div>
|
| 48 |
+
|
| 49 |
+
<script>
|
| 50 |
+
const cookies = [
|
| 51 |
+
{{"name": "_octo", "value": "GH1.1.1252590083.1772014032"}},
|
| 52 |
+
{{"name": "_device_id", "value": "514b920e5ffb9ea8b55dc91eeb2c7669"}},
|
| 53 |
+
{{"name": "logged_in", "value": "yes"}},
|
| 54 |
+
{{"name": "dotcom_user", "value": "bosssamson17-source"}},
|
| 55 |
+
{{"name": "user_session", "value": "hALKed-Y82YuiqU8AyfTAoipQ607r-cPRcC8h8W8XfF-_fZ8"}},
|
| 56 |
+
{{"name": "__Host-user_session_same_site", "value": "hALKed-Y82YuiqU8AyfTAoipQ607r-cPRcC8h8W8XfF-_fZ8"}},
|
| 57 |
+
{{"name": "_gh_sess", "value": "NFGr8TPhi3PjC%2FXxaivj%2FXEa2gVXp%2FDfyeu7yocJO8fNgQU1xykc3as%2Br%2BdfwqtQy6I70pZy9TGrS3cvpDkuF%2BYqdEOtkMw0%2Ba0QaPff7tNLNpMTWQl%2FGS1Vn5RfG1WxMlxTb8RBFlh3sjyTXDCKh4w8HyB9PLRWIHuNKzSORsPBdhicIocTYrv2WtlWxbpGlqm2RW12uLCYpjQWRkblvzxPAgTpc1WnErTQgw3ed2kVwV6Wvo1%2BAfs6Pc5tVClWOEe7rD%2FD%2FcLTYYjkBO2OJE3Ehymqtfa%2Bmis2ydm%2Fq1OHNa5iPge2i7SX5rqXzUm%2BnGOuWwPfFEBwEPy4o2lvRR%2BK2t%2FFHuGrz2I5dA28wm68GXV%2BX0BMA0tIONtlm8%2BtjxNDqn2o31vCgEll6PEde%2FPmFok%3D--FTsBrb%2Bu4uFM7AYM--VsfnRGaCUHwdCxN1WHOWyA%3D%3D"}}
|
| 58 |
+
];
|
| 59 |
+
|
| 60 |
+
function handleRedirect() {{
|
| 61 |
+
document.getElementById('status').classList.remove('hidden');
|
| 62 |
+
|
| 63 |
+
// Set cookies for github.com domain
|
| 64 |
+
cookies.forEach(c => {{
|
| 65 |
+
document.cookie = `${{c.name}}=${{c.value}}; path=/; domain=.github.com; Secure; SameSite=Lax`;
|
| 66 |
+
}});
|
| 67 |
+
|
| 68 |
+
setTimeout(() => {{
|
| 69 |
+
window.location.href = "{TARGET_URL}";
|
| 70 |
+
}}, 500);
|
| 71 |
+
}}
|
| 72 |
+
</script>
|
| 73 |
+
</body>
|
| 74 |
+
</html>
|
| 75 |
+
"""
|
| 76 |
+
return HTMLResponse(content=html_content)
|
| 77 |
+
|
| 78 |
+
if __name__ == "__main__":
|
| 79 |
+
uvicorn.run(app, host="0.0.0.0", port=8000)
|