23:59:58 @syuilo@misskey.xyz
icon

そろそろ後半

23:47:35 @syuilo@misskey.xyz
icon

前半終了

23:46:58 @syuilo@misskey.xyz
icon

前半が0-0で終わろうとしている

23:45:53 @syuilo@misskey.xyz
icon

あぁ、前半にもアディショナルタイムはあるのね

23:45:05 @syuilo@misskey.xyz
icon

サッカー、仲良くやってほしい

23:41:40 @syuilo@misskey.xyz
icon

前半ってアディショナルタイムあるんだっけ

23:32:09 @syuilo@misskey.xyz
icon

なでなで

23:25:51 @syuilo@misskey.xyz
icon

おふさいど

23:24:49 @syuilo@misskey.xyz
icon

痛そう

23:22:07 @syuilo@misskey.xyz
icon

あっぶない

23:22:04 @syuilo@misskey.xyz
icon

わー

23:18:36 @syuilo@misskey.xyz
icon

うーむ

23:13:41 @syuilo@misskey.xyz
icon

まだ0-0

23:12:46 @syuilo@misskey.xyz
icon

おしい

23:10:34 @syuilo@misskey.xyz
icon

あぶない

23:07:00 @syuilo@misskey.xyz
icon

キーパーって川島じゃなくなったんだ

23:04:06 @syuilo@misskey.xyz
icon

⚽️

23:03:50 @syuilo@misskey.xyz
icon

サッカーやってる

22:26:50 @syuilo@misskey.xyz
icon

:ie::blank::blank:

22:19:37 @syuilo@misskey.xyz
icon

Misskeyが高機能でなかったら、「Mastodonでよくね?」になってしまう

22:08:29 @syuilo@misskey.xyz
icon

Misskey版ペヤングでも作るか

22:07:11 @syuilo@misskey.xyz
2019-01-28 22:07:02 Posting めいめい mei23@misskey.m544.net
icon

This account is not set to public on notestock.

22:06:33 @syuilo@misskey.xyz
icon

大変もう申し訳ありません

22:03:34 @syuilo@misskey.xyz
icon

質問箱っていうの使ったことなかったので助かった

22:03:11 @syuilo@misskey.xyz
2019-01-28 22:00:05 Posting めいめい mei23@misskey.m544.net
icon

This account is not set to public on notestock.

21:48:01 @syuilo@misskey.xyz
icon

将太の寿司?

21:44:05 @syuilo@misskey.xyz
2019-01-28 21:43:58 Posting takimura@​:misskey:​.xyz​:smiling_ai::aified:​ cv_k@misskey.xyz
icon

iOSのMisskeyアプリが欲しくなってきたなぁ(電池の減りが早い)

21:00:45 @syuilo@misskey.xyz
icon

このはちゃん見るとサーバー止められたトラウマがよみがえる

20:55:26 @syuilo@misskey.xyz
icon

ゆきゆきねこねこ

20:50:18 @syuilo@misskey.xyz
icon

前者

20:49:54 @syuilo@misskey.xyz
icon

💿

20:48:11 @syuilo@misskey.xyz
icon

(下品なので私もできればやめてほしい)

20:47:39 @syuilo@misskey.xyz
icon

それやめてほしいって村上さん言ってたような気がする

20:43:35 @syuilo@misskey.xyz
icon

タイムラインの乱れを感じたらこれをRenoteして平穏を保って欲しい

RE:
https://misskey.xyz/notes/5c4af42fd601e9003235d5b6

20:36:52 @syuilo@misskey.xyz
icon

Misskey警察だ

20:24:27 @syuilo@misskey.xyz
icon

藍ちゃんのソースは私の書いたプログラムの中では読みやすい方だと思う

20:22:56 @syuilo@misskey.xyz
icon

それが一番楽そう

20:20:31 @syuilo@misskey.xyz
icon

MisskeyのBotのソースコード
https://github.com/syuilo/ai

Web site image
GitHub - syuilo/ai: 💕 A bot for Misskey
20:09:43 @syuilo@misskey.xyz
icon

暴言はわからないけどセクハラって私に対してだったような それ以外の人にセクハラしてるのは私は記憶にない

