Fixed 267U.pre2

This commit is contained in:
2026-07-26 18:25:37 +09:00
parent 50bfaeafdf
commit 317d00a284
1286 changed files with 80222 additions and 1 deletions
@@ -0,0 +1,87 @@
block vars
block loadClientEntry
- const clientEntry = getClientEntry();
doctype html
//
-
Thank you for using FrozenFriendsYume!
If you are reading this message... how about joining the development?
https://iceshrimp.dev/iceshrimp/iceshrimp
html
- var timestamp = Date.now();
head
meta(charset='utf-8')
meta(name='application-name' content='FrozenFriendsYume')
meta(name='referrer' content='origin')
meta(name='darkreader-lock' content='')
meta(name='theme-color' content= themeColor || '#31748f')
meta(name='theme-color-orig' content= themeColor || '#31748f')
meta(property='twitter:card' content='summary')
meta(property='og:site_name' content= instanceName || 'FrozenFriendsYume')
meta(name='viewport' content='width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1, user-scalable=no')
link(rel='icon' href= icon || `/favicon.ico?${ timestamp }`)
link(rel='apple-touch-icon' href= icon || `/apple-touch-icon.png?${ timestamp }`)
link(rel='manifest' href='/manifest.json')
link(rel='prefetch' href=config.images.info)
link(rel='prefetch' href=config.images.notFound)
link(rel='prefetch' href=config.images.error)
link(rel='stylesheet' href=`/static-assets/instance.css?${ timestamp }`)
link(rel='modulepreload' href=`/assets/${clientEntry.file}`)
if Array.isArray(clientEntry.css)
each href in clientEntry.css
link(rel='stylesheet' href=`/assets/${href}`)
title
block title
= title || 'FrozenFriendsYume'
block desc
meta(name='description' content=desc || 'An open source, decentralized social media platform that\'s free forever! 🚀')
block meta
if privateMode
meta(name='robots' content='noindex')
block og
meta(property='og:title' content=title || 'FrozenFriendsYume')
meta(property='og:description' content=desc || 'An open source, decentralized social media platform that\'s free forever! 🚀')
meta(property='og:image' content=img)
meta(property='og:image:alt' content=alt || 'Pfp')
style
include ../style.css
script.
var VERSION = "#{version}";
var CLIENT_ENTRY = "#{clientEntry.file}";
script
include ../boot.js
body
noscript: p
| Please turn on your JavaScript
div#splash
img#splashIcon(src= splashIcon || `/static-assets/splash.png?${ timestamp }`)
span#splashText
block randomMOTD
= randomMOTD
div#splashSpinner
<svg class="spinner bg" viewBox="0 0 152 152" xmlns="http://www.w3.org/2000/svg">
<g transform="matrix(1,0,0,1,12,12)">
<circle cx="64" cy="64" r="64" style="fill:none;stroke:currentColor;stroke-width:24px;"/>
</g>
</svg>
<svg class="spinner fg" viewBox="0 0 152 152" xmlns="http://www.w3.org/2000/svg">
<g transform="matrix(1,0,0,1,12,12)">
<path d="M128,64C128,28.654 99.346,0 64,0C99.346,0 128,28.654 128,64Z" style="fill:none;stroke:currentColor;stroke-width:24px;"/>
</g>
</svg>
block content
@@ -0,0 +1,21 @@
doctype html
html
head
meta(charset='utf-8')
meta(name='application-name' content='FrozenFriendsYume')
meta(name='viewport' content='width=device-width, initial-scale=1.0')
title FrozenFriendsYume Repair Tool
style
include ../bios.css
script
include ../bios.js
body
header
h1 FrozenFriendsYume Repair Tool v#{version}
main
div.tabs
button#ls Edit local storage
div#content
@@ -0,0 +1,20 @@
extends ./base
block vars
- const title = privateMode ? instanceName : channel.name;
- const url = `${config.url}/channels/${channel.id}`;
block title
= `${title} | ${instanceName}`
block desc
unless privateMode
meta(name='description' content=channel.description)
block og
unless privateMode
meta(property='og:type' content='article')
meta(property='og:title' content= title)
meta(property='og:description' content= channel.description)
meta(property='og:url' content= url)
meta(property='og:image' content= channel.bannerUrl)
@@ -0,0 +1,23 @@
doctype html
html
head
meta(charset='utf-8')
meta(name='application-name' content='FrozenFriendsYume')
meta(name='viewport' content='width=device-width, initial-scale=1.0')
title FrozenFriendsYume Cli
style
include ../cli.css
script
include ../cli.js
body
header
h1 FrozenFriendsYume Simple Client v#{version}
main
div#form
textarea#text
br
button#submit Post
div#tl
@@ -0,0 +1,33 @@
extends ./base
block vars
- const user = clip.user;
- const title = privateMode ? instanceName : clip.name;
- const url = `${config.url}/clips/${clip.id}`;
block title
= `${title} | ${instanceName}`
block desc
unless privateMode
meta(name='description' content= clip.description)
block og
unless privateMode
meta(property='og:type' content='article')
meta(property='og:title' content= title)
meta(property='og:description' content= clip.description)
meta(property='og:url' content= url)
meta(property='og:image' content= avatarUrl)
block meta
unless privateMode
if profile.noCrawle
meta(name='robots' content='noindex')
if profile.preventAiLearning
meta(name='robots' content='noai')
meta(name='robots' content='noimageai')
meta(name='misskey:user-username' content=user.username)
meta(name='misskey:user-id' content=user.id)
meta(name='misskey:clip-id' content=clip.id)
@@ -0,0 +1,71 @@
doctype html
html
head
meta(charset='utf-8')
meta(name='application-name' content='FrozenFriendsYume')
meta(name='viewport' content='width=device-width, initial-scale=1.0')
title Flush FrozenFriendsYume
style.
* {
font-family: BIZ UDGothic, Roboto, HelveticaNeue, Arial, sans-serif;
}
body,
html {
background-color: #191724;
color: #e0def4;
justify-content: center;
margin: auto;
padding: 10px;
text-align: center;
}
a {
color: rgb(156, 207, 216);
text-decoration: none;
}
body
#msg
script.
const msg = document.getElementById('msg');
const successText = `\nSuccess Flush! <a href="/">Back to FrozenFriendsYume</a>\n成功しました。<a href="/">FrozenFriendsYumeを開き直してください。</a>`;
message('Start flushing.');
(async function() {
try {
localStorage.clear();
message('localStorage cleared.');
const idbPromises = ['MisskeyClient', 'keyval-store'].map((name, i, arr) => new Promise((res, rej) => {
const delidb = indexedDB.deleteDatabase(name);
delidb.onsuccess = () => res(message(`indexedDB "${name}" cleared. (${i + 1}/${arr.length})`));
delidb.onerror = e => rej(e)
}));
await Promise.all(idbPromises);
if (navigator.serviceWorker.controller) {
navigator.serviceWorker.controller.postMessage('clear');
await navigator.serviceWorker.getRegistrations()
.then(registrations => {
return Promise.all(registrations.map(registration => registration.unregister()));
})
.catch(e => { throw new Error(e) });
}
message(successText);
} catch (e) {
message(`\n${e}\n\nFlush Failed. <a href="/flush">Please retry.</a>\n失敗しました。<a href="/flush">もう一度試してみてください。</a>`);
message(`\nIf you retry more than 3 times, clear the browser cache or contact to instance admin.\n3回以上試しても失敗する場合、ブラウザのキャッシュを消去し、それでもだめならインスタンス管理者に連絡してみてください。\n`)
console.error(e);
setTimeout(() => {
location = '/';
}, 10000)
}
})();
function message(text) {
msg.insertAdjacentHTML('beforeend', `<p>[${(new Date()).toString()}] ${text.replace(/\n/g,'<br>')}</p>`)
}
@@ -0,0 +1,35 @@
extends ./base
block vars
- const user = post.user;
- const title = privateMode ? instanceName : post.title;
- const url = `${config.url}/gallery/${post.id}`;
block title
= `${title} | ${instanceName}`
block desc
unless privateMode
meta(name='description' content= post.description)
block og
unless privateMode
meta(property='og:type' content='article')
meta(property='og:title' content= title)
meta(property='og:description' content= post.description)
meta(property='og:url' content= url)
meta(property='og:image' content= post.files[0].thumbnailUrl)
block meta
unless privateMode
if user.host || profile.noCrawle
meta(name='robots' content='noindex')
if profile.preventAiLearning
meta(name='robots' content='noai')
meta(name='robots' content='noimageai')
meta(name='misskey:user-username' content=user.username)
meta(name='misskey:user-id' content=user.id)
if !user.host
link(rel='alternate' href=url type='application/activity+json')
@@ -0,0 +1,55 @@
extends ./base
block vars
- const user = note.user;
- const title = privateMode ? instanceName : (user.name ? `${user.name} (@${user.username}${user.host ? `@${user.host}` : ''})` : `@${user.username}`);
- const url = `${config.url}/notes/${note.id}`;
- const isRenote = note.renote && note.text == null && note.fileIds.length == 0 && note.poll == null;
- const isImage = note.files.length !== 0 && note.files[0].type.startsWith('image');
- const isVideo = note.files.length !== 0 && note.files[0].type.startsWith('video');
- const imageUrl = isImage ? note.files[0].url : isVideo ? note.files[0].thumbnailUrl : avatarUrl;
block title
= `${title} | ${instanceName}`
block desc
unless privateMode
meta(name='description' content= summary)
block og
unless privateMode
meta(property='og:type' content='article')
meta(property='og:title' content= title)
meta(property='og:description' content= summary)
meta(property='og:url' content= url)
meta(property='og:image' content= imageUrl)
if isImage && !note.files[0].isSensitive
meta(property='og:image:width' content=note.files[0].properties.width)
meta(property='og:image:height' content=note.files[0].properties.height)
meta(property='og:image:type' content=note.files[0].type)
meta(property='twitter:card' content="summary_large_image")
if isVideo
meta(property='og:video:type' content=note.files[0].type)
meta(property='og:video' content=note.files[0].url)
block meta
unless privateMode
if user.host || isRenote || profile.noCrawle
meta(name='robots' content='noindex')
if profile.preventAiLearning
meta(name='robots' content='noai')
meta(name='robots' content='noimageai')
meta(name='misskey:user-username' content=user.username)
meta(name='misskey:user-id' content=user.id)
meta(name='misskey:note-id' content=note.id)
if note.prev
link(rel='prev' href=`${config.url}/notes/${note.prev}`)
if note.next
link(rel='next' href=`${config.url}/notes/${note.next}`)
if !user.host
link(rel='alternate' href=url type='application/activity+json')
if note.uri
link(rel='alternate' href=note.uri type='application/activity+json')
@@ -0,0 +1,33 @@
extends ./base
block vars
- const user = page.user;
- const title = privateMode ? instanceName : page.title;
- const url = `${config.url}/@${user.username}/${page.name}`;
block title
= `${title} | ${instanceName}`
block desc
unless privateMode
meta(name='description' content= page.summary)
block og
unless privateMode
meta(property='og:type' content='article')
meta(property='og:title' content= title)
meta(property='og:description' content= page.summary)
meta(property='og:url' content= url)
meta(property='og:image' content= page.eyeCatchingImage ? page.eyeCatchingImage.thumbnailUrl : avatarUrl)
block meta
unless privateMode
if profile.noCrawle
meta(name='robots' content='noindex')
if profile.preventAiLearning
meta(name='robots' content='noai')
meta(name='robots' content='noimageai')
meta(name='misskey:user-username' content=user.username)
meta(name='misskey:user-id' content=user.id)
meta(name='misskey:page-id' content=page.id)
@@ -0,0 +1,43 @@
extends ./base
block vars
- const title = privateMode ? instanceName : (user.name ? `${user.name} (@${user.username})` : `@${user.username}`);
- const url = `${config.url}/@${(user.host ? `${user.username}@${user.host}` : user.username)}`;
block title
= `${title} | ${instanceName}`
block desc
unless privateMode
meta(name='description' content= profile.description)
block og
unless privateMode
meta(property='og:type' content='profile')
meta(property='og:title' content= title)
meta(property='og:description' content= profile.description)
meta(property='og:url' content= url)
meta(property='og:image' content= avatarUrl)
meta(property='profile:username' content= user.username)
block meta
unless privateMode
if user.host || profile.noCrawle
meta(name='robots' content='noindex')
if profile.preventAiLearning
meta(name='robots' content='noai')
meta(name='robots' content='noimageai')
meta(name='misskey:user-username' content=user.username)
meta(name='misskey:user-id' content=user.id)
if !sub
if !user.host
link(rel='alternate' href=`${config.url}/users/${user.id}` type='application/activity+json')
if user.uri
link(rel='alternate' href=user.uri type='application/activity+json')
if profile.url
link(rel='alternate' href=profile.url type='text/html')
each m in me
link(rel='me' href=`${m}`)