Client side atproto account migrator in your web browser, along with services for backups and adversarial migrations. pdsmoover.com
pds atproto migrations moo cow
at main 58 lines 3.8 kB view raw
1<!doctype html> 2<html lang="en"> 3<head> 4 <meta charset="UTF-8"/> 5 <link rel="icon" type="image/webp" href="/halloween_moover.webp"/> 6 {% block meta %}{% endblock %} 7 8 <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/> 9 <title>PDS MOOver</title> 10 <link rel="stylesheet" href="/style.css?new"> 11 <script src="https://unpkg.com/alpinejs" defer></script> 12 13 14{{ layout_context.script_tags | safe }} 15 16{% if let Some(hmr_script) = layout_context.vite_hmr_url %} 17 {{hmr_script | safe}} 18{% endif %} 19 20</head> 21<body> 22<header class="navbar" role="banner" x-data="{ open: false }"> 23 <div class="navbar-inner"> 24 <a class="brand" href="/">PDS MOOver</a> 25 <button class="navbar-toggle" @click="open = !open" :aria-expanded="open.toString()" aria-controls="primary-navigation" aria-label="Toggle navigation"> 26 27 <svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24.9512 17.1997"> 28 <g> 29 <rect height="17.1997" opacity="0" width="24.9512" x="0" y="0"/> 30 <path d="M8.1543 16.9678L23.5962 16.9678C24.1455 16.9678 24.5972 16.5405 24.5972 15.9912C24.5972 15.4297 24.1455 15.0024 23.5962 15.0024L8.1543 15.0024C7.59277 15.0024 7.16553 15.4297 7.16553 15.9912C7.16553 16.5405 7.59277 16.9678 8.1543 16.9678Z" fill="white" fill-opacity="0.85"/> 31 <path d="M1.2085 17.1997L3.2959 17.1997C3.96729 17.1997 4.5166 16.6504 4.5166 15.9912C4.5166 15.3076 3.96729 14.7705 3.2959 14.7705L1.2085 14.7705C0.537109 14.7705 0 15.3076 0 15.9912C0 16.6504 0.537109 17.1997 1.2085 17.1997Z" fill="white" fill-opacity="0.85"/> 32 <path d="M8.1543 9.59473L23.5962 9.59473C24.1455 9.59473 24.5972 9.15527 24.5972 8.60596C24.5972 8.05664 24.1455 7.62939 23.5962 7.62939L8.1543 7.62939C7.59277 7.62939 7.16553 8.05664 7.16553 8.60596C7.16553 9.15527 7.59277 9.59473 8.1543 9.59473Z" fill="white" fill-opacity="0.85"/> 33 <path d="M1.2085 9.82666L3.2959 9.82666C3.96729 9.82666 4.5166 9.27734 4.5166 8.60596C4.5166 7.93457 3.96729 7.39746 3.2959 7.39746L1.2085 7.39746C0.537109 7.39746 0 7.93457 0 8.60596C0 9.27734 0.537109 9.82666 1.2085 9.82666Z" fill="white" fill-opacity="0.85"/> 34 <path d="M8.1543 2.20947L23.5962 2.20947C24.1455 2.20947 24.5972 1.78223 24.5972 1.23291C24.5972 0.671387 24.1455 0.244141 23.5962 0.244141L8.1543 0.244141C7.59277 0.244141 7.16553 0.671387 7.16553 1.23291C7.16553 1.78223 7.59277 2.20947 8.1543 2.20947Z" fill="white" fill-opacity="0.85"/> 35 <path d="M1.2085 2.44141L3.2959 2.44141C3.96729 2.44141 4.5166 1.89209 4.5166 1.23291C4.5166 0.549316 3.96729 0.012207 3.2959 0.012207L1.2085 0.012207C0.537109 0.012207 0 0.549316 0 1.23291C0 1.89209 0.537109 2.44141 1.2085 2.44141Z" fill="white" fill-opacity="0.85"/> 36 </g> 37 </svg> 38 39 </button> 40 <nav id="primary-navigation" class="nav-links" :class="open ? 'open' : ''" aria-label="Primary" @click="open = false"> 41 <a href="/info" class="{% if layout_context.current_path == "/info" %}active{% endif %}">Info</a> 42 <a href="/moover" class="{% if layout_context.current_path == "/moover" %}active{% endif %}">Moover</a> 43 <a href="/missing-blobs" class="{% if layout_context.current_path == "/missing-blobs" %}active{% endif %}">Missing Blobs</a> 44 <a href="/turn-off" class="{% if layout_context.current_path == "/turn-off" %}active{% endif %}">Turn Off</a> 45 <a href="/backups" class="{% if layout_context.current_path == "/backups" %}active{% endif %}">Backups</a> 46 <a href="/restore" class="{% if layout_context.current_path == "/restore" %}active{% endif %}">Restore</a> 47 <a href="/terms" class="{% if layout_context.current_path == "/terms" %}active{% endif %}">Legal</a> 48 49 </nav> 50 </div> 51</header> 52 53<main class="page-content" role="main"> 54 {% block content %}{% endblock %} 55</main> 56</body> 57</html> 58