tkrkt
6/30/2015 - 9:08 AM

BitBucketのコミットページでコミット全体の行数プラマイ出すグリモン

BitBucketのコミットページでコミット全体の行数プラマイ出すグリモン

// ==UserScript==
// @name        SumCommitLines
// @namespace   jp.tkrkt
// @include     https://bitbucket.org/**/commits/*
// @version     1
// @grant       none
// ==/UserScript==

var container = document.getElementById('commit-files-summary');

if(container){
  function getNum(className){
    var elems = document.querySelectorAll(className);
    return Array.prototype.reduce.call(elems, function(sum, elem){
      return sum + parseInt(elem.textContent.match(/\d+/)[0]);
    }, 0);
  }
  var tmpl = '';
  tmpl += '<li class="iterable-item file file-modified">';
  tmpl += '<div class="commit-file-diff-stats">';
  tmpl += '<span class="lines-added">%add%</span>';
  tmpl += '<span class="lines-removed">%remove%</span>';
  tmpl += '</div>';
  tmpl += '<a class="execute">合計(%change%)</a>';
  tmpl += '</li>';
  
  var add = getNum('.lines-added');
  var remove = getNum('.lines-removed');
  var change = add - remove;
  if(change >= 0){
    change = '+' + change;
  }
  
  tmpl = tmpl.replace('%add%', '+' + add);
  tmpl = tmpl.replace('%remove%', '-' + remove);
  tmpl = tmpl.replace('%change%', change);
  container.innerHTML = tmpl + container.innerHTML;
}