Misskey OS

実行結果

ソースコード

let THIS_TAG = "#MisskeyOS"

let INSTALL_METER_EMOJI_TRUE = ":biological_server:"

let INSTALL_METER_EMOJI_FALSE = ":misuhai:"

let INSTALL_METER_PREFIX_EMOJI = ""

let INSTALL_METER_SUFFIX_EMOJI = ""

let INSTALL_METER_SPEED = 600


var fakeLoadCount = 0


// インストール画面

@installScreen() {

  var n = 11

  var meter = `{INSTALL_METER_PREFIX_EMOJI}`

  

  for (let i, n) {

    if (i < fakeLoadCount) {

      meter = `{meter}{INSTALL_METER_EMOJI_TRUE}`

    } elif (i < (n - 1)) {

      meter = `{meter}{INSTALL_METER_EMOJI_FALSE}`

    }

  }

  

  meter = `<small>{meter}{INSTALL_METER_SUFFIX_EMOJI}</small>`

  

  Ui:get("mfmLine04").update({text: meter})

  

  Async:timeout(INSTALL_METER_SPEED, @(){

    fakeLoadCount += 1

    if (fakeLoadCount < n) installScreen()

    else resultScreen()

  })

}


@resultScreen() {

  Ui:get("mfmLine02").update({text: "$[x2 **インストール完了**]"})

  Ui:get("mfmLine03").update({text: ":blank:"})

  Ui:get("mfmLine04").update({text: "あなたは生体サーバーになりました。"})

  Ui:get("screen").update({bgColor: "#000" fgColor: "#f00"})

  Ui:get("postform").update({hidden: false})

}


@renderScreen() {

  Ui:render([

    Ui:C:container({

      align: "center"

      bgColor: "#fff"

      fgColor: "#000"

      children: [

        Ui:C:mfm({text: `:blank:`} "mfmLine01")

        Ui:C:mfm({text: `:misskey2022: :opera::s:`} "mfmLine02")

        Ui:C:mfm({text: `インストール中… <small><small>:misskey_loading:</small></small>`} "mfmLine03")

        Ui:C:mfm({text: `:blank:`} "mfmLine04")

        Ui:C:mfm({text: `:blank:`} "mfmLine05")

      ]

    } "screen")

    Ui:C:container({

      align: "center"

      hidden: true

      children: [

        Ui:C:postFormButton({

          text: "ミ゜"

          rounded: true

          form: {

            text: `生体サーバーになりました。{Str:lf}:mi_:{Str:lf}:blank::biological_server:{Str:lf}{THIS_TAG}{Str:lf}{THIS_URL}`

          }

        })

      ]

    } "postform")

  ])

}


renderScreen()

installScreen()