From 647d2415e8d448bbb34305bc42bd00bcb9be7ff9 Mon Sep 17 00:00:00 2001 From: "xan.lol" Date: Fri, 21 Nov 2025 12:26:48 -0800 Subject: [PATCH] Replace Bitchsky with Witchsky --- .gitignore | 2 +- .../ISSUE_TEMPLATE/bug_report.yml | 0 .../ISSUE_TEMPLATE/feature_request.yml | 2 +- .../workflows/witchsky-build.yml | 18 +++---- README.md | 54 +++++++++---------- __e2e__/flows/composer-self-label.yml | 2 +- __e2e__/flows/composer.yml | 2 +- __e2e__/flows/create-account.yml | 2 +- __e2e__/flows/curate-lists.yml | 2 +- __e2e__/flows/feed-reorder.yml | 2 +- __e2e__/flows/home-screen.yml | 2 +- __e2e__/flows/login.yml | 2 +- __e2e__/flows/mod-lists.yml | 2 +- __e2e__/flows/onboarding-avatar-creator.yml | 2 +- __e2e__/flows/onboarding.yml | 2 +- __e2e__/flows/post-report-flow.yml | 2 +- __e2e__/flows/profile-screen-edit.yml | 2 +- __e2e__/flows/profile-screen.yml | 2 +- .../flows/report-dialog/account.default.yml | 2 +- __e2e__/flows/report-dialog/post.default.yml | 2 +- .../flows/report-dialog/post.edit-reason.yml | 2 +- .../flows/report-dialog/post.reason-other.yml | 2 +- __e2e__/flows/search-screen.yml | 2 +- __e2e__/flows/shared-prefs.yml | 2 +- __e2e__/flows/thread-muting.yml | 2 +- __e2e__/flows/thread-screen.yml | 2 +- __e2e__/perf-test.yml | 2 +- __e2e__/setupApp.yml | 4 +- __tests__/lib/string.test.ts | 2 +- app.config.js | 28 +++++----- bskylink/src/routes/siteAssociation.ts | 4 +- bskyweb/cmd/bskyweb/server.go | 2 +- .../.well-known/apple-app-site-association | 4 +- bskyweb/static/.well-known/assetlinks.json | 2 +- bskyweb/templates/base.html | 6 +-- bskyweb/templates/starterpack.html | 2 +- docs/deploy-ota.md | 8 +-- functions/profile/[handleOrDID].ts | 2 +- .../profile/[handleOrDID]/post/[rkey].ts | 2 +- google-services.json.example | 2 +- justfile | 2 +- modules/BlueskyClip/ViewController.swift | 2 +- modules/BlueskyNSE/BlueskyNSE.entitlements | 2 +- modules/BlueskyNSE/NotificationService.swift | 2 +- .../Share-with-Bluesky.entitlements | 2 +- .../ShareViewController.swift | 2 +- .../NotificationPrefs.kt | 2 +- ...oBackgroundNotificationHandlerModule.swift | 2 +- .../sharedprefs/SharedPrefs.kt | 2 +- .../ExpoBlueskySharedPrefsModule.swift | 2 +- .../ios/SharedPrefs/SharedPrefs.swift | 2 +- .../android/build.gradle | 4 +- .../ExpoReceiveAndroidIntentsModule.kt | 2 +- .../expo-module.config.json | 2 +- package.json | 4 +- .../withAppEntitlements.js | 2 +- .../withExtensionEntitlements.js | 2 +- plugins/shareExtension/withAppEntitlements.js | 2 +- .../withExtensionEntitlements.js | 2 +- .../withAppEntitlements.js | 2 +- .../withClipEntitlements.js | 2 +- src/components/WelcomeModal.tsx | 2 +- src/components/dialogs/LinkWarning.tsx | 4 +- src/lib/constants.ts | 2 +- src/lib/notifications/notifications.ts | 2 +- src/lib/strings/embed-player.ts | 4 +- src/lib/strings/headings.ts | 2 +- src/lib/strings/starter-pack.ts | 2 +- src/lib/strings/url-helpers.ts | 12 ++--- src/screens/Settings/AboutSettings.tsx | 4 +- .../Settings/NotificationSettings/index.tsx | 2 +- src/screens/Signup/StepInfo/index.tsx | 6 +-- .../StarterPack/StarterPackLandingScreen.tsx | 2 +- src/state/persisted/schema.ts | 2 +- src/state/queries/constellation.ts | 2 +- src/view/com/auth/SplashScreen.web.tsx | 2 +- src/view/screens/PrivacyPolicy.tsx | 4 +- src/view/screens/TermsOfService.tsx | 4 +- src/view/shell/Drawer.tsx | 4 +- src/view/shell/desktop/RightNav.tsx | 4 +- web/index.html | 2 +- .../index.html | 6 +-- .../normalize.css | 0 .../privacy.html | 20 +++---- .../sakura.css | 0 .../tos.html | 14 ++--- 86 files changed, 171 insertions(+), 171 deletions(-) rename {.github => .tangled}/ISSUE_TEMPLATE/bug_report.yml (100%) rename {.github => .tangled}/ISSUE_TEMPLATE/feature_request.yml (97%) rename .github/workflows/bitchsky-build.yml => .tangled/workflows/witchsky-build.yml (75%) rename {bitchsky-static-about => witchsky-static-about}/index.html (73%) rename {bitchsky-static-about => witchsky-static-about}/normalize.css (100%) rename {bitchsky-static-about => witchsky-static-about}/privacy.html (82%) rename {bitchsky-static-about => witchsky-static-about}/sakura.css (100%) rename {bitchsky-static-about => witchsky-static-about}/tos.html (87%) diff --git a/.gitignore b/.gitignore index 5e1478a4e..9a43888f2 100644 --- a/.gitignore +++ b/.gitignore @@ -120,7 +120,7 @@ src/locale/locales/**/*.js # ogcard assets bskyogcard/src/assets/fonts/noto-* -# Bitchsky maybe +# Witchsky maybe .direnv .wrangler diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.tangled/ISSUE_TEMPLATE/bug_report.yml similarity index 100% rename from .github/ISSUE_TEMPLATE/bug_report.yml rename to .tangled/ISSUE_TEMPLATE/bug_report.yml diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.tangled/ISSUE_TEMPLATE/feature_request.yml similarity index 97% rename from .github/ISSUE_TEMPLATE/feature_request.yml rename to .tangled/ISSUE_TEMPLATE/feature_request.yml index 8592fa9ac..cd3978eee 100644 --- a/.github/ISSUE_TEMPLATE/feature_request.yml +++ b/.tangled/ISSUE_TEMPLATE/feature_request.yml @@ -1,5 +1,5 @@ name: "Feature Request" -description: "Suggest an idea for the Bitchsky app." +description: "Suggest an idea for the Witchsky app." labels: ["feature-request"] body: - type: markdown diff --git a/.github/workflows/bitchsky-build.yml b/.tangled/workflows/witchsky-build.yml similarity index 75% rename from .github/workflows/bitchsky-build.yml rename to .tangled/workflows/witchsky-build.yml index 40e46bc30..6adc0505e 100644 --- a/.github/workflows/bitchsky-build.yml +++ b/.tangled/workflows/witchsky-build.yml @@ -1,9 +1,9 @@ -name: Build Bitchsky +name: Build Witchsky on: workflow_dispatch jobs: - bitchsky-build-android: - name: Build Bitchsky for Android + witchsky-build-android: + name: Build Witchsky for Android runs-on: ubuntu-latest permissions: contents: write @@ -40,18 +40,18 @@ jobs: - name: Rename APK run: | - mv android/app/build/outputs/apk/release/app-release.apk android/app/build/outputs/apk/release/bitchsky-v${{ github.run_number }}.apk + mv android/app/build/outputs/apk/release/app-release.apk android/app/build/outputs/apk/release/witchsky-v${{ github.run_number }}.apk - name: Upload artifact uses: actions/upload-artifact@v4 with: name: android - path: android/app/build/outputs/apk/release/bitchsky-v${{ github.run_number }}.apk - + path: android/app/build/outputs/apk/release/witchsky-v${{ github.run_number }}.apk + - name: Publish release uses: softprops/action-gh-release@v2 if: github.ref == 'refs/heads/main' with: - name: Bitchsky v${{ github.run_number }} - tag_name: bitchsky-v${{ github.run_number }} - files: android/app/build/outputs/apk/release/bitchsky-v${{ github.run_number }}.apk + name: Witchsky v${{ github.run_number }} + tag_name: witchsky-v${{ github.run_number }} + files: android/app/build/outputs/apk/release/witchsky-v${{ github.run_number }}.apk \ No newline at end of file diff --git a/README.md b/README.md index 1ebe70657..5ddc71ee0 100644 --- a/README.md +++ b/README.md @@ -1,25 +1,25 @@ -# Bitchsky Social App πŸ§™ +# Witchsky Social App πŸ§™ (WIP) -Hey, bitches! This is the codebase for the Bitchsky app, based on [social.daniela.lol](https://github.com/kittibytess/deer-social) and prior [Bluesky](https://github.com/bluesky-social/social-app) forks. +Hey, witches! This is the codebase for the Witchsky app, based on [social.daniela.lol](https://github.com/kittibytess/deer-social) and prior [Bluesky](https://github.com/bluesky-social/social-app) forks. Get the app itself: -- **Web: [bitchsky.app](https://bitchsky.app)** -- **iOS: [Soonβ„’](https://large-type.com/#%F0%9F%99%80)?** -- **Android: [Github Releases](https://github.com/jollywhoppers/bitchsky-app/releases/latest)** +- **Web: [witchsky.app](https://witchsky.app)** +- **iOS: [Soonβ„’](https://cat-bounce.com/)?** +- **Android: [F-Droid repo](https://app.jolly.you/fdroid/repo)** - + Get it on Obtainium ## Improvements on Bluesky -- Funner name (still love you tho bsky!) +- Cooler name (still love you tho bsky!) - Nicer colors (kinda like gruvbox? not really) - Posts are called Skeets -- Share links to bitchsky.app or bsky.app +- Choose between sharing witchsky.app or bsky.app links - Embed player works with [stream.place](https://stream.place/) links! -- Open skeets in PDSls and original pages from bridged posts +- Open skeets in PDSls and original pages of bridged posts - Better defaults (alt text required πŸ˜‰) - More unique repost icons - No push notifications (may be added later) @@ -73,28 +73,28 @@ You can completely disable the visiblity of all metrics individually, including ### TODO: Xan -- [ ] Update branding (especially colors and app icon) to Bitchsky +- [ ] Update branding (especially colors and app icon) to Witchsky - [ ] ./src/components/WelcomeModal.tsx (tab/hover selector) - [ ] ./src/alf/themes.ts (improve contrast, esp. of links) - [ ] ./src/lib/styles.ts (change likes color, remove gradient from new skeet button) - [ ] ./src/style.css (change links color) - [ ] ./src/view/com/util/UserAvatar.tsx (change #0070FF) - - [ ] ./assets/app-icons/ (change new bksy logos to fit Bitchsky -remove from social embed!) - - [ ] social embed stuff (bitchsky logo in image with jollywhoppers logo, use bitchsky icon) + - [ ] ./assets/app-icons/ (change new bksy logos to fit Witchsky -remove from social embed!) + - [ ] social embed stuff (witchsky logo in image with jollywhoppers logo, use witchsky icon) - [ ] Setup App Linking for Android (.well-known w/ app package fingerprint) -- [ ] Automatic PDS detection like other social-app forks (fallback/email addresses to use bitchsky.social) +- [ ] Automatic PDS detection like other social-app forks (fallback/email addresses to use witchsky.social) - [ ] Like of or repost of repost icons in notifications - [ ] Change followed accounts [on onboarding](https://github.com/blacksky-algorithms/blacksky.community/commit/e36ee43efb4999f070860d7f70122e45b28c1e2b) - [ ] Join date & switch accounts from composer from a fork like [deer.aylac.top](https://github.com/ayla6/deer-social-test) -- [ ] Visual replies indicator like the [Firmament userstyle](https://bitchsky.app/profile/did:plc:jwhxcrf5uvl3vyw7nurecgt5/post/3m4rr3vzmak2a) (and likes?) +- [ ] Visual replies indicator like the [Firmament userstyle](https://witchsky.app/profile/did:plc:jwhxcrf5uvl3vyw7nurecgt5/post/3m4rr3vzmak2a) (and likes?) - [ ] Additional translation service providers + setting (Deepl, Kagi) - [ ] Move Mutuals label to the follow button - [ ] Put DeerSettings into separate subpages -- [ ] After subpages for options, add [Outlinks page](https://bitchsky.app/profile/did:plc:q7suwaz53ztc4mbiqyygbn43/post/3m5zjhhshic2g) & +- [ ] After subpages for options, add [Outlinks page](https://witchsky.app/profile/did:plc:q7suwaz53ztc4mbiqyygbn43/post/3m5zjhhshic2g) & - [ ] ShareMenuItems.tsx, ShareMenuItems.web.tsx - [ ] For profile meatball button, Open profile in PDSls & Open bridged OG fedi account page - [ ] ProfileMenu.tsx -- [ ] Bitchsky PDS and .social site (list good songs containing 'bitch' in their titles) +- [ ] Witchsky PDS and .social site (list good songs containing 'bitch' in their titles) ### Even more wishful or far off @@ -110,25 +110,25 @@ You can completely disable the visiblity of all metrics individually, including This is a [React Native](https://reactnative.dev/) application, written in the TypeScript programming language. It builds on the `atproto` TypeScript packages (like [`@atproto/api`](https://www.npmjs.com/package/@atproto/api)), which are also open source, but in [a different git repository](https://github.com/bluesky-social/atproto). -There is vestigial Go language source code (in `./bskyweb/`), for a web service that returns the React Native Web application in the social app deployment. However, it is not used in current Bitchsky deployments. -For Bitchsky, the intended deployment is with a webserver that can serve static files, and reroute to `index.html` as needed. [Bitchsky](https://bitchsky.app) is currently hosted on [Cloudflare Pages](https://pages.cloudflare.com/). +There is vestigial Go language source code (in `./bskyweb/`), for a web service that returns the React Native Web application in the social app deployment. However, it is not used in current Witchsky deployments. +For Witchsky, the intended deployment is with a webserver that can serve static files, and reroute to `index.html` as needed. [Witchsky](https://witchsky.app) is currently hosted on [Cloudflare Pages](https://pages.cloudflare.com/). The [Build Instructions](./docs/build.md) are a good place to get started with the app itself. If you use nix (and especially direnv) then `flake.nix` will get you a working environment for the web version of the app. The Authenticated Transfer Protocol ("AT Protocol" or "atproto") is a decentralized social media protocol. You don't *need* to understand AT Protocol to work with this application, but it can help. -You may wish to reference [resources linked in social-app](https://github.com/bluesky-social/social-app#development-resources). However, please don't harass the Bluesky team with issues or questions pertaining to Bitchsky. +You may wish to reference [resources linked in social-app](https://github.com/bluesky-social/social-app#development-resources). However, please don't harass the Bluesky team with issues or questions pertaining to Witchsky. -Bitchsky is a fork of the official Bluesky client, social-app. It encompasses a set of schemas and APIs built in the overall AT Protocol framework. The namespace for these "Lexicons" is `app.bsky.*`. +Witchsky is a fork of the official Bluesky client, social-app. It encompasses a set of schemas and APIs built in the overall AT Protocol framework. The namespace for these "Lexicons" is `app.bsky.*`. ## Contributions -> Bitchsky is a community fork, and we'd love to merge your PR! +> Witchsky is a community fork, and we'd love to merge your PR! -As a rule of thumb, the best features for Bitchsky are those that have a disproportionately positive impact on the user experience compared to the maintenance overhead. Unlike some open source projects, since Bitchsky is a soft fork, any features (patches) we add on top of upstream social-app need to be maintained. For example, a change to the way skeets are composed may be very invasive, touching lots of code across the codebase. If upstream refactors this component, we will need to rewrite this feature to be compatible or drop it from the client. +As a rule of thumb, the best features for Witchsky are those that have a disproportionately positive impact on the user experience compared to the maintenance overhead. Unlike some open source projects, since Witchsky is a soft fork, any features (patches) we add on top of upstream social-app need to be maintained. For example, a change to the way skeets are composed may be very invasive, touching lots of code across the codebase. If upstream refactors this component, we will need to rewrite this feature to be compatible or drop it from the client. For this reason, only features that require changing only a small amount of code from upstream should be considered. -Without an overriding motivation, opinionated features should exist behind a toggle that is not enabled by default. This allows Bitchsky to cater to as many users as possible. +Without an overriding motivation, opinionated features should exist behind a toggle that is not enabled by default. This allows Witchsky to cater to as many users as possible. ### Guidelines @@ -148,17 +148,17 @@ Just like social-app, you have our blessing πŸͺ„βœ¨ to fork this application! Ho Please be sure to: -- Change all branding in the repository and UI to clearly differentiate from Bitchsky. +- Change all branding in the repository and UI to clearly differentiate from Witchsky. - Change any support links (feedback, email, terms of service, issue tracker, etc) to your own systems. ## Self hosting & personal builds -Self hosting is great! It is our intention that Bitchsky is easy to self host and build on your own. If you host your own instance of Bitchsky, or make your own builds, please make some level of effort to clarify that it is not an "official" build or instance. This can be in the form of a different domain or branding, but can also be as simple as not advertising your hosted instance or builds as "official" releases. +Self hosting is great! It is our intention that Witchsky is easy to self host and build on your own. If you host your own instance of Witchsky, or make your own builds, please make some level of effort to clarify that it is not an "official" build or instance. This can be in the form of a different domain or branding, but can also be as simple as not advertising your hosted instance or builds as "official" releases. ## Security disclosures If you discover any security issues, please privately disclose them to [xan.lol](https://xan.lol/). -If the issue pertains to infastructure, code, or systems outside the scope of Bitchsky, please refer to the [disclosure guidelines on social-app](https://github.com/bluesky-social/social-app#security-disclosures) if it is hosted by Bluesky PBC. Otherwise, reference the security policy of that system as applicable <3 +If the issue pertains to infastructure, code, or systems outside the scope of Witchsky, please refer to the [disclosure guidelines on social-app](https://github.com/bluesky-social/social-app#security-disclosures) if it is hosted by Bluesky PBC. Otherwise, reference the security policy of that system as applicable <3 ## License (MIT) @@ -168,4 +168,4 @@ Bluesky Social PBC has committed to a software patent non-aggression pledge. For ## P.S. -We ❀️ you and all of the ways you support us. Thank you for making Bluesky & Bitchsky so great! ^.^ +We ❀️ you and all of the ways you support us. Thank you for making Bluesky & Witchsky so great! ^.^ diff --git a/__e2e__/flows/composer-self-label.yml b/__e2e__/flows/composer-self-label.yml index 044d40de9..446d7078c 100644 --- a/__e2e__/flows/composer-self-label.yml +++ b/__e2e__/flows/composer-self-label.yml @@ -1,4 +1,4 @@ -appId: app.bitchsky +appId: app.witchsky --- - runScript: file: ../setupServer.js diff --git a/__e2e__/flows/composer.yml b/__e2e__/flows/composer.yml index 68521d3f8..3763f550c 100644 --- a/__e2e__/flows/composer.yml +++ b/__e2e__/flows/composer.yml @@ -1,4 +1,4 @@ -appId: app.bitchsky +appId: app.witchsky --- - runScript: file: ../setupServer.js diff --git a/__e2e__/flows/create-account.yml b/__e2e__/flows/create-account.yml index e77cf1b7e..cf42c02af 100644 --- a/__e2e__/flows/create-account.yml +++ b/__e2e__/flows/create-account.yml @@ -1,4 +1,4 @@ -appId: app.bitchsky +appId: app.witchsky --- - runScript: file: ../setupServer.js diff --git a/__e2e__/flows/curate-lists.yml b/__e2e__/flows/curate-lists.yml index 44757d37b..b612de566 100644 --- a/__e2e__/flows/curate-lists.yml +++ b/__e2e__/flows/curate-lists.yml @@ -1,4 +1,4 @@ -appId: app.bitchsky +appId: app.witchsky --- - runScript: file: ../setupServer.js diff --git a/__e2e__/flows/feed-reorder.yml b/__e2e__/flows/feed-reorder.yml index cae1a65b3..0620f8b75 100644 --- a/__e2e__/flows/feed-reorder.yml +++ b/__e2e__/flows/feed-reorder.yml @@ -1,4 +1,4 @@ -appId: app.bitchsky +appId: app.witchsky --- - runScript: file: ../setupServer.js diff --git a/__e2e__/flows/home-screen.yml b/__e2e__/flows/home-screen.yml index ac0beeda5..489ecad53 100644 --- a/__e2e__/flows/home-screen.yml +++ b/__e2e__/flows/home-screen.yml @@ -1,4 +1,4 @@ -appId: app.bitchsky +appId: app.witchsky --- - runScript: file: ../setupServer.js diff --git a/__e2e__/flows/login.yml b/__e2e__/flows/login.yml index 0a823a5f0..e8f33449a 100644 --- a/__e2e__/flows/login.yml +++ b/__e2e__/flows/login.yml @@ -1,4 +1,4 @@ -appId: app.bitchsky +appId: app.witchsky --- - runScript: file: ../setupServer.js diff --git a/__e2e__/flows/mod-lists.yml b/__e2e__/flows/mod-lists.yml index 9c9414083..d69fca619 100644 --- a/__e2e__/flows/mod-lists.yml +++ b/__e2e__/flows/mod-lists.yml @@ -1,4 +1,4 @@ -appId: app.bitchsky +appId: app.witchsky --- - runScript: file: ../setupServer.js diff --git a/__e2e__/flows/onboarding-avatar-creator.yml b/__e2e__/flows/onboarding-avatar-creator.yml index e4e762c9a..d6f381cb1 100644 --- a/__e2e__/flows/onboarding-avatar-creator.yml +++ b/__e2e__/flows/onboarding-avatar-creator.yml @@ -1,4 +1,4 @@ -appId: app.bitchsky +appId: app.witchsky --- - runScript: file: ../setupServer.js diff --git a/__e2e__/flows/onboarding.yml b/__e2e__/flows/onboarding.yml index d0f0819f1..a4a74665c 100644 --- a/__e2e__/flows/onboarding.yml +++ b/__e2e__/flows/onboarding.yml @@ -1,4 +1,4 @@ -appId: app.bitchsky +appId: app.witchsky --- - runScript: file: ../setupServer.js diff --git a/__e2e__/flows/post-report-flow.yml b/__e2e__/flows/post-report-flow.yml index cdad0d2d5..e84476fdc 100644 --- a/__e2e__/flows/post-report-flow.yml +++ b/__e2e__/flows/post-report-flow.yml @@ -1,4 +1,4 @@ -appId: app.bitchsky +appId: app.witchsky --- - runScript: file: ../setupServer.js diff --git a/__e2e__/flows/profile-screen-edit.yml b/__e2e__/flows/profile-screen-edit.yml index 404affadf..86cf6fdcd 100644 --- a/__e2e__/flows/profile-screen-edit.yml +++ b/__e2e__/flows/profile-screen-edit.yml @@ -1,4 +1,4 @@ -appId: app.bitchsky +appId: app.witchsky --- - runScript: file: ../setupServer.js diff --git a/__e2e__/flows/profile-screen.yml b/__e2e__/flows/profile-screen.yml index 1949c6545..3e5d2e148 100644 --- a/__e2e__/flows/profile-screen.yml +++ b/__e2e__/flows/profile-screen.yml @@ -1,4 +1,4 @@ -appId: app.bitchsky +appId: app.witchsky --- - runScript: file: ../setupServer.js diff --git a/__e2e__/flows/report-dialog/account.default.yml b/__e2e__/flows/report-dialog/account.default.yml index 02c0a3228..b61776143 100644 --- a/__e2e__/flows/report-dialog/account.default.yml +++ b/__e2e__/flows/report-dialog/account.default.yml @@ -1,4 +1,4 @@ -appId: app.bitchsky +appId: app.witchsky --- - runScript: file: ../../setupServer.js diff --git a/__e2e__/flows/report-dialog/post.default.yml b/__e2e__/flows/report-dialog/post.default.yml index 4ef938f4d..b05955c64 100644 --- a/__e2e__/flows/report-dialog/post.default.yml +++ b/__e2e__/flows/report-dialog/post.default.yml @@ -1,4 +1,4 @@ -appId: app.bitchsky +appId: app.witchsky --- - runScript: file: ../../setupServer.js diff --git a/__e2e__/flows/report-dialog/post.edit-reason.yml b/__e2e__/flows/report-dialog/post.edit-reason.yml index ef33561da..5dcb3a1a7 100644 --- a/__e2e__/flows/report-dialog/post.edit-reason.yml +++ b/__e2e__/flows/report-dialog/post.edit-reason.yml @@ -1,4 +1,4 @@ -appId: app.bitchsky +appId: app.witchsky --- - runScript: file: ../../setupServer.js diff --git a/__e2e__/flows/report-dialog/post.reason-other.yml b/__e2e__/flows/report-dialog/post.reason-other.yml index 80a8eda75..a68f323fa 100644 --- a/__e2e__/flows/report-dialog/post.reason-other.yml +++ b/__e2e__/flows/report-dialog/post.reason-other.yml @@ -1,4 +1,4 @@ -appId: app.bitchsky +appId: app.witchsky --- - runScript: file: ../../setupServer.js diff --git a/__e2e__/flows/search-screen.yml b/__e2e__/flows/search-screen.yml index 064b8f58a..158f96064 100644 --- a/__e2e__/flows/search-screen.yml +++ b/__e2e__/flows/search-screen.yml @@ -1,4 +1,4 @@ -appId: app.bitchsky +appId: app.witchsky --- - runScript: file: ../setupServer.js diff --git a/__e2e__/flows/shared-prefs.yml b/__e2e__/flows/shared-prefs.yml index 2ce8f2822..23b0b2321 100644 --- a/__e2e__/flows/shared-prefs.yml +++ b/__e2e__/flows/shared-prefs.yml @@ -1,4 +1,4 @@ -appId: app.bitchsky +appId: app.witchsky --- - runScript: file: ../setupServer.js diff --git a/__e2e__/flows/thread-muting.yml b/__e2e__/flows/thread-muting.yml index 0020199e0..3a6cb18a8 100644 --- a/__e2e__/flows/thread-muting.yml +++ b/__e2e__/flows/thread-muting.yml @@ -1,4 +1,4 @@ -appId: app.bitchsky +appId: app.witchsky --- - runScript: file: ../setupServer.js diff --git a/__e2e__/flows/thread-screen.yml b/__e2e__/flows/thread-screen.yml index 66f172717..19139e539 100644 --- a/__e2e__/flows/thread-screen.yml +++ b/__e2e__/flows/thread-screen.yml @@ -1,4 +1,4 @@ -appId: app.bitchsky +appId: app.witchsky --- - runScript: file: ../setupServer.js diff --git a/__e2e__/perf-test.yml b/__e2e__/perf-test.yml index bb1328543..47cbd6ac7 100644 --- a/__e2e__/perf-test.yml +++ b/__e2e__/perf-test.yml @@ -1,6 +1,6 @@ # flow.yaml -appId: app.bitchsky +appId: app.witchsky --- - launchApp # Login diff --git a/__e2e__/setupApp.yml b/__e2e__/setupApp.yml index f05cf4dba..062626d29 100644 --- a/__e2e__/setupApp.yml +++ b/__e2e__/setupApp.yml @@ -1,7 +1,7 @@ -appId: app.bitchsky +appId: app.witchsky --- - launchApp: - appId: "app.bitchsky" + appId: "app.witchsky" clearState: true - waitForAnimationToEnd - tapOn: "http://localhost:8081" diff --git a/__tests__/lib/string.test.ts b/__tests__/lib/string.test.ts index a9842ab25..8ca282c9d 100644 --- a/__tests__/lib/string.test.ts +++ b/__tests__/lib/string.test.ts @@ -981,7 +981,7 @@ describe('parseStarterPackHttpUri', () => { describe('createStarterPackGooglePlayUri', () => { const base = - 'https://play.google.com/store/apps/details?id=app.bitchsky&referrer=utm_source%3Dbluesky%26utm_medium%3Dstarterpack%26utm_content%3Dstarterpack_' + 'https://play.google.com/store/apps/details?id=app.witchsky&referrer=utm_source%3Dbluesky%26utm_medium%3Dstarterpack%26utm_content%3Dstarterpack_' it('returns valid google play uri when input is valid', () => { expect(createStarterPackGooglePlayUri('name', 'rkey')).toEqual( diff --git a/app.config.js b/app.config.js index c805e82af..ea20aa5b8 100644 --- a/app.config.js +++ b/app.config.js @@ -18,7 +18,7 @@ module.exports = function (_config) { const IS_DEV = !IS_TESTFLIGHT || !IS_PRODUCTION const ASSOCIATED_DOMAINS = [ - 'applinks:bitchsky.app', + 'applinks:witchsky.app', // When testing local services, enter an ngrok (et al) domain here. It must use a standard HTTP/HTTPS port. ...(IS_DEV || IS_TESTFLIGHT ? [] : []), ] @@ -36,9 +36,9 @@ module.exports = function (_config) { return { expo: { version: VERSION, - name: 'Bitchsky', - slug: 'bitchsky', - scheme: ['bluesky', 'bitchsky'], + name: 'Witchsky', + slug: 'witchsky', + scheme: ['bluesky', 'witchsky'], // owner: 'blueskysocial', // owner: 'neema.brown', runtimeVersion: { @@ -50,7 +50,7 @@ module.exports = function (_config) { newArchEnabled: false, ios: { supportsTablet: false, - bundleIdentifier: 'app.bitchsky', + bundleIdentifier: 'app.witchsky', config: { usesNonExemptEncryption: false, }, @@ -68,7 +68,7 @@ module.exports = function (_config) { 'Used to save images to your library.', NSPhotoLibraryUsageDescription: 'Used for profile pictures, skeets, and other kinds of content', - CFBundleSpokenName: 'bitchsky.app', + CFBundleSpokenName: 'witchsky.app', CFBundleLocalizations: [ 'en', 'an', @@ -117,7 +117,7 @@ module.exports = function (_config) { entitlements: { 'com.apple.developer.kernel.increased-memory-limit': true, 'com.apple.developer.kernel.extended-virtual-addressing': true, - 'com.apple.security.application-groups': 'group.app.bitchsky', + 'com.apple.security.application-groups': 'group.app.witchsky', }, privacyManifests: { NSPrivacyCollectedDataTypes: [ @@ -186,7 +186,7 @@ module.exports = function (_config) { backgroundColor: '#af5f5f', }, googleServicesFile: './google-services.json', - package: 'app.bitchsky', + package: 'app.witchsky', intentFilters: [ { action: 'VIEW', @@ -194,7 +194,7 @@ module.exports = function (_config) { data: [ { scheme: 'https', - host: 'bitchsky.app', + host: 'witchsky.app', }, { scheme: 'https', @@ -425,25 +425,25 @@ module.exports = function (_config) { // appExtensions: [ // { // targetName: 'Share-with-Bluesky', - // bundleIdentifier: 'app.bitchsky.Share-with-Bluesky', + // bundleIdentifier: 'app.witchsky.Share-with-Bluesky', // entitlements: { // 'com.apple.security.application-groups': [ - // 'group.app.bitchsky', + // 'group.app.witchsky', // ], // }, // }, // { // targetName: 'BlueskyNSE', - // bundleIdentifier: 'app.bitchsky.BlueskyNSE', + // bundleIdentifier: 'app.witchsky.BlueskyNSE', // entitlements: { // 'com.apple.security.application-groups': [ - // 'group.app.bitchsky', + // 'group.app.witchsky', // ], // }, // }, // { // targetName: 'BlueskyClip', - // bundleIdentifier: 'app.bitchsky.AppClip', + // bundleIdentifier: 'app.witchsky.AppClip', // }, // ], }, diff --git a/bskylink/src/routes/siteAssociation.ts b/bskylink/src/routes/siteAssociation.ts index d240b6c7d..50ae74e53 100644 --- a/bskylink/src/routes/siteAssociation.ts +++ b/bskylink/src/routes/siteAssociation.ts @@ -9,13 +9,13 @@ export default function (ctx: AppContext, app: Express) { apps: [], details: [ { - appID: 'B3LX46C5HS.app.bitchsky', + appID: 'B3LX46C5HS.app.witchsky', paths: ['*'], }, ], }, appclips: { - apps: ['B3LX46C5HS.app.bitchsky.AppClip'], + apps: ['B3LX46C5HS.app.witchsky.AppClip'], }, }) }) diff --git a/bskyweb/cmd/bskyweb/server.go b/bskyweb/cmd/bskyweb/server.go index fb1d7dac2..a8d8569a8 100644 --- a/bskyweb/cmd/bskyweb/server.go +++ b/bskyweb/cmd/bskyweb/server.go @@ -413,7 +413,7 @@ func (srv *Server) errorHandler(err error, c echo.Context) { func (srv *Server) Download(c echo.Context) error { ua := c.Request().UserAgent() if strings.Contains(ua, "Android") { - return c.Redirect(http.StatusFound, "https://play.google.com/store/apps/details?id=app.bitchsky") + return c.Redirect(http.StatusFound, "https://play.google.com/store/apps/details?id=app.witchsky") } if strings.Contains(ua, "iPhone") || strings.Contains(ua, "iPad") || strings.Contains(ua, "iPod") { diff --git a/bskyweb/static/.well-known/apple-app-site-association b/bskyweb/static/.well-known/apple-app-site-association index b284d6b9c..59d4d3b6f 100644 --- a/bskyweb/static/.well-known/apple-app-site-association +++ b/bskyweb/static/.well-known/apple-app-site-association @@ -2,7 +2,7 @@ "applinks": { "details": [ { - "appID": "B3LX46C5HS.app.bitchsky", + "appID": "B3LX46C5HS.app.witchsky", "paths": [ "*" ] @@ -10,6 +10,6 @@ ] }, "appclips": { - "apps": ["B3LX46C5HS.app.bitchsky.AppClip"] + "apps": ["B3LX46C5HS.app.witchsky.AppClip"] } } diff --git a/bskyweb/static/.well-known/assetlinks.json b/bskyweb/static/.well-known/assetlinks.json index 05124599f..22aa49b3a 100644 --- a/bskyweb/static/.well-known/assetlinks.json +++ b/bskyweb/static/.well-known/assetlinks.json @@ -3,7 +3,7 @@ "relation": ["delegate_permission/common.handle_all_urls"], "target": { "namespace": "android_app", - "package_name": "app.bitchsky", + "package_name": "app.witchsky", "sha256_cert_fingerprints": ["FD:FB:58:6B:0A:8A:10:E8:F5:2E:BE:8E:AB:5C:78:C1:C5:91:FD:8F:F9:46:CB:0C:52:5F:B4:F8:5B:79:96:C1"] } diff --git a/bskyweb/templates/base.html b/bskyweb/templates/base.html index e0179f042..e3064633b 100644 --- a/bskyweb/templates/base.html +++ b/bskyweb/templates/base.html @@ -92,9 +92,9 @@ - + - + @@ -106,7 +106,7 @@
- +
diff --git a/bskyweb/templates/starterpack.html b/bskyweb/templates/starterpack.html index 694b830ed..1cdc7b9f3 100644 --- a/bskyweb/templates/starterpack.html +++ b/bskyweb/templates/starterpack.html @@ -1,7 +1,7 @@ {% extends "base.html" %} {% block html_head_extra -%} - + {%- if requestURI %} {% endif -%} diff --git a/docs/deploy-ota.md b/docs/deploy-ota.md index be3eda475..bfce71708 100644 --- a/docs/deploy-ota.md +++ b/docs/deploy-ota.md @@ -60,12 +60,12 @@ values you found in **Step 1**. ```sh > npx eas build:version:set -p ios > -> Project @blueskysocial/bluesky with bundle identifier "app.bitchsky" is configured with buildNumber 1011. +> Project @blueskysocial/bluesky with bundle identifier "app.witchsky" is configured with buildNumber 1011. > βœ” What version would you like to set? … 1009 > > npx eas build:version:set -p android > -> Project @blueskysocial/bluesky with application ID "app.bitchsky" is configured with versionCode 641. +> Project @blueskysocial/bluesky with application ID "app.witchsky" is configured with versionCode 641. > βœ” What version would you like to set? … 639 ``` @@ -124,12 +124,12 @@ to reset the build numbers. ```sh > npx eas build:version:set -p ios > -> Project @blueskysocial/bluesky with bundle identifier "app.bitchsky" is configured with buildNumber 1009. +> Project @blueskysocial/bluesky with bundle identifier "app.witchsky" is configured with buildNumber 1009. > βœ” What version would you like to set? … 1011 > > npx eas build:version:set -p android > -> Project @blueskysocial/bluesky with application ID "app.bitchsky" is configured with versionCode 639. +> Project @blueskysocial/bluesky with application ID "app.witchsky" is configured with versionCode 639. > βœ” What version would you like to set? … 641 ``` diff --git a/functions/profile/[handleOrDID].ts b/functions/profile/[handleOrDID].ts index 8e3164262..cd43985d3 100644 --- a/functions/profile/[handleOrDID].ts +++ b/functions/profile/[handleOrDID].ts @@ -85,7 +85,7 @@ class HeadHandler { : '' element.append( html` - + diff --git a/functions/profile/[handleOrDID]/post/[rkey].ts b/functions/profile/[handleOrDID]/post/[rkey].ts index b475c0722..401bf02d1 100644 --- a/functions/profile/[handleOrDID]/post/[rkey].ts +++ b/functions/profile/[handleOrDID]/post/[rkey].ts @@ -144,7 +144,7 @@ class HeadHandler { element.append( html` - + diff --git a/google-services.json.example b/google-services.json.example index dc0be5604..7d6c26089 100644 --- a/google-services.json.example +++ b/google-services.json.example @@ -9,7 +9,7 @@ "client_info": { "mobilesdk_app_id": "1:123456789000:android:f1bf012572b04063", "android_client_info": { - "package_name": "app.bitchsky" + "package_name": "app.witchsky" } }, "oauth_client": [ diff --git a/justfile b/justfile index 4916d28fb..17678f15f 100644 --- a/justfile +++ b/justfile @@ -42,7 +42,7 @@ postbuild-web: cp -r bskyweb/static/iframe/ web-build/iframe # copy our static pages over! - cp -r bitchsky-static-about web-build/about + cp -r witchsky-static-about web-build/about # temporarily copy over out bootleg config.txt to simulate geolocation cp config.txt web-build/ diff --git a/modules/BlueskyClip/ViewController.swift b/modules/BlueskyClip/ViewController.swift index c2195ddaf..abf390491 100644 --- a/modules/BlueskyClip/ViewController.swift +++ b/modules/BlueskyClip/ViewController.swift @@ -3,7 +3,7 @@ import WebKit import StoreKit class ViewController: UIViewController, WKScriptMessageHandler, WKNavigationDelegate { - let defaults = UserDefaults(suiteName: "group.app.bitchsky") + let defaults = UserDefaults(suiteName: "group.app.witchsky") var window: UIWindow var webView: WKWebView? diff --git a/modules/BlueskyNSE/BlueskyNSE.entitlements b/modules/BlueskyNSE/BlueskyNSE.entitlements index 15d9334ed..681034ee1 100644 --- a/modules/BlueskyNSE/BlueskyNSE.entitlements +++ b/modules/BlueskyNSE/BlueskyNSE.entitlements @@ -4,7 +4,7 @@ com.apple.security.application-groups - group.app.bitchsky + group.app.witchsky diff --git a/modules/BlueskyNSE/NotificationService.swift b/modules/BlueskyNSE/NotificationService.swift index 642aa6a5c..e21e90024 100644 --- a/modules/BlueskyNSE/NotificationService.swift +++ b/modules/BlueskyNSE/NotificationService.swift @@ -1,7 +1,7 @@ import UserNotifications import UIKit -let APP_GROUP = "group.app.bitchsky" +let APP_GROUP = "group.app.witchsky" typealias ContentHandler = (UNNotificationContent) -> Void // This extension allows us to do some processing of the received notification diff --git a/modules/Share-with-Bluesky/Share-with-Bluesky.entitlements b/modules/Share-with-Bluesky/Share-with-Bluesky.entitlements index 15d9334ed..681034ee1 100644 --- a/modules/Share-with-Bluesky/Share-with-Bluesky.entitlements +++ b/modules/Share-with-Bluesky/Share-with-Bluesky.entitlements @@ -4,7 +4,7 @@ com.apple.security.application-groups - group.app.bitchsky + group.app.witchsky diff --git a/modules/Share-with-Bluesky/ShareViewController.swift b/modules/Share-with-Bluesky/ShareViewController.swift index 370daf273..ec05de459 100644 --- a/modules/Share-with-Bluesky/ShareViewController.swift +++ b/modules/Share-with-Bluesky/ShareViewController.swift @@ -172,7 +172,7 @@ class ShareViewController: UIViewController { } private func getTempUrl(ext: String) -> URL? { - if let dir = FileManager().containerURL(forSecurityApplicationGroupIdentifier: "group.app.bitchsky") { + if let dir = FileManager().containerURL(forSecurityApplicationGroupIdentifier: "group.app.witchsky") { return URL(string: "\(dir.absoluteString)\(ProcessInfo.processInfo.globallyUniqueString).\(ext)")! } return nil diff --git a/modules/expo-background-notification-handler/android/src/main/java/expo/modules/backgroundnotificationhandler/NotificationPrefs.kt b/modules/expo-background-notification-handler/android/src/main/java/expo/modules/backgroundnotificationhandler/NotificationPrefs.kt index e4be49ee7..b08c367a8 100644 --- a/modules/expo-background-notification-handler/android/src/main/java/expo/modules/backgroundnotificationhandler/NotificationPrefs.kt +++ b/modules/expo-background-notification-handler/android/src/main/java/expo/modules/backgroundnotificationhandler/NotificationPrefs.kt @@ -18,7 +18,7 @@ class NotificationPrefs( private val context: Context?, ) { private val prefs = - context?.getSharedPreferences("app.bitchsky", Context.MODE_PRIVATE) + context?.getSharedPreferences("app.witchsky", Context.MODE_PRIVATE) ?: throw Error("Context is null") fun initialize() { diff --git a/modules/expo-background-notification-handler/ios/ExpoBackgroundNotificationHandlerModule.swift b/modules/expo-background-notification-handler/ios/ExpoBackgroundNotificationHandlerModule.swift index cf4c92020..db78214da 100644 --- a/modules/expo-background-notification-handler/ios/ExpoBackgroundNotificationHandlerModule.swift +++ b/modules/expo-background-notification-handler/ios/ExpoBackgroundNotificationHandlerModule.swift @@ -1,6 +1,6 @@ import ExpoModulesCore -let APP_GROUP = "group.app.bitchsky" +let APP_GROUP = "group.app.witchsky" let DEFAULTS: [String: Any] = [ "playSoundChat": true, diff --git a/modules/expo-bluesky-swiss-army/android/src/main/java/expo/modules/blueskyswissarmy/sharedprefs/SharedPrefs.kt b/modules/expo-bluesky-swiss-army/android/src/main/java/expo/modules/blueskyswissarmy/sharedprefs/SharedPrefs.kt index fb7f04308..f3fa891f4 100644 --- a/modules/expo-bluesky-swiss-army/android/src/main/java/expo/modules/blueskyswissarmy/sharedprefs/SharedPrefs.kt +++ b/modules/expo-bluesky-swiss-army/android/src/main/java/expo/modules/blueskyswissarmy/sharedprefs/SharedPrefs.kt @@ -32,7 +32,7 @@ class SharedPrefs( ): SharedPreferences { if (instance == null) { Log.d(NAME, "No preferences instance found, creating one.") - instance = context.getSharedPreferences("app.bitchsky", Context.MODE_PRIVATE) + instance = context.getSharedPreferences("app.witchsky", Context.MODE_PRIVATE) } val safeInstance = instance ?: throw Error("Preferences is null: $info") diff --git a/modules/expo-bluesky-swiss-army/ios/SharedPrefs/ExpoBlueskySharedPrefsModule.swift b/modules/expo-bluesky-swiss-army/ios/SharedPrefs/ExpoBlueskySharedPrefsModule.swift index 7ba5ebd98..1f76eced2 100644 --- a/modules/expo-bluesky-swiss-army/ios/SharedPrefs/ExpoBlueskySharedPrefsModule.swift +++ b/modules/expo-bluesky-swiss-army/ios/SharedPrefs/ExpoBlueskySharedPrefsModule.swift @@ -2,7 +2,7 @@ import Foundation import ExpoModulesCore public class ExpoBlueskySharedPrefsModule: Module { - let defaults = UserDefaults(suiteName: "group.app.bitchsky") + let defaults = UserDefaults(suiteName: "group.app.witchsky") func getDefaults(_ info: String = "(no info)") -> UserDefaults? { guard let defaults = self.defaults else { diff --git a/modules/expo-bluesky-swiss-army/ios/SharedPrefs/SharedPrefs.swift b/modules/expo-bluesky-swiss-army/ios/SharedPrefs/SharedPrefs.swift index 4d34a0703..ad431d056 100644 --- a/modules/expo-bluesky-swiss-army/ios/SharedPrefs/SharedPrefs.swift +++ b/modules/expo-bluesky-swiss-army/ios/SharedPrefs/SharedPrefs.swift @@ -3,7 +3,7 @@ import Foundation public class SharedPrefs { public static let shared = SharedPrefs() - private let defaults = UserDefaults(suiteName: "group.app.bitchsky") + private let defaults = UserDefaults(suiteName: "group.app.witchsky") init() { if defaults == nil { diff --git a/modules/expo-receive-android-intents/android/build.gradle b/modules/expo-receive-android-intents/android/build.gradle index cb9b3a220..4161cd927 100644 --- a/modules/expo-receive-android-intents/android/build.gradle +++ b/modules/expo-receive-android-intents/android/build.gradle @@ -2,7 +2,7 @@ apply plugin: 'com.android.library' apply plugin: 'kotlin-android' apply plugin: 'maven-publish' -group = 'app.bitchsky.exporeceiveandroidintents' +group = 'app.witchsky.exporeceiveandroidintents' version = '0.4.1' buildscript { @@ -65,7 +65,7 @@ android { } } - namespace "app.bitchsky.exporeceiveandroidintents" + namespace "app.witchsky.exporeceiveandroidintents" defaultConfig { minSdkVersion safeExtGet("minSdkVersion", 21) targetSdkVersion safeExtGet("targetSdkVersion", 34) diff --git a/modules/expo-receive-android-intents/android/src/main/java/xyz/blueskyweb/app/exporeceiveandroidintents/ExpoReceiveAndroidIntentsModule.kt b/modules/expo-receive-android-intents/android/src/main/java/xyz/blueskyweb/app/exporeceiveandroidintents/ExpoReceiveAndroidIntentsModule.kt index 841f0bc2f..d0a91f256 100644 --- a/modules/expo-receive-android-intents/android/src/main/java/xyz/blueskyweb/app/exporeceiveandroidintents/ExpoReceiveAndroidIntentsModule.kt +++ b/modules/expo-receive-android-intents/android/src/main/java/xyz/blueskyweb/app/exporeceiveandroidintents/ExpoReceiveAndroidIntentsModule.kt @@ -1,4 +1,4 @@ -package app.bitchsky.exporeceiveandroidintents +package app.witchsky.exporeceiveandroidintents import android.content.Intent import android.graphics.Bitmap diff --git a/modules/expo-receive-android-intents/expo-module.config.json b/modules/expo-receive-android-intents/expo-module.config.json index aefaca97f..459809ea1 100644 --- a/modules/expo-receive-android-intents/expo-module.config.json +++ b/modules/expo-receive-android-intents/expo-module.config.json @@ -1,6 +1,6 @@ { "platforms": ["android"], "android": { - "modules": ["app.bitchsky.exporeceiveandroidintents.ExpoReceiveAndroidIntentsModule"] + "modules": ["app.witchsky.exporeceiveandroidintents.ExpoReceiveAndroidIntentsModule"] } } diff --git a/package.json b/package.json index b65b885b6..24a9ad6f0 100644 --- a/package.json +++ b/package.json @@ -1,5 +1,5 @@ { - "name": "bitchsky-app", + "name": "witchsky-app", "version": "1.110.1", "private": true, "engines": { @@ -52,7 +52,7 @@ "e2e:run": "maestro test __e2e__", "perf:test": "NODE_ENV=test maestro test", "perf:test:run": "NODE_ENV=test maestro test __e2e__/perf-test.yml", - "perf:test:measure": "NODE_ENV=test flashlight test --bundleId app.bitchsky --testCommand \"yarn perf:test\" --duration 150000 --resultsFilePath .perf/results.json", + "perf:test:measure": "NODE_ENV=test flashlight test --bundleId app.witchsky --testCommand \"yarn perf:test\" --duration 150000 --resultsFilePath .perf/results.json", "perf:test:results": "NODE_ENV=test flashlight report .perf/results.json", "perf:measure": "NODE_ENV=test flashlight measure", "intl:build": "yarn intl:extract:all && yarn intl:compile", diff --git a/plugins/notificationsExtension/withAppEntitlements.js b/plugins/notificationsExtension/withAppEntitlements.js index f84fea617..5f7bceb6a 100644 --- a/plugins/notificationsExtension/withAppEntitlements.js +++ b/plugins/notificationsExtension/withAppEntitlements.js @@ -4,7 +4,7 @@ const withAppEntitlements = config => { // eslint-disable-next-line no-shadow return withEntitlementsPlist(config, async config => { config.modResults['com.apple.security.application-groups'] = [ - `group.app.bitchsky`, + `group.app.witchsky`, ] return config }) diff --git a/plugins/notificationsExtension/withExtensionEntitlements.js b/plugins/notificationsExtension/withExtensionEntitlements.js index 6646390fa..f588e4ec6 100644 --- a/plugins/notificationsExtension/withExtensionEntitlements.js +++ b/plugins/notificationsExtension/withExtensionEntitlements.js @@ -13,7 +13,7 @@ const withExtensionEntitlements = (config, {extensionName}) => { ) const notificationsExtensionEntitlements = { - 'com.apple.security.application-groups': [`group.app.bitchsky`], + 'com.apple.security.application-groups': [`group.app.witchsky`], } fs.mkdirSync(path.dirname(extensionEntitlementsPath), { diff --git a/plugins/shareExtension/withAppEntitlements.js b/plugins/shareExtension/withAppEntitlements.js index f84fea617..5f7bceb6a 100644 --- a/plugins/shareExtension/withAppEntitlements.js +++ b/plugins/shareExtension/withAppEntitlements.js @@ -4,7 +4,7 @@ const withAppEntitlements = config => { // eslint-disable-next-line no-shadow return withEntitlementsPlist(config, async config => { config.modResults['com.apple.security.application-groups'] = [ - `group.app.bitchsky`, + `group.app.witchsky`, ] return config }) diff --git a/plugins/shareExtension/withExtensionEntitlements.js b/plugins/shareExtension/withExtensionEntitlements.js index bf5425cfb..5bfc5f96e 100644 --- a/plugins/shareExtension/withExtensionEntitlements.js +++ b/plugins/shareExtension/withExtensionEntitlements.js @@ -13,7 +13,7 @@ const withExtensionEntitlements = (config, {extensionName}) => { ) const shareExtensionEntitlements = { - 'com.apple.security.application-groups': [`group.app.bitchsky`], + 'com.apple.security.application-groups': [`group.app.witchsky`], } fs.mkdirSync(path.dirname(extensionEntitlementsPath), { diff --git a/plugins/starterPackAppClipExtension/withAppEntitlements.js b/plugins/starterPackAppClipExtension/withAppEntitlements.js index 3bdd48808..50969397f 100644 --- a/plugins/starterPackAppClipExtension/withAppEntitlements.js +++ b/plugins/starterPackAppClipExtension/withAppEntitlements.js @@ -4,7 +4,7 @@ const withAppEntitlements = config => { // eslint-disable-next-line no-shadow return withEntitlementsPlist(config, async config => { config.modResults['com.apple.security.application-groups'] = [ - `group.app.bitchsky`, + `group.app.witchsky`, ] config.modResults[ 'com.apple.developer.associated-appclip-app-identifiers' diff --git a/plugins/starterPackAppClipExtension/withClipEntitlements.js b/plugins/starterPackAppClipExtension/withClipEntitlements.js index 8c1bd68e3..54d58f00e 100644 --- a/plugins/starterPackAppClipExtension/withClipEntitlements.js +++ b/plugins/starterPackAppClipExtension/withClipEntitlements.js @@ -13,7 +13,7 @@ const withClipEntitlements = (config, {targetName}) => { ) const appClipEntitlements = { - 'com.apple.security.application-groups': [`group.app.bitchsky`], + 'com.apple.security.application-groups': [`group.app.witchsky`], 'com.apple.developer.parent-application-identifiers': [ `$(AppIdentifierPrefix)${config.ios.bundleIdentifier}`, ], diff --git a/src/components/WelcomeModal.tsx b/src/components/WelcomeModal.tsx index d41e77721..59b65f451 100644 --- a/src/components/WelcomeModal.tsx +++ b/src/components/WelcomeModal.tsx @@ -112,7 +112,7 @@ export function WelcomeModal({control}: WelcomeModalProps) { a.user_select_none, {color: '#ff9696ff', letterSpacing: -0.5}, ]}> - Bitchsky + Witchsky diff --git a/src/components/dialogs/LinkWarning.tsx b/src/components/dialogs/LinkWarning.tsx index 2aa9f9750..4c98095f3 100644 --- a/src/components/dialogs/LinkWarning.tsx +++ b/src/components/dialogs/LinkWarning.tsx @@ -64,7 +64,7 @@ function InAppBrowserConsentInner({ label={ potentiallyMisleading ? _(msg`Potentially misleading link warning`) - : _(msg`Leaving Bitchsky`) + : _(msg`Leaving Witchsky`) }> @@ -72,7 +72,7 @@ function InAppBrowserConsentInner({ {potentiallyMisleading ? ( Potentially misleading link ) : ( - Leaving Bitchsky + Leaving Witchsky )} diff --git a/src/lib/constants.ts b/src/lib/constants.ts index 99337d76c..627ab4eaf 100644 --- a/src/lib/constants.ts +++ b/src/lib/constants.ts @@ -11,7 +11,7 @@ export const BSKY_SERVICE = 'https://bsky.social' export const BSKY_SERVICE_DID = 'did:web:bsky.social' export const PUBLIC_BSKY_SERVICE = 'https://public.api.bsky.app' export const DEFAULT_SERVICE = BSKY_SERVICE -export const HELP_DESK_URL = `https://github.com/jollywhoppers/bitchsky-app/issues/new/choose` +export const HELP_DESK_URL = `https://tangled.org/jollywhoppers.com/witchsky.app/issues/new` export const EMBED_SERVICE = 'https://embed.bsky.app' export const EMBED_SCRIPT = `${EMBED_SERVICE}/static/embed.js` export const BSKY_DOWNLOAD_URL = 'https://bsky.app/download' diff --git a/src/lib/notifications/notifications.ts b/src/lib/notifications/notifications.ts index 1c09f49cc..6a5fa8f2c 100644 --- a/src/lib/notifications/notifications.ts +++ b/src/lib/notifications/notifications.ts @@ -38,7 +38,7 @@ async function _registerPushToken({ : PUBLIC_APPVIEW_DID, platform: Platform.OS, token: token.data, - appId: 'app.bitchsky', + appId: 'app.witchsky', // ageRestricted: extra.ageRestricted ?? false, } diff --git a/src/lib/strings/embed-player.ts b/src/lib/strings/embed-player.ts index 5b6c7985c..6b32f53ad 100644 --- a/src/lib/strings/embed-player.ts +++ b/src/lib/strings/embed-player.ts @@ -9,10 +9,10 @@ const IFRAME_HOST = isWeb ? // @ts-ignore only for web window.location.host === 'localhost:8100' ? 'http://localhost:8100' - : 'https://bitchsky.app' + : 'https://witchsky.app' : __DEV__ && !process.env.JEST_WORKER_ID ? 'http://localhost:8100' - : 'https://bitchsky.app' + : 'https://witchsky.app' export const embedPlayerSources = [ 'youtube', diff --git a/src/lib/strings/headings.ts b/src/lib/strings/headings.ts index 1672fdcb0..fb12accca 100644 --- a/src/lib/strings/headings.ts +++ b/src/lib/strings/headings.ts @@ -1,4 +1,4 @@ export function bskyTitle(page: string, unreadCountLabel?: string) { const unreadPrefix = unreadCountLabel ? `(${unreadCountLabel}) ` : '' - return `${unreadPrefix}${page} β€” Bitchsky` + return `${unreadPrefix}${page} β€” Witchsky` } diff --git a/src/lib/strings/starter-pack.ts b/src/lib/strings/starter-pack.ts index a2dfd1009..b6225085b 100644 --- a/src/lib/strings/starter-pack.ts +++ b/src/lib/strings/starter-pack.ts @@ -66,7 +66,7 @@ export function createStarterPackGooglePlayUri( rkey: string, ): string | null { if (!name || !rkey) return null - return `https://play.google.com/store/apps/details?id=app.bitchsky&referrer=utm_source%3Dbluesky%26utm_medium%3Dstarterpack%26utm_content%3Dstarterpack_${name}_${rkey}` + return `https://play.google.com/store/apps/details?id=app.witchsky&referrer=utm_source%3Dbluesky%26utm_medium%3Dstarterpack%26utm_content%3Dstarterpack_${name}_${rkey}` } export function httpStarterPackUriToAtUri(httpUri?: string): string | null { diff --git a/src/lib/strings/url-helpers.ts b/src/lib/strings/url-helpers.ts index d454ae19f..bbc56ab5c 100644 --- a/src/lib/strings/url-helpers.ts +++ b/src/lib/strings/url-helpers.ts @@ -7,10 +7,10 @@ import {isInvalidHandle} from '#/lib/strings/handles' import {startUriToStarterPackUri} from '#/lib/strings/starter-pack' import {logger} from '#/logger' -export const BSKY_APP_HOST = 'https://bitchsky.app' +export const BSKY_APP_HOST = 'https://witchsky.app' const BSKY_TRUSTED_HOSTS = [ - 'bitchsky\\.app', - 'bitchsky\\.app', + 'witchsky\\.app', + 'witchsky\\.app', 'bsky\\.app', 'bsky\\.social', 'blueskyweb\\.xyz', @@ -81,7 +81,7 @@ export function toShortUrl(url: string): string { export function toShareUrl(url: string): string { if (!url.startsWith('https')) { - const urlp = new URL('https://bitchsky.app') + const urlp = new URL('https://witchsky.app') urlp.pathname = url url = urlp.toString() } @@ -107,8 +107,8 @@ export function isBskyAppUrl(url: string): boolean { url.startsWith('https://bsky.app/') || (url.startsWith('https://deer.social/') && !url.startsWith('https://deer.social/about')) || - (url.startsWith('https://bitchsky.app/') && - !url.startsWith('https://bitchsky.app/about')) + (url.startsWith('https://witchsky.app/') && + !url.startsWith('https://witchsky.app/about')) ) } diff --git a/src/screens/Settings/AboutSettings.tsx b/src/screens/Settings/AboutSettings.tsx index 9c566603d..6211c03bc 100644 --- a/src/screens/Settings/AboutSettings.tsx +++ b/src/screens/Settings/AboutSettings.tsx @@ -78,7 +78,7 @@ export function AboutSettingsScreen({}: Props) { @@ -86,7 +86,7 @@ export function AboutSettingsScreen({}: Props) { diff --git a/src/screens/Settings/NotificationSettings/index.tsx b/src/screens/Settings/NotificationSettings/index.tsx index c99f043b5..968029d9b 100644 --- a/src/screens/Settings/NotificationSettings/index.tsx +++ b/src/screens/Settings/NotificationSettings/index.tsx @@ -70,7 +70,7 @@ export function NotificationSettingsScreen({}: Props) { [ { key: 'android.provider.extra.APP_PACKAGE', - value: 'app.bitchsky', + value: 'app.witchsky', }, ], ) diff --git a/src/screens/Signup/StepInfo/index.tsx b/src/screens/Signup/StepInfo/index.tsx index 7ec466d9c..d118c0dd6 100644 --- a/src/screens/Signup/StepInfo/index.tsx +++ b/src/screens/Signup/StepInfo/index.tsx @@ -170,7 +170,7 @@ export function StepInfo({ - Bitchsky is part of the{' '} + Witchsky is part of the{' '} { Don't have an account provider or an existing Bluesky account? To create a new account on a Bluesky-hosted PDS, sign up through{' '} - {/* TODO: Xan: change to say sign up for a Bitchsky account */} + {/* TODO: Xan: change to say sign up for a Witchsky account */} { bsky.app }{' '} - first, then return to Bitchsky and log in with the account you + first, then return to Witchsky and log in with the account you created. diff --git a/src/screens/StarterPack/StarterPackLandingScreen.tsx b/src/screens/StarterPack/StarterPackLandingScreen.tsx index 9c1bb209e..33f7dac76 100644 --- a/src/screens/StarterPack/StarterPackLandingScreen.tsx +++ b/src/screens/StarterPack/StarterPackLandingScreen.tsx @@ -362,7 +362,7 @@ function LandingScreenLoaded({ {isWeb && ( )} diff --git a/src/state/persisted/schema.ts b/src/state/persisted/schema.ts index b4c88694d..0726be828 100644 --- a/src/state/persisted/schema.ts +++ b/src/state/persisted/schema.ts @@ -227,7 +227,7 @@ export const defaults: Schema = { enableSquareButtons: false, deerVerification: { enabled: false, - // https://bitchsky.app/profile/did:plc:p2cp5gopk7mgjegy6wadk3ep/post/3lndyqyyr4k2k + // https://witchsky.app/profile/did:plc:p2cp5gopk7mgjegy6wadk3ep/post/3lndyqyyr4k2k // using https://bverified.vercel.app/ as a source trusted: [ 'did:plc:z72i7hdynmk6r22z27h6tvur', diff --git a/src/state/queries/constellation.ts b/src/state/queries/constellation.ts index 1ea10020a..07267239c 100644 --- a/src/state/queries/constellation.ts +++ b/src/state/queries/constellation.ts @@ -22,7 +22,7 @@ type Collection = const headers = new Headers({ Accept: 'application/json', - 'User-Agent': 'Bitchsky (bitchsky.app)', + 'User-Agent': 'Witchsky (witchsky.app)', }) const makeReqUrl = ( diff --git a/src/view/com/auth/SplashScreen.web.tsx b/src/view/com/auth/SplashScreen.web.tsx index 578a5ced8..9246e8a18 100644 --- a/src/view/com/auth/SplashScreen.web.tsx +++ b/src/view/com/auth/SplashScreen.web.tsx @@ -170,7 +170,7 @@ function Footer() { ]}> + to="https://tangled.org/jollywhoppers.com/witchsky.app/"> Github diff --git a/src/view/screens/PrivacyPolicy.tsx b/src/view/screens/PrivacyPolicy.tsx index ad418d8d4..0738912fe 100644 --- a/src/view/screens/PrivacyPolicy.tsx +++ b/src/view/screens/PrivacyPolicy.tsx @@ -39,8 +39,8 @@ export const PrivacyPolicyScreen = (_props: Props) => { The Privacy Policy has been moved to{' '} diff --git a/src/view/screens/TermsOfService.tsx b/src/view/screens/TermsOfService.tsx index c27735bdc..ba288b682 100644 --- a/src/view/screens/TermsOfService.tsx +++ b/src/view/screens/TermsOfService.tsx @@ -38,8 +38,8 @@ export const TermsOfServiceScreen = (_props: Props) => { The Terms of Service have been moved to{' '} diff --git a/src/view/shell/Drawer.tsx b/src/view/shell/Drawer.tsx index f8495d730..5a426d9e7 100644 --- a/src/view/shell/Drawer.tsx +++ b/src/view/shell/Drawer.tsx @@ -697,12 +697,12 @@ function ExtraLinks() { + to="https://witchsky.app/about/tos"> Terms of Service Privacy Policy diff --git a/src/view/shell/desktop/RightNav.tsx b/src/view/shell/desktop/RightNav.tsx index d554afef1..acd8eee71 100644 --- a/src/view/shell/desktop/RightNav.tsx +++ b/src/view/shell/desktop/RightNav.tsx @@ -109,13 +109,13 @@ export function DesktopRightNav({routeName}: {routeName: string}) { )} {_(msg`Privacy`)} {' β€’ '} {_(msg`Terms`)} diff --git a/web/index.html b/web/index.html index 29d371cd7..cee833d4e 100644 --- a/web/index.html +++ b/web/index.html @@ -106,7 +106,7 @@ ">

JavaScript Required

This is a heavily interactive web application, and JavaScript is required. Simple HTML interfaces are possible, but that is not what this is. -

Learn more about Bluesky at bsky.social and atproto.com, or this fork at github.com/jollywhoppers/bitchsky-app. +

Learn more about Bluesky at bsky.social and atproto.com, or this fork at https://tangled.org/jollywhoppers.com/witchsky.app/. diff --git a/bitchsky-static-about/index.html b/witchsky-static-about/index.html similarity index 73% rename from bitchsky-static-about/index.html rename to witchsky-static-about/index.html index d5825a7a0..59ca84ad8 100644 --- a/bitchsky-static-about/index.html +++ b/witchsky-static-about/index.html @@ -7,8 +7,8 @@ name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1.00001, viewport-fit=cover" /> - About β€” Bitchsky - + About β€” Witchsky + @@ -16,7 +16,7 @@

Redirecting to GitHub README...

diff --git a/bitchsky-static-about/normalize.css b/witchsky-static-about/normalize.css similarity index 100% rename from bitchsky-static-about/normalize.css rename to witchsky-static-about/normalize.css diff --git a/bitchsky-static-about/privacy.html b/witchsky-static-about/privacy.html similarity index 82% rename from bitchsky-static-about/privacy.html rename to witchsky-static-about/privacy.html index a388e5ca0..08e248ae1 100644 --- a/bitchsky-static-about/privacy.html +++ b/witchsky-static-about/privacy.html @@ -11,7 +11,7 @@ name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1.00001, viewport-fit=cover" /> - Privacy Policy β€” Bitchsky + Privacy Policy β€” Witchsky @@ -22,33 +22,33 @@ -

Bitchsky Privacy Policy

+

Witchsky Privacy Policy

Last Updated: May 07, 2025

-

Welcome to Bitchsky. This privacy policy explains our approach to your data when you use our application.

+

Welcome to Witchsky. This privacy policy explains our approach to your data when you use our application.

-

No Data Collection by Bitchsky

-

The Bitchsky application itself does not collect, store, track, or share any of your personal information or user data. We do not operate servers that store your account details, posts, or activity logs.

+

No Data Collection by Witchsky

+

The Witchsky application itself does not collect, store, track, or share any of your personal information or user data. We do not operate servers that store your account details, posts, or activity logs.

Our application functions solely as a client interface to interact with the underlying Bluesky social network (AT Protocol).

Reliance on Third-Party Services (AppView and PDS)

-

When you use Bitchsky, you connect to the Bluesky network through a specific AppView and your chosen Personal Data Server (PDS). These services are responsible for storing and managing your account information, posts, social graph, and other associated data.

-

Your data handling and privacy are governed by the Terms of Service and Privacy Policies of the specific AppView and PDS you use. Bitchsky simply acts on your behalf to communicate with these services based on the credentials you provide locally on your device.

+

When you use Witchsky, you connect to the Bluesky network through a specific AppView and your chosen Personal Data Server (PDS). These services are responsible for storing and managing your account information, posts, social graph, and other associated data.

+

Your data handling and privacy are governed by the Terms of Service and Privacy Policies of the specific AppView and PDS you use. Witchsky simply acts on your behalf to communicate with these services based on the credentials you provide locally on your device.

We strongly recommend you review the policies of your chosen PDS provider and the AppView you are using. For reference, the Privacy Policy for the default Bluesky service (AppView provided by bsky.social) can be found here:

https://bsky.social/about/support/privacy-policy

Data Stored Locally on Your Device

-

To function, Bitchsky may store your login credentials or temporary session information on your own device. This data is not accessed by or transmitted to us.

+

To function, Witchsky may store your login credentials or temporary session information on your own device. This data is not accessed by or transmitted to us.

Cookies and Analytics

-

Bitchsky does not use cookies or any tracking analytics.

+

Witchsky does not use cookies or any tracking analytics.

Changes to This Policy

We may update this policy. If we do, we will update the "Effective Date" at the top of this page.

Contact Us

-

If you have questions specifically about the functionality of the Bitchsky application itself (and not about data managed by your PDS or AppView), please email contact@jollywhoppers.com.

+

If you have questions specifically about the functionality of the Witchsky application itself (and not about data managed by your PDS or AppView), please email contact@jollywhoppers.com.

diff --git a/bitchsky-static-about/sakura.css b/witchsky-static-about/sakura.css similarity index 100% rename from bitchsky-static-about/sakura.css rename to witchsky-static-about/sakura.css diff --git a/bitchsky-static-about/tos.html b/witchsky-static-about/tos.html similarity index 87% rename from bitchsky-static-about/tos.html rename to witchsky-static-about/tos.html index c4d1b70cd..6cb01eaa9 100644 --- a/bitchsky-static-about/tos.html +++ b/witchsky-static-about/tos.html @@ -11,7 +11,7 @@ name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1.00001, viewport-fit=cover" /> - Terms of Service β€” Bitchsky + Terms of Service β€” Witchsky @@ -22,26 +22,26 @@ -

Terms of Service for Bitchsky

+

Terms of Service for Witchsky

Last Updated: May 07, 2025

Introduction

-

Welcome to Bitchsky! These Terms of Service ("Terms") govern your use of the Bitchsky application ("App"). By accessing or using the App, you agree to be bound by these Terms.

+

Welcome to Witchsky! These Terms of Service ("Terms") govern your use of the Witchsky application ("App"). By accessing or using the App, you agree to be bound by these Terms.

Your Agreement

-

Using Bitchsky signifies your acceptance of these Terms. Please also review our Privacy Policy, which explains how we handle data related to the App itself.

+

Using Witchsky signifies your acceptance of these Terms. Please also review our Privacy Policy, which explains how we handle data related to the App itself.

Relationship to Other Services and Platforms

-

Bitchsky functions as a client or interface. It allows you to interact with decentralized social media protocols, instances, or servers (your "AppView" or "Personal Data Server" / "PDS").

-

Important: Bitchsky does not host your data or control the underlying networks or servers you connect to. Your interaction with these third-party services, including the content you post and view, is governed by the Terms of Service, acceptable use policies, and privacy policies of the specific AppView and/or PDS you choose to use.

+

Witchsky functions as a client or interface. It allows you to interact with decentralized social media protocols, instances, or servers (your "AppView" or "Personal Data Server" / "PDS").

+

Important: Witchsky does not host your data or control the underlying networks or servers you connect to. Your interaction with these third-party services, including the content you post and view, is governed by the Terms of Service, acceptable use policies, and privacy policies of the specific AppView and/or PDS you choose to use.

You are responsible for understanding and complying with the terms of those external services.

We strongly recommend you review the policies of your chosen PDS provider and the AppView you are using. For reference, the Terms of Service for the default Bluesky service (AppView provided by bsky.social) can be found here:

https://bsky.social/about/support/tos

User Conduct

-

Your conduct while using Bitchsky must comply with the terms and rules set forth by the AppView and PDS you are connected to. Bitchsky is merely a tool to access these services, and Jollywhoppers is not responsible for enforcing the rules of those platforms or for the content accessed through them.

+

Your conduct while using Witchsky must comply with the terms and rules set forth by the AppView and PDS you are connected to. Witchsky is merely a tool to access these services, and Jollywhoppers is not responsible for enforcing the rules of those platforms or for the content accessed through them.

Disclaimer of Warranty

The App is provided "AS IS" and "AS AVAILABLE," without warranty of any kind, express or implied. Forsyth Peak LLC does not warrant that the App will meet your requirements, be available uninterrupted, secure, or error-free.

-- 2.51.2