Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save Chaprnks/9afe710122db86cd3a446b529acdcc99 to your computer and use it in GitHub Desktop.
Save Chaprnks/9afe710122db86cd3a446b529acdcc99 to your computer and use it in GitHub Desktop.
Show download count of GitHub release for Tampermonkey
// ==UserScript==
// @name GitHub's Releases Download Count Viewer for Tampermonkey
// @version 0.6
// @updateURL https://gist.github.com/kusaanko/0501af806454b090972784dddff04bcf/raw/Show%2520download%2520count%2520of%2520GitHub%2520release%2520for%2520Tampermonkey.user.js
// @downloadURL https://gist.github.com/kusaanko/0501af806454b090972784dddff04bcf/raw/Show%2520download%2520count%2520of%2520GitHub%2520release%2520for%2520Tampermonkey.user.js
// @description Displays the download count of GitHub's release.
// @author Kusaanko
// @match https://github.com/*
// @grant none
// @namespace https://github.com/kusaanko
// @require https://code.jquery.com/jquery-3.3.1.min.js
// ==/UserScript==
$(function() {
var preHref = "";
var count = 0;
var dataarray = undefined;
var dataInfo = {};
setInterval(function() {
if(location.href != preHref && location.href.indexOf('/releases') != -1 || document.querySelectorAll('.Truncate-text.text-bold').length != count) {
var url = location.href;
var owner = url.substring(19);
var repo = owner.substring(owner.indexOf('/')+1);
repo = repo.substring(0, repo.indexOf('/'));
owner = owner.substring(0, owner.indexOf('/'));
if(dataInfo.repo != repo && dataInfo.owner != owner) {
dataarray = undefined;
}
dataInfo.repo = repo;
dataInfo.owner = owner;
function set() {
$('.d-flex.flex-items-center, li.Box-row a').each(function(i, elem) {
if($(this).children('p.download_count').attr('class') == "download_count") {
return;
}
var text = $(this).attr('href');
if(dataarray[text]) {
$(this).append('<p style="display: inline;margin: 0;" class="download_count">Download:'+dataarray[text]+'</p>');
}
});
}
if(dataarray == undefined) {
fetch('https://api.github.com/repos/'+owner+'/'+repo+'/releases')
.then(response => response.json())
.then((data) => {
dataarray = {};
for (var key1 in data) {
for (var key2 in data[key1].assets) {
var link = data[key1].assets[key2].browser_download_url.replace('https://github.com','');
dataarray[link] = data[key1].assets[key2].download_count;
}
}
set();
});
}else {
set();
}
count = document.querySelectorAll('.Truncate-text.text-bold');
}
preHref = location.href;
}, 1000);
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment