MyFind×MyScriptsで日にち別の検索履歴を表示

MyScriptsと組み合わせるとMyFindだけでは見られない過去の検索履歴を確認できます。
https://itunes.apple.com/jp/app/myfind-da-ci-lin-u-izudamu/id764965889?mt=8&uo=4&at=11lqq9
https://itunes.apple.com/jp/app/myscripts/id492086539?mt=8&uo=4&at=11lqq9

準備

MyScriptsに以下のスクリプトを保存します。
「MFHistoryViewer」をインポート

#HTML
<style>
.date{
  font-size: 120%;
  border-bottom:1px solid #eee;
}
.query{
  background-color: #eee;
  word-break: break-all;
  padding: 0px 10px;
}
a {
  text-decoration: none;
  color: #000;
}
.hideButton{
  text-align: right;
}
</style>

<div id="result"></div>

<script src="./jquery.js"></script>
<script>
var $result = $('#result');
var history = JSON.parse(OPTION).history;
var queryArr = {};
var dateArr = {};
for(var i = 0; i < history.length; i++){
  var date = history[i].date.split(" ")[0];
  if(!dateArr[date]){
    $('<div>')
    .html(date)
    .attr('class', 'date')
    .appendTo($result)
    .click(function(){
      $(this).next().toggle('fast');
    });
    dateArr[date] = true;
    
    var $wrapper = $('<div>')
    .attr('class', 'query')
    .appendTo($result)
    .hide();
    
    var $hideButton = $('<div>')
    .html('×')
    .attr('class', 'hideButton')
    .click(function(){
      $(this).parent().toggle('fast');
    })
    .appendTo($wrapper);
  }
  var query = history[i].query;
  if(queryArr[query]) continue;
  queryArr[query] = true;
  
  var $query = $('<li>')
  .html('<a href="myfind://?query='+encodeURIComponent(query)+'&callbackurl=myscripts:">'+query+'</a>');
  
  $hideButton.before($query);
}
</script>

使い方

MyFindを開き雷ボタンを押してMyScriptsに移動します。本スクリプトを選択するとビュアー画面が開きます。
f:id:aitatena:20131215095940j:plain

ビュアー画面で日付をタップするとその日の検索語一覧*1が開きます。もう一度タップするか×ボタンを押すと閉じます。
f:id:aitatena:20131215100312j:plain


確認したい検索語をタップするとMyFindにセットされるので必要に応じて検索します。
f:id:aitatena:20131215100754j:plain


検索後は公式のCallbackアイテム*2でビュアー画面に戻れます。
f:id:aitatena:20131215100942j:plain

*1:同じ検索語で複数回検索していた場合は、一番新しい検索結果を表示するようにしています。

*2:MyFindのライブラリ>サポート>ツール>「x-callback-url callback」にあります。