findClusters

機能

  • 指定したURLから生きているγクラスタのURLを探す。
  • クラスタ情報はサーバ側にキャッシュされる。
    最終更新から時間が経っていない場合はコンコレサーバにアクセスせずにキャッシュされた情報を返す。
    キャッシュ期限30秒。
  • アクセスログを取る。

URL

パラメータ

callback
コールバック関数名
url
チェックするURL
includeDead
1を指定すると死んでいるクラスタの情報も表示する

戻り値

results
クラスタ情報の配列
URL
γクラスタのURL
IsPowerful
1:強敵 0:普通
LastUpdate
最終更新時刻
IsDead
1:死亡 0:生存
TimeLimit
γクラスタが逃げる時刻
Power
勢力 0:普通 1:炎 2:光 3:風
code, message
指定URLへのアクセス結果
param
呼び出し時のパラメータ
remote_addr, time, user_agent
アクセスユーザ情報

ブックマークレット

  • 今開いているページを対象にこのAPIを呼び出す。
  • filefindClusters.user.zip
    すべてを展開すべてを収束
      1
      2
      3
      4
      5
      6
      7
      8
      9
     10
     11
     12
     13
     14
     15
     16
     17
     18
     19
     20
     21
     22
     23
     24
     25
     26
     27
     28
     29
     30
     31
     32
     33
     34
     35
     36
     37
     38
     39
     40
     41
     42
     43
     44
     45
     46
     47
     48
     49
     50
     51
     52
     53
     54
     55
     56
     57
     58
     59
     60
     61
     62
     63
     64
     65
     66
     67
     68
     69
     70
     71
     72
     73
     74
     75
     76
     77
     78
    
    -
    |
    |
    |
    |
    |
    -
    |
    !
    |
    |
    -
    -
    |
    !
    |
    |
    |
    |
    |
    |
    |
    |
    |
    |
    |
    |
    |
    -
    -
    |
    |
    |
    !
    !
    |
    !
    |
    -
    |
    -
    |
    !
    |
    -
    -
    |
    |
    |
    |
    !
    |
    |
    -
    |
    -
    |
    |
    |
    |
    |
    !
    |
    |
    -
    |
    !
    !
    |
    |
    |
    |
    |
    |
    |
    |
    !
    !
    
    javascript: (function(global) {
        var panelBaseId = 'FindClusters-Panel';
        var panelClustersId = 'Clusters-Panel';
        var scriptElmId = 'findClusterScript';
        var callbackName = 'findClusters';
        addPanel();
        if (!global[callbackName]) {
            global[callbackName] = {};
        }
        callApi(scriptElmId, callbackName);
     
        function addPanel() {
            if (document.getElementById(panelBaseId)) {
                return;
            }
            var panelBase = document.createElement('div');
            panelBase.id = panelBaseId;
            panelBase.style.position = 'fixed';
            panelBase.style.right = '0em';
            panelBase.style.bottom = '0em';
            panelBase.style.textAlign = 'right';
            document.getElementsByTagName('body')[0].appendChild(panelBase);
            var panelClusters = document.createElement('div');
            panelClusters.id = panelClustersId;
            panelBase.appendChild(panelClusters);
            var btnCheck = document.createElement('input');
            btnCheck.type = 'button';
            btnCheck.value = 'check';
            btnCheck.addEventListener('click', (function(panelId, fn, scriptId, callbackName) {
                return function() {
                    var panel = document.getElementById(panelId);
                    panel.innerHTML = '';
                    fn(scriptId, callbackName);
                };
            })(panelClustersId, callApi, scriptElmId, callbackName), false);
            panelBase.appendChild(btnCheck);
        }
     
        function callApi(scriptId, callbackName) {
            var existingScript = document.getElementById(scriptId);
            if (existingScript) {
                existingScript.parentNode.removeChild(existingScript);
            }
            var now = new Date - 0;
            global[callbackName]['_' + now] = function(data) {
                var power = {
                    0: '普通',
                    1: '炎',
                    2: '光',
                    3: '風'
                };
                var panel = document.getElementById(panelClustersId);
                var results = data.results;
                if (results.length) {
                    var html = '<table><tr><th>URL</th><th>勢力</th><th>強敵</th></tr>\n';
                    for (var i = 0, cl; cl = results[i]; ++i) {
                        html += '<tr>' +
                            '<td><a href="' + cl.URL + '" target="coopPage" >' + cl.URL + '</a></td>' +
                            '<td>' + power[cl.Power || 0] + '</td>' +
                            '<td>' + (cl.IsPowerful * 1 ? '強敵' : '') + '</td>' +
                            '</tr>';
                    }
                    html += '</table>';
                    panel.innerHTML = html;
                } else {
                    alert(data.code == '200' ? 'No Living Cluster' : data.message);
                }
            };
            var findClusterScriptElm = document.createElement('script');
            findClusterScriptElm.id = scriptId;
            findClusterScriptElm.type = 'text/javascript';
            findClusterScriptElm.charset = 'utf-8';
            findClusterScriptElm.src = 'http://www.takeash.net/CCCAPI/findClusters.cgi' +
                '?callback=' + callbackName + '._' + now +
                '&url=' + encodeURIComponent(location.href);
            document.body.appendChild(findClusterScriptElm);
        }
    })(this);

添付ファイル: filefindClusters.user.zip 190件 [詳細]

リロード   新規 下位ページ作成 編集 凍結 差分 添付 コピー 名前変更   ホーム 一覧 検索 最終更新 バックアップ リンク元   ヘルプ   最終更新のRSS
Last-modified: Tue, 07 Oct 2014 13:03:38 JST (1294d)