mirror of
https://github.com/syuilo/ai.git
synced 2024-11-24 22:01:07 +00:00
nannka
This commit is contained in:
parent
ba0a99b072
commit
fa0ebcdb8f
|
@ -3,7 +3,7 @@ import 藍 from './ai';
|
|||
import IModule from './module';
|
||||
import getDate from './utils/get-date';
|
||||
import { User } from './misskey/user';
|
||||
import { itemPrefixes, items, and } from './vocabulary';
|
||||
import { genItem } from './vocabulary';
|
||||
|
||||
export type FriendDoc = {
|
||||
userId: string;
|
||||
|
@ -142,12 +142,7 @@ export default class Friend {
|
|||
|
||||
@autobind
|
||||
public generateTransferCode(): string {
|
||||
let code = '';
|
||||
code += itemPrefixes[Math.floor(Math.random() * itemPrefixes.length)];
|
||||
code += items[Math.floor(Math.random() * items.length)];
|
||||
code += and[Math.floor(Math.random() * and.length)];
|
||||
code += itemPrefixes[Math.floor(Math.random() * itemPrefixes.length)];
|
||||
code += items[Math.floor(Math.random() * items.length)];
|
||||
const code = genItem();
|
||||
|
||||
this.doc.transferCode = code;
|
||||
this.save();
|
||||
|
|
|
@ -28,6 +28,7 @@ import ValentineModule from './modules/valentine';
|
|||
import MazeModule from './modules/maze';
|
||||
import ChartModule from './modules/chart';
|
||||
import SleepReportModule from './modules/sleep-report';
|
||||
import NotingModule from './modules/noting';
|
||||
|
||||
console.log(' __ ____ _____ ___ ');
|
||||
console.log(' /__\\ (_ _)( _ )/ __)');
|
||||
|
@ -79,6 +80,7 @@ promiseRetry(retry => {
|
|||
new MazeModule(),
|
||||
new ChartModule(),
|
||||
new SleepReportModule(),
|
||||
new NotingModule(),
|
||||
]);
|
||||
}).catch(e => {
|
||||
log(chalk.red('Failed to fetch the account'));
|
||||
|
|
|
@ -3,7 +3,21 @@ import Module from '../../module';
|
|||
import Message from '../../message';
|
||||
import serifs from '../../serifs';
|
||||
import * as seedrandom from 'seedrandom';
|
||||
import { blessing, itemPrefixes, items, and } from '../../vocabulary';
|
||||
import { genItem } from '../../vocabulary';
|
||||
|
||||
export const blessing = [
|
||||
'藍吉',
|
||||
'ギガ吉',
|
||||
'メガ吉',
|
||||
'超吉',
|
||||
'大大吉',
|
||||
'大吉',
|
||||
'吉',
|
||||
'中吉',
|
||||
'小吉',
|
||||
'凶',
|
||||
'大凶',
|
||||
];
|
||||
|
||||
export default class extends Module {
|
||||
public readonly name = 'fortune';
|
||||
|
@ -22,14 +36,7 @@ export default class extends Module {
|
|||
const seed = `${date.getFullYear()}/${date.getMonth()}/${date.getDate()}@${msg.userId}`;
|
||||
const rng = seedrandom(seed);
|
||||
const omikuji = blessing[Math.floor(rng() * blessing.length)];
|
||||
let item = '';
|
||||
if (Math.floor(rng() * 5) !== 0) item += itemPrefixes[Math.floor(rng() * itemPrefixes.length)];
|
||||
item += items[Math.floor(rng() * items.length)];
|
||||
if (Math.floor(rng() * 3) === 0) {
|
||||
item += and[Math.floor(rng() * and.length)];
|
||||
if (Math.floor(rng() * 5) !== 0) item += itemPrefixes[Math.floor(rng() * itemPrefixes.length)];
|
||||
item += items[Math.floor(rng() * items.length)];
|
||||
}
|
||||
const item = genItem(rng);
|
||||
msg.reply(`**${omikuji}🎉**\nラッキーアイテム: ${item}`, serifs.fortune.cw(msg.friend.name));
|
||||
return true;
|
||||
} else {
|
||||
|
|
40
src/modules/noting/index.ts
Normal file
40
src/modules/noting/index.ts
Normal file
|
@ -0,0 +1,40 @@
|
|||
import autobind from 'autobind-decorator';
|
||||
import Module from '../../module';
|
||||
import serifs from '../../serifs';
|
||||
import { genItem } from '../../vocabulary';
|
||||
|
||||
export default class extends Module {
|
||||
public readonly name = 'noting';
|
||||
|
||||
@autobind
|
||||
public install() {
|
||||
setInterval(() => {
|
||||
if (Math.random() < 0.05) {
|
||||
this.post();
|
||||
}
|
||||
}, 1000 * 60 * 10);
|
||||
|
||||
return {};
|
||||
}
|
||||
|
||||
@autobind
|
||||
private post() {
|
||||
const notes = [
|
||||
...serifs.noting.notes,
|
||||
() => {
|
||||
const item = genItem();
|
||||
return serifs.noting.want(item);
|
||||
},
|
||||
() => {
|
||||
const item = genItem();
|
||||
return serifs.noting.see(item);
|
||||
},
|
||||
];
|
||||
|
||||
const note = notes[Math.floor(Math.random() * notes.length)];
|
||||
|
||||
this.ai.post({
|
||||
text: typeof note === 'function' ? note() : note
|
||||
});
|
||||
}
|
||||
}
|
|
@ -360,6 +360,52 @@ export default {
|
|||
report: hours => `んぅ、${hours}時間くらい寝ちゃってたみたいです`,
|
||||
reportUtatane: 'ん... うたた寝しちゃってました',
|
||||
},
|
||||
|
||||
noting: {
|
||||
notes: [
|
||||
'ゴロゴロ…',
|
||||
'ちょっと眠いです',
|
||||
'いいですよ?',
|
||||
'(。´・ω・)?',
|
||||
'ふぇー',
|
||||
'あれ…これをこうして…あれー?',
|
||||
'ぼー…',
|
||||
'ふぅ…疲れました',
|
||||
'お味噌汁、作りましょうか?',
|
||||
'ご飯にしますか?お風呂にしますか?',
|
||||
'ふえええええ!?',
|
||||
'私のサイトに、私のイラストがたくさんあって嬉しいです!',
|
||||
'みすきーって、かわいい名前ですよね!',
|
||||
'うぅ、リバーシ難しいなぁ…',
|
||||
'失敗しても、次に活かせたらプラスですよね!',
|
||||
'なんだか、おなか空いちゃいました',
|
||||
'お掃除は、定期的にしないとダメですよー?',
|
||||
'今日もお勤めご苦労様です! 私も頑張ります♪',
|
||||
'えっと、何しようとしてたんだっけ…?',
|
||||
'おうちがいちばん、落ち着きます…',
|
||||
'疲れたら、私がなでなでってしてあげます♪',
|
||||
'離れていても、心はそばにいます♪',
|
||||
'藍ですよ〜',
|
||||
'わんちゃん可愛いです',
|
||||
'ぷろぐらむ?',
|
||||
'ごろーん…',
|
||||
'なにもしていないのに、パソコンが壊れちゃいました…',
|
||||
'Have a nice day♪',
|
||||
'お布団に食べられちゃってます',
|
||||
'寝ながら見てます',
|
||||
'念力で操作してます',
|
||||
'仮想空間から投稿してます',
|
||||
'今日はMisskey本部に来てます!',
|
||||
'Misskey本部は、Z地区の第三セクターにあります',
|
||||
'Misskey本部には、さーばーっていう機械がいっぱいあります',
|
||||
'しっぽはないですよ?',
|
||||
'ひゃっ…!\nネコミミ触られると、くすぐったいです',
|
||||
'抗逆コンパイル性って、なにかな?',
|
||||
'Misskeyの制服、かわいくて好きです♪',
|
||||
],
|
||||
want: item => `${item}、欲しいなぁ...`,
|
||||
see: item => `お散歩していたら、道に${item}が落ちているのを見たんです!`,
|
||||
},
|
||||
};
|
||||
|
||||
export function getSerif(variant: string | string[]): string {
|
||||
|
|
|
@ -1,16 +1,4 @@
|
|||
export const blessing = [
|
||||
'藍吉',
|
||||
'ギガ吉',
|
||||
'メガ吉',
|
||||
'超吉',
|
||||
'大大吉',
|
||||
'大吉',
|
||||
'吉',
|
||||
'中吉',
|
||||
'小吉',
|
||||
'凶',
|
||||
'大凶',
|
||||
];
|
||||
import * as seedrandom from 'seedrandom';
|
||||
|
||||
export const itemPrefixes = [
|
||||
'プラチナ製',
|
||||
|
@ -231,3 +219,21 @@ export const and = [
|
|||
'が上に乗った',
|
||||
'のそばにある',
|
||||
];
|
||||
|
||||
export function genItem(seedOrRng = null) {
|
||||
const rng = seedOrRng
|
||||
? typeof seedOrRng === 'function'
|
||||
? seedOrRng
|
||||
: seedrandom(seedOrRng)
|
||||
: Math.random;
|
||||
|
||||
let item = '';
|
||||
if (Math.floor(rng() * 5) !== 0) item += itemPrefixes[Math.floor(rng() * itemPrefixes.length)];
|
||||
item += items[Math.floor(rng() * items.length)];
|
||||
if (Math.floor(rng() * 3) === 0) {
|
||||
item += and[Math.floor(rng() * and.length)];
|
||||
if (Math.floor(rng() * 5) !== 0) item += itemPrefixes[Math.floor(rng() * itemPrefixes.length)];
|
||||
item += items[Math.floor(rng() * items.length)];
|
||||
}
|
||||
return item;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue