blog.bouzuya.net

2018-05-03 fwt の定期撮影をつくった / 『ガーディアンズ・オブ・ギャラクシー : リミックス』を観た

fwt (private) 。定期的な撮影機能を追加し、見た目も無駄な要素を隠すようにした。事前にユーザー登録 (ハードコーディング) さえしておけば、だいたい使えるようになった。あとはそのユーザー設定の読み込みとデプロイ設定をすれば公開だな。

Component の server-side rendering は方法がよく分からなかったので、後回しにした。

今日は「定期的な撮影機能」のために purescript-halogenEventSource を使った。

SignIn Query の eval にて↓のような形で setTimeout をソースとする EventSource を作成し、それを subscribe する。 Tick Query が発行されるので、そこで必要ならまた EventSource を……という流れ。これでいいのか、よく分からない。 Halogen はまだ分からないことが大量にある……。

data Query a
  = SignIn a
  | Tick (SubscribeStatus -> a)

SignIn next -> do
  H.subscribe $
    HES.eventSource_'
      (\e -> do
        id <- setTimeout 1000 e
        pure $ void $ clearTimeout id
      )
      (H.request Tick)
  pure next
Tick next -> do
  -- 実際には↓を実行するかの分岐や本来の処理が入る
  H.subscribe $
    HES.eventSource_'
      (\e -> do
        id <- setTimeout 10000 e
        pure $ void $ clearTimeout id
      )
      (H.request Tick)
  pure $ next HES.Done

明日にはひとまず公開まで持っていきたいところ。


『ガーディアンズ・オブ・ギャラクシー : リミックス』を観た。例によって音楽で軽い雰囲気をつくっている。今度のグルートは小さい。今回はどこに話が着地するのか最初よく分からなかったのだけど、主人公の父親を中心とした話だった。