add social-app origin pages
This commit is contained in:
@@ -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
|
||||
</Admonition>
|
||||
</View>
|
||||
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
|
||||
]}>
|
||||
<View
|
||||
style={[
|
||||
@@ -686,37 +444,23 @@ function MenuItem({icon, label, count, bold, onPress}: MenuItemProps) {
|
||||
@@ -686,37 +444,26 @@ function MenuItem({icon, label, count, bold, onPress}: MenuItemProps) {
|
||||
}
|
||||
|
||||
function ExtraLinks() {
|
||||
- const {_} = useLingui()
|
||||
+ const { _ } = useLingui()
|
||||
const t = useTheme()
|
||||
const kawaii = useKawaiiMode()
|
||||
- const kawaii = useKawaiiMode()
|
||||
+ const navigation = useNavigation<NavigationProp>()
|
||||
|
||||
return (
|
||||
@@ -634,15 +633,20 @@ index ed2a6cfb7..2f387b4a8 100644
|
||||
- @sawaratsuki.bsky.social
|
||||
- </InlineLinkText>
|
||||
- </Trans>
|
||||
+ <TouchableOpacity onPress={() => navigation.navigate('TermsOfService')}>
|
||||
+ <TouchableOpacity onPress={() => Linking.openURL('https://syu.is/about/support/tos')}>
|
||||
+ <Text style={[a.text_md, t.atoms.text_contrast_medium]}>
|
||||
+ <Trans>Terms of Service</Trans>
|
||||
+ Terms of Service
|
||||
</Text>
|
||||
- )}
|
||||
+ </TouchableOpacity>
|
||||
+ <TouchableOpacity onPress={() => navigation.navigate('PrivacyPolicy')}>
|
||||
+ <TouchableOpacity onPress={() => Linking.openURL('https://syu.is/about/support/privacy-policy')}>
|
||||
+ <Text style={[a.text_md, t.atoms.text_contrast_medium]}>
|
||||
+ <Trans>Privacy Policy</Trans>
|
||||
+ Privacy Policy
|
||||
+ </Text>
|
||||
+ </TouchableOpacity>
|
||||
+ <TouchableOpacity onPress={() => navigation.navigate('License')}>
|
||||
+ <Text style={[a.text_md, t.atoms.text_contrast_medium]}>
|
||||
+ License
|
||||
+ </Text>
|
||||
+ </TouchableOpacity>
|
||||
</View>
|
||||
@@ -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}) {
|
||||
|
||||
@@ -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() {
|
||||
<Text style={[a.text_md, t.atoms.text_contrast_medium]}>
|
||||
<Trans>Privacy Policy</Trans>
|
||||
</Text>
|
||||
</TouchableOpacity>
|
||||
+ <TouchableOpacity onPress={() => navigation.navigate('License')}>
|
||||
+ <Text style={[a.text_md, t.atoms.text_contrast_medium]}>
|
||||
+ <Trans>License</Trans>
|
||||
+ </Text>
|
||||
+ </TouchableOpacity>
|
||||
</View>
|
||||
)
|
||||
}
|
||||
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 (
|
||||
+ <Layout.Screen>
|
||||
+ <Layout.Header.Outer>
|
||||
+ <Layout.Header.BackButton />
|
||||
+ <Layout.Header.Content>
|
||||
+ <Layout.Header.TitleText>License</Layout.Header.TitleText>
|
||||
+ </Layout.Header.Content>
|
||||
+ <Layout.Header.Slot />
|
||||
+ </Layout.Header.Outer>
|
||||
+ <Layout.Content>
|
||||
+ <ScrollView
|
||||
+ style={[a.flex_1]}
|
||||
+ contentContainerStyle={[a.p_lg, a.pt_xl, a.pb_5xl]}>
|
||||
+ <RNText style={styles.text}>
|
||||
+ This application is based on Bluesky Social App.
|
||||
+ </RNText>
|
||||
+
|
||||
+ <RNText style={styles.link}>
|
||||
+ https://github.com/bluesky-social/social-app
|
||||
+ </RNText>
|
||||
+
|
||||
+ <RNText style={styles.sectionTitle}>MIT License</RNText>
|
||||
+
|
||||
+ <RNText style={styles.mono}>
|
||||
+ Copyright (c) 2022-2025 Bluesky PBC
|
||||
+ </RNText>
|
||||
+
|
||||
+ <RNText style={styles.text}>
|
||||
+ 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:
|
||||
+ </RNText>
|
||||
+
|
||||
+ <RNText style={styles.text}>
|
||||
+ The above copyright notice and this permission notice shall be included in all
|
||||
+ copies or substantial portions of the Software.
|
||||
+ </RNText>
|
||||
+
|
||||
+ <RNText style={styles.text}>
|
||||
+ 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.
|
||||
+ </RNText>
|
||||
+
|
||||
+ <RNText style={styles.sectionTitle2}>日本語訳(参考)</RNText>
|
||||
+
|
||||
+ <RNText style={styles.text}>
|
||||
+ 本ソフトウェアおよび関連文書ファイル(以下「ソフトウェア」)のコピーを取得する
|
||||
+ すべての人に対し、ソフトウェアを無制限に扱うことを無償で許可します。これには、
|
||||
+ ソフトウェアのコピーを使用、複製、変更、結合、公開、配布、サブライセンス、
|
||||
+ および/または販売する権利、ならびにソフトウェアを提供する相手にそうした行為を
|
||||
+ 許可する権利が含まれますが、これらに限定されません。
|
||||
+ </RNText>
|
||||
+
|
||||
+ <RNText style={styles.text}>
|
||||
+ 上記の著作権表示および本許諾表示を、ソフトウェアのすべてのコピーまたは
|
||||
+ 重要な部分に記載するものとします。
|
||||
+ </RNText>
|
||||
+
|
||||
+ <RNText style={styles.text}>
|
||||
+ ソフトウェアは「現状のまま」で提供され、明示黙示を問わず、商品性、特定目的への
|
||||
+ 適合性、および権利非侵害についての保証を含む、いかなる種類の保証もなされません。
|
||||
+ いかなる場合においても、作者または著作権者は、契約行為、不法行為、またはそれ以外で
|
||||
+ あろうと、ソフトウェアに起因または関連し、あるいはソフトウェアの使用または
|
||||
+ その他の扱いによって生じる一切の請求、損害、その他の義務について責任を負わないものとします。
|
||||
+ </RNText>
|
||||
+
|
||||
+ <RNText style={styles.footer}>
|
||||
+ Original License: https://github.com/bluesky-social/social-app/blob/main/LICENSE
|
||||
+ </RNText>
|
||||
+ </ScrollView>
|
||||
+ </Layout.Content>
|
||||
+ </Layout.Screen>
|
||||
+ )
|
||||
+}
|
||||
+
|
||||
+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',
|
||||
+ },
|
||||
+})
|
||||
|
||||
329
ios/patching/022-social-app-ios-bskyweb-support-pages.patch
Normal file
329
ios/patching/022-social-app-ios-bskyweb-support-pages.patch
Normal file
@@ -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 @@
|
||||
+<!DOCTYPE html>
|
||||
+<html lang="ja">
|
||||
+<head>
|
||||
+ <meta charset="UTF-8">
|
||||
+ <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1">
|
||||
+ <title>Help - syu.is</title>
|
||||
+ <link rel="icon" type="image/png" href="{{ staticCDNHost }}/static/favicon.png">
|
||||
+ <style>
|
||||
+ * { box-sizing: border-box; margin: 0; padding: 0; }
|
||||
+ body {
|
||||
+ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
|
||||
+ line-height: 1.6;
|
||||
+ color: #1a1a1a;
|
||||
+ background: #fff;
|
||||
+ padding: 20px;
|
||||
+ max-width: 800px;
|
||||
+ margin: 0 auto;
|
||||
+ }
|
||||
+ @media (prefers-color-scheme: dark) {
|
||||
+ body { background: #000; color: #e0e0e0; }
|
||||
+ a { color: #6bb3ff; }
|
||||
+ h1, h2, h3 { color: #fff; }
|
||||
+ }
|
||||
+ h1 { font-size: 28px; margin-bottom: 24px; padding-bottom: 12px; border-bottom: 1px solid #ddd; }
|
||||
+ h2 { font-size: 20px; margin: 24px 0 12px; }
|
||||
+ h3 { font-size: 16px; margin: 16px 0 8px; }
|
||||
+ p { margin-bottom: 16px; }
|
||||
+ ul { margin: 0 0 16px 24px; }
|
||||
+ li { margin-bottom: 8px; }
|
||||
+ a { color: #0066cc; text-decoration: none; }
|
||||
+ a:hover { text-decoration: underline; }
|
||||
+ .header { margin-bottom: 32px; }
|
||||
+ .back-link { display: inline-block; margin-bottom: 16px; font-size: 14px; }
|
||||
+ .footer { margin-top: 40px; padding-top: 20px; border-top: 1px solid #ddd; font-size: 14px; color: #666; }
|
||||
+ .faq-item { margin-bottom: 24px; }
|
||||
+ .contact-box { background: #f5f5f5; padding: 20px; border-radius: 8px; margin: 20px 0; }
|
||||
+ @media (prefers-color-scheme: dark) {
|
||||
+ .contact-box { background: #1a1a1a; }
|
||||
+ }
|
||||
+ </style>
|
||||
+</head>
|
||||
+<body>
|
||||
+ <div class="header">
|
||||
+ <a href="/" class="back-link">← Back to syu.is</a>
|
||||
+ <h1>Help Center</h1>
|
||||
+ </div>
|
||||
+
|
||||
+ <h2>About syu.is</h2>
|
||||
+ <p>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.</p>
|
||||
+
|
||||
+ <h2>Frequently Asked Questions</h2>
|
||||
+
|
||||
+ <div class="faq-item">
|
||||
+ <h3>What is the AT Protocol?</h3>
|
||||
+ <p>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.</p>
|
||||
+ </div>
|
||||
+
|
||||
+ <div class="faq-item">
|
||||
+ <h3>How do I create an account?</h3>
|
||||
+ <p>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.</p>
|
||||
+ </div>
|
||||
+
|
||||
+ <div class="faq-item">
|
||||
+ <h3>How do I reset my password?</h3>
|
||||
+ <p>You can reset your password through the login screen by selecting "Forgot Password" and following the instructions sent to your email.</p>
|
||||
+ </div>
|
||||
+
|
||||
+ <div class="faq-item">
|
||||
+ <h3>How do I delete my account?</h3>
|
||||
+ <p>You can delete your account through Settings > Account. Please note that account deletion is permanent and cannot be undone.</p>
|
||||
+ </div>
|
||||
+
|
||||
+ <div class="faq-item">
|
||||
+ <h3>How do I report abuse or inappropriate content?</h3>
|
||||
+ <p>You can report content by using the report function available on each post. Our moderation team will review reports and take appropriate action.</p>
|
||||
+ </div>
|
||||
+
|
||||
+ <h2>Contact</h2>
|
||||
+ <div class="contact-box">
|
||||
+ <p>For additional support or questions:</p>
|
||||
+ <ul>
|
||||
+ <li>GitHub: <a href="https://github.com/syui" target="_blank">github.com/syui</a></li>
|
||||
+ </ul>
|
||||
+ </div>
|
||||
+
|
||||
+ <h2>Related Links</h2>
|
||||
+ <ul>
|
||||
+ <li><a href="/about/support/tos">Terms of Service</a></li>
|
||||
+ <li><a href="/about/support/privacy-policy">Privacy Policy</a></li>
|
||||
+ <li><a href="https://atproto.com" target="_blank">AT Protocol Documentation</a></li>
|
||||
+ </ul>
|
||||
+
|
||||
+ <div class="footer">
|
||||
+ <p>Last updated: 2025</p>
|
||||
+ <p>© syu.is</p>
|
||||
+ </div>
|
||||
+</body>
|
||||
+</html>
|
||||
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 @@
|
||||
+<!DOCTYPE html>
|
||||
+<html lang="ja">
|
||||
+<head>
|
||||
+ <meta charset="UTF-8">
|
||||
+ <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1">
|
||||
+ <title>Privacy Policy - syu.is</title>
|
||||
+ <link rel="icon" type="image/png" href="{{ staticCDNHost }}/static/favicon.png">
|
||||
+ <style>
|
||||
+ * { box-sizing: border-box; margin: 0; padding: 0; }
|
||||
+ body {
|
||||
+ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
|
||||
+ line-height: 1.6;
|
||||
+ color: #1a1a1a;
|
||||
+ background: #fff;
|
||||
+ padding: 20px;
|
||||
+ max-width: 800px;
|
||||
+ margin: 0 auto;
|
||||
+ }
|
||||
+ @media (prefers-color-scheme: dark) {
|
||||
+ body { background: #000; color: #e0e0e0; }
|
||||
+ a { color: #6bb3ff; }
|
||||
+ h1, h2, h3 { color: #fff; }
|
||||
+ }
|
||||
+ h1 { font-size: 28px; margin-bottom: 24px; padding-bottom: 12px; border-bottom: 1px solid #ddd; }
|
||||
+ h2 { font-size: 20px; margin: 24px 0 12px; }
|
||||
+ p { margin-bottom: 16px; }
|
||||
+ ul { margin: 0 0 16px 24px; }
|
||||
+ li { margin-bottom: 8px; }
|
||||
+ a { color: #0066cc; text-decoration: none; }
|
||||
+ a:hover { text-decoration: underline; }
|
||||
+ .header { margin-bottom: 32px; }
|
||||
+ .back-link { display: inline-block; margin-bottom: 16px; font-size: 14px; }
|
||||
+ .footer { margin-top: 40px; padding-top: 20px; border-top: 1px solid #ddd; font-size: 14px; color: #666; }
|
||||
+ </style>
|
||||
+</head>
|
||||
+<body>
|
||||
+ <div class="header">
|
||||
+ <a href="/" class="back-link">← Back to syu.is</a>
|
||||
+ <h1>Privacy Policy</h1>
|
||||
+ </div>
|
||||
+
|
||||
+ <h2>1. Introduction</h2>
|
||||
+ <p>This Privacy Policy explains how syu.is collects, uses, and protects your personal information when you use our service.</p>
|
||||
+
|
||||
+ <h2>2. Information We Collect</h2>
|
||||
+ <p>We collect the following types of information:</p>
|
||||
+ <ul>
|
||||
+ <li><strong>Account Information:</strong> Email address, username, and profile information you provide</li>
|
||||
+ <li><strong>Content:</strong> Posts, messages, and other content you create on the platform</li>
|
||||
+ <li><strong>Usage Data:</strong> Information about how you interact with our service</li>
|
||||
+ <li><strong>Device Information:</strong> Browser type, operating system, and device identifiers</li>
|
||||
+ </ul>
|
||||
+
|
||||
+ <h2>3. How We Use Your Information</h2>
|
||||
+ <p>We use your information to:</p>
|
||||
+ <ul>
|
||||
+ <li>Provide and maintain our service</li>
|
||||
+ <li>Improve and personalize your experience</li>
|
||||
+ <li>Communicate with you about the service</li>
|
||||
+ <li>Ensure security and prevent abuse</li>
|
||||
+ </ul>
|
||||
+
|
||||
+ <h2>4. Data Sharing</h2>
|
||||
+ <p>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.</p>
|
||||
+
|
||||
+ <h2>5. Data Security</h2>
|
||||
+ <p>We implement appropriate security measures to protect your personal information. However, no method of transmission over the Internet is 100% secure.</p>
|
||||
+
|
||||
+ <h2>6. Your Rights</h2>
|
||||
+ <p>You have the right to:</p>
|
||||
+ <ul>
|
||||
+ <li>Access your personal data</li>
|
||||
+ <li>Request correction of your data</li>
|
||||
+ <li>Request deletion of your account</li>
|
||||
+ <li>Export your data</li>
|
||||
+ </ul>
|
||||
+
|
||||
+ <h2>7. Cookies</h2>
|
||||
+ <p>We use cookies and similar technologies to maintain your session and improve your experience.</p>
|
||||
+
|
||||
+ <h2>8. Changes to This Policy</h2>
|
||||
+ <p>We may update this Privacy Policy from time to time. We will notify you of any significant changes.</p>
|
||||
+
|
||||
+ <h2>9. Contact</h2>
|
||||
+ <p>For privacy-related questions, please visit our <a href="/about/support/help">Help page</a>.</p>
|
||||
+
|
||||
+ <div class="footer">
|
||||
+ <p>Last updated: 2025</p>
|
||||
+ <p>© syu.is</p>
|
||||
+ </div>
|
||||
+</body>
|
||||
+</html>
|
||||
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 @@
|
||||
+<!DOCTYPE html>
|
||||
+<html lang="ja">
|
||||
+<head>
|
||||
+ <meta charset="UTF-8">
|
||||
+ <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1">
|
||||
+ <title>Terms of Service - syu.is</title>
|
||||
+ <link rel="icon" type="image/png" href="{{ staticCDNHost }}/static/favicon.png">
|
||||
+ <style>
|
||||
+ * { box-sizing: border-box; margin: 0; padding: 0; }
|
||||
+ body {
|
||||
+ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
|
||||
+ line-height: 1.6;
|
||||
+ color: #1a1a1a;
|
||||
+ background: #fff;
|
||||
+ padding: 20px;
|
||||
+ max-width: 800px;
|
||||
+ margin: 0 auto;
|
||||
+ }
|
||||
+ @media (prefers-color-scheme: dark) {
|
||||
+ body { background: #000; color: #e0e0e0; }
|
||||
+ a { color: #6bb3ff; }
|
||||
+ h1, h2, h3 { color: #fff; }
|
||||
+ }
|
||||
+ h1 { font-size: 28px; margin-bottom: 24px; padding-bottom: 12px; border-bottom: 1px solid #ddd; }
|
||||
+ h2 { font-size: 20px; margin: 24px 0 12px; }
|
||||
+ p { margin-bottom: 16px; }
|
||||
+ ul { margin: 0 0 16px 24px; }
|
||||
+ li { margin-bottom: 8px; }
|
||||
+ a { color: #0066cc; text-decoration: none; }
|
||||
+ a:hover { text-decoration: underline; }
|
||||
+ .header { margin-bottom: 32px; }
|
||||
+ .back-link { display: inline-block; margin-bottom: 16px; font-size: 14px; }
|
||||
+ .footer { margin-top: 40px; padding-top: 20px; border-top: 1px solid #ddd; font-size: 14px; color: #666; }
|
||||
+ </style>
|
||||
+</head>
|
||||
+<body>
|
||||
+ <div class="header">
|
||||
+ <a href="/" class="back-link">← Back to syu.is</a>
|
||||
+ <h1>Terms of Service</h1>
|
||||
+ </div>
|
||||
+
|
||||
+ <h2>1. Introduction</h2>
|
||||
+ <p>Welcome to syu.is. By using our service, you agree to these terms. Please read them carefully.</p>
|
||||
+
|
||||
+ <h2>2. Service Description</h2>
|
||||
+ <p>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.</p>
|
||||
+
|
||||
+ <h2>3. User Responsibilities</h2>
|
||||
+ <p>As a user of syu.is, you agree to:</p>
|
||||
+ <ul>
|
||||
+ <li>Provide accurate information when creating an account</li>
|
||||
+ <li>Keep your account credentials secure</li>
|
||||
+ <li>Not use the service for illegal activities</li>
|
||||
+ <li>Respect other users and their content</li>
|
||||
+ <li>Comply with applicable laws and regulations</li>
|
||||
+ </ul>
|
||||
+
|
||||
+ <h2>4. Content Guidelines</h2>
|
||||
+ <p>Users are responsible for the content they post. Prohibited content includes:</p>
|
||||
+ <ul>
|
||||
+ <li>Illegal content</li>
|
||||
+ <li>Harassment or abuse</li>
|
||||
+ <li>Spam or misleading information</li>
|
||||
+ <li>Content that violates others' rights</li>
|
||||
+ </ul>
|
||||
+
|
||||
+ <h2>5. Privacy</h2>
|
||||
+ <p>Your privacy is important to us. Please review our <a href="/about/support/privacy-policy">Privacy Policy</a> to understand how we handle your data.</p>
|
||||
+
|
||||
+ <h2>6. Disclaimer</h2>
|
||||
+ <p>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.</p>
|
||||
+
|
||||
+ <h2>7. Changes to Terms</h2>
|
||||
+ <p>We may update these terms from time to time. Continued use of the service after changes constitutes acceptance of the new terms.</p>
|
||||
+
|
||||
+ <h2>8. Contact</h2>
|
||||
+ <p>For questions about these terms, please visit our <a href="/about/support/help">Help page</a>.</p>
|
||||
+
|
||||
+ <div class="footer">
|
||||
+ <p>Last updated: 2025</p>
|
||||
+ <p>© syu.is</p>
|
||||
+ </div>
|
||||
+</body>
|
||||
+</html>
|
||||
@@ -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() {
|
||||
|
||||
Reference in New Issue
Block a user