おれのかんがえたさいきょうみすきーぼっと

はじめに

みなさんこんにちは、kstdxと申します。
私は少し前に趣味でMisskey Botというのを作成しはじめて、
「5%の確率で性器を露出する与謝野晶子(男)」
という糞みたいなBotでサーバ容量を圧迫しています。

https://misskey.io/@yosatn

そこで、今回はMisskey Botを作る際にどのようなことに注意すれば良いのかを考えた次第です。

あーきてくちゃ

アーキテクチャは簡単かつ完全無料です。

それはCloudflare Workersです。

これがCRONが使えるので、○分おきにみたいな挙動ができるわけです。

コード

const token = 'xxx'

const host = 'https://misskey.io/api/'

const hit = 'おちんちん)ボロン'

const dict = [

  '君死にたまふことなかれ',

  '政府はなぜいち早く、この危険を防止するために…。多くの人間の密集する場所の一時的休業を命じなかったのでしょうか',

  '私達は久しい間に幾千回の破壊と改造とを自分の恋愛に実行して来たのです',

  '夫婦は毎日毎日愛の創作をしているのだ',

  '私は日本人の強くなることを欲します。個人としても、国民としても、世界人としても、強く生きることを欲します',

  '自分は欧州に来て見て初めて日本の女の美が世界に出して優勝の位置を占め得ることの有望な事を知った',

  '特別に女子のためとして作られた書物は、全て女子を低能児たらしめる劣等の書である',

  '世界はすべて濁るとも、日本だけは独り高く浄まりたいと思います',

  '私は青春の日の愛に目覚めたのです。そうして少しづつ熱情の中に人間と自然とを読むことを覚えました',

  '全く睦まじい夫婦、そんなものが世の中にあろうとは想像も出来ない',

  '大に伸びるためには大に屈することを必要とする場合がある。日本の経済事情は正に其の場合である',

  '才能のある人の間で猛烈な競争をかいくぐってきたたくましさがないと、大きな試合では勝てない',

  '創造は過去と現在とを材料としながら新しい未来を発明する能力です',

  'わたくしの生活はわたくしの命の焔(ほのお)の舞です',

  '私はまだ日本の政治と政治家とを混同し、後者に対する反感から前者を侮蔑するような凡俗の感情を免れずに居る',

  '代に生きようとする勇者は現代に打勝たねばならぬ',

  '人は刹那に生きると共に永遠にも生きる',

  '大人になっても此の「若さ」を保有している人達にのみいつまでも新しい生活がある',

  '花ならば満開の花で、まことに華やかな青春時代の頂上だと思うのです',

  '若さの前に不可能もなければ、陰影も無い、それは一切を突破する力であり、一切を明るくする太陽である',

  '悲観、泣き言、不平、皮肉、非難、諦めなどに心を分かつ大人があれば、それは既に「若さ」を失い衰老の域に入った兆候である',

  '人間は何事にせよ、自己に適した一能一芸に深く達してさえおればよろしい',

  '私達の夫婦関係は毎日毎日新規蒔直しを試み、毎日毎日以前に無い新しい愛の生活を築き上げて居るのです',

  '厭々する労働はかえって人を老衰に導くが、事故の生命の表現として自主的にする労働は、その生命を健康にする',

  '君一撃で死にたまふことなかれ',

  '君は死ね'

]




const run = async () => {

  let text

  if (Math.random() <= 0.05) {

    text = hit

  } else {

    text = dict.sort(() => 0.5 - Math.random())[0]

  }




  const json = JSON.stringify({

    text,

    i: token

  })

  return await fetch(host + 'notes/create', {

    method: 'POST',

    headers: {

      Accept: 'application/json',

      'Content-Type': 'application/json'

    },

    body: json

  })

}




export default {

  async scheduled() {

    await run()

  },

  async fetch(req) {

    const { pathname } = new URL(req.url)

    console.log(pathname)




    if (pathname.startsWith('/' + token)) {

      await run()

    } else {

      return new Response('GET OUT JUST NOW')

    }




    return new Response('OK')

  }
}


本番運用する方は絶対にTOKENはenvに隠しておきましょう。
自分はもう良いです。(というか今デプロイしているコードはenvに隠しているのですが、そのコードを管理せず紛失してしまったため、これは古いコードです)

おわりに

何が言いたいか分からない記事だと思いますが、要するにMisskey Botすごいぞってことです。
作るの簡単ですし、ドキュメントはっきりしてますし。

最新の投稿

スポンサーリンク

kstdx
中学生。自称エンジニア。見せられる程度のデザイン力はあるかなと自負しています。現在Twitterが凍結されている。おかねほしい。