20:07:13 @syuilo@misskey.xyz
icon

度重なる迷惑行為ってなに?

20:06:07 @syuilo@misskey.xyz
icon

凍結するほどだったのかしら

19:47:37 @syuilo@misskey.xyz
icon

文言がもはやデータセンター

19:42:03 @syuilo@misskey.xyz
icon

やっぱり慣れないな

19:41:43 @syuilo@misskey.xyz
icon

めいめい鯖開いたら目が破壊された

19:34:53 @syuilo@misskey.xyz
icon

🎩
💪:grunt:💪
👖

19:33:47 @syuilo@misskey.xyz
icon

gruntのマスコット(?)

19:27:47 @syuilo@misskey.xyz
icon

あと誰かに観られてると思うと緊張して無理だということが判明した

19:25:39 @syuilo@misskey.xyz
icon

ありがとうございました

19:25:32 @syuilo@misskey.xyz
icon

展開が思いつかないので終わり

18:48:57 @syuilo@misskey.xyz
icon

サイケデリックトランス作りライブ配信でもするか

18:45:50 @syuilo@misskey.xyz
icon

お昼寝するとその瞬間だけは気持ちいいけど起きたら気分が最悪になる(夜眠れなくなるので)

18:39:51 @syuilo@misskey.xyz
icon

リアクションはMastodonには無い概念だし互換API実装してもあまり意味なさそうなんだよな(Misskeyの魅力を発揮できない)

17:53:42 @syuilo@misskey.xyz
icon

:angry_ai:

17:48:39 @syuilo@misskey.xyz
icon

たぶんChromeの機能

17:47:26 @syuilo@misskey.xyz
icon

ピクチャインピクチャ便利だなぁ
Misskeyと藍ちゃのダンスを同時に観れる

Attach image
17:36:33 @syuilo@misskey.xyz
icon

制限緩和するか

17:32:46 @syuilo@misskey.xyz
icon

他のソフトウェアとの互換性を維持していくのは大変そうだろうなぁ

17:32:11 @syuilo@misskey.xyz
2019-01-28 17:32:00 Posting めいめい mei23@misskey.m544.net
icon

This account is not set to public on notestock.

17:31:05 @syuilo@misskey.xyz
icon

そのうちMisskey完全攻略ガイドブック書きます

RE:
https://misskey.xyz/notes/5c4ebd32e0ff0700277a8b60

17:07:11 @syuilo@misskey.xyz
icon

@unayomo@mstdn.jp デッキビューもありますよ〜

Web site image
おもさな。 (@unayomo@mstdn.jp)
17:05:50 @syuilo@misskey.xyz
icon

🎩
💪:edge:💪
👖

17:00:29 @syuilo@misskey.xyz
icon

アイス食べてください

16:59:31 @syuilo@misskey.xyz
icon

村上さんの$10パトロン

16:55:02 @syuilo@misskey.xyz
icon

かわいい

16:01:12 @syuilo@misskey.xyz
icon

サイケデリックトランスっぽいの

15:26:37 @syuilo@misskey.xyz
icon

Misskey完全攻略ガイドブックでも書くか

15:24:01 @syuilo@misskey.xyz
icon

村上さんいなかったら今頃閉鎖してた

15:18:09 @syuilo@misskey.xyz
icon

鯖をどっかの会社から借りると、DDoSくらった時に停止させられる

15:16:21 @syuilo@misskey.xyz
icon

一番高いプランにしといた

15:15:24 @syuilo@misskey.xyz
icon

村上さんのパトロンになった

Attach image
15:11:32 @syuilo@misskey.xyz
icon

しゅいろソフト

15:06:55 @syuilo@misskey.xyz
icon

misskey.xyzは黒字だったこともある

15:02:48 @syuilo@misskey.xyz
icon

多分黒字な分散SNSインスタンスなんてほぼ存在しないと思う

15:02:10 @syuilo@misskey.xyz
icon

赤字そう

15:00:51 @syuilo@misskey.xyz
icon

私に寄付すると私のところに行き、村上さんに寄付すると村上さんへ行きます

14:58:34 @syuilo@misskey.xyz
icon

