てすと
訪問者数10,000突破おめでとうございます!
うんちの運賃、うん賃
おもんない
時間がUTC+9になってないわこれ
あけおめ
おめおめ〜
ここがLINEの代わりですか?
>>148 LINEより優れたコミュニケーションツールへようこそ!
```ts
import type { entities as MisskeyEntities } from 'misskey-js'
type WebhookTypes = {
user: 'follow' | 'followed' | 'unfollow'
note: 'note' | 'reply' | 'renote' | 'mention'
}
export type MisskeyWebhook<T = WebhookTypes['user' | 'note']> = {
hookId: string
userId: string
eventId: string
createdAt: string
type: T
body: T extends WebhookTypes['user']
? {
user: MisskeyEntities.User
}
: T extends WebhookTypes['note']
? {
note: MisskeyEntities.Note
}
: null
}
export const WebhookTypeCheck = <T extends WebhookTypes['user' | 'note']>(
type: T,
json: MisskeyWebhook
): json is MisskeyWebhook<T> => json.type === type
```
import type { entities as MisskeyEntities } from 'misskey-js'
type WebhookTypes = {
user: 'follow' | 'followed' | 'unfollow'
note: 'note' | 'reply' | 'renote' | 'mention'
}
export type MisskeyWebhook<T = WebhookTypes['user' | 'note']> = {
hookId: string
userId: string
eventId: string
createdAt: string
type: T
body: T extends WebhookTypes['user']
? {
user: MisskeyEntities.User
}
: T extends WebhookTypes['note']
? {
note: MisskeyEntities.Note
}
: null
}
export const WebhookTypeCheck = <T extends WebhookTypes['user' | 'note']>(
type: T,
json: MisskeyWebhook
): json is MisskeyWebhook<T> => json.type === type
```
>>150 高機能すぎる
学タブゐガキがよㄑ使ラサ亻卜はここてずカ?
nodejs分からん。フロントエンドのjsだったら、何となくわかるけど。。。深堀りして使い慣れないとこの状況は変わらないとういね。
```css
/* TOKIMEKIのカラム幅をウィンドウの幅に合わせて自動調節するUserStyle */
.app {
--t-columns: 1;
--t-sidebar-width: 64px;
--t-columnarea-width: calc(
(100vw - var(--t-sidebar-width)) - var(--decks-gap) * (var(--t-columns) - 1)
);
--t-auto-width: calc(var(--t-columnarea-width) / var(--t-columns));
--deck-xxs-width: var(--t-auto-width);
--deck-xs-width: var(--t-auto-width);
--deck-s-width: var(--t-auto-width);
--deck-m-width: var(--t-auto-width);
--deck-l-width: var(--t-auto-width);
--deck-xl-width: var(--t-auto-width);
--deck-xxl-width: var(--t-auto-width);
@media (min-width: 600px) {
--t-columns: 2
}
@media (min-width: 900px) {
--t-columns: 3
}
@media (min-width: 1200px) {
--t-columns: 4
}
@media (min-width: 1500px) {
--t-columns: 5
}
@media (min-width: 1800px) {
--t-columns: 6
}
&[style*="--decks-gap:"] {
--decks-gap: 0px !important;
}
}
```
/* TOKIMEKIのカラム幅をウィンドウの幅に合わせて自動調節するUserStyle */
.app {
--t-columns: 1;
--t-sidebar-width: 64px;
--t-columnarea-width: calc(
(100vw - var(--t-sidebar-width)) - var(--decks-gap) * (var(--t-columns) - 1)
);
--t-auto-width: calc(var(--t-columnarea-width) / var(--t-columns));
--deck-xxs-width: var(--t-auto-width);
--deck-xs-width: var(--t-auto-width);
--deck-s-width: var(--t-auto-width);
--deck-m-width: var(--t-auto-width);
--deck-l-width: var(--t-auto-width);
--deck-xl-width: var(--t-auto-width);
--deck-xxl-width: var(--t-auto-width);
@media (min-width: 600px) {
--t-columns: 2
}
@media (min-width: 900px) {
--t-columns: 3
}
@media (min-width: 1200px) {
--t-columns: 4
}
@media (min-width: 1500px) {
--t-columns: 5
}
@media (min-width: 1800px) {
--t-columns: 6
}
&[style*="--decks-gap:"] {
--decks-gap: 0px !important;
}
}
```
```css
/**
* TOKIMEKI レイアウト修正
*/
/* カラムヘッダー下の謎余白を消す */
.timeline:has(> .timeline__item) {
padding-top: 0;
}
/* 画像のサイズを最大で高さ50%までにするやつ */
.timeline-image {
aspect-ratio: unset !important;
}
.timeline-images img {
max-height: 50vh;
object-fit: contain;
background-color: var(--bg-color-2);
}
```
/**
* TOKIMEKI レイアウト修正
*/
/* カラムヘッダー下の謎余白を消す */
.timeline:has(> .timeline__item) {
padding-top: 0;
}
/* 画像のサイズを最大で高さ50%までにするやつ */
.timeline-image {
aspect-ratio: unset !important;
}
.timeline-images img {
max-height: 50vh;
object-fit: contain;
background-color: var(--bg-color-2);
}
```
```css
/**
* TOKIMEKI プロフィールちょっと見やすくするやつ
*/
/* モーダル */
.decks .modal-page-content {
max-width: 500px;
}
/* プロフィール 説明 */
.profile-description__text {
margin: 1em 0;
padding: 0.5em 0.75em;
border: 1px solid var(--border-color-2);
border-radius: 10px;
background-color: var(--menu-bg-color);
}
/* プロフィール フォロー・フォロワー */
.profile-relationship {
row-gap: 0.5em !important;
margin-bottom: 0.5em;
}
.profile-relationship__by {
padding: 0.2em 0.5em;
border: 1px solid var(--border-color-2);
border-radius: 99rem;
}
/* プロフィール タブ */
.profile-tab {
flex-wrap: wrap;
justify-content: space-evenly;
gap: 0;
padding: 8px 4px;
border-top: 1px solid var(--border-color-2);
}
.profile-tab__item:before {
display: none;
}
.profile-tab__item {
padding: 10px 16px;
border-radius: 10px;
}
.profile-tab__item--active {
background-color: var(--primary-color);
color: #fff;
}
```
/**
* TOKIMEKI プロフィールちょっと見やすくするやつ
*/
/* モーダル */
.decks .modal-page-content {
max-width: 500px;
}
/* プロフィール 説明 */
.profile-description__text {
margin: 1em 0;
padding: 0.5em 0.75em;
border: 1px solid var(--border-color-2);
border-radius: 10px;
background-color: var(--menu-bg-color);
}
/* プロフィール フォロー・フォロワー */
.profile-relationship {
row-gap: 0.5em !important;
margin-bottom: 0.5em;
}
.profile-relationship__by {
padding: 0.2em 0.5em;
border: 1px solid var(--border-color-2);
border-radius: 99rem;
}
/* プロフィール タブ */
.profile-tab {
flex-wrap: wrap;
justify-content: space-evenly;
gap: 0;
padding: 8px 4px;
border-top: 1px solid var(--border-color-2);
}
.profile-tab__item:before {
display: none;
}
.profile-tab__item {
padding: 10px 16px;
border-radius: 10px;
}
.profile-tab__item--active {
background-color: var(--primary-color);
color: #fff;
}
```
スパムうまい
マツマツゐkiss
すぱむざむらい
おにゃん!
こんにちは
酢パムねえ
おにゃんだれだよ
人の名前で荒らしはやめてください!
こ!
掲示板で喧嘩はやめましょう!
>>167 だれですかあなたは!
>>167 無職は帰れ!
落ち着いて浅田飴でも食べよーや
ちんちんのせていいですか
>>171 や っ た れ
>>171 おう!
やっぱこれリアルタイム更新させたいなぁ
>>174 Misskeyみたいに
今日はひつじぐもぱむれえ
こ
の人
にゃん
おしり
おにゃん!
ぽにゃん!
吉野家でラーメン食べようぜ
シヌドて汁そば食べよラぜ
きた
>>185 かえれ
🤔
みーちゃん
机の下にまた靴下が落ちていました
もう子供じゃないんだからちゃんと片付けなさいね
机の下にまた靴下が落ちていました
もう子供じゃないんだからちゃんと片付けなさいね
>>188 9歳はまだ子供じゃ
こんにちは〜☕☕☕
プロフ見て〜☕☕☕
プロフ見て〜☕☕☕