slackのOutgoing WebHooksをこにゃこにゃ
SlackのBOT作るのに、適当なネタがないかなぁと思っていたら、
なんか喋ったら末尾に「なっし〜」つけて返信すればOK><と言われ、
それならできそうなのでチャレンジしてみた。
環境
ASP.net MVC + AppHarbor
書いたこと
適当なコントローラに↓書いた。
Function SlackOut(ByVal val As dtoSlackOutgoingWebHook) If val.user_name = "slackbot" OrElse _ val.user_name = "NassyBot" Then Return Nothing Else Return Json(New With {.text = val.text & "なっし〜"}) End If End Function
これだけ、後はAppHarborにデプロイして、
slackのOutgoingWebHookの設定すればOK
簡単ですね^^
一回返信した自分の投稿にさらに返信してしまい。
無限ループしたのはご愛嬌><
slackに.netのWebClientからつぶやく
Ingressで、お世話になっているコミュニティが、slackになった。
Hubot系はLAMPな方々が頑張りそうなので、
僕は.netからつぶやいてみることにした。
最終的には(Herokuではなくて)AppHorborからつぶやきくことになると思うけど、
とりあえずはローカルのWebClientから。
Imports Newtonsoft.Json Module Module1 Sub Main() Dim strUrl As String = "https://hooks.slack.com/services/XXXXX/YYYYY/ZZZZZ" Dim objEnc As System.Text.Encoding = New System.Text.UTF8Encoding 'メッセージ作る Dim strPostMsg As String = JsonConvert.SerializeObject(New With {.text = "Hellow World", _ .icon_emoji = ":grin:", _ .username = "botbotbot"}) 'メッセージ投稿 Using objWC As Net.WebClient = New Net.WebClient Dim objKV As New System.Collections.Specialized.NameValueCollection objKV("payload") = strPostMsg Dim objRes As Byte() = objWC.UploadValues(strUrl, "POST", objKV) Dim strRes As String = objEnc.GetString(objRes) End Using End Sub End Module
DapperでORACLEのテーブル定義を抽出する
Dapperを使ってテーブルデータのまるまるコピーバッチを作ってた。
で、コピー元のテーブル定義をコピー先にも反映してよ!!っと言われました。
でも、都合上、DB_LINKが使えない→Create select×
じゃーしょうがないDDL流すか。。。→定義はDB見てね(お約束)
素敵なサイトを発見
http://utsuutsu.blogspot.jp/2010/02/oracle9idbmsmetadatagetddltableindextri.html
DDL取るところまではマルパクリでうまくいきそう。
でもね、この部分、どうやってDapperで流すんだろう。。。
exec DBMS_METADATA.SET_TRANSFORM_PARAM(DBMS_METADATA.SESSION_TRANSFORM,'SQLTERMINATOR', TRUE ); exec DBMS_METADATA.SET_TRANSFORM_PARAM(DBMS_METADATA.SESSION_TRANSFORM,'STORAGE' , FALSE );
これで出来た^^
Dim objSql As New StringBuilder With objSql .AppendLine("begin") .AppendLine(" DBMS_METADATA.SET_TRANSFORM_PARAM(DBMS_METADATA.SESSION_TRANSFORM,'STORAGE', false );") .AppendLine("end;") End With 'ストアド実行 objDbConnection.Execute(objSql.ToString, Nothing, CommandType.Text) objSql.Length = 0 With objSql .AppendLine("begin") .AppendLine(" DBMS_METADATA.SET_TRANSFORM_PARAM(DBMS_METADATA.SESSION_TRANSFORM,'SQLTERMINATOR', true );") .AppendLine("end;") End With 'ストアド実行 objDbConnection.Execute(objSql.ToString, Nothing, CommandType.Text)
後は↑の素敵サイトのSQLをまるっと実行すればOK
めでたしめでたし
Fessの検索結果にファイル名を使いたい
(多分)クロールがファイルシステムだけの時しかうまくいかないけど
下記にて対応した。
ファイル:%FessRoot%\webapps\fess\WEB-INF\view\searchResults.jsp
修正前
<h3 class="title ellipsis"> <a class="link" href="${doc.urlLink}" data-uri="${doc.urlLink}" data-id="${doc.docId}">${f:h(doc.contentTitle)}</a> </h3>
このdoc.contentTitleがよくわかっていないけど、
ファイルによってうまい事タイトル的なところを抜いてきてくれている感じはあるものの、
今回の案件ではおいしくないところを取ってくる場合が多く、利用者的にはファイル名を出してほしいと。。。
修正後
<h3 class="title ellipsis"> <!-- 15.02.13 mod START --> <!-- タイトルではなくファイル名を出してほしいとのこと --> <a class="link" href="${doc.urlLink}" data-uri="${doc.urlLink}" data-id="${doc.docId}">${f:h(fn:split(doc.urlLink,"/")[fn:length(fn:split(doc.urlLink,"/"))-1])}</a> <!-- 15.02.13 mod END --> </h3>
ファイル名を保持しているプロパティを見つけられず。
しょうがないので、urlLink(ファイルシステムなのでフルパス)からファイル名を抜き出して表示
2015-02-11 駿府城公園散歩
近所のお寺のプチ祭りに参加した後に、
駿府城公園にお散歩しに行ってきた。
緑エージェントさんに会うも314のフライヤーは
すでにお持ちでした><
その後青エージェントさん二人組みに会い、
フライヤーをわたすことができました。
2015-02-09 Translator金
ドリプラでハック
外気温2度、風速4mくらい?
水溜り凍ってたし。。。
そんな中でも2人の緑エージェントさんと遭遇したり、
別の緑エージェントさんがP8にRMH&RHSいれにきてくれたり。
寒さに負けずグリフしてたら金とれました^^
2015-02-08 今日のGlyph
■第1部 深夜2時くらい><
Hack数:54
ポイント:560
累計ポイント:4896
■第2部 朝8時〜朝10時
起きると雨降ってない^^
天気予報だと雨だったのに。
Translator金取るまではがんばると決めたので、
自転車で30分ほどのポータル群へ
9:30頃には本格的に降ってきたので、
今日はここで終了。
Hack数:39
ポイント:414
累計ポイント:5310