This repository has been archived by the owner on Apr 1, 2024. It is now read-only.
-
-
Notifications
You must be signed in to change notification settings - Fork 1
/
export.html
100 lines (93 loc) · 3.58 KB
/
export.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Download Bluesky data export</title>
<script type="module" src="./src/main-export.ts"></script>
</head>
<body>
<div class="min-h-screen bg-neutral-950 text-sm text-white">
<fieldset
id="fieldset"
disabled
class="mx-auto flex min-h-screen max-w-xl flex-col border-neutral-700 sm:border-x"
>
<div class="p-4">
<h1 class="text-base font-semibold">Export Bluesky data</h1>
<p>Enter your Bluesky handle or DID here to retrieve one.</p>
<div class="flex gap-1 text-neutral-400">
<span
>built by
<a href="https://bsky.app/profile/mary.my.id" class="text-blue-400 hover:underline"
>mary</a
></span
>
<span aria-hidden="true">|</span>
<a href="https://mary.my.id/donate.html" class="text-blue-400 hover:underline">donate</a>
<span aria-hidden="true">|</span>
<a href="https://github.com/mary-ext/skeetgen" class="text-blue-400 hover:underline"
>source code</a
>
</div>
</div>
<noscript>
<div class="bg-yellow-900 px-4 py-3">
<h2 class="font-semibold">Please enable JavaScript.</h2>
<p>We can't function without it, as the app entirely runs on your device, sorry!</p>
</div>
</noscript>
<export-data-form class="contents">
<div
class="bg-yellow-900 px-4 py-3"
style="display: none"
data-target="export-data-form.fsa_warning"
>
<h2 class="font-semibold">Your browser doesn't support Filesystem Access API.</h2>
<p>
It will still work, however, you may see very high memory usage when exporting a profile with a
large amount of posts and images as it has to collect them all in memory. Consider temporarily
switching to Chrome for this.
</p>
</div>
<p class="p-4 opacity-75">
Note that these data exports aren't useful on its own, this site retrieves your repository as well
as your uploaded media files, and stores it as is without any additional processing. It's intended
to be consumed by other tools.
</p>
<form class="p-4" data-target="export-data-form.form">
<div class="mb-4">
<label class="flex items-center gap-3">
<input
type="checkbox"
name="with_media"
checked
class="peer h-4 w-4 rounded border-neutral-700 bg-neutral-900 text-blue-800 focus:ring-2 focus:ring-blue-700 focus:ring-offset-2 focus:ring-offset-neutral-900 disabled:opacity-50"
/>
<span class="peer-disabled:opacity-50">Include media files like images</span>
</label>
</div>
<div class="flex items-center gap-2">
<input
type="text"
name="identifier"
required
title="Bluesky handle or DID"
pattern="@?([a-zA-Z0-9\-]+(?:\.[a-zA-Z0-9\-]+)*(?:\.[a-zA-Z]+))|did:[a-z]+:[a-zA-Z0-9._\-]+"
placeholder="example.bsky.social"
class="rounded border border-neutral-700 bg-neutral-900 px-3 py-2 text-sm leading-none placeholder:text-white placeholder:opacity-50 disabled:opacity-50"
/>
<button
type="submit"
class="rounded bg-blue-900 px-3 py-2 outline-none ring-blue-700 ring-offset-2 ring-offset-neutral-900 hover:bg-blue-700 focus:ring-2 disabled:pointer-events-none disabled:opacity-50"
>
Download
</button>
</div>
<div class="mt-4 empty:hidden" data-target="export-data-form.logger"></div>
</form>
</export-data-form>
</fieldset>
</div>
</body>
</html>