Go言語を使ってローカルマシン上でbotを動かしSlackでtodo管理をする

前回の続編です。

Go言語を使ってローカルマシンに簡易botを作ってSlackに投稿

botを使ったtodo機能をslackに付与するべくgoのコードを書いてみました。

todo コマンド

という感じでつぶやくと、

チャンネル毎にtodoリストが管理できるようにしたいと思います。
dbがなくても動くようにファイルに保存します。

操作 コマンド
追加 add 追加したいテキスト
削除 del 削除したいテキスト
一覧 list
全削除 clear

こんな感じで動きます。

todobot

便利そうですね!

Read on →

i18nで例えば大人と子供で文言を変えたい場合

条件に応じて文言を変えたい場合があると思います。
例えば大人と子供で文言を変えたい場合とかですかね。
ログインユーザが大人の場合は大人料金と表示し、子供の場合は子供料金と表示するようにします。

1
2
3
4
5
<% if current_user.adult? %>
  <span>大人料金</span>
<% else %>
  <span>子供料金</span>
<% end %>

これが一箇所ならいいですが、たくさん出現するとつらいですね。
helperにまとめたりするのでしょうか。
こういった文言だけのif文分岐がviewに大量に出現するとコード量も増え非常に見ずらく、またhelperに乱立してしまうのは避けたいですね。

そこで自動でi18nの読み込み先を条件に応じて読み替えたいと思います

ついでにjpmobile使用してviewをpcとスマフォで切り替えている場合に
lazy lookup記法時にスマフォページでsmart_phoneがついているlocaleを探してしまうのを防ぎます。

Read on →

FaradayとHttpartyでクッキーを付与したい場合

同一ドメインなんだけどホスト名が違うシステムがあり、WEBサーバーからApiサーバーへjsonを取得するべくgetリクエストを投げる。
その際にWEBサーバーでログイン時に発行されたクッキーをリクエストに付与してapiサーバーではそのクッキーからユーザを特定するような処理が必要になった。

FaradayとHttpartyでクッキーを付与する方法を調べた。

Read on →

Go言語を使ってローカルマシンに簡易botを作ってSlackに投稿

Goを勉強がてら使いながら簡易slackbotを作ってみました。
slackにデフォルトで用意されているslackbotってお願いしますをキーに登録すると、「お願いします] とか「お願いします。」(句読点入り)は反応してくれるけど。 「よろしくお願いします。」みたいに単語をつなげると反応してくれない。

単純に単語が含まれるかだけで反応してくれればいいのに・・・

ということもありお手製slackbotをつくってみました。
自分のPCでプログラムを動かし、slackで投稿があった際にはOutgoing WebHooksで投稿内容を取得してBotとして返信したいと思います。

slack → ローカルmacのbot → slack

の流れです。

Read on →

VagrantとItamaeを使って5分でmysqlサーバー構築

普段はほぼモノシリックなサービスしか開発していないんだけど、去年の暮れぐらいからちょくちょく関わらせている案件がマイクロサービスで、新しい人が入るということで構築手順のまとめがてらVagrant + Itamaeで環境構築してみた。

複数サーバーインスタンスを立ち上げて、各サーバーから一つのmysqlに接続できたらいいな。 (この構成ならdockerでやれという話もあるけど。先にvagrantを勉強してみたかったので)

とりあえず192.168.55.55で接続可能なmysqlのvagrant(なんていうんだろう。dockerだとコンテナに相当するやつ)を作成してみます。

Read on →


Axlsxで縦書き

Axlsxでセルの内容を縦書きにする方法がわかったので日記に記します。
セルに角度を付ける方法は見つかったんですが、縦書きにする方法が全然見つからずかなりはまりました。

Read on →