icon

そろそろ後半

icon

前半終了

icon

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

icon

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

icon

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

icon

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

icon

なでなで

icon

おふさいど

icon

痛そう

icon

あっぶない

icon

わー

icon

うーむ

icon

まだ0-0

icon

おしい

icon

あぶない

icon

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

icon

⚽️

icon

サッカーやってる

icon

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

icon

Misskey版ペヤングでも作るか

2019-01-28 22:07:02 めいめいの投稿 mei23@misskey.m544.net
icon

このアカウントは、notestockで公開設定になっていません。

icon

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

icon

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

2019-01-28 22:00:05 めいめいの投稿 mei23@misskey.m544.net
icon

このアカウントは、notestockで公開設定になっていません。

icon

将太の寿司?

2019-01-28 21:43:58 takimura@​:misskey:​.xyz​:smiling_ai::aified:​の投稿 cv_k@misskey.xyz
icon

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

icon

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

icon

ゆきゆきねこねこ

icon

前者

icon

💿

icon

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

icon

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

icon

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

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

icon

Misskey警察だ

icon

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

icon

それが一番楽そう

icon

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

Web site image
GitHub - syuilo/ai: 💕 A bot for Misskey
icon

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

icon

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

icon

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

icon

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

icon

やっぱり慣れないな

icon

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

icon

🎩
💪:grunt:💪
👖

icon

gruntのマスコット(?)

icon

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

icon

ありがとうございました

icon

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

icon

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

icon

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

icon

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

icon

たぶんChromeの機能

icon

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

Attach image
icon

制限緩和するか

icon

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

2019-01-28 17:32:00 めいめいの投稿 mei23@misskey.m544.net
icon

このアカウントは、notestockで公開設定になっていません。

icon

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

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

icon

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

Web site image
おもさな。 (@unayomo@mstdn.jp)
icon

🎩
💪:edge:💪
👖

icon

アイス食べてください

icon

村上さんの$10パトロン

icon

かわいい

icon

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

icon

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

icon

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

icon

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

icon

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

icon

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

Attach image
icon

しゅいろソフト

icon

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

icon

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

icon

赤字そう

icon

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

icon

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

Web site image
【​I​ ​w​i​l​l​】​硫​酸​鶏 (@ac@imastodon.net)
icon

村上さんはエライ人

icon

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

icon

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

icon

✌️:grunt:👌

icon

🙏🙏🙏

icon

なでなで

icon

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

icon

いまのなし

icon

m もある

icon

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

icon

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

Web site image
sha (@nieein56@mstdn.tamag.org)
icon

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

icon

「いま」を見つけようbird

icon

🍤

icon

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

icon

🍭

icon

お腹すいた対応するか

icon

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

icon

1回

icon

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

icon

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

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

icon

yes

icon

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

icon

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

icon

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

icon

✌️

icon

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

icon

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

icon

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

icon

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

icon

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

icon

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

icon

にゃみにゃみ

icon

スベスベ〜

icon

かわいい

icon

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

icon

All your base are belong to us

icon

もちろん冗談ですので…

2019-01-28 10:17:49 xeltica@misskey.xyzの投稿 xeltica@misskey.xyz
icon

このアカウントは、notestockで公開設定になっていません。

icon

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

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

Web site image
意識他界大熊猫(Chief Takai Officer) (@animarl@mstdn.love)
icon

💪:grunt:💪

icon

pngでほしい

icon

:grunt:

icon

HoneyComeBear好き

icon

@mewl@mewl.me FutureBass系かな

icon

👋:misskey:✌️

2019-01-28 09:25:20 みもりんかの投稿 mimorinka@mstdn.jp
icon

このアカウントは、notestockで公開設定になっていません。

icon

藍と寝る

icon

あぁ最短マッチしてた

icon

いや分からない

icon

んー?

icon

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

icon

間違えてリプしちゃった

icon

<motion>てすと</motion>

icon

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

icon

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

icon

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

シンタックスハイライトのテスト
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);
	}
}

icon

(’ ’

2019-01-28 00:14:38 silverscat_3@misskey.xyzの投稿 silverscat_3@misskey.xyz
icon

このアカウントは、notestockで公開設定になっていません。

icon

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

icon

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

icon

🙏🙏🙏

icon

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

icon

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

icon

ンギギアル