PageSourceSearch

https://mi.starlamp.su/@porlam

html starlamp.su collected 2026-09-25 22:02:56 UTC 28,494 bytes, 433 lines download raw bytes

1<!DOCTYPE html><!--
2  _____ _         _
3 |     |_|___ ___| |_ ___ _ _
4 | | | | |_ -|_ -| '_| -_| | |
5 |_|_|_|_|___|___|_,_|___|_  |
6                         |___|
7 Thank you for using Misskey!
8 If you are reading this message... how about joining the development?
9 https://github.com/misskey-dev/misskey
10
11--><html><head><meta charset="UTF-8"/><meta name="application-name" content="Misskey"/><meta name="referer" content="origin"/><meta name="theme-color" content="#ffde85"/><meta name="theme-color-orig" content="#ffde85"/><meta property="og:site_name" content="ほしのあかり"/><meta property="instance_url" content="https://mi.starlamp.su"/><meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1, user-scalable=no, viewport-fit=cover"/><meta name="format-detection" content="telephone=no,date=no,address=no,email=no,url=no"/><link rel="icon" href="https://starlamp.r2.hide.li/files/46618ffc-29ba-414f-9ee1-9f9771c32f07.png"/><link rel="apple-touch-icon" href="https://starlamp.r2.hide.li/files/46618ffc-29ba-414f-9ee1-9f9771c32f07.png"/><link rel="manifest" href="/manifest.json"/><link rel="search" type="application/opensearchdescription+xml" title="Porlam Nicla (@Porlam) | ほしのあかり" href="https://mi.starlamp.su/opensearch.xml"/><link rel="prefetch" as="image" href="https://xn--931a.moe/assets/error.jpg"/><link rel="prefetch" as="image" href="https://xn--931a.moe/assets/info.jpg"/><link rel="prefetch" as="image" href="https://xn--931a.moe/assets/not-found.jpg"/><link rel="stylesheet" href="/vite/assets/z3AtvK9Wz-DYJ_I8xa.css"/><link rel="stylesheet" href="/vite/assets/z3AtvK9Wz-DZU1WGtr.css"/><title>Porlam Nicla (@Porlam) | ほしのあかり</title><meta name="description" content="#1 IPv6 Peers in Japan
12Free IPv6 Transit is available for non-commercial usage
13Lang: ja-jp,en-us,ru-ru(learning)
14Icon: ::1"/><meta name="robots" content="noindex"/><meta name="misskey:user-username" content="Porlam"/><meta name="misskey:user-id" content="9kq90oymkm4v0004"/><link rel="alternate" type="application/activity+json" href="https://mi.starlamp.su/users/9kq90oymkm4v0004"/><link rel="me" href="https://github.com/grapeapple0"/><link rel="me" href="https://starlamp.su"/><meta property="og:type" content="blog"/><meta property="og:title" content="Porlam Nicla (@Porlam)"/><meta property="og:description" content="#1 IPv6 Peers in Japan
15Free IPv6 Transit is available for non-commercial usage
16Lang: ja-jp,en-us,ru-ru(learning)
17Icon: ::1"/><meta property="og:url" content="https://mi.starlamp.su/@Porlam"/><meta property="og:image" content="https://mediaproxy.04.si/avatar.webp?url=https%3A%2F%2Fstarlamp.r2.hide.li%2Ffiles%2Fwebpublic-961f5e9e-d45d-464c-b5a5-8cade20d370e.png&avatar=1"/><meta property="twitter:card" content="summary"/><style>/*
18 * SPDX-FileCopyrightText: syuilo and misskey-project
19 *
20 * SPDX-License-Identifier: AGPL-3.0-only
21 */
22
23html {
24	background-color: var(--MI_THEME-bg);
25	color: var(--MI_THEME-fg);
26}
27
28#splash {
29	position: fixed;
30	z-index: 10000;
31	top: 0;
32	left: 0;
33	width: 100vw;
34	height: 100vh;
35	cursor: wait;
36	background-color: var(--MI_THEME-bg);
37	opacity: 1;
38	transition: opacity 0.5s ease;
39}
40
41#splashIcon {
42	position: absolute;
43	top: 0;
44	right: 0;
45	bottom: 0;
46	left: 0;
47	margin: auto;
48	width: 64px;
49	height: 64px;
50	border-radius: 10px;
51	pointer-events: none;
52}
53
54#splashSpinner {
55	position: absolute;
56	top: 0;
57	right: 0;
58	bottom: 0;
59	left: 0;
60	margin: auto;
61	display: inline-block;
62	width: 28px;
63	height: 28px;
64	transform: translateY(70px);
65	color: var(--MI_THEME-accent);
66}
67
68#splashSpinner > .spinner {
69	position: absolute;
70	top: 0;
71	left: 0;
72	width: 28px;
73	height: 28px;
74	fill-rule: evenodd;
75	clip-rule: evenodd;
76	stroke-linecap: round;
77	stroke-linejoin: round;
78	stroke-miterlimit: 1.5;
79}
80#splashSpinner > .spinner.bg {
81	opacity: 0.275;
82}
83#splashSpinner > .spinner.fg {
84	animation: splashSpinner 0.5s linear infinite;
85}
86
87@keyframes splashSpinner {
88	0% {
89		transform: rotate(0deg);
90	}
91	100% {
92		transform: rotate(360deg);
93	}
94}
95</style>
95<script>const VERSION = '2026.3.2-pie-3.6.7'; const CLIENT_ENTRY = "scripts/z3AtvK9Wz-o23Fb3xQ.js"; const LANGS = ["ar-SA","ca-ES","cs-CZ","da-DK","de-DE","en-US","es-ES","fr-FR","id-ID","it-IT","ja-JP","ja-KS","kab-KAB","kn-IN","ko-KR","nl-NL","no-NO","pl-PL","pt-PT","ru-RU","sk-SK","th-TH","tr-TR","ug-CN","uk-UA","vi-VN","zh-CN","zh-TW"];</script>
95<script type="application/json" id="misskey_meta" data-generated-at="1790373776650">{"maintainerName":"Starlamp Network Project/Porlam Nicla","maintainerEmail":"@[email protected]","version":"2026.3.2-pie-3.6.7","providesTarball":true,"name":"ほしのあかり","shortName":null,"uri":"https://mi.starlamp.su","description":"Hosted in Soviet Union\nPowered by Starlamp Network Project","langs":[],"tosUrl":"","repositoryUrl":"https://github.com/grapeapple0/misskey","feedbackUrl":"https://github.com/misskey-dev/misskey/issues/new","impressumUrl":"https://starlamp.su","privacyPolicyUrl":"","inquiryUrl":"","disableRegistration":true,"emailRequiredForSignup":false,"enableHcaptcha":false,"hcaptchaSiteKey":null,"enableMcaptcha":false,"mcaptchaSiteKey":null,"mcaptchaInstanceUrl":null,"enableRecaptcha":false,"recaptchaSiteKey":null,"enableTurnstile":false,"turnstileSiteKey":null,"enableTestcaptcha":false,"googleAnalyticsMeasurementId":null,"swPublickey":"BOyhMJKOdycxQFRTAF1Msz9aOl5hyrz1uoFt9WvAXct0cSL9VQoEOuMk9t1u4EoJsKwci0K9Q8X_VULnwcbGHFs","themeColor":"#ffde85","mascotImageUrl":"/assets/ai.png","bannerUrl":"https://04.si/background/stars.png","infoImageUrl":null,"serverErrorImageUrl":null,"notFoundImageUrl":null,"iconUrl":"https://starlamp.r2.hide.li/files/46618ffc-29ba-414f-9ee1-9f9771c32f07.png","backgroundImageUrl":"https://04.si/background/stars.png","logoImageUrl":null,"maxNoteTextLength":3000,"defaultLightTheme":"{\"base\":\"light\",\"props\":{\"accent\":\"#eac946\",\"accentDarken\":\":darken\u003c10\u003c@accent\",\"accentLighten\":\":lighten\u003c10\u003c@accent\",\"accentedBg\":\":alpha\u003c0.15\u003c@accent\",\"focus\":\":alpha\u003c0.3\u003c@accent\",\"bg\":\"#f0eee9\",\"acrylicBg\":\":alpha\u003c0.5\u003c@bg\",\"fg\":\"#5f5f5f\",\"fgTransparentWeak\":\":alpha\u003c0.75\u003c@fg\",\"fgTransparent\":\":alpha\u003c0.5\u003c@fg\",\"fgHighlighted\":\":darken\u003c3\u003c@fg\",\"fgOnAccent\":\"#fff\",\"fgOnWhite\":\"#333\",\"divider\":\"rgba(0, 0, 0, 0.1)\",\"indicator\":\"@accent\",\"panel\":\":lighten\u003c3\u003c@bg\",\"panelHighlight\":\":darken\u003c3\u003c@panel\",\"panelHeaderBg\":\":lighten\u003c3\u003c@panel\",\"panelHeaderFg\":\"@fg\",\"panelHeaderDivider\":\"rgba(0, 0, 0, 0)\",\"panelBorder\":\"\\\" solid 1px var(--divider)\",\"acrylicPanel\":\":alpha\u003c0.5\u003c@panel\",\"windowHeader\":\":alpha\u003c0.85\u003c@panel\",\"popup\":\":lighten\u003c3\u003c@panel\",\"shadow\":\"rgba(0, 0, 0, 0.1)\",\"header\":\":alpha\u003c0.7\u003c@panel\",\"navBg\":\"@panel\",\"navFg\":\"@fg\",\"navHoverFg\":\":darken\u003c17\u003c@fg\",\"navActive\":\"@accent\",\"navIndicator\":\"@indicator\",\"link\":\"#44a4c1\",\"hashtag\":\"#ff9156\",\"mention\":\"@accent\",\"mentionMe\":\"@mention\",\"renote\":\"#229e82\",\"modalBg\":\"rgba(0, 0, 0, 0.3)\",\"scrollbarHandle\":\"rgba(0, 0, 0, 0.2)\",\"scrollbarHandleHover\":\"rgba(0, 0, 0, 0.4)\",\"dateLabelFg\":\"@fg\",\"infoBg\":\"#e5f5ff\",\"infoFg\":\"#eac946\",\"infoWarnBg\":\"#fff0db\",\"infoWarnFg\":\"#8f6e31\",\"switchBg\":\"rgba(0, 0, 0, 0.15)\",\"buttonBg\":\"rgba(0, 0, 0, 0.05)\",\"buttonHoverBg\":\"rgba(0, 0, 0, 0.1)\",\"buttonGradateA\":\"@accent\",\"buttonGradateB\":\":hue\u003c10\u003c@accent\",\"switchOffBg\":\"rgba(0, 0, 0, 0.1)\",\"switchOffFg\":\"@panel\",\"switchOnBg\":\"@accent\",\"switchOnFg\":\"@fgOnAccent\",\"inputBorder\":\"rgba(0, 0, 0, 0.1)\",\"inputBorderHover\":\"rgba(0, 0, 0, 0.2)\",\"listItemHoverBg\":\"rgba(0, 0, 0, 0.03)\",\"driveFolderBg\":\":alpha\u003c0.3\u003c@accent\",\"wallpaperOverlay\":\"rgba(255, 255, 255, 0.5)\",\"badge\":\"#31b1ce\",\"messageBg\":\"@bg\",\"success\":\"#86b300\",\"error\":\"#ec4137\",\"warn\":\"#ecb637\",\"codeString\":\"#b98710\",\"codeNumber\":\"#0fbbbb\",\"codeBoolean\":\"#62b70c\",\"deckBg\":\":darken\u003c3\u003c@bg\",\"htmlThemeColor\":\"@bg\",\"X2\":\":darken\u003c2\u003c@panel\",\"X3\":\"rgba(0, 0, 0, 0.05)\",\"X4\":\"rgba(0, 0, 0, 0.1)\",\"X5\":\"rgba(0, 0, 0, 0.05)\",\"X6\":\"rgba(0, 0, 0, 0.25)\",\"X7\":\"rgba(0, 0, 0, 0.05)\",\"X8\":\":lighten\u003c5\u003c@accent\",\"X9\":\":darken\u003c5\u003c@accent\",\"X10\":\":alpha\u003c0.4\u003c@accent\",\"X11\":\"rgba(0, 0, 0, 0.1)\",\"X12\":\"rgba(0, 0, 0, 0.1)\",\"X13\":\"rgba(0, 0, 0, 0.15)\",\"X14\":\":alpha\u003c0.5\u003c@navBg\",\"X15\":\":alpha\u003c0\u003c@panel\",\"X16\":\":alpha\u003c0.7\u003c@panel\",\"X17\":\":alpha\u003c0.8\u003c@bg\"}}
95","defaultDarkTheme":"{\"id\":\"dedf049f-fcc4-4cd2-aaf3-ac78e844a03f\",\"base\":\"dark\",\"name\":\"starlamp\",\"desc\":\"Misskey thema vorr star ramp\",\"props\":{\"X2\":\":darken\u003c2\u003c@panel\",\"X3\":\"rgba(255, 255, 255, 0.05)\",\"X4\":\"rgba(255, 255, 255, 0.1)\",\"X5\":\"rgba(255, 255, 255, 0.05)\",\"X6\":\"rgba(255, 255, 255, 0.15)\",\"X7\":\"rgba(255, 255, 255, 0.05)\",\"X8\":\":lighten\u003c5\u003c@accent\",\"X9\":\":darken\u003c5\u003c@accent\",\"bg\":\"#303030\",\"fg\":\"#f7efe8\",\"X10\":\":alpha\u003c0.4\u003c@accent\",\"X11\":\"rgba(0, 0, 0, 0.3)\",\"X12\":\"rgba(255, 255, 255, 0.1)\",\"X13\":\"rgba(255, 255, 255, 0.15)\",\"X14\":\":alpha\u003c0.5\u003c@navBg\",\"X15\":\":alpha\u003c0\u003c@panel\",\"X16\":\":alpha\u003c0.7\u003c@panel\",\"X17\":\":alpha\u003c0.8\u003c@bg\",\"link\":\"#44a4c1\",\"warn\":\"#ecb637\",\"badge\":\"#31b1ce\",\"error\":\"#ec4137\",\"focus\":\":alpha\u003c0.3\u003c@accent\",\"navBg\":\"@panel\",\"navFg\":\"@fg\",\"panel\":\":lighten\u003c3\u003c@bg\",\"popup\":\":lighten\u003c3\u003c@panel\",\"accent\":\"#eac946\",\"deckBg\":\"#000\",\"header\":\":alpha\u003c0.7\u003c@panel\",\"infoBg\":\"#253142\",\"infoFg\":\"#fff\",\"renote\":\"#229e82\",\"shadow\":\"rgba(0, 0, 0, 0.3)\",\"divider\":\"rgba(255, 255, 255, 0.1)\",\"hashtag\":\"#ff9156\",\"mention\":\"@accent\",\"modalBg\":\"rgba(0, 0, 0, 0.5)\",\"success\":\"#86b300\",\"buttonBg\":\"rgba(255, 255, 255, 0.05)\",\"switchBg\":\"rgba(255, 255, 255, 0.15)\",\"acrylicBg\":\":alpha\u003c0.5\u003c@bg\",\"fgOnWhite\":\"#333\",\"indicator\":\"@accent\",\"mentionMe\":\"@mention\",\"messageBg\":\"@bg\",\"navActive\":\"@accent\",\"accentedBg\":\":alpha\u003c0.15\u003c@accent\",\"codeNumber\":\"#cfff9e\",\"codeString\":\"#ffb675\",\"fgOnAccent\":\"#fff\",\"infoWarnBg\":\"#42321c\",\"infoWarnFg\":\"#ffbd3e\",\"navHoverFg\":\":lighten\u003c17\u003c@fg\",\"switchOnBg\":\"@accentedBg\",\"switchOnFg\":\"@accent\",\"codeBoolean\":\"#c59eff\",\"dateLabelFg\":\"@fg\",\"inputBorder\":\"rgba(255, 255, 255, 0.1)\",\"panelBorder\":\"\\\" solid 1px var(--divider)\",\"switchOffBg\":\"rgba(255, 255, 255, 0.1)\",\"switchOffFg\":\":alpha\u003c0.8\u003c@fg\",\"accentDarken\":\":darken\u003c10\u003c@accent\",\"acrylicPanel\":\":alpha\u003c0.5\u003c@panel\",\"navIndicator\":\"@indicator\",\"windowHeader\":\":alpha\u003c0.85\u003c@panel\",\"accentLighten\":\":lighten\u003c10\u003c@accent\",\"buttonHoverBg\":\"rgba(255, 255, 255, 0.1)\",\"driveFolderBg\":\":alpha\u003c0.3\u003c@accent\",\"fgHighlighted\":\":lighten\u003c3\u003c@fg\",\"fgTransparent\":\":alpha\u003c0.5\u003c@fg\",\"panelHeaderBg\":\":lighten\u003c3\u003c@panel\",\"panelHeaderFg\":\"@fg\",\"buttonGradateA\":\"@accent\",\"buttonGradateB\":\"#dda52c\",\"htmlThemeColor\":\"@bg\",\"panelHighlight\":\":lighten\u003c3\u003c@panel\",\"listItemHoverBg\":\"rgba(255, 255, 255, 0.03)\",\"scrollbarHandle\":\"rgba(255, 255, 255, 0.2)\",\"inputBorderHover\":\"rgba(255, 255, 255, 0.2)\",\"wallpaperOverlay\":\"rgba(0, 0, 0, 0.5)\",\"fgTransparentWeak\":\":alpha\u003c0.75\u003c@fg\",\"panelHeaderDivider\":\"rgba(0, 0, 0, 0)\",\"scrollbarHandleHover\":\"rgba(255, 255, 255, 0.4)\"},\"author\":\"@[email protected]\"}","clientOptions":{},"ads":[],"notesPerOneAd":0,"enableEmail":false,"enableServiceWorker":true,"translatorAvailable":false,"serverRules":[],"policies":{"gtlAvailable":true,"ltlAvailable":false,"canPublicNote":true,"canEditNote":true,"mentionLimit":20,"canInvite":false,"inviteLimit":0,"inviteLimitCycle":10080,"inviteExpirationTime":0,"canManageCustomEmojis":false,"canManageAvatarDecorations":false,"canSearchNotes":false,"canSearchUsers":true,"canUseTranslator":true,"canHideAds":false,"driveCapacityMb":1000,"maxFileSizeMb":30,"alwaysMarkNsfw":false,"canUpdateBioMedia":true,"pinLimit":5,"antennaLimit":5,"wordMuteLimit":200,"webhookLimit":3,"clipLimit":10,"noteEachClipsLimit":200,"userListLimit":10,"userEachUserListsLimit":50,"rateLimitFactor":0.3,"avatarDecorationLimit":1,"canImportAntennas":true,"canImportBlocking":true,"canImportFollowing":true,"canImportMuting":true,"canImportUserLists":true,"chatAvailability":"available","uploadableFileTypes":["text/*","application/json","image/*","video/*","audio/*"],"noteDraftLimit":10,"scheduledNoteLimit":1,"watermarkAvailable":true},"sentryForFrontend":null,"mediaProxy":"https://mi.starlamp.su/proxy","enableUrlPreview":true,"noteSearchableScope":"global","maxFileSize":262144000,"federation":"all","cacheRemoteFiles":false,"cacheRemoteSensitiveFiles":true,"requireSetup":false,"proxyAccountName":"system.proxy","features":{"localTimeline":false,"globalTimeline":true,"registration":false,"emailRequiredForSignup":false,"hcaptcha":false,"recaptcha":false,"turnstile":false,"objectStorage":true,"serviceWorker":true,"miauth":true}}</script>
95<script type="application/json" id="misskey_clientCtx" data-generated-at="1790373776650">{"user":{"id":"9kq90oymkm4v0004","name":"Porlam Nicla","username":"Porlam","host":null,"avatarUrl":"https://mediaproxy.04.si/avatar.webp?url=https%3A%2F%2Fstarlamp.r2.hide.li%2Ffiles%2Fwebpublic-961f5e9e-d45d-464c-b5a5-8cade20d370e.png\u0026avatar=1","avatarBlurhash":"eESiy=x]}b=|Ed}ssoBUSKwIwNo1OTSNnlL2Se;Lw|OZ=MsUExSNxI","avatarDecorations":[{"id":"9wylg9frvenf01hf","url":"https://obj.04.si/files/191c548a-ded2-4d9e-a0be-962c0fb8d7ad.png"}],"isBot":false,"isCat":true,"emojis":{},"onlineStatus":"active","badgeRoles":[],"url":null,"uri":null,"movedTo":null,"alsoKnownAs":null,"createdAt":"2023-10-12T04:33:13.054Z","updatedAt":"2026-09-23T01:59:20.653Z","lastFetchedAt":null,"bannerUrl":"https://starlamp.r2.hide.li/files/webpublic-4c84b46a-171c-45ff-9042-ff73e54beba0.png","bannerBlurhash":"eIC~hrw}kVkpSj~BV[M{xsXANxIqRjnhR*o~tQjFIVWUN0-oM|Iq%1","isLocked":true,"isSilenced":false,"isSuspended":false,"description":"#1 IPv6 Peers in Japan\nFree IPv6 Transit is available for non-commercial usage\nLang: ja-jp,en-us,ru-ru(learning)\nIcon: ::1","location":"Minmstla Cherskrnoka","birthday":"0000-00-00","lang":"ru","fields":[{"name":"GitHub","value":"https://github.com/grapeapple0"},{"name":"Apolan tarnijaf","value":"krya norv frolen :blobcatflower:"},{"name":"Personal Website","value":"https://starlamp.su"}],"verifiedLinks":["https://github.com/grapeapple0"],"followersCount":154,"followingCount":146,"notesCount":5055,"pinnedNoteIds":["9uqlfumfs2nq04ii","9ks3wcqoqqvr0003","9kq9fh2mkm4v000s"],"pinnedNotes":[{"id":"9uqlfumfs2nq04ii","createdAt":"2024-06-20T08:57:58.983Z","userId":"9kq90oymkm4v0004","user":{"id":"9kq90oymkm4v0004","name":"Porlam Nicla","username":"Porlam","host":null,"avatarUrl":"https://mediaproxy.04.si/avatar.webp?url=https%3A%2F%2Fstarlamp.r2.hide.li%2Ffiles%2Fwebpublic-961f5e9e-d45d-464c-b5a5-8cade20d370e.png\u0026avatar=1","avatarBlurhash":"eESiy=x]}b=|Ed}ssoBUSKwIwNo1OTSNnlL2Se;Lw|OZ=MsUExSNxI","avatarDecorations":[{"id":"9wylg9frvenf01hf","url":"https://obj.04.si/files/191c548a-ded2-4d9e-a0be-962c0fb8d7ad.png"}],"isBot":false,"isCat":true,"emojis":{},"onlineStatus":"active","badgeRoles":[]},"text":"大体いつもここにいます\nMisskey: @Porlam/@[email protected]\nDiscord: `pmxn`\nTwitter(x.com): [nulland_dev](https://x.com/nulland_dev)\nTelegram: [PorlamAP](https://t.me/PorlamAP)\nMatrix: `@porlam:matrix.starlamp.su`","cw":null,"visibility":"home","localOnly":false,"reactionAcceptance":"nonSensitiveOnly","renoteCount":2,"repliesCount":1,"reactionCount":0,"reactions":{},"reactionEmojis":{},"fileIds":[],"files":[],"replyId":null,"renoteId":null,"mentions":["9kq90oymkm4v0004","9kq95s77rala0002"],"clippedCount":0},{"id":"9ks3wcqoqqvr0003","createdAt":"2023-10-13T11:45:24.864Z","userId":"9kq90oymkm4v0004","user":{"id":"9kq90oymkm4v0004","name":"Porlam Nicla","username":"Porlam","host":null,"avatarUrl":"https://mediaproxy.04.si/avatar.webp?url=https%3A%2F%2Fstarlamp.r2.hide.li%2Ffiles%2Fwebpublic-961f5e9e-d45d-464c-b5a5-8cade20d370e.png\u0026avatar=1","avatarBlurhash":"eESiy=x]}b=|Ed}ssoBUSKwIwNo1OTSNnlL2Se;Lw|OZ=MsUExSNxI","avatarDecorations":[{"id":"9wylg9frvenf01hf","url":"https://obj.04.si/files/191c548a-ded2-4d9e-a0be-962c0fb8d7ad.png"}],"isBot":false,"isCat":true,"emojis":{},"onlineStatus":"active","badgeRoles":[]},"text":"にゃーん","cw":null,"visibility":"public","localOnly":false,"reactionAcceptance":"nonSensitiveOnly","renoteCount":5,"repliesCount":0,"reactionCount":6,"reactions":{"❤":1,"🎉":3,":[email protected]:":1,":[email protected]:":1},"reactionEmojis":{"[email protected]":"https://mi.halu.ink/files/7ce90a96-1239-4c6b-82c6-6da621c3b942","[email protected]":"https://objects.syobon.net/88c9b8c7-10e8-4824-a168-422816bc9fc8.png"},"fileIds":[],"files":[],"replyId":null,"renoteId":null,"clippedCount":0},{"id":"9kq9fh2mkm4v000s","createdAt":"2023-10-12T04:44:42.670Z","userId":"9kq90oymkm4v0004","user":{"id":"9kq90oymkm4v0004","name":"Porlam Nicla","username":"Porlam","host":null,"avatarUrl":"https://mediaproxy.04.si/avatar.webp?url=https%3A%2F%2Fstarlamp.r2.hide.li%2Ffiles%2Fwebpublic-961f5e9e-d45d-464c-b5a5-8cade20d370e.png\u0026avatar=1","avatarBlurhash":"eESiy=x]}b=|Ed}ssoBUSKwIwNo1OTSNnlL2Se;Lw|OZ=MsUExSNxI","avatarDecorations":[{"id":"9wylg9frvenf01hf","url":"https://obj.04.si/files/191c548a-ded2-4d9e-a0be-962c0fb8d7ad.png"}],"isBot":false,"isCat":true,"emojis":{},"onlineStatus":"active","badgeRoles":[]},"text":"Hello world","cw":null,"visibility":"public","localOnly":false,"reactionAcceptance":"nonSensitiveOnly","renoteCount":4,"repliesCount":1,"reactionCount":11,"reactions":{"🎉":2,"🤯":5,":[email protected]:":2,":[email protected]:":1,":[email protected]:":1},"reactionEmojis":{"[email protected]":"https://s3.yurucat.me/misskey/files/9cab2cb3-df0e-49ff-8fe0-8c93112c78fe.png","[email protected]":"https://s3.fedibird.com/custom_emojis/images/000/151/617/original/5ebea3954433863b.png","[email protected]":"https://s3.typeling1578.dev/misskey/01/d4f5ec4a-5d9d-476b-86bf-7161edf1fc1b.png"},"fileIds":[],"files":[],"replyId":null,"renoteId":null,"clippedCount":0}],"pinnedPageId":null,"pinnedPage":null,"publicReactions":true,"followersVisibility":"public","followingVisibility":"public","chatScope":"mutual","canChat":true,"roles":[],"memo":null}}</script>
95<script>/*
96 * SPDX-FileCopyrightText: syuilo and misskey-project
97 * SPDX-License-Identifier: AGPL-3.0-only
98 */
99
100'use strict';
101
102// ブロックの中に入れないと、定義した変数がブラウザのグローバルスコープに登録されてしまい邪魔なので
103(async () => {
104	window.onerror = (e) => {
105		console.error(e);
106		renderError('SOMETHING_HAPPENED', e);
107	};
108	window.onunhandledrejection = (e) => {
109		console.error(e);
110		renderError('SOMETHING_HAPPENED_IN_PROMISE', e.reason || e);
111	};
112
113	let forceError = localStorage.getItem('forceError');
114	if (forceError != null) {
115		renderError('FORCED_ERROR', 'This error is forced by having forceError in local storage.');
116		return;
117	}
118
119	//#region Detect language
120	const supportedLangs = LANGS;
121	/** @type { string } */
122	let lang = localStorage.getItem('lang');
123	if (lang == null || !supportedLangs.includes(lang)) {
124		if (supportedLangs.includes(navigator.language)) {
125			lang = navigator.language;
126		} else {
127			lang = supportedLangs.find(x => x.split('-')[0] === navigator.language);
128
129			// Fallback
130			if (lang == null) lang = 'en-US';
131		}
132	}
133
134	// for https://github.com/misskey-dev/misskey/issues/10202
135	if (lang == null || lang.toString == null || lang.toString() === 'null') {
136		console.error('invalid lang value detected!!!', typeof lang, lang);
137		lang = 'en-US';
138	}
139
140	localStorage.setItem('lang', lang);
141	//#endregion
142
143	//#region Script
144	async function importAppScript() {
145		await import(CLIENT_ENTRY ? `/vite/${CLIENT_ENTRY.replace('scripts', lang)}` : '/vite/src/_boot_.ts')
146			.catch(async e => {
147				console.error(e);
148				renderError('APP_IMPORT', e);
149			});
150	}
151
152	// タイミングによっては、この時点でDOMの構築が済んでいる場合とそうでない場合とがある
153	if (document.readyState !== 'loading') {
154		importAppScript();
155	} else {
156		window.addEventListener('DOMContentLoaded', () => {
157			importAppScript();
158		});
159	}
160	//#endregion
161
162	let isSafeMode = (localStorage.getItem('isSafeMode') === 'true');
163
164	if (!isSafeMode) {
165		const urlParams = new URLSearchParams(window.location.search);
166
167		if (urlParams.has('safemode') && urlParams.get('safemode') === 'true') {
168			localStorage.setItem('isSafeMode', 'true');
169			isSafeMode = true;
170		}
171	}
172
173	//#region Theme
174	if (!isSafeMode) {
175		const theme = localStorage.getItem('theme');
176		if (theme) {
177			for (const [k, v] of Object.entries(JSON.parse(theme))) {
178				document.documentElement.style.setProperty(`--MI_THEME-${k}`, v.toString());
179
180				// HTMLの theme-color 適用
181				if (k === 'htmlThemeColor') {
182					for (const tag of document.head.children) {
183						if (tag.tagName === 'META' && tag.getAttribute('name') === 'theme-color') {
184							tag.setAttribute('content', v);
185							break;
186						}
187					}
188				}
189			}
190		}
191	}
192
193	const colorScheme = localStorage.getItem('colorScheme');
194	if (colorScheme) {
195		document.documentElement.style.setProperty('color-scheme', colorScheme);
196	}
197	//#endregion
198
199	const fontSize = localStorage.getItem('fontSize');
200	if (fontSize) {
201		document.documentElement.classList.add('f-' + fontSize);
202	}
203
204	const useSystemFont = localStorage.getItem('useSystemFont');
205	if (useSystemFont) {
206		document.documentElement.classList.add('useSystemFont');
207	}
208
209	if (!isSafeMode) {
210		const customCss = localStorage.getItem('customCss');
211		if (customCss && customCss.length > 0) {
212			const style = document.createElement('style');
213			style.innerHTML = customCss;
214			document.head.appendChild(style);
215		}
216	}
217
218	async function addStyle(styleText) {
219		let css = document.createElement('style');
220		css.appendChild(document.createTextNode(styleText));
221		document.head.appendChild(css);
222	}
223
224	async function renderError(code, details) {
225		// Cannot set property 'innerHTML' of null を回避
226		if (document.readyState === 'loading') {
227			await new Promise(resolve => window.addEventListener('DOMContentLoaded', resolve));
228		}
229
230		let messages = null;
231		const bootloaderLocales = localStorage.getItem('bootloaderLocales');
232		if (bootloaderLocales) {
233			messages = JSON.parse(bootloaderLocales);
234		}
235		if (!messages) {
236			// older version of misskey does not store bootloaderLocales, stores locale as a whole
237			const legacyLocale = localStorage.getItem('locale');
238			if (legacyLocale) {
239				const parsed = JSON.parse(legacyLocale);
240				messages = {
241					...(parsed._bootErrors ?? {}),
242					reload: parsed.reload,
243				};
244			}
245		}
246		if (!messages) messages = {};
247
248		messages = Object.assign({
249			title: 'Failed to initialize Misskey',
250			solution: 'The following actions may solve the problem.',
251			solution1: 'Update your os and browser',
252			solution2: 'Disable an adblocker',
253			solution3: 'Clear the browser cache',
254			solution4: '(Tor Browser) Set dom.webaudio.enabled to true',
255			otherOption: 'Other options',
256			otherOption1: 'Clear preferences and cache',
257			otherOption2: 'Start the simple client',
258			otherOption3: 'Start the repair tool',
259			otherOption4: 'Start Misskey in safe mode',
260			reload: 'Reload',
261		}, messages);
262
263		const safeModeUrl = new URL(window.location.href);
264		safeModeUrl.searchParams.set('safemode', 'true');
265
266		let errorsElement = document.getElementById('errors');
267
268		if (!errorsElement) {
269			document.body.innerHTML = `
270			<svg class="icon-warning" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
271				<path stroke="none" d="M0 0h24v24H0z" fill="none"></path>
272				<path d="M12 9v2m0 4v.01"></path>
273				<path d="M5 19h14a2 2 0 0 0 1.84 -2.75l-7.1 -12.25a2 2 0 0 0 -3.5 0l-7.1 12.25a2 2 0 0 0 1.75 2.75"></path>
274			</svg>
275			<h1>${messages.title}</h1>
276			<button class="button-big" onclick="location.reload(true);">
277				<span class="button-label-big">${messages?.reload}</span>
278			</button>
279			<p><b>${messages.solution}</b></p>
280			<p>${messages.solution1}</p>
281			<p>${messages.solution2}</p>
282			<p>${messages.solution3}</p>
283			<p>${messages.solution4}</p>
284			<details style="color: #86b300;">
285				<summary>${messages.otherOption}</summary>
286				<a href="${safeModeUrl}">
287					<button class="button-small">
288						<span class="button-label-small">${messages.otherOption4}</span>
289					</button>
290				</a>
291				<br>
292				<a href="/flush">
293					<button class="button-small">
294						<span class="button-label-small">${messages.otherOption1}</span>
295					</button>
296				</a>
297				<br>
298				<a href="/cli">
299					<button class="button-small">
300						<span class="button-label-small">${messages.otherOption2}</span>
301					</button>
302				</a>
303				<br>
304				<a href="/bios">
305					<button class="button-small">
306						<span class="button-label-small">${messages.otherOption3}</span>
307					</button>
308				</a>
309			</details>
310			<br>
311			<div id="errors"></div>
312			`;
313			errorsElement = document.getElementById('errors');
314		}
315		const detailsElement = document.createElement('details');
316		detailsElement.id = 'errorInfo';
317		detailsElement.innerHTML = `
318		<br>
319		<summary>
320			<code>ERROR CODE: ${code}</code>
321		</summary>
322		<code>${details.toString()} ${JSON.stringify(details)}</code>`;
323		errorsElement.appendChild(detailsElement);
324		addStyle(`
325		* {
326			font-family: BIZ UDGothic, Roboto, HelveticaNeue, Arial, sans-serif;
327		}
328
329		#misskey_app,
330		#splash {
331			display: none !important;
332		}
333
334		body,
335		html {
336			background-color: #222;
337			color: #dfddcc;
338			justify-content: center;
339			margin: auto;
340			padding: 10px;
341			text-align: center;
342		}
343
344		button {
345			border-radius: 999px;
346			padding: 0px 12px 0px 12px;
347			border: none;
348			cursor: pointer;
349			margin-bottom: 12px;
350		}
351
352		.button-big {
353			background: linear-gradient(90deg, rgb(134, 179, 0), rgb(74, 179, 0));
354			line-height: 50px;
355		}
356
357		.button-big:hover {
358			background: rgb(153, 204, 0);
359		}
360
361		.button-small {
362			background: #444;
363			line-height: 40px;
364		}
365
366		.button-small:hover {
367			background: #555;
368		}
369
370		.button-label-big {
371			color: #222;
372			font-weight: bold;
373			font-size: 1.2em;
374			padding: 12px;
375		}
376
377		.button-label-small {
378			color: rgb(153, 204, 0);
379			font-size: 16px;
380			padding: 12px;
381		}
382
383		a {
384			color: rgb(134, 179, 0);
385			text-decoration: none;
386		}
387
388		p,
389		li {
390			font-size: 16px;
391		}
392
393		.icon-warning {
394			color: #dec340;
395			height: 4rem;
396			padding-top: 2rem;
397		}
398
399		h1 {
400			font-size: 1.5em;
401			margin: 1em;
402		}
403
404		code {
405			font-family: Fira, FiraCode, monospace;
406		}
407
408		#errorInfo {
409			background: #333;
410			margin-bottom: 2rem;
411			padding: 0.5rem 1rem;
412			width: 40rem;
413			border-radius: 10px;
414			justify-content: center;
415			margin: auto;
416		}
417
418		#errorInfo summary {
419			cursor: pointer;
420		}
421
422		#errorInfo summary > * {
423			display: inline;
424		}
425
426		@media screen and (max-width: 500px) {
427			#errorInfo {
428				width: 50%;
429			}
430		}`);
431	}
432})();
433</script>
433</head><body><noscript><p>JavaScriptを有効にしてください<br/>Please turn on your JavaScript</p></noscript><div id="splash"><img id="splashIcon" src="https://starlamp.r2.hide.li/files/46618ffc-29ba-414f-9ee1-9f9771c32f07.png"/><div id="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;"></circle></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;"></path></g></svg></div></div></body></html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.