PageSourceSearch

https://playsvideo.com/sw.js

js playsvideo.com collected 2026-10-02 01:39:42 UTC 1,649 bytes, 57 lines download raw bytes

1const WASM_CACHE = 'playsvideo-wasm-v1';
2
3self.addEventListener('install', () => {
4  self.skipWaiting();
5});
6
7self.addEventListener('activate', (event) => {
8  event.waitUntil(
9    caches.keys().then((keys) =>
10      Promise.all(
11        keys.filter((k) => k !== WASM_CACHE && k !== 'playsvideo-shared').map((k) => caches.delete(k))
12      )
13    )
14  );
15  self.clients.claim();
16});
17
18self.addEventListener('fetch', (event) => {
19  const url = new URL(event.request.url);
20
21  // Handle share target POST (Android share sheet)
22  if (url.pathname === '/player/share-target' && event.request.method === 'POST') {
23    event.respondWith(handleShareTarget(event.request));
24    return;
25  }
26
27  // Only handle GET requests for same-origin resources
28  if (event.request.method !== 'GET') return;
29  if (url.origin !== self.location.origin) return;
30
31  // Cache-first only for .wasm files; everything else goes to network
32  if (url.pathname.endsWith('.wasm')) {
33    event.respondWith(
34      caches.open(WASM_CACHE).then((cache) =>
35        cache.match(event.request).then((cached) =>
36          cached || fetch(event.request).then((resp) => {
37            cache.put(event.request, resp.clone());
38            return resp;
39          })
40        )
41      )
42    );
43  }
44});
45
46async function handleShareTarget(request) {
47  const formData = await request.formData();
48  const videoFile = formData.get('video');
49
50  if (videoFile) {
51    // Stash the shared file so the client page can pick it up
52    const cache = await caches.open('playsvideo-shared');
53    await cache.put('/shared-video-file', new Response(videoFile));
54  }
55
56  return Response.redirect('/player?source=share', 303);
57}

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.