From 7cff21efa2f7d898fe2c8b6cf7f2ce993ddd6733 Mon Sep 17 00:00:00 2001 From: syui Date: Mon, 8 Dec 2025 12:15:47 +0900 Subject: [PATCH] add social-app origin pages --- ios/patching/006-social-app-ios-shell.patch | 24 +- ios/patching/009-social-app-ios-license.patch | 171 +++++++-- ...social-app-ios-bskyweb-support-pages.patch | 329 ++++++++++++++++++ ios/setup.zsh | 1 + 4 files changed, 490 insertions(+), 35 deletions(-) create mode 100644 ios/patching/022-social-app-ios-bskyweb-support-pages.patch diff --git a/ios/patching/006-social-app-ios-shell.patch b/ios/patching/006-social-app-ios-shell.patch index b2ea406..d2154d2 100644 --- a/ios/patching/006-social-app-ios-shell.patch +++ b/ios/patching/006-social-app-ios-shell.patch @@ -1,5 +1,5 @@ diff --git a/src/components/dialogs/BirthDateSettings.tsx b/src/components/dialogs/BirthDateSettings.tsx -index 9915d0a2d..c200a7c67 100644 +index 9915d0a2d..4ae51215d 100644 --- a/src/components/dialogs/BirthDateSettings.tsx +++ b/src/components/dialogs/BirthDateSettings.tsx @@ -163,7 +163,7 @@ function BirthdayInner({ @@ -25,7 +25,7 @@ index d7c02bb9f..fda1dfe4a 100644 diff --git a/src/view/shell/Drawer.tsx b/src/view/shell/Drawer.tsx -index ed2a6cfb7..2f387b4a8 100644 +index ed2a6cfb7..1dc7f9227 100644 --- a/src/view/shell/Drawer.tsx +++ b/src/view/shell/Drawer.tsx @@ -1,60 +1,50 @@ @@ -599,14 +599,13 @@ index ed2a6cfb7..2f387b4a8 100644 ]}> () return ( @@ -634,15 +633,20 @@ index ed2a6cfb7..2f387b4a8 100644 - @sawaratsuki.bsky.social - - -+ navigation.navigate('TermsOfService')}> ++ Linking.openURL('https://syu.is/about/support/tos')}> + -+ Terms of Service ++ Terms of Service - )} + -+ navigation.navigate('PrivacyPolicy')}> ++ Linking.openURL('https://syu.is/about/support/privacy-policy')}> + -+ Privacy Policy ++ Privacy Policy ++ ++ ++ navigation.navigate('License')}> ++ ++ License + + @@ -692,7 +696,7 @@ index 779ebda68..bfd9b70fa 100644 testID="bottomBarNotificationsBtn" icon={ diff --git a/src/view/shell/desktop/RightNav.tsx b/src/view/shell/desktop/RightNav.tsx -index 1d097fc9a..e11a3a202 100644 +index 1d097fc9a..1ad7026a2 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}) { diff --git a/ios/patching/009-social-app-ios-license.patch b/ios/patching/009-social-app-ios-license.patch index 0d94461..ae4e3ee 100644 --- a/ios/patching/009-social-app-ios-license.patch +++ b/ios/patching/009-social-app-ios-license.patch @@ -1,15 +1,15 @@ diff --git a/src/Navigation.tsx b/src/Navigation.tsx -index fa33a9d56..a9b724c4e 100644 +index fa33a9d56..13af087c2 100644 --- a/src/Navigation.tsx +++ b/src/Navigation.tsx -@@ -67,6 +67,7 @@ import {ProfileFeedLikedByScreen} from '#/view/screens/ProfileFeedLikedBy' - import {Storybook} from '#/view/screens/Storybook' - import {SupportScreen} from '#/view/screens/Support' - import {TermsOfServiceScreen} from '#/view/screens/TermsOfService' +@@ -62,6 +62,7 @@ import {NotFoundScreen} from '#/view/screens/NotFound' + import {NotificationsScreen} from '#/view/screens/Notifications' + import {PostThreadScreen} from '#/view/screens/PostThread' + import {PrivacyPolicyScreen} from '#/view/screens/PrivacyPolicy' +import {LicenseScreen} from '#/view/screens/License' - import {BottomBar} from '#/view/shell/bottom-bar/BottomBar' - import {createNativeStackNavigatorWithAuth} from '#/view/shell/createNativeStackNavigatorWithAuth' - import {BookmarksScreen} from '#/screens/Bookmarks' + import {ProfileScreen} from '#/view/screens/Profile' + import {ProfileFeedLikedByScreen} from '#/view/screens/ProfileFeedLikedBy' + import {Storybook} from '#/view/screens/Storybook' @@ -335,6 +336,11 @@ function commonScreens(Stack: typeof Flat, unreadCountLabel?: string) { getComponent={() => TermsOfServiceScreen} options={{title: title(msg`Terms of Service`)}} @@ -34,20 +34,141 @@ index c315a8341..9b2f50a83 100644 CommunityGuidelines: undefined CopyrightPolicy: undefined LanguageSettings: undefined -diff --git a/src/view/shell/Drawer.tsx b/src/view/shell/Drawer.tsx -index ed2a6cfb7..0b429e6f3 100644 ---- a/src/view/shell/Drawer.tsx -+++ b/src/view/shell/Drawer.tsx -@@ -460,6 +460,11 @@ function ExtraLinks() { - - Privacy Policy - - -+ navigation.navigate('License')}> -+ -+ License -+ -+ - - ) - } +diff --git a/src/view/screens/License.tsx b/src/view/screens/License.tsx +new file mode 100644 +index 000000000..87f52a972 +--- /dev/null ++++ b/src/view/screens/License.tsx +@@ -0,0 +1,132 @@ ++import React from 'react' ++import { ScrollView, Text as RNText, StyleSheet } from 'react-native' ++import * as Layout from '#/components/Layout' ++import {useSetTitle} from '#/lib/hooks/useSetTitle' ++import {atoms as a, useTheme} from '#/alf' ++ ++export function LicenseScreen() { ++ useSetTitle('License') ++ const t = useTheme() ++ ++ return ( ++ ++ ++ ++ ++ License ++ ++ ++ ++ ++ ++ ++ This application is based on Bluesky Social App. ++ ++ ++ ++ https://github.com/bluesky-social/social-app ++ ++ ++ MIT License ++ ++ ++ Copyright (c) 2022-2025 Bluesky PBC ++ ++ ++ ++ Permission is hereby granted, free of charge, to any person obtaining a copy ++ of this software and associated documentation files (the "Software"), to deal ++ in the Software without restriction, including without limitation the rights ++ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell ++ copies of the Software, and to permit persons to whom the Software is ++ furnished to do so, subject to the following conditions: ++ ++ ++ ++ The above copyright notice and this permission notice shall be included in all ++ copies or substantial portions of the Software. ++ ++ ++ ++ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR ++ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ++ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE ++ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ++ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, ++ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE ++ SOFTWARE. ++ ++ ++ 日本語訳(参考) ++ ++ ++ 本ソフトウェアおよび関連文書ファイル(以下「ソフトウェア」)のコピーを取得する ++ すべての人に対し、ソフトウェアを無制限に扱うことを無償で許可します。これには、 ++ ソフトウェアのコピーを使用、複製、変更、結合、公開、配布、サブライセンス、 ++ および/または販売する権利、ならびにソフトウェアを提供する相手にそうした行為を ++ 許可する権利が含まれますが、これらに限定されません。 ++ ++ ++ ++ 上記の著作権表示および本許諾表示を、ソフトウェアのすべてのコピーまたは ++ 重要な部分に記載するものとします。 ++ ++ ++ ++ ソフトウェアは「現状のまま」で提供され、明示黙示を問わず、商品性、特定目的への ++ 適合性、および権利非侵害についての保証を含む、いかなる種類の保証もなされません。 ++ いかなる場合においても、作者または著作権者は、契約行為、不法行為、またはそれ以外で ++ あろうと、ソフトウェアに起因または関連し、あるいはソフトウェアの使用または ++ その他の扱いによって生じる一切の請求、損害、その他の義務について責任を負わないものとします。 ++ ++ ++ ++ Original License: https://github.com/bluesky-social/social-app/blob/main/LICENSE ++ ++ ++ ++ ++ ) ++} ++ ++const styles = StyleSheet.create({ ++ title: { ++ fontSize: 24, ++ fontWeight: 'bold', ++ marginBottom: 16, ++ }, ++ text: { ++ fontSize: 14, ++ marginBottom: 12, ++ lineHeight: 20, ++ }, ++ link: { ++ fontSize: 14, ++ marginBottom: 12, ++ color: '#0066cc', ++ }, ++ sectionTitle: { ++ fontSize: 18, ++ fontWeight: 'bold', ++ marginTop: 16, ++ marginBottom: 12, ++ }, ++ sectionTitle2: { ++ fontSize: 18, ++ fontWeight: 'bold', ++ marginTop: 24, ++ marginBottom: 12, ++ }, ++ mono: { ++ fontSize: 14, ++ marginBottom: 12, ++ fontFamily: 'monospace', ++ }, ++ footer: { ++ fontSize: 12, ++ marginTop: 24, ++ color: '#666666', ++ }, ++}) diff --git a/ios/patching/022-social-app-ios-bskyweb-support-pages.patch b/ios/patching/022-social-app-ios-bskyweb-support-pages.patch new file mode 100644 index 0000000..a07a3ae --- /dev/null +++ b/ios/patching/022-social-app-ios-bskyweb-support-pages.patch @@ -0,0 +1,329 @@ +diff --git a/bskyweb/cmd/bskyweb/server.go b/bskyweb/cmd/bskyweb/server.go +index ec5261dee..c670cf75a 100644 +--- a/bskyweb/cmd/bskyweb/server.go ++++ b/bskyweb/cmd/bskyweb/server.go +@@ -300,6 +300,10 @@ func serve(cctx *cli.Context) error { + e.GET("/support/tos", server.WebGeneric) + e.GET("/support/community-guidelines", server.WebGeneric) + e.GET("/support/copyright", server.WebGeneric) ++ // about/support pages (syu.is specific) ++ e.GET("/about/support/tos", server.WebAboutTOS) ++ e.GET("/about/support/privacy-policy", server.WebAboutPrivacy) ++ e.GET("/about/support/help", server.WebAboutHelp) + e.GET("/intent/compose", server.WebGeneric) + e.GET("/intent/verify-email", server.WebGeneric) + e.GET("/intent/age-assurance", server.WebGeneric) +@@ -753,3 +757,21 @@ func (srv *Server) WebIpCC(c echo.Context) error { + } + return c.JSON(200, outResponse) + } ++ ++// Handler for About TOS page (syu.is specific) ++func (srv *Server) WebAboutTOS(c echo.Context) error { ++ data := srv.NewTemplateContext() ++ return c.Render(http.StatusOK, "about-tos.html", data) ++} ++ ++// Handler for About Privacy Policy page (syu.is specific) ++func (srv *Server) WebAboutPrivacy(c echo.Context) error { ++ data := srv.NewTemplateContext() ++ return c.Render(http.StatusOK, "about-privacy.html", data) ++} ++ ++// Handler for About Help page (syu.is specific) ++func (srv *Server) WebAboutHelp(c echo.Context) error { ++ data := srv.NewTemplateContext() ++ return c.Render(http.StatusOK, "about-help.html", data) ++} +diff --git a/bskyweb/templates/about-help.html b/bskyweb/templates/about-help.html +new file mode 100644 +index 000000000..d37db25c5 +--- /dev/null ++++ b/bskyweb/templates/about-help.html +@@ -0,0 +1,98 @@ ++ ++ ++ ++ ++ ++ Help - syu.is ++ ++ ++ ++ ++
++ ← Back to syu.is ++

Help Center

++
++ ++

About syu.is

++

syu.is is a social networking service built on the AT Protocol (Authenticated Transfer Protocol). It allows users to share content, connect with others, and participate in a decentralized social network.

++ ++

Frequently Asked Questions

++ ++
++

What is the AT Protocol?

++

The AT Protocol is a decentralized social networking protocol that allows users to own their data and identity. It enables federation between different services while maintaining user control.

++
++ ++
++

How do I create an account?

++

You can create an account by downloading the app or visiting the website. You'll need to provide an email address and choose a username.

++
++ ++
++

How do I reset my password?

++

You can reset your password through the login screen by selecting "Forgot Password" and following the instructions sent to your email.

++
++ ++
++

How do I delete my account?

++

You can delete your account through Settings > Account. Please note that account deletion is permanent and cannot be undone.

++
++ ++
++

How do I report abuse or inappropriate content?

++

You can report content by using the report function available on each post. Our moderation team will review reports and take appropriate action.

++
++ ++

Contact

++
++

For additional support or questions:

++ ++
++ ++

Related Links

++ ++ ++ ++ ++ +diff --git a/bskyweb/templates/about-privacy.html b/bskyweb/templates/about-privacy.html +new file mode 100644 +index 000000000..14a1168ad +--- /dev/null ++++ b/bskyweb/templates/about-privacy.html +@@ -0,0 +1,92 @@ ++ ++ ++ ++ ++ ++ Privacy Policy - syu.is ++ ++ ++ ++ ++
++ ← Back to syu.is ++

Privacy Policy

++
++ ++

1. Introduction

++

This Privacy Policy explains how syu.is collects, uses, and protects your personal information when you use our service.

++ ++

2. Information We Collect

++

We collect the following types of information:

++ ++ ++

3. How We Use Your Information

++

We use your information to:

++ ++ ++

4. Data Sharing

++

As part of the AT Protocol federation, your public content may be shared with other servers in the network. We do not sell your personal information to third parties.

++ ++

5. Data Security

++

We implement appropriate security measures to protect your personal information. However, no method of transmission over the Internet is 100% secure.

++ ++

6. Your Rights

++

You have the right to:

++ ++ ++

7. Cookies

++

We use cookies and similar technologies to maintain your session and improve your experience.

++ ++

8. Changes to This Policy

++

We may update this Privacy Policy from time to time. We will notify you of any significant changes.

++ ++

9. Contact

++

For privacy-related questions, please visit our Help page.

++ ++ ++ ++ +diff --git a/bskyweb/templates/about-tos.html b/bskyweb/templates/about-tos.html +new file mode 100644 +index 000000000..db5d82f5c +--- /dev/null ++++ b/bskyweb/templates/about-tos.html +@@ -0,0 +1,84 @@ ++ ++ ++ ++ ++ ++ Terms of Service - syu.is ++ ++ ++ ++ ++
++ ← Back to syu.is ++

Terms of Service

++
++ ++

1. Introduction

++

Welcome to syu.is. By using our service, you agree to these terms. Please read them carefully.

++ ++

2. Service Description

++

syu.is is a social networking service built on the AT Protocol. We provide a platform for users to share content and connect with others.

++ ++

3. User Responsibilities

++

As a user of syu.is, you agree to:

++ ++ ++

4. Content Guidelines

++

Users are responsible for the content they post. Prohibited content includes:

++ ++ ++

5. Privacy

++

Your privacy is important to us. Please review our Privacy Policy to understand how we handle your data.

++ ++

6. Disclaimer

++

The service is provided "as is" without warranties of any kind. We are not liable for any damages arising from your use of the service.

++ ++

7. Changes to Terms

++

We may update these terms from time to time. Continued use of the service after changes constitutes acceptance of the new terms.

++ ++

8. Contact

++

For questions about these terms, please visit our Help page.

++ ++ ++ ++ diff --git a/ios/setup.zsh b/ios/setup.zsh index e4b9d40..0870ab5 100755 --- a/ios/setup.zsh +++ b/ios/setup.zsh @@ -27,6 +27,7 @@ PATCH_FILES_IOS=( "019-social-app-ios-entitlements-plugin.patch" "020-social-app-ios-bypass-age-assurance.patch" "021-social-app-ios-clean-feed.patch" + "022-social-app-ios-bskyweb-support-pages.patch" ) function ios-env() {