[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
DX3 のキャラクターシートを JavaScript から扱うためのユーティリティを書いた。動作サンプル
DX3 のキャラクターシートを扱うウェブサービスとしてはキャラクター保管所とキャラクターシート倉庫が有名だと私は勝手に思っているが、このユーティリティはどちらにも対応し、どちらを入力しても同じフォーマットで結果が出力されるようにしている。
動作サンプル はキャラクターシートの URL を入力することで出力結果を得られるようになっている。
どうやればいいのか少し試行錯誤が必要だったのでメモ的に
const AWS = require('aws-sdk');
/*******
* MY_ACCESS_KEY と MY_SECRET_ACCESS_KEY は
* https://aws.amazon.com/jp/developers/access-keys/ の手順を参考に取得・代入
*
* MY_ACCOUNT_NAME は AWS アカウントの名前。
* 10桁~の数字になる
*
* MY_IAM_NAME は利用する IAM の名前
*
* MY_MFA_TOKEN は MFA のワンタイムトークン。
* https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/id_credentials_mfa_enable_virtual.html を参考に設定する
*/
const sts = new AWS.STS({
accessKeyId: MY_ACCESS_KEY,
secretAccessKey: MY_SECRET_ACCESS_KEY
});
sts.getSessionToken({
SerialNumber: `arn:aws:iam::${MY_ACCOUNT_NAME}:mfa/${MY_IAM_NAME}`,
TokenCode: MY_MFA_TOKEN,
DurationSeconds: 1800, // 30mins
}, (err, data) => {
if(err) {
console.error(err);
} else {
(new AWS.EC2({
region: 'ap-northeast-1',
credentials: sts.credentialsFrom(data)
// describeSecurityGroups を実行する理由はとくにはない。
// 私がよく使うコマンドだった、というだけ
})).describeSecurityGroups({}, (err, sg) => {
if(err) {
console.log('ERROR');
console.log(err);
} else {
console.log(JSON.stringify(sg, null, '\t'));
}
});
}
}
);ちょっと前にブラウザからでも Discord は叩けるという話をした。なので、前に作ったライブラリと同じ感覚で使える Discord のクライアントを作っていた。<\p>
<!-- 外部ライブラリの discord.io を読み込む必要がある --> <script src="https://shunshun94.github.io/shared/external/discord.io/index.js"></script> <script src="https://shunshun94.github.io/shared/other/io/github/shunshun94/trpg/clientSpec.js"></script> <script src="https://shunshun94.github.io/shared/other/io/github/shunshun94/trpg/discord/client.js"></script> <script src="discordClientUse.js"></script>
const client = new io.github.shunshun94.trpg.discord.Server(DISCORD_BOT_USER_TOKEN);
// チャンネルリストを取得
client.getRoomList().done(console.log).fail(console.error);
// getRoomList() で得られる結果の先頭 (0番目) の部屋に接続するクライアントを作る
const room = client.getRoom(0);
// 前に紹介したどどんとふクライアントの getChat とほぼ同じ形式の出力
room.getChat().done(console.log).fail(console.error);
// チャットを送信する
room.sendChat({
name: 'ひよこ', message: 'ひよこだよ'
});
「一応 Discord でも使えますよ」と作ったアプリを出すのに使えるかも?