|
31 | 31 |
|
32 | 32 | function addRecentlyUpdatedRepo(repo) { |
33 | 33 | var $item = $("<li>"); |
34 | | - $item.append('<span class="name"><a href="' + repoUrl(repo) + '">' + repo.name + '</a></span>'); |
35 | | - $item.append('<span class="time"><a href="' + repo.html_url + '/commits">' + strftime("%h %e, %Y", repo.pushed_at) + '</a></span>'); |
| 34 | + |
| 35 | + var $name = $("<a>").attr("href", repoUrl(repo)).text(repo.name); |
| 36 | + $item.append($("<span>").addClass("name").append($name)); |
| 37 | + |
| 38 | + var $time = $("<a>").attr("href", repo.html_url + "/commits").text(strftime("%h %e, %Y", repo.pushed_at)); |
| 39 | + $item.append($("<span>").addClass("time").append($time)); |
| 40 | + |
36 | 41 | $item.append('<span class="bullet">⋅</span>'); |
37 | | - $item.append('<span class="watchers"><a href="' + repo.html_url + '/watchers">' + repo.watchers + ' watchers</a></span>'); |
| 42 | + |
| 43 | + var $watchers = $("<a>").attr("href", repo.html_url + "/watchers").text(repo.watchers); |
| 44 | + $item.append($("<span>").addClass("watchers").append($watchers)); |
| 45 | + |
38 | 46 | $item.append('<span class="bullet">⋅</span>'); |
39 | | - $item.append('<span class="forks"><a href="' + repo.html_url + '/network">' + repo.forks + ' forks</a></span>'); |
| 47 | + |
| 48 | + var $forks = $("<a>").attr("href", repo.html_url + "/network").text(repo.forks + " forks"); |
| 49 | + $item.append($("<span>").append($forks)); |
| 50 | + |
40 | 51 | $item.appendTo("#recently-updated-repos"); |
41 | 52 | } |
42 | 53 |
|
43 | 54 | function addRepo(repo) { |
44 | | - var $item = $("<li>").addClass("repo grid-1 " + repo.language.toLowerCase()); |
| 55 | + var $item = $("<li>").addClass("repo grid-1 " + (repo.language || '').toLowerCase()); |
45 | 56 | var $link = $("<a>").attr("href", repoUrl(repo)).appendTo($item); |
46 | 57 | $link.append($("<h2>").text(repo.name)); |
47 | 58 | $link.append($("<h3>").text(repo.language)); |
48 | 59 | $link.append($("<p>").text(repoDescription(repo))); |
49 | 60 | $item.appendTo("#repos"); |
50 | 61 | } |
51 | 62 |
|
52 | | - $.getJSON("https://api.github.com/users/twitter/repos?callback=?", function (result) { |
| 63 | + $.getJSON("https://api.github.com/orgs/twitter/repos?callback=?", function (result) { |
53 | 64 | var repos = result.data; |
54 | 65 |
|
55 | 66 | $(function () { |
|
58 | 69 | // Convert pushed_at to Date. |
59 | 70 | $.each(repos, function (i, repo) { |
60 | 71 | repo.pushed_at = new Date(repo.pushed_at); |
| 72 | + |
| 73 | + var weekHalfLife = 1.146 * Math.pow(10, -9); |
| 74 | + |
| 75 | + var pushDelta = (new Date) - Date.parse(repo.pushed_at); |
| 76 | + var createdDelta = (new Date) - Date.parse(repo.created_at); |
| 77 | + |
| 78 | + var weightForPush = 1; |
| 79 | + var weightForWatchers = 1.314 * Math.pow(10, 7); |
| 80 | + |
| 81 | + repo.hotness = weightForPush * Math.pow(Math.E, -1 * weekHalfLife * pushDelta); |
| 82 | + repo.hotness += weightForWatchers * repo.watchers / createdDelta; |
61 | 83 | }); |
62 | 84 |
|
63 | 85 | // Sort by highest # of watchers. |
64 | 86 | repos.sort(function (a, b) { |
65 | | - if (a.watchers < b.watchers) return 1; |
66 | | - if (b.watchers < a.watchers) return -1; |
| 87 | + if (a.hotness < b.hotness) return 1; |
| 88 | + if (b.hotness < a.hotness) return -1; |
67 | 89 | return 0; |
68 | 90 | }); |
69 | 91 |
|
|
0 commit comments