fix social-app ios patch
This commit is contained in:
@@ -2,7 +2,7 @@ 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 {
|
||||
@@ -302,6 +302,12 @@ 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)
|
||||
@@ -10,10 +10,12 @@ index ec5261dee..c670cf75a 100644
|
||||
+ e.GET("/about/support/tos", server.WebAboutTOS)
|
||||
+ e.GET("/about/support/privacy-policy", server.WebAboutPrivacy)
|
||||
+ e.GET("/about/support/help", server.WebAboutHelp)
|
||||
+ e.GET("/about/support/license", server.WebAboutLicense)
|
||||
+ e.GET("/about/support/app", server.WebAboutApp)
|
||||
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 {
|
||||
@@ -755,3 +761,33 @@ func (srv *Server) WebIpCC(c echo.Context) error {
|
||||
}
|
||||
return c.JSON(200, outResponse)
|
||||
}
|
||||
@@ -35,12 +37,237 @@ index ec5261dee..c670cf75a 100644
|
||||
+ data := srv.NewTemplateContext()
|
||||
+ return c.Render(http.StatusOK, "about-help.html", data)
|
||||
+}
|
||||
+
|
||||
+// Handler for About License page (syu.is specific)
|
||||
+func (srv *Server) WebAboutLicense(c echo.Context) error {
|
||||
+ data := srv.NewTemplateContext()
|
||||
+ return c.Render(http.StatusOK, "about-license.html", data)
|
||||
+}
|
||||
+
|
||||
+// Handler for About App page (syu.is specific)
|
||||
+func (srv *Server) WebAboutApp(c echo.Context) error {
|
||||
+ data := srv.NewTemplateContext()
|
||||
+ return c.Render(http.StatusOK, "about-app.html", data)
|
||||
+}
|
||||
diff --git a/bskyweb/templates/about-app.html b/bskyweb/templates/about-app.html
|
||||
new file mode 100644
|
||||
index 000000000..000000002
|
||||
--- /dev/null
|
||||
+++ b/bskyweb/templates/about-app.html
|
||||
@@ -0,0 +1,135 @@
|
||||
+<!DOCTYPE html>
|
||||
+<html lang="ja">
|
||||
+<head>
|
||||
+ <meta charset="UTF-8">
|
||||
+ <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1">
|
||||
+ <title>App Info - Aiat</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; }
|
||||
+ .section { background: #1a1a1a; }
|
||||
+ .info-item { background: #2a2a2a; }
|
||||
+ }
|
||||
+ .header { margin-bottom: 32px; }
|
||||
+ .back-link { display: inline-block; margin-bottom: 16px; font-size: 14px; color: #0066cc; text-decoration: none; }
|
||||
+ .back-link:hover { text-decoration: underline; }
|
||||
+ .app-header { text-align: center; margin-bottom: 32px; }
|
||||
+ .app-icon { width: 80px; height: 80px; border-radius: 18px; margin-bottom: 12px; }
|
||||
+ .app-name { font-size: 24px; font-weight: bold; margin-bottom: 4px; }
|
||||
+ .app-version { font-size: 14px; color: #666; }
|
||||
+ .section { background: #f5f5f5; border-radius: 16px; padding: 20px; margin-bottom: 16px; }
|
||||
+ .section-title { font-size: 13px; font-weight: 600; color: #999; text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 12px; }
|
||||
+ .description { font-size: 15px; line-height: 22px; }
|
||||
+ .info-grid { display: flex; flex-wrap: wrap; gap: 8px; }
|
||||
+ .info-item { flex: 1; min-width: 45%; text-align: center; background: #e8e8e8; border-radius: 12px; padding: 12px; }
|
||||
+ .info-label { font-size: 11px; color: #999; text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 4px; }
|
||||
+ .info-value { font-size: 16px; font-weight: 600; }
|
||||
+ .developer-name { font-size: 18px; font-weight: 600; margin-bottom: 12px; }
|
||||
+ .link-row { display: flex; align-items: center; padding: 12px 0; border-top: 1px solid rgba(0,0,0,0.1); }
|
||||
+ .link-icon { font-size: 14px; font-weight: 600; color: #666; width: 70px; }
|
||||
+ .link-value { flex: 1; font-size: 14px; color: #0084ff; text-decoration: none; }
|
||||
+ .link-value:hover { text-decoration: underline; }
|
||||
+ .link-arrow { font-size: 16px; color: #ccc; }
|
||||
+ .bitcoin-row { display: flex; align-items: center; background: rgba(247, 147, 26, 0.08); border-radius: 12px; padding: 14px; gap: 10px; }
|
||||
+ .bitcoin-label { font-size: 18px; font-weight: 600; color: #f7931a; }
|
||||
+ .bitcoin-address { flex: 1; font-size: 11px; font-family: monospace; color: #666; word-break: break-all; }
|
||||
+ .copy-btn { font-size: 12px; color: #999; cursor: pointer; min-width: 50px; text-align: right; }
|
||||
+ .copy-btn:hover { color: #0084ff; }
|
||||
+ .footer { text-align: center; margin-top: 32px; padding-top: 20px; border-top: 1px solid #ddd; }
|
||||
+ .copyright { font-size: 12px; color: #999; }
|
||||
+ </style>
|
||||
+</head>
|
||||
+<body>
|
||||
+ <div class="header">
|
||||
+ <a href="/" class="back-link">← Back to syu.is</a>
|
||||
+ </div>
|
||||
+
|
||||
+ <div class="app-header">
|
||||
+ <img src="{{ staticCDNHost }}/static/favicon.png" alt="Aiat" class="app-icon">
|
||||
+ <div class="app-name">Aiat</div>
|
||||
+ <div class="app-version">v1.111.0</div>
|
||||
+ </div>
|
||||
+
|
||||
+ <div class="section">
|
||||
+ <p class="description">Aiat is a social networking application based on AT Protocol. Connect with your community on syu.is.</p>
|
||||
+ </div>
|
||||
+
|
||||
+ <div class="section">
|
||||
+ <div class="section-title">App Information</div>
|
||||
+ <div class="info-grid">
|
||||
+ <div class="info-item">
|
||||
+ <div class="info-label">Version</div>
|
||||
+ <div class="info-value">1.111.0</div>
|
||||
+ </div>
|
||||
+ <div class="info-item">
|
||||
+ <div class="info-label">Category</div>
|
||||
+ <div class="info-value">Social</div>
|
||||
+ </div>
|
||||
+ <div class="info-item">
|
||||
+ <div class="info-label">Supported OS</div>
|
||||
+ <div class="info-value">iOS 26.0+</div>
|
||||
+ </div>
|
||||
+ <div class="info-item">
|
||||
+ <div class="info-label">Price</div>
|
||||
+ <div class="info-value">Free</div>
|
||||
+ </div>
|
||||
+ </div>
|
||||
+ </div>
|
||||
+
|
||||
+ <div class="section">
|
||||
+ <div class="section-title">Developer</div>
|
||||
+ <div class="developer-name">syui</div>
|
||||
+ <div class="link-row">
|
||||
+ <span class="link-icon">GitHub</span>
|
||||
+ <a href="https://github.com/syui" class="link-value" target="_blank">github.com/syui</a>
|
||||
+ <span class="link-arrow">→</span>
|
||||
+ </div>
|
||||
+ <div class="link-row">
|
||||
+ <span class="link-icon">ATProto</span>
|
||||
+ <a href="https://syu.is/syui" class="link-value" target="_blank">syu.is/syui</a>
|
||||
+ <span class="link-arrow">→</span>
|
||||
+ </div>
|
||||
+ </div>
|
||||
+
|
||||
+ <div class="section">
|
||||
+ <div class="section-title">Bitcoin</div>
|
||||
+ <div class="bitcoin-row">
|
||||
+ <span class="bitcoin-label">₿</span>
|
||||
+ <span class="bitcoin-address" id="btc-address">3BqHXxraZyBapyNpJmniJDh9zqzuB8aoRr</span>
|
||||
+ <span class="copy-btn" onclick="copyBTC()">copy</span>
|
||||
+ </div>
|
||||
+ </div>
|
||||
+
|
||||
+ <div class="footer">
|
||||
+ <p class="copyright">© syui</p>
|
||||
+ </div>
|
||||
+
|
||||
+ <script>
|
||||
+ function copyBTC() {
|
||||
+ const addr = document.getElementById('btc-address').textContent;
|
||||
+ navigator.clipboard.writeText(addr).then(() => {
|
||||
+ const btn = document.querySelector('.copy-btn');
|
||||
+ btn.textContent = 'copied!';
|
||||
+ btn.style.color = '#4CAF50';
|
||||
+ setTimeout(() => {
|
||||
+ btn.textContent = 'copy';
|
||||
+ btn.style.color = '';
|
||||
+ }, 2000);
|
||||
+ });
|
||||
+ }
|
||||
+ </script>
|
||||
+</body>
|
||||
+</html>
|
||||
diff --git a/bskyweb/templates/about-license.html b/bskyweb/templates/about-license.html
|
||||
new file mode 100644
|
||||
index 000000000..000000003
|
||||
--- /dev/null
|
||||
+++ b/bskyweb/templates/about-license.html
|
||||
@@ -0,0 +1,66 @@
|
||||
+<!DOCTYPE html>
|
||||
+<html lang="ja">
|
||||
+<head>
|
||||
+ <meta charset="UTF-8">
|
||||
+ <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1">
|
||||
+ <title>License - 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; }
|
||||
+ pre { background: #f5f5f5; padding: 16px; border-radius: 8px; overflow-x: auto; font-size: 13px; }
|
||||
+ @media (prefers-color-scheme: dark) { pre { background: #1a1a1a; } }
|
||||
+ </style>
|
||||
+</head>
|
||||
+<body>
|
||||
+ <div class="header">
|
||||
+ <a href="/" class="back-link">← Back to syu.is</a>
|
||||
+ <h1>License</h1>
|
||||
+ </div>
|
||||
+
|
||||
+ <h2>Aiat (iOS/Android App)</h2>
|
||||
+ <p>This application is based on the Bluesky Social App, which is open source software.</p>
|
||||
+
|
||||
+ <h2>Open Source Licenses</h2>
|
||||
+ <p>This app uses the following open source software:</p>
|
||||
+
|
||||
+ <h3>Bluesky Social App</h3>
|
||||
+ <p>Licensed under the MIT License</p>
|
||||
+ <p><a href="https://github.com/bluesky-social/social-app" target="_blank">https://github.com/bluesky-social/social-app</a></p>
|
||||
+
|
||||
+ <h3>AT Protocol</h3>
|
||||
+ <p>Licensed under the MIT License / Apache 2.0</p>
|
||||
+ <p><a href="https://github.com/bluesky-social/atproto" target="_blank">https://github.com/bluesky-social/atproto</a></p>
|
||||
+
|
||||
+ <h2>Third Party Libraries</h2>
|
||||
+ <p>This application includes various third-party libraries, each with their own licenses. For a complete list, please see the application's source code repository.</p>
|
||||
+
|
||||
+ <div class="footer">
|
||||
+ <p>Last updated: 2025</p>
|
||||
+ <p>© syu.is</p>
|
||||
+ </div>
|
||||
+</body>
|
||||
+</html>
|
||||
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 @@
|
||||
@@ -0,0 +1,91 @@
|
||||
+<!DOCTYPE html>
|
||||
+<html lang="ja">
|
||||
+<head>
|
||||
@@ -130,6 +357,8 @@ index 000000000..d37db25c5
|
||||
+ <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="/about/support/license">License</a></li>
|
||||
+ <li><a href="/about/support/app">App Info</a></li>
|
||||
+ <li><a href="https://atproto.com" target="_blank">AT Protocol Documentation</a></li>
|
||||
+ </ul>
|
||||
+
|
||||
@@ -144,7 +373,7 @@ new file mode 100644
|
||||
index 000000000..14a1168ad
|
||||
--- /dev/null
|
||||
+++ b/bskyweb/templates/about-privacy.html
|
||||
@@ -0,0 +1,92 @@
|
||||
@@ -0,0 +1,83 @@
|
||||
+<!DOCTYPE html>
|
||||
+<html lang="ja">
|
||||
+<head>
|
||||
@@ -242,7 +471,7 @@ new file mode 100644
|
||||
index 000000000..db5d82f5c
|
||||
--- /dev/null
|
||||
+++ b/bskyweb/templates/about-tos.html
|
||||
@@ -0,0 +1,84 @@
|
||||
@@ -0,0 +1,76 @@
|
||||
+<!DOCTYPE html>
|
||||
+<html lang="ja">
|
||||
+<head>
|
||||
|
||||
Reference in New Issue
Block a user