[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
Slack の API を叩くとき「発言だけできればいい」という状況であれば WebHock の利用を検討するべきだろう(Incoming Webhooks | Slack)。Java から WebHock を叩きたい事情があったので叩くコードを書いてみた。
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.charset.StandardCharsets;
public class SlackWebhockNotificationClient {
private final URL url;
private final String userName;
public SlackWebhockNotificationClient(URL url, String userName) {
this.url = url;
this.userName = userName;
}
public void sendNotify(String message) throws IOException {
HttpURLConnection con = null;
try {
con = (HttpURLConnection) url.openConnection();
con.setDoOutput(true);
con.setRequestMethod("POST");
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(con.getOutputStream(), StandardCharsets.UTF_8));
writer.write(String.format("payload={\"username\": \"%s\", \"text\": \"%s\", \"icon_emoji\": \":rooster:\"}", userName, message));
writer.flush();
if(con.getResponseCode() != HttpURLConnection.HTTP_OK) {
throw new IOException(String.format("Failed to access %s :" + con.getResponseCode(), this.url));
}
} catch (IOException ioe) {
throw ioe;
}
}
}
SlackWebhockNotificationClient client = new SlackWebhockNotificationClient(
// https://slack.com/services/new/incoming-webhook から取得する URL
"https://hooks.slack.com/services/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",
// 発言する名前
"My Notification Bot"
);
client.sendNotify("発言だよー発言だよー");
この二か月で丹毒 (丹毒 - 17. 皮膚の病気 - MSDマニュアル家庭版) に3度かかってつらい。よりによってお盆期間中 = 医者が大体お休みの時期にかかったのが特につらい。
さらに医者には「一度かかると癖になる人もいるっぽいからね」と言われているのも辛い。無理はもはやできないかもしれないなあ
Jenkins の schedule-build-plugin の正確な実行時間を後で確認したかったけど無理だった、という話。まぁ、一度キャンセルして再設定すれば解決するんだけどさ。
正直申し上げて Jenkins の schedule-build-plugin ( リポジトリ / Jenkins Wiki の紹介ページ ) は色々な場面でゴリゴリ使っていてありがたい存在である。
だが、私の属しているコミュニティでビルド時間の設定でトチる事象がそこそこな頻度で発生していた。そしてある時事件が起こった。ある人がひよこを尋ねてきて言うのである。「ひよちゃん、スケジュール実行の正確な予約時間ってわからないかな?」
当初、私は「どうせ正確な時間がサーバから送られてきていて、それをクライアントサイドで計算し実行までの残り時間を出しているんだろ? 通信を見たら一瞬だろ」と思いながら調査に入った。だが……無情にも帰ってきた値は以下の通りであった。
<table page-has-up="false" page-has-down="false" page-entry-newest="1" page-entry-oldest="1" class="pane hasPageData"><tr page-entry-id="1" id="1" class="build-row build-pending transitive single-line"><td class="build-row-cell"><div class="pane build-name"><div class="build-icon"><img src="/jenkins/static/18f476c2/images/16x16/grey.png" style="width: 16px; height: 16px; " class="icon-grey icon-sm" /></div><div title="Expected build number" class="display-name">#4</div></div><div class="pane build-details indent-multiline"> (pending—待機中です。あと5 時間 21 分です。) </div><div class="pane build-controls"><div class="build-stop"><a onclick="new Ajax.Request("/jenkins/queue/cancelItem?id=1"); return false;" href="/jenkins/queue/cancelItem?id=1" class="stop-button-link"><img src="/jenkins/static/18f476c2/images/16x16/stop.png" style="width: 16px; height: 16px; " class="icon-stop icon-sm" /></a></div></div><div class="left-bar"></div></td></tr></table>
躍起になった私は「Jenkins の DB 覗けばなんか出てくるだろ」と思って DB を調べてみた。だが、何も得られなかった。しょんぼりである。幸いにしてプラグインはオープンソースなので、 PR を送ったりして表示する機能を付けてほしいって嘆願するのもありかもしれない。
この記事の内容を利用する意味はもはやない。ゆとシートのコンバート機能が便利だから。
(雛´-`).。oO(#SW25 キャラクター保管所のキャラクターシートをゆとシート2 for SW2.5 に複製するブックマークレットを書いてみました)https://t.co/oEyRjwfQ9K
— しゅんしゅんひよこ (@Shunshun94) July 30, 2019
タイトル通り、キャラクター保管所で作られた SW2.5 のキャラクターシートをゆとシート2 for SW2.5 のキャラクターシートに変換するブックマークレットである。使い方は以下の通り。
実行のステップで「キャラクター保管所のキャラクターシートの URL を入力してください」と言われたら成功。ただ、ブラウザの設定によっては実行をブロックされる。この辺の設定については以下を参考に直してみてほしい。Google Chrome だとアドレスバー右側に警告が出るので、それをクリックしたら直せるはずだ。FireFox ならhttpsのサイトでブックマークレット、スクリプトを動かす方法 firefox | hyperT'sブログが参考になるかも。
ただ、このブックマークレットは PC の信仰と習得している言語についてはデータの引継ぎができないので注意。そのあたりは手動入力が必要である。
(雛´-`).。oO(次男が保育園であったことを話すようになったらしい)
— しゅんしゅんひよこ (@Shunshun94) July 26, 2019
(羊´-`).。oO(なにしてたのー?)
(か´-`).。oO(プール!ねるー!かえるー!)#ひよひつ家の日常
(の´-`).。oO(なんかいろいろ抜けてる)
次男にとっての保育園とは「プールであそんで」「おひるねして」「かえる」場所らしい。
次男は最近預けるとき、ひつじと離れるのが嫌で泣いたりはしないらしい。しかし、ひつじが預けて去る際に決してひつじを見ないらしい。見ると離れるのが嫌になる、というのが当人も分かっているのかもしれない。