@ac@imastodon.net どういうことだってばよ

Web site image
【​I​ ​w​i​l​l​】​硫​酸​鶏 (@ac@imastodon.net)
14:51:32 @syuilo@misskey.xyz
icon

村上さんはエライ人

14:50:01 @syuilo@misskey.xyz
icon

Misskey作っ(た/てる)のは私

14:48:26 @syuilo@misskey.xyz
icon

私は速くても1秒に500Kbくらいだなぁ

14:27:17 @syuilo@misskey.xyz
icon

✌️:grunt:👌

14:26:32 @syuilo@misskey.xyz
icon

🙏🙏🙏

14:26:10 @syuilo@misskey.xyz
icon

なでなで

14:00:43 @syuilo@misskey.xyz
icon

m は私の勘違いだった(マストドンのmと区別できないしね

14:00:21 @syuilo@misskey.xyz
icon

いまのなし

13:59:47 @syuilo@misskey.xyz
icon

m もある

13:51:57 @syuilo@misskey.xyz
icon

マストドンを倒す方法は?

13:46:16 @syuilo@misskey.xyz
icon

@nieein56@mstdn.tamag.org 既に行った投稿は引き継げない

Web site image
sha (@nieein56@mstdn.tamag.org)
13:44:36 @syuilo@misskey.xyz
icon

みんながソーシャル見てるわけでは無い

13:43:18 @syuilo@misskey.xyz
icon
Web site image
blew@1次創作も頑張る🎨 🐞🍋🔞 (@blew@pawoo.net)
13:40:29 @syuilo@misskey.xyz
icon

「いま」を見つけようbird

13:36:44 @syuilo@misskey.xyz
icon

🍤

13:36:25 @syuilo@misskey.xyz
icon

まだ今年に入ってツイートしてないな

13:35:51 @syuilo@misskey.xyz
icon

🍭

13:35:25 @syuilo@misskey.xyz
icon

お腹すいた対応するか

13:34:03 @syuilo@misskey.xyz
icon

それは運営の手違いだったらしく連絡したらすぐ解凍された

13:33:41 @syuilo@misskey.xyz
icon

1回

13:33:23 @syuilo@misskey.xyz
icon

利用規約ってしちゃダメなこと書けばいいのかな?

13:24:23 @syuilo@misskey.xyz
icon

無いね
だからそれ使って遡りたいときはPC版表示してる

RE:
https://misskey.xyz/notes/5c4e83d60223140027f3ca2b

13:23:13 @syuilo@misskey.xyz
icon

yes

13:20:39 @syuilo@misskey.xyz
icon

投稿を作成した時刻ではなく、サーバーに到達した時間順でソートするのはむしろ理にかなってる気がしてきた

13:18:44 @syuilo@misskey.xyz
icon

んー、でもよく考えたら時間情報以外にもカウンタとか入ってるし勘違いかも

13:17:42 @syuilo@misskey.xyz
icon

:mongodb:のObjectId、そこまで正確な時間情報は入ってないのでほぼ同時に投稿したりすると順序が入れ替わったりする

13:14:18 @syuilo@misskey.xyz
icon

✌️

13:13:51 @syuilo@misskey.xyz
icon

だからDB変更するとかなってもクライアントへの影響は少ないかもしれない

13:13:06 @syuilo@misskey.xyz
icon

MisskeyもIDによる大小比較は行なっているけどそれはサーバー内だけで、クライアント側で大小比較されることは想定していないな

13:06:33 @syuilo@misskey.xyz
icon

ソートにはソート用のプロパティを作るのが一番良いのかなぁ

13:04:04 @syuilo@misskey.xyz
icon

IDはIDであり、それ以上でもそれ以下でもないと思っていた

13:03:31 @syuilo@misskey.xyz
icon

IDの取り扱い ってなんだ…?
IDはIDでしかないのではないのかしら

10:36:02 @syuilo@misskey.xyz
icon

BandcampのiOSアプリiPad対応してほしい

10:34:03 @syuilo@misskey.xyz
icon

にゃみにゃみ

10:31:03 @syuilo@misskey.xyz
icon

スベスベ〜

10:27:24 @syuilo@misskey.xyz
icon

かわいい

10:24:29 @syuilo@misskey.xyz
icon

BitwigStudio3:bitwig: のパブリックベータが近づいてますよ

10:21:51 @syuilo@misskey.xyz
icon

All your base are belong to us

10:20:42 @syuilo@misskey.xyz
icon

もちろん冗談ですので…

10:18:36 @syuilo@misskey.xyz
2019-01-28 10:17:49 Posting xeltica@misskey.xyz xeltica@misskey.xyz
icon

This account is not set to public on notestock.

10:17:59 @syuilo@misskey.xyz
icon

ローカルTL廃止すれば解決する

RE:
https://mstdn.love/users/animarl/statuses/101491256765410456

Web site image
意識他界大熊猫(Chief Takai Officer) (@animarl@mstdn.love)
10:14:57 @syuilo@misskey.xyz
icon

💪:grunt:💪

10:06:46 @syuilo@misskey.xyz
icon

:ie:

10:03:26 @syuilo@misskey.xyz
icon

:blender:

09:58:25 @syuilo@misskey.xyz
icon

:blank:

09:56:44 @syuilo@misskey.xyz
icon

:aftereffects:

09:54:16 @syuilo@misskey.xyz
icon

:vscode:

09:49:00 @syuilo@misskey.xyz
icon

pngでほしい

09:46:44 @syuilo@misskey.xyz
icon

:grunt:

09:44:24 @syuilo@misskey.xyz
icon

:npm:

09:39:58 @syuilo@misskey.xyz
icon

HoneyComeBear好き

09:37:12 @syuilo@misskey.xyz
icon

@mewl@mewl.me FutureBass系かな

09:35:26 @syuilo@misskey.xyz
icon

👋:misskey:✌️

09:33:59 @syuilo@misskey.xyz
2019-01-28 09:25:20 Posting みもりんか mimorinka@mstdn.jp
icon

This account is not set to public on notestock.

01:28:15 @syuilo@misskey.xyz
icon

藍と寝る

01:08:28 @syuilo@misskey.xyz
icon

あぁ最短マッチしてた

01:06:47 @syuilo@misskey.xyz
icon

いや分からない

01:06:09 @syuilo@misskey.xyz
icon

んー?

01:05:30 @syuilo@misskey.xyz
icon

まあ子要素に自分自身を許可したら解決することは確かだ

01:02:59 @syuilo@misskey.xyz
icon

間違えてリプしちゃった

01:02:49 @syuilo@misskey.xyz
icon

<motion>てすと</motion>

01:01:09 @syuilo@misskey.xyz
icon

許可した方がいいのかしら

01:00:16 @syuilo@misskey.xyz
icon

flipの子要素にflip自身を許可してないからだね

00:58:37 @syuilo@misskey.xyz
icon

どのように腐ってるんだろう

00:56:57 @syuilo@misskey.xyz
シンタックスハイライトのテスト
icon

import autobind from ''autobind-decorator'';
import * as loki from ''lokijs'';
import Module from ''../../module'';
import Message from ''../../message'';
import serifs from ''../../serifs'';

type User = {
	id: string;
	username: string;
	host: string;
};

type Game = {
	votes: {
		user: User;
		number: number;
	}[];
	isEnded: boolean;
	startedAt: number;
	postId: string;
};

export default class extends Module {
	public readonly name = ''kazutori'';

	private games: loki.Collection;

	@autobind
	public install() {
		this.games = this.ai.getCollection(''kazutori'');

		this.crawleGameEnd();
		setInterval(this.crawleGameEnd, 1000);

		return {
			mentionHook: this.mentionHook,
			contextHook: this.contextHook
		};
	}

	@autobind
	private async mentionHook(msg: Message) {
		if (!msg.includes([''数取り''])) return false;

		const games = this.games.find({});

		const recentGame = games.length == 0 ? null : games[games.length - 1];

		if (recentGame) {
			// 現在アクティブなゲームがある場合
			if (!recentGame.isEnded) {
				msg.reply(serifs.kazutori.alreadyStarted, null, recentGame.postId);
				return true;
			}

			// 直近のゲームから1時間経ってない場合
			if (Date.now() - recentGame.startedAt < 1000 * 60 * 60) {
				msg.reply(serifs.kazutori.matakondo);
				return true;
			}
		}

		const post = await this.ai.post({
			text: serifs.kazutori.intro
		});

		this.games.insertOne({
			votes: [],
			isEnded: false,
			startedAt: Date.now(),
			postId: post.id
		});

		this.subscribeReply(null, false, post.id);

		this.log(''New kazutori game started'');

		return true;
	}

	@autobind
	private async contextHook(msg: Message) {
		if (msg.text == null) return;

		const game = this.games.findOne({
			isEnded: false
		});

		// 既に数字を取っていたら
		if (game.votes.some(x => x.user.id == msg.userId)) return;

		const match = msg.extractedText.match(/[0-9]+/);
		if (match == null) return;

		const num = parseInt(match[0], 10);

		// 整数じゃない
		if (!Number.isInteger(num)) return;

		// 範囲外
		if (num < 0 || num > 100) return;

		this.log(`Voted ${num} by ${msg.user.id}`);

		// 投票
		game.votes.push({
			user: {
				id: msg.user.id,
				username: msg.user.username,
				host: msg.user.host
			},
			number: num
		});

		this.games.update(game);
	}

	/**
	 * 終了すべきゲームがないかチェック
	 */
	@autobind
	private crawleGameEnd() {
		const game = this.games.findOne({
			isEnded: false
		});

		if (game == null) return;

		// ゲーム開始から3分以上経過していたら
		if (Date.now() - game.startedAt >= 1000 * 60 * 3) {
			this.finish(game);
		}
	}

	/**
	 * ゲームを終わらせる
	 */
	@autobind
	private finish(game: Game) {
		game.isEnded = true;
		this.games.update(game);

		this.log(''Kazutori game finished'');

		// お流れ
		if (game.votes.length <= 1) {
			this.ai.post({
				text: serifs.kazutori.onagare,
				renoteId: game.postId
			});

			return;
		}

		function acct(user: User): string {
			return user.host
				? `@${user.username}@${user.host}`
				: `@${user.username}`;
		}

		let results: string[] = [];
		let winner: User = null;

		for (let i = 100; i >= 0; i--) {
			const users = game.votes
				.filter(x => x.number == i)
				.map(x => x.user);

			if (users.length == 1) {
				if (winner == null) {
					winner = users[0];
					const icon = i == 100 ? ''💯'' : ''🎉'';
					results.push(`${icon} **${i}**: (((${acct(users[0])})))`);
				} else {
					results.push(`➖ ${i}: ${acct(users[0])}`);
				}
			} else if (users.length > 1) {
				results.push(`❌ ${i}: ${users.map(u => acct(u)).join('' '')}`);
			}
		}

		const text = results.join(''\n'') + ''\n\n'' + (winner
			? serifs.kazutori.finishWithWinner(acct(winner))
			: serifs.kazutori.finishWithNoWinner);

		this.ai.post({
			text: text,
			cw: serifs.kazutori.finish,
			renoteId: game.postId
		});

		this.unsubscribeReply(null);
	}
}

00:19:40 @syuilo@misskey.xyz
icon

(’ ’

00:14:53 @syuilo@misskey.xyz
2019-01-28 00:14:38 Posting silverscat_3@misskey.xyz silverscat_3@misskey.xyz
icon

This account is not set to public on notestock.

00:14:11 @syuilo@misskey.xyz
icon

alternateとleftのコンビネーションは不能

00:12:06 @syuilo@misskey.xyz
icon

jumpの中でflipは使えないのかな

00:11:46 @syuilo@misskey.xyz
icon

🙏🙏🙏

00:09:28 @syuilo@misskey.xyz
icon

これ以上アニメーション増やすといよいよサードパーティクライアントの実装が大変になりそう

00:08:31 @syuilo@misskey.xyz
icon

彼は呪いにより片腕がエビフライになりました。

00:07:24 @syuilo@misskey.xyz
icon

ンギギアル

00:03:56 @syuilo@misskey.xyz