An ATproto social media client -- with an independent Appview.
6
fork

Configure Feed

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

feat: change appview

+25 -25
+1 -1
bskyembed/index.html
··· 4 4 <meta charset="UTF-8"> 5 5 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 6 6 <title>Bluesky Embed</title> 7 - <link rel="preconnect" href="https://public.api.bsky.app"> 7 + <link rel="preconnect" href="https://api.shatteredsky.net"> 8 8 <link rel="apple-touch-icon" sizes="180x180" href="/static/apple-touch-icon.png"> 9 9 <link rel="icon" type="image/png" sizes="32x32" href="/static/favicon-32x32.png"> 10 10 <link rel="icon" type="image/png" sizes="16x16" href="/static/favicon-16x16.png">
+1 -1
bskyembed/post.html
··· 4 4 <meta charset="UTF-8"> 5 5 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 6 6 <title>Bluesky Embed</title> 7 - <link rel="preconnect" href="https://public.api.bsky.app"> 7 + <link rel="preconnect" href="https://api.shatteredsky.net"> 8 8 <link rel="apple-touch-icon" sizes="180x180" href="/static/apple-touch-icon.png"> 9 9 <link rel="icon" type="image/png" sizes="32x32" href="/static/favicon-32x32.png"> 10 10 <link rel="icon" type="image/png" sizes="16x16" href="/static/favicon-16x16.png">
+1 -1
bskyembed/src/screens/landing.tsx
··· 31 31 initSystemColorMode() 32 32 33 33 const agent = new AtpAgent({ 34 - service: 'https://public.api.bsky.app', 34 + service: 'https://api.shatteredsky.net', 35 35 }) 36 36 37 37 render(<LandingPage />, root)
+1 -1
bskyembed/src/screens/post.tsx
··· 14 14 if (!root) throw new Error('No root element') 15 15 16 16 const agent = new AtpAgent({ 17 - service: 'https://public.api.bsky.app', 17 + service: 'https://api.shatteredsky.net', 18 18 }) 19 19 20 20 const uri = `at://${window.location.pathname.slice('/embed/'.length)}`
+1 -1
bskyogcard/src/config.ts
··· 35 35 port: env.port ?? 3000, 36 36 metricsPort: env.metricsPort ?? 3001, 37 37 version: env.version, 38 - appviewUrl: env.appviewUrl ?? 'https://api.bsky.app', 38 + appviewUrl: env.appviewUrl ?? 'https://api.shatteredsky.net', 39 39 originVerify: env.originVerify, 40 40 } 41 41 return {
+1 -1
bskyweb/cmd/bskyweb/main.go
··· 36 36 &cli.StringFlag{ 37 37 Name: "appview-host", 38 38 Usage: "scheme, hostname, and port of PDS instance", 39 - Value: "http://public.api.bsky.app", 39 + Value: "http://api.shatteredsky.net", 40 40 // retain old PDS env var for easy transition 41 41 EnvVars: []string{"ATP_APPVIEW_HOST", "ATP_PDS_HOST"}, 42 42 },
+1 -1
bskyweb/cmd/embedr/main.go
··· 36 36 &cli.StringFlag{ 37 37 Name: "appview-host", 38 38 Usage: "method, hostname, and port of PDS instance", 39 - Value: "https://public.api.bsky.app", 39 + Value: "https://api.shatteredsky.net", 40 40 EnvVars: []string{"ATP_APPVIEW_HOST"}, 41 41 }, 42 42 &cli.StringFlag{
+1 -1
bskyweb/example.env
··· 1 1 GOLOG_LOG_LEVEL=info 2 - ATP_APPVIEW_HOST=https://public.api.bsky.app 2 + ATP_APPVIEW_HOST=https://api.shatteredsky.net
+1 -1
docs/build.md
··· 133 133 cd bskyweb/ 134 134 go mod tidy 135 135 go build -v -tags timetzdata -o bskyweb ./cmd/bskyweb 136 - ./bskyweb serve --appview-host=https://public.api.bsky.app 136 + ./bskyweb serve --appview-host=https://api.shatteredsky.net 137 137 ``` 138 138 139 139 On build success, access the application at [http://localhost:8100/](http://localhost:8100/). Subsequent changes require re-running the above steps in order to be reflected.
+1 -1
src/env/common.ts
··· 66 66 * The DID of the Bluesky appview to proxy to 67 67 */ 68 68 export const BLUESKY_PROXY_DID: Did = 69 - process.env.EXPO_PUBLIC_BLUESKY_PROXY_DID || 'did:web:api.bsky.app' 69 + process.env.EXPO_PUBLIC_BLUESKY_PROXY_DID || 'did:web:api.shatteredsky.net' 70 70 71 71 /** 72 72 * The DID of the chat service to proxy to
+2 -2
src/lib/api/feed/custom.ts
··· 120 120 121 121 // manually construct fetch call so we can add the `lang` cache-busting param 122 122 let res = await fetch( 123 - `https://api.bsky.app/xrpc/app.bsky.feed.getFeed?feed=${feed}${ 123 + `https://api.shatteredsky.net/xrpc/app.bsky.feed.getFeed?feed=${feed}${ 124 124 cursor ? `&cursor=${cursor}` : '' 125 125 }&limit=${limit}&lang=${contentLangs}`, 126 126 { ··· 140 140 141 141 // no data, try again with language headers removed 142 142 res = await fetch( 143 - `https://api.bsky.app/xrpc/app.bsky.feed.getFeed?feed=${feed}${ 143 + `https://api.shatteredsky.net/xrpc/app.bsky.feed.getFeed?feed=${feed}${ 144 144 cursor ? `&cursor=${cursor}` : '' 145 145 }&limit=${limit}`, 146 146 {method: 'GET', headers: {'Accept-Language': '', ...labelersHeader}},
+3 -3
src/lib/constants.ts
··· 9 9 export const STAGING_SERVICE = 'https://staging.bsky.dev' 10 10 export const BSKY_SERVICE = 'https://bsky.social' 11 11 export const BSKY_SERVICE_DID = 'did:web:bsky.social' 12 - export const PUBLIC_BSKY_SERVICE = 'https://public.api.bsky.app' 12 + export const PUBLIC_BSKY_SERVICE = 'https://api.shatteredsky.net' 13 13 export const DEFAULT_SERVICE = BSKY_SERVICE 14 14 export const HELP_DESK_URL = `https://github.com/NekoDrone/catsky-social/issues/new/choose` 15 15 export const EMBED_SERVICE = 'https://embed.bsky.app' ··· 196 196 }, 197 197 } 198 198 199 - export const PUBLIC_APPVIEW = 'https://api.bsky.app' 200 - export const PUBLIC_APPVIEW_DID = 'did:web:api.bsky.app' 199 + export const PUBLIC_APPVIEW = 'https://api.shatteredsky.net' 200 + export const PUBLIC_APPVIEW_DID = 'did:web:api.shatteredsky.net' 201 201 export const PUBLIC_STAGING_APPVIEW_DID = 'did:web:api.staging.bsky.dev' 202 202 203 203 export const DEV_ENV_APPVIEW = `http://localhost:2584` // always the same
+1 -1
src/lib/react-query.tsx
··· 22 22 setTimeout(() => { 23 23 controller.abort() 24 24 }, 15e3) 25 - const res = await fetch('https://public.api.bsky.app/xrpc/_health', { 25 + const res = await fetch('https://api.shatteredsky.net/xrpc/_health', { 26 26 cache: 'no-store', 27 27 signal: controller.signal, 28 28 })
+9 -9
src/state/session/__tests__/session-test.ts
··· 18 18 "accounts": [], 19 19 "currentAgentState": { 20 20 "agent": { 21 - "service": "https://public.api.bsky.app/", 21 + "service": "https://api.shatteredsky.net/", 22 22 }, 23 23 "did": undefined, 24 24 }, ··· 107 107 ], 108 108 "currentAgentState": { 109 109 "agent": { 110 - "service": "https://public.api.bsky.app/", 110 + "service": "https://api.shatteredsky.net/", 111 111 }, 112 112 "did": undefined, 113 113 }, ··· 445 445 ], 446 446 "currentAgentState": { 447 447 "agent": { 448 - "service": "https://public.api.bsky.app/", 448 + "service": "https://api.shatteredsky.net/", 449 449 }, 450 450 "did": undefined, 451 451 }, ··· 507 507 ], 508 508 "currentAgentState": { 509 509 "agent": { 510 - "service": "https://public.api.bsky.app/", 510 + "service": "https://api.shatteredsky.net/", 511 511 }, 512 512 "did": undefined, 513 513 }, ··· 600 600 "accounts": [], 601 601 "currentAgentState": { 602 602 "agent": { 603 - "service": "https://public.api.bsky.app/", 603 + "service": "https://api.shatteredsky.net/", 604 604 }, 605 605 "did": undefined, 606 606 }, ··· 780 780 ], 781 781 "currentAgentState": { 782 782 "agent": { 783 - "service": "https://public.api.bsky.app/", 783 + "service": "https://api.shatteredsky.net/", 784 784 }, 785 785 "did": undefined, 786 786 }, ··· 1429 1429 ], 1430 1430 "currentAgentState": { 1431 1431 "agent": { 1432 - "service": "https://public.api.bsky.app/", 1432 + "service": "https://api.shatteredsky.net/", 1433 1433 }, 1434 1434 "did": undefined, 1435 1435 }, ··· 1495 1495 ], 1496 1496 "currentAgentState": { 1497 1497 "agent": { 1498 - "service": "https://public.api.bsky.app/", 1498 + "service": "https://api.shatteredsky.net/", 1499 1499 }, 1500 1500 "did": undefined, 1501 1501 }, ··· 1658 1658 ], 1659 1659 "currentAgentState": { 1660 1660 "agent": { 1661 - "service": "https://public.api.bsky.app/", 1661 + "service": "https://api.shatteredsky.net/", 1662 1662 }, 1663 1663 "did": undefined, 1664 1664 },