未分類」カテゴリーアーカイブ

Trelloのフリーワード検索 Ruby版

Trelloのフリーワード検索が、実際にあるのにヒットしなかったり、正規表現が使えないなど、使えないので、Trelloのカード タイトル と 詳細説明 をフリーワード検索するRubyスクリプトを書いてみた。

準備

trello app-key

https://trello.com/app-key
から、下記取得
キー:   →  config.consumer_key
トークン  → config.consumer_secret
秘密: → config.oauth_token

Ruby

Rubyで ruby-trello(https://www.rubydoc.info/gems/ruby-trello/)を使うので
gem install ruby-trello
しておく
require "trello"

search_pattern = "検索文字列(正規表現OK)" # / はエスケープ無しでOK

# 検索対象
is_search_name = true # カード タイトルを対象とするか?
is_search_desc = false # カード 詳細説明を対象とするか?

# 検索対象リスト
search_list_names = {
  "リスト1" => true,
  "リスト2" => true,
}

board_id = "XXXXXX" # Trello URLの https://trello.com/b/XXXXXX の部分

Trello.configure do |config|
  config.consumer_key = "キー"
  config.consumer_secret = "秘密"
  config.oauth_token = "トークン"
end

Trello::Board.find(board_id).lists.each do |list|
  nextif! search_list_names[list.name]
  # puts list.name
  list.cards.each do |card|
    # puts card.name
    puts "#{card.short_url} :#{list.name}:name: #{card.name}" if is_search_name && (card.name =~ /#{search_pattern}/) # / はエスケープ無しでOK
    puts "#{card.short_url} :#{list.name}:desc: #{card.desc}" if is_search_desc && (card.desc =~ /#{search_pattern}/) # / はエスケープ無しでOK
  end
end
↓ 参考になるブログがたくさんあります!ぜひどうぞ! ↓
にほんブログ村 その他日記ブログ 日々のできごとへ

リンク切れチェックツールについて

「Link Checker」Chrome拡張で、リンク切れがあるのに、問題無いような表示がされることがわかりました。
      → 結論: リンクチェックツールを「Check My Links」Chrome拡張に変更
テストデータ
「Link Checker」Chrome拡張 の結果
エラーがあるにかかわらず、下記を表示
1)「All links ok.」
2)アイコンもグリーンで「:)」
「Check My Links」Chrome拡張の結果
存在しないドメイン → Valid redirecting links
存在しない内部リンク → Invalid links
で表示。(Valid links:9 は、問題の無いリンクの数)
Check My Links オプション設定
(オプション変更時は、最下部の「Save my preferences」をクリックで、保存&反映される)
↓ 参考になるブログがたくさんあります!ぜひどうぞ! ↓
にほんブログ村 その他日記ブログ 日々のできごとへ

Google Spreadsheetでシートを開いたら、今日のセルへ移動(列版)

Google Spreadsheetでシートを開いたら、今日のセルへ移動 で列方向(横方向)に日付が配置されている場合のニーズが高いようなので、

(行方向(縦方向)は → [Google Apps Script] Googleスプレッドシートを開いた時に、今日の入力セルへ自動ジャンプ )

 

// onOpen関数はスプレッドシートが開けられる度に自動的に実行される
function onOpen() {
  goToTodayCell(5,1); // 日付開始セルの指定 行番号,列番号(A列が1) 
}

function goToTodayCell(StartRow, StartColumn ) {
  //var StartRow;  // 日付セル開始行
  //var StartColumn;  // 日付セル開始列 A列が1

  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();

//  sheet.getRange(1,1).setBackground("red");  // 実行中表示

  var maxColumn = sheet.getMaxColumns();//最終列を取得

  var dateRowsValues = sheet.getRange(StartRow, StartColumn , 1, maxColumn).getValues();  // 対象行の日付を配列に格納(高速化のため)

  var today = new Date();
  var stringToday = yyyymmdd(today);

  var matchColumn = -1; // マッチする列が無かったら -1

  for (var column = 0; column < maxColumn-1; column++) {
    //var dateValue = yyyymmdd(dateRowsValues[i][StartRow-1]); // 配列は 0から、シートは1から
    var dateValue = yyyymmdd(dateRowsValues[StartColumn-1][column]); // 配列は 0から、シートは1から
    if(stringToday == dateValue){
      matchColumn = column+1; // 配列は 0から、シートは1から
      break;
    }
  }
//  sheet.getRange(1,1).setBackground("white");  // 実行中表示解除
  if(matchColumn === -1){
  	  Browser.msgBox(StartRow + "行目に今日(" + stringToday + ")に該当するセルが見つかりませんでした", Browser.Buttons.OK);
  } else {
	sheet.getRange(StartRow, matchColumn).activate();  // セルへ移動
  }
  return;
}

// dateを日付のみにする
// Mon Jan 21 2013 13:37:00 GMT+0900 (JST)  ->  2012/07/05
function yyyymmdd(dateVal)
{
  var stringDate
  var date = new Date(dateVal);
  if(date.toString() == 'Invalid Date'){  //日付データでない
    stringDate = date;
  } else {
    stringDate = date.getFullYear() + "/" + ("0" + (date.getMonth()+1)).slice(-2) + "/" + ("0" + date.getDate()).slice(-2);
  }
  return stringDate;
}
↓ 参考になるブログがたくさんあります!ぜひどうぞ! ↓
にほんブログ村 その他日記ブログ 日々のできごとへ

ios7のiphoneで地下鉄などオフラインでtwitterを素早くつぶやけるようにしてみた

私は持っているiphoneはソフトバンクのものですが、
TV CMなどでは、「つながりやすさ、No.1へ」と虚偽広告または誇大広告と思われる
あいかわらず「繋がりにくさNo.1」で、地下鉄など、全然つながらないことが多いです。w

あのCMに「半澤直樹」出すのは、個人的に、「半澤直樹」のイメージが悪くなるので、やめて欲しいと思っているのですが。。。

という話は、置いておいて、

iOS6では、iphoneの通知センターからTwitterの投稿ができていたのですが、
ios7では、できなくなってしまいました。

以前は、地下鉄などに乗っている時に、ふと閃いたことなんかを
iphoneの通知センターのTwitterからお手軽につぶいていましたが、
これが、最近できていなくて、ひらめき(大したことではないんですがw)を放置している感じがしてました。

そこで、以下の様な要件を満たせる方法を探しみました。

・投稿専用で軽く素早い起動
・オフライン投稿(Dreaft保存)ができ、オンラインになったら自動で投稿
・写真投稿は出来なくても可
・通知センターから起動を可能にする

結果、
BlueBeak for Twitter + App Gate
にしてみました。

前半の用件は、BlueBeak for Twitter が満たしてくれます。

BlueBeak for Twitter のデモ ビデオ
http://www.youtube.com/watch?v=GmHMK7Un828

通知センターからの起動は、 App Gate で行います。
App Gate をインストールして、”App”をクリック

写真 3

Nameは、お好みで、
Scheme(URLスキーム)は「bluebeak://」
を入力
写真 2

1,2分後の時間を設定し、設定した時間に通知センターに1度通知させます。
ここで、本来、下の部分には、日時の設定画面が表示されているはずですが、
文字等が黒の為か、私の環境では見えていません。

写真 1

 

本来は、以下のように表示されているはずなので、
上記のように真っ黒に表示されたら、下記の表示をイメージして(笑)
操作してみてください。

 

aaa

 
一度、通知センターで通知されると”すべて”に履歴して残るので、そこをクリックして、
BlueBeak for Twitter にアクセスできるようになります。

写真 4

 

 

 

↓ 参考になるブログがたくさんあります!ぜひどうぞ! ↓
にほんブログ村 その他日記ブログ 日々のできごとへ

SIRIUSでページを削除した場合に、やっておいた方が良い処理

ウェブでページを削除したときは、そのままでは、404エラーが返されます。

この場合、Googleなので、Googlebotがページを調べてきた時に、一時的にアクセス出来ないのか判断できなきので、
しばらくは、再訪して、調べに来て、ページが削除されたという情報が反映されるまでに時間がかかかります。

ページを削除したことを明示的に伝えたい場合は、410のHTTPステータスコードを返すようにするとよいです。

HTTPステータス 410は、“Gone”(消滅)という意味になっていて、
Googleは、410を返すと404よりも速くインデックスから削除されます。

ただし、Googleに410のHTTPステータスコードを返しても、完全に調べに来なくなるわけではないようです。

また、410を返すと404よりも速くインデックスから削除されます。

410ステータスコードは、foo.htmlを削除対象としたい場合、通常のWebサーバーなら.htaccessで以下の様に設定します。


RewriteRule ^foo\.html$ - [G]

[G]は“Gone”(消滅)を表すフラグです。

トップディレクトリ直下の /bar/ というディレクトリ以下を削除した場合は、以下のように記述します。

RewriteCond %{REQUEST_URI} ^/bar/
RewriteRule .* – [G]

SIRIUSの場合、.htaccess の設定は、
「サイトオプション」 → 「.htaccess設定」 → 「.htaccess上部」に記述しておきます。

確認は、設定したページ、または、ディレクトリのURLのアクセスし、以下のように表示されてばOKです。

Gone

The requested resource
/bar/
is no longer available on this server and there is no forwarding address. Please remove all references to this resource.

↓ 参考になるブログがたくさんあります!ぜひどうぞ! ↓
にほんブログ村 その他日記ブログ 日々のできごとへ