[READ-ONLY] Mirror of https://github.com/flo-bit/skywatched. review movies and tv shows, based on at proto skywatched.app
0

Configure Feed

Select the types of activity you want to include in your feed.

refactor

+41 -136
-14
scripts/author-dids.json
··· 1 - [ 2 - "did:plc:257wekqxg4hyapkq6k47igmp", 3 - "did:plc:wfml3smwyvohotnywklys5uq", 4 - "did:plc:myrtyr2rsjiivzlp5m6qevv5", 5 - "did:plc:xv2x4dimpe3zukzuynblaiyt", 6 - "did:plc:haldrwdq4aea5klterbxzsfs", 7 - "did:plc:izttpdp3l6vss5crelt5kcux", 8 - "did:plc:c764uyv2vgzswy5gpc4jgknf", 9 - "did:plc:2huehxznewvgzh3vknb36x5z", 10 - "did:plc:46c3ur7daizungsgji73qfky", 11 - "did:plc:sjxrdgjiotxnk6wapajdbn55", 12 - "did:plc:6x3sa4qcuhtc4yky2f6eu2ki", 13 - "did:plc:gysemcjbbnjru4f7reznddpk" 14 - ]
src/lib/Components/Avatar.svelte src/lib/Components/User/Avatar.svelte
src/lib/Components/BaseHeadTags.svelte src/lib/Components/Layout/BaseHeadTags.svelte
+1 -1
src/lib/Components/Container.svelte src/lib/Components/Layout/Container.svelte
··· 1 1 <script lang="ts"> 2 - import { cn } from '../utils'; 2 + import { cn } from '$lib/utils'; 3 3 4 4 const { children, class: className }: { children: () => any; class?: string } = $props(); 5 5 </script>
src/lib/Components/CrosspostModal.svelte src/lib/Components/Modals/CrosspostModal.svelte
src/lib/Components/Footer.svelte src/lib/Components/Layout/Footer.svelte
src/lib/Components/Input.svelte src/lib/Components/UI/Input.svelte
src/lib/Components/ItemCard.svelte src/lib/Components/Items/ItemCard.svelte
+1 -1
src/lib/Components/ItemsGrid.svelte src/lib/Components/Items/ItemsGrid.svelte
··· 1 1 <script lang="ts"> 2 - import { cn } from '../utils'; 2 + import { cn } from '$lib/utils'; 3 3 import ItemCard from './ItemCard.svelte'; 4 4 5 5 const {
+1 -1
src/lib/Components/ItemsList.svelte src/lib/Components/Items/ItemsList.svelte
··· 1 1 <script lang="ts"> 2 - import { cn } from '../utils'; 2 + import { cn } from '$lib/utils'; 3 3 import ItemCard from './ItemCard.svelte'; 4 4 5 5 const {
src/lib/Components/LoginModal.svelte src/lib/Components/Modals/LoginModal.svelte
+1 -1
src/lib/Components/Logo.svelte src/lib/Components/UI/Logo.svelte
··· 1 1 <script lang="ts"> 2 - import { cn } from '../utils'; 2 + import { cn } from '$lib/utils'; 3 3 4 4 let { class: className }: { class: string } = $props(); 5 5 </script>
src/lib/Components/Note.svelte src/lib/Components/Items/Note.svelte
src/lib/Components/OptionButton.svelte src/lib/Components/Modals/OptionMenu.svelte
src/lib/Components/Profile.svelte src/lib/Components/User/Profile.svelte
+2 -2
src/lib/Components/RateMovieModal.svelte src/lib/Components/Modals/RateMovieModal.svelte
··· 1 1 <script lang="ts"> 2 2 import { crosspostModal, rateMovieModal, settings, watchedItems } from '$lib/state.svelte'; 3 3 import { toast } from 'svelte-sonner'; 4 - import Rating from './Rating.svelte'; 5 - import SearchCombobox from './SearchCombobox.svelte'; 4 + import Rating from '../Items/Rating.svelte'; 5 + import SearchCombobox from '../UI/SearchCombobox.svelte'; 6 6 7 7 let rating = $state(rateMovieModal.selectedItem.currentRating ?? 0); 8 8 let review = $state(rateMovieModal.selectedItem.currentReview ?? '');
src/lib/Components/Rating.svelte src/lib/Components/Items/Rating.svelte
+2 -2
src/lib/Components/ReviewCard.svelte src/lib/Components/Items/ReviewCard.svelte
··· 2 2 import type { MainRecord } from '$lib/db'; 3 3 import { toast } from 'svelte-sonner'; 4 4 import Rating from './Rating.svelte'; 5 - import RelativeTime from './relative-time/RelativeTime.svelte'; 5 + import RelativeTime from '../Utils/relative-time/RelativeTime.svelte'; 6 6 import { nameToId } from '$lib/utils'; 7 - import OptionButton from './OptionButton.svelte'; 7 + import OptionButton from '../Modals/OptionMenu.svelte'; 8 8 // import { crosspostModal } from '$lib/state.svelte'; 9 9 10 10 let { data, showMovieDetails = true }: { data: MainRecord; showMovieDetails?: boolean } =
src/lib/Components/ReviewList.svelte src/lib/Components/Items/ReviewList.svelte
src/lib/Components/SearchCombobox.svelte src/lib/Components/UI/SearchCombobox.svelte
src/lib/Components/Select.svelte src/lib/Components/UI/Select.svelte
src/lib/Components/SelectItem.svelte src/lib/Components/UI/SelectItem.svelte
+1 -2
src/lib/Components/Sidebar.svelte src/lib/Components/Layout/Sidebar.svelte
··· 1 1 <script lang="ts"> 2 2 import { page } from '$app/stores'; 3 - import { BASE_PATH } from '$lib'; 4 3 import { cn } from '$lib/utils'; 5 - import User from '$lib/Components/User.svelte'; 4 + import User from '$lib/Components/User/User.svelte'; 6 5 import { rateMovieModal, showSidebar } from '$lib/state.svelte'; 7 6 import { fade } from 'svelte/transition'; 8 7 import { onNavigate } from '$app/navigation';
src/lib/Components/User.svelte src/lib/Components/User/User.svelte
+1 -1
src/lib/Components/VideoPlayer.svelte src/lib/Components/Utils/VideoPlayer.svelte
··· 1 1 <script lang="ts"> 2 - import { cn } from '../utils'; 2 + import { cn } from '$lib/utils'; 3 3 import Plyr from 'plyr'; 4 4 import { videoPlayer } from '$lib/state.svelte'; 5 5
src/lib/Components/relative-time/RelativeTime.svelte src/lib/Components/Utils/relative-time/RelativeTime.svelte
src/lib/Components/relative-time/action.ts src/lib/Components/Utils/relative-time/action.ts
src/lib/Components/relative-time/formatter.ts src/lib/Components/Utils/relative-time/formatter.ts
src/lib/Components/relative-time/index.ts src/lib/Components/Utils/relative-time/index.ts
src/lib/Components/relative-time/render.ts src/lib/Components/Utils/relative-time/render.ts
src/lib/Components/relative-time/state.ts src/lib/Components/Utils/relative-time/state.ts
+6 -6
src/routes/+layout.svelte
··· 1 1 <script lang="ts"> 2 2 import '../app.css'; 3 3 4 - import Footer from '$lib/Components/Footer.svelte'; 4 + import Footer from '$lib/Components/Layout/Footer.svelte'; 5 5 import { toast, Toaster } from 'svelte-sonner'; 6 6 import { settings, user, watchedItems } from '$lib/state.svelte'; 7 - import RateMovieModal from '$lib/Components/RateMovieModal.svelte'; 7 + import RateMovieModal from '$lib/Components/Modals/RateMovieModal.svelte'; 8 8 9 - import LoginModal from '$lib/Components/LoginModal.svelte'; 10 - import Sidebar from '$lib/Components/Sidebar.svelte'; 11 - import VideoPlayer from '$lib/Components/VideoPlayer.svelte'; 9 + import LoginModal from '$lib/Components/Modals/LoginModal.svelte'; 10 + import Sidebar from '$lib/Components/Layout/Sidebar.svelte'; 11 + import VideoPlayer from '$lib/Components/Utils/VideoPlayer.svelte'; 12 12 13 13 import { onNavigate } from '$app/navigation'; 14 14 import { onMount } from 'svelte'; 15 15 import { navigating } from '$app/stores'; 16 16 import { slide } from 'svelte/transition'; 17 17 import { expoOut } from 'svelte/easing'; 18 - import CrosspostModal from '$lib/Components/CrosspostModal.svelte'; 18 + import CrosspostModal from '$lib/Components/Modals/CrosspostModal.svelte'; 19 19 20 20 let { children, data } = $props(); 21 21
+3 -3
src/routes/+page.svelte
··· 1 1 <script> 2 - import BaseHeadTags from '$lib/Components/BaseHeadTags.svelte'; 3 - import Container from '$lib/Components/Container.svelte'; 4 - import ReviewList from '$lib/Components/ReviewList.svelte'; 2 + import BaseHeadTags from '$lib/Components/Layout/BaseHeadTags.svelte'; 3 + import Container from '$lib/Components/Layout/Container.svelte'; 4 + import ReviewList from '$lib/Components/Items/ReviewList.svelte'; 5 5 import { rateMovieModal, showLoginModal } from '$lib/state.svelte'; 6 6 7 7 const { data } = $props();
+4 -4
src/routes/[kind]/[id]/+page.svelte
··· 3 3 import { cn, nameToId } from '$lib/utils'; 4 4 import { rateMovieModal, videoPlayer, watchedItems } from '$lib/state.svelte'; 5 5 6 - import Container from '$lib/Components/Container.svelte'; 7 - import ItemsList from '$lib/Components/ItemsList.svelte'; 8 - import ReviewList from '$lib/Components/ReviewList.svelte'; 9 - import Avatar from '$lib/Components/Avatar.svelte'; 6 + import Container from '$lib/Components/Layout/Container.svelte'; 7 + import ItemsList from '$lib/Components/Items/ItemsList.svelte'; 8 + import ReviewList from '$lib/Components/Items/ReviewList.svelte'; 9 + import Avatar from '$lib/Components/User/Avatar.svelte'; 10 10 import { page } from '$app/stores'; 11 11 12 12 let { data }: { data: PageData } = $props();
+4 -5
src/routes/cast/[id]/+page.svelte
··· 1 1 <script lang="ts"> 2 - import Avatar from '$lib/Components/Avatar.svelte'; 3 - import BaseHeadTags from '$lib/Components/BaseHeadTags.svelte'; 4 - import Container from '$lib/Components/Container.svelte'; 5 - import ItemsGrid from '$lib/Components/ItemsGrid.svelte'; 6 - import { onMount } from 'svelte'; 2 + import Avatar from '$lib/Components/User/Avatar.svelte'; 3 + import BaseHeadTags from '$lib/Components/Layout/BaseHeadTags.svelte'; 4 + import Container from '$lib/Components/Layout/Container.svelte'; 5 + import ItemsGrid from '$lib/Components/Items/ItemsGrid.svelte'; 7 6 8 7 let { data } = $props(); 9 8
+4 -4
src/routes/feed/+page.svelte
··· 1 1 <script lang="ts"> 2 - import Container from '$lib/Components/Container.svelte'; 3 - import { onMount } from 'svelte'; 4 2 import { type PageData } from './$types'; 5 - import ReviewList from '$lib/Components/ReviewList.svelte'; 6 - import BaseHeadTags from '$lib/Components/BaseHeadTags.svelte'; 3 + 4 + import Container from '$lib/Components/Layout/Container.svelte'; 5 + import ReviewList from '$lib/Components/Items/ReviewList.svelte'; 6 + import BaseHeadTags from '$lib/Components/Layout/BaseHeadTags.svelte'; 7 7 8 8 let { data }: { data: PageData } = $props(); 9 9 </script>
-14
src/routes/login/+page.server.ts
··· 1 - import { redirect } from '@sveltejs/kit'; 2 - 3 - import type { Actions, PageServerLoad } from './$types'; 4 - 5 - export const load: PageServerLoad = async (event) => { 6 - if (event.locals.user) { 7 - return redirect(302, '/user/' + event.locals.user.handle); 8 - } 9 - return {}; 10 - }; 11 - 12 - export const actions: Actions = { 13 - login: async (event) => {} 14 - };
-62
src/routes/login/+page.svelte
··· 1 - <script lang="ts"> 2 - import type { ActionData } from './$types'; 3 - import Logo from '$lib/Components/Logo.svelte'; 4 - 5 - let { form }: { form: ActionData } = $props(); 6 - </script> 7 - 8 - <div class="flex min-h-screen flex-col items-center justify-center px-6 py-12 lg:px-8"> 9 - <div class="sm:mx-auto sm:w-full sm:max-w-sm"> 10 - <Logo class="mx-auto size-10" /> 11 - <h2 class="mt-10 text-center text-2xl/9 font-bold tracking-tight text-white">login/register</h2> 12 - </div> 13 - 14 - <div class="mt-10 w-full sm:mx-auto sm:max-w-sm"> 15 - <form class="space-y-6" action="?/login" method="POST"> 16 - <p class="min-h-6 font-semibold lowercase text-red-500">{form?.message ?? ''}</p> 17 - <div> 18 - <label for="username" class="block text-sm/6 font-medium text-white">username</label> 19 - <div class="mt-2"> 20 - <input 21 - id="username" 22 - name="username" 23 - type="text" 24 - autocomplete="username" 25 - required 26 - class="block w-full rounded-xl border-0 bg-white/5 py-1.5 text-white shadow-sm ring-1 ring-inset ring-white/10 focus:ring-2 focus:ring-inset focus:ring-accent-500 sm:text-sm/6" 27 - /> 28 - </div> 29 - </div> 30 - 31 - <div> 32 - <div class="flex items-center justify-between"> 33 - <label for="password" class="block text-sm/6 font-medium text-white">password</label> 34 - </div> 35 - <div class="mt-2"> 36 - <input 37 - id="password" 38 - name="password" 39 - type="password" 40 - autocomplete="current-password" 41 - required 42 - class="block w-full rounded-xl border-0 bg-white/5 py-1.5 text-white shadow-sm ring-1 ring-inset ring-white/10 focus:ring-2 focus:ring-inset focus:ring-accent-500 sm:text-sm/6" 43 - /> 44 - </div> 45 - </div> 46 - 47 - <div> 48 - <button 49 - type="submit" 50 - class="flex w-full justify-center rounded-xl bg-accent-500 px-3 py-1.5 text-sm/6 font-semibold text-white shadow-sm hover:bg-accent-400 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-accent-500" 51 - >login</button 52 - > 53 - <button 54 - formaction="?/register" 55 - type="submit" 56 - class="mt-4 flex w-full justify-center rounded-xl bg-white/10 px-3 py-1.5 text-sm/6 font-semibold text-white shadow-sm hover:bg-white/20 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-accent-500" 57 - >register</button 58 - > 59 - </div> 60 - </form> 61 - </div> 62 - </div>
+2 -2
src/routes/review/[uri]/+page.svelte
··· 1 1 <script lang="ts"> 2 - import ReviewCard from '$lib/Components/ReviewCard.svelte'; 3 - import Container from '$lib/Components/Container.svelte'; 2 + import ReviewCard from '$lib/Components/Items/ReviewCard.svelte'; 3 + import Container from '$lib/Components/Layout/Container.svelte'; 4 4 import { page } from '$app/stores'; 5 5 6 6 let { data } = $props();
-1
src/routes/review/[uri]/og.png/+server.ts
··· 4 4 import { error, type RequestHandler } from '@sveltejs/kit'; 5 5 6 6 const template = (data: MainRecord) => { 7 - 8 7 const backdrop = data.record.metadata?.backdrop_path; 9 8 const poster = data.record.metadata?.poster_path; 10 9
-1
src/routes/search/+page.server.ts
··· 1 1 import { searchMulti } from '$lib/server/movies'; 2 - import { redirect } from '@sveltejs/kit'; 3 2 4 3 /** @type {import('./$types').PageServerLoad} */ 5 4 export async function load(event) {
+3 -3
src/routes/search/+page.svelte
··· 1 1 <script lang="ts"> 2 - import ItemsGrid from '$lib/Components/ItemsGrid.svelte'; 3 - import Container from '$lib/Components/Container.svelte'; 4 - import BaseHeadTags from '$lib/Components/BaseHeadTags.svelte'; 2 + import ItemsGrid from '$lib/Components/Items/ItemsGrid.svelte'; 3 + import Container from '$lib/Components/Layout/Container.svelte'; 4 + import BaseHeadTags from '$lib/Components/Layout/BaseHeadTags.svelte'; 5 5 6 6 import { type PageData } from './$types'; 7 7 let { data }: { data: PageData } = $props();
+1 -2
src/routes/settings/+page.svelte
··· 4 4 5 5 import availableRegions from './available_regions.json'; 6 6 import { onMount } from 'svelte'; 7 - import { settings, user } from '$lib/state.svelte'; 8 - import Note from '$lib/Components/Note.svelte'; 7 + import Note from '$lib/Components/Items/Note.svelte'; 9 8 10 9 export let data; 11 10
+4 -4
src/routes/user/[handle]/+page.svelte
··· 1 1 <script lang="ts"> 2 - import BaseHeadTags from '$lib/Components/BaseHeadTags.svelte'; 3 - import Container from '$lib/Components/Container.svelte'; 4 - import Profile from '$lib/Components/Profile.svelte'; 5 - import ReviewList from '$lib/Components/ReviewList.svelte'; 2 + import BaseHeadTags from '$lib/Components/Layout/BaseHeadTags.svelte'; 3 + import Container from '$lib/Components/Layout/Container.svelte'; 4 + import Profile from '$lib/Components/User/Profile.svelte'; 5 + import ReviewList from '$lib/Components/Items/ReviewList.svelte'; 6 6 7 7 let { data } = $props(); 8 8 </script>