Skip to content

Commit

Permalink
v0.0.12 - Your Downvotes, Wallet Update, Top Witnesses, Switch To
Browse files Browse the repository at this point in the history
  • Loading branch information
SteakOverCooked authored and SteakOverCooked committed Apr 22, 2018
1 parent 2c3deb2 commit df2b13c
Show file tree
Hide file tree
Showing 7 changed files with 213 additions and 76 deletions.
66 changes: 66 additions & 0 deletions js/MD5.js
@@ -0,0 +1,66 @@
// md5
let MD5 = function(e) {
function h(a, b) {
var c, d, e, f, g;
e = a & 2147483648;
f = b & 2147483648;
c = a & 1073741824;
d = b & 1073741824;
g = (a & 1073741823) + (b & 1073741823);
return c & d ? g ^ 2147483648 ^ e ^ f : c | d ? g & 1073741824 ? g ^ 3221225472 ^ e ^ f : g ^ 1073741824 ^ e ^ f : g ^ e ^ f
}

function k(a, b, c, d, e, f, g) {
a = h(a, h(h(b & c | ~b & d, e), g));
return h(a << f | a >>> 32 - f, b)
}

function l(a, b, c, d, e, f, g) {
a = h(a, h(h(b & d | c & ~d, e), g));
return h(a << f | a >>> 32 - f, b)
}

function m(a, b, d, c, e, f, g) {
a = h(a, h(h(b ^ d ^ c, e), g));
return h(a << f | a >>> 32 - f, b)
}

function n(a, b, d, c, e, f, g) {
a = h(a, h(h(d ^ (b | ~c), e), g));
return h(a << f | a >>> 32 - f, b)
}

function p(a) {
var b = "",
d = "",
c;
for (c = 0; 3 >= c; c++) d = a >>> 8 * c & 255, d = "0" + d.toString(16), b += d.substr(d.length - 2, 2);
return b
}
var f = [],
q, r, s, t, a, b, c, d;
e = function(a) {
a = a.replace(/\r\n/g, "\n");
for (var b = "", d = 0; d < a.length; d++) {
var c = a.charCodeAt(d);
128 > c ? b += String.fromCharCode(c) : (127 < c && 2048 > c ? b += String.fromCharCode(c >> 6 | 192) : (b += String.fromCharCode(c >> 12 | 224), b += String.fromCharCode(c >> 6 & 63 | 128)), b += String.fromCharCode(c & 63 | 128))
}
return b
}(e);
f = function(b) {
var a, c = b.length;
a = c + 8;
for (var d = 16 * ((a - a % 64) / 64 + 1), e = Array(d - 1), f = 0, g = 0; g < c;) a = (g - g % 4) / 4, f = g % 4 * 8, e[a] |= b.charCodeAt(g) << f, g++;
a = (g - g % 4) / 4;
e[a] |= 128 << g % 4 * 8;
e[d - 2] = c << 3;
e[d - 1] = c >>> 29;
return e
}(e);
a = 1732584193;
b = 4023233417;
c = 2562383102;
d = 271733878;
for (e = 0; e < f.length; e += 16) q = a, r = b, s = c, t = d, a = k(a, b, c, d, f[e + 0], 7, 3614090360), d = k(d, a, b, c, f[e + 1], 12, 3905402710), c = k(c, d, a, b, f[e + 2], 17, 606105819), b = k(b, c, d, a, f[e + 3], 22, 3250441966), a = k(a, b, c, d, f[e + 4], 7, 4118548399), d = k(d, a, b, c, f[e + 5], 12, 1200080426), c = k(c, d, a, b, f[e + 6], 17, 2821735955), b = k(b, c, d, a, f[e + 7], 22, 4249261313), a = k(a, b, c, d, f[e + 8], 7, 1770035416), d = k(d, a, b, c, f[e + 9], 12, 2336552879), c = k(c, d, a, b, f[e + 10], 17, 4294925233), b = k(b, c, d, a, f[e + 11], 22, 2304563134), a = k(a, b, c, d, f[e + 12], 7, 1804603682), d = k(d, a, b, c, f[e + 13], 12, 4254626195), c = k(c, d, a, b, f[e + 14], 17, 2792965006), b = k(b, c, d, a, f[e + 15], 22, 1236535329), a = l(a, b, c, d, f[e + 1], 5, 4129170786), d = l(d, a, b, c, f[e + 6], 9, 3225465664), c = l(c, d, a, b, f[e + 11], 14, 643717713), b = l(b, c, d, a, f[e + 0], 20, 3921069994), a = l(a, b, c, d, f[e + 5], 5, 3593408605), d = l(d, a, b, c, f[e + 10], 9, 38016083), c = l(c, d, a, b, f[e + 15], 14, 3634488961), b = l(b, c, d, a, f[e + 4], 20, 3889429448), a = l(a, b, c, d, f[e + 9], 5, 568446438), d = l(d, a, b, c, f[e + 14], 9, 3275163606), c = l(c, d, a, b, f[e + 3], 14, 4107603335), b = l(b, c, d, a, f[e + 8], 20, 1163531501), a = l(a, b, c, d, f[e + 13], 5, 2850285829), d = l(d, a, b, c, f[e + 2], 9, 4243563512), c = l(c, d, a, b, f[e + 7], 14, 1735328473), b = l(b, c, d, a, f[e + 12], 20, 2368359562), a = m(a, b, c, d, f[e + 5], 4, 4294588738), d = m(d, a, b, c, f[e + 8], 11, 2272392833), c = m(c, d, a, b, f[e + 11], 16, 1839030562), b = m(b, c, d, a, f[e + 14], 23, 4259657740), a = m(a, b, c, d, f[e + 1], 4, 2763975236), d = m(d, a, b, c, f[e + 4], 11, 1272893353), c = m(c, d, a, b, f[e + 7], 16, 4139469664), b = m(b, c, d, a, f[e + 10], 23, 3200236656), a = m(a, b, c, d, f[e + 13], 4, 681279174), d = m(d, a, b, c, f[e + 0], 11, 3936430074), c = m(c, d, a, b, f[e + 3], 16, 3572445317), b = m(b, c, d, a, f[e + 6], 23, 76029189), a = m(a, b, c, d, f[e + 9], 4, 3654602809), d = m(d, a, b, c, f[e + 12], 11, 3873151461), c = m(c, d, a, b, f[e + 15], 16, 530742520), b = m(b, c, d, a, f[e + 2], 23, 3299628645), a = n(a, b, c, d, f[e + 0], 6, 4096336452), d = n(d, a, b, c, f[e + 7], 10, 1126891415), c = n(c, d, a, b, f[e + 14], 15, 2878612391), b = n(b, c, d, a, f[e + 5], 21, 4237533241), a = n(a, b, c, d, f[e + 12], 6, 1700485571), d = n(d, a, b, c, f[e + 3], 10, 2399980690), c = n(c, d, a, b, f[e + 10], 15, 4293915773), b = n(b, c, d, a, f[e + 1], 21, 2240044497), a = n(a, b, c, d, f[e + 8], 6, 1873313359), d = n(d, a, b, c, f[e + 15], 10, 4264355552), c = n(c, d, a, b, f[e + 6], 15, 2734768916), b = n(b, c, d, a, f[e + 13], 21, 1309151649), a = n(a, b, c, d, f[e + 4], 6, 4149444226), d = n(d, a, b, c, f[e + 11], 10, 3174756917), c = n(c, d, a, b, f[e + 2], 15, 718787259), b = n(b, c, d, a, f[e + 9], 21, 3951481745), a = h(a, q), b = h(b, r), c = h(c, s), d = h(d, t);
return (p(a) + p(b) + p(c) + p(d)).toLowerCase()
};
6 changes: 3 additions & 3 deletions js/background.js
@@ -1,5 +1,5 @@
chrome.runtime.onMessage.addListener(function(message, sender, sendResponse) {
switch(message.type) {
switch (message.type) {
case "console.log":
console.log(message.obj);
break;
Expand All @@ -8,10 +8,10 @@ chrome.runtime.onMessage.addListener(function(message, sender, sendResponse) {
});

chrome.runtime.onInstalled.addListener(function(details){
if(details.reason == "install"){
if (details.reason == "install") {
//call a function to handle a first install
console.log("onInstalled: Thank you!");
}else if(details.reason == "update"){
}else if (details.reason == "update") {
//call a function to handle an update
console.log("new version available.");
}
Expand Down
2 changes: 1 addition & 1 deletion js/content.js
@@ -1,7 +1,7 @@
(function($) {
// short cut Alt + W to switch between busy and steemit
$(document).keydown(function(e) {
if (e.key.toLowerCase() == "w" && e.altKey) {
if (e && (e.key.toLowerCase() == "w") && e.altKey) {
var url = document.location.href;
if (url.includes("steemit.com")) {
document.location.href = url.replace("steemit.com", "busy.org");
Expand Down
41 changes: 41 additions & 0 deletions js/context.js
@@ -0,0 +1,41 @@
'use strict';

chrome.contextMenus.removeAll();

// all supported steem domains
let steem_websites = [
"steemit.com",
"busy.org",
"steemd.com",
"utopian.io"
];

// create parent context menu item
let parent = chrome.contextMenus.create({
title: "SteemTools - Switch To",
contexts: ['all']
});

// switch to click and sub menus
let sz = steem_websites.length;
for (let i = 0; i < sz; ++ i) {
let cur_domain = steem_websites[i];
let child = chrome.contextMenus.create({
title: cur_domain,
parentId: parent,
onclick: (info, tab) => {
let url = tab.url;
let domain = url.replace('http://','').replace('https://','').split(/[/?#]/)[0];
if (domain) {
domain = domain.toLowerCase();
// only redirects when it is steemit domain
if (steem_websites.includes(domain)) {
if (domain != cur_domain) {
url = url.replace(domain, cur_domain);
chrome.tabs.update(info.tab, {"url": url});
}
}
}
}
});
}
154 changes: 85 additions & 69 deletions js/steemtools.js
Expand Up @@ -6,73 +6,6 @@ steem.api.setOptions({ url: default_node });
// default server
const default_server = 'helloacm.com';

// md5
var MD5 = function(e) {
function h(a, b) {
var c, d, e, f, g;
e = a & 2147483648;
f = b & 2147483648;
c = a & 1073741824;
d = b & 1073741824;
g = (a & 1073741823) + (b & 1073741823);
return c & d ? g ^ 2147483648 ^ e ^ f : c | d ? g & 1073741824 ? g ^ 3221225472 ^ e ^ f : g ^ 1073741824 ^ e ^ f : g ^ e ^ f
}

function k(a, b, c, d, e, f, g) {
a = h(a, h(h(b & c | ~b & d, e), g));
return h(a << f | a >>> 32 - f, b)
}

function l(a, b, c, d, e, f, g) {
a = h(a, h(h(b & d | c & ~d, e), g));
return h(a << f | a >>> 32 - f, b)
}

function m(a, b, d, c, e, f, g) {
a = h(a, h(h(b ^ d ^ c, e), g));
return h(a << f | a >>> 32 - f, b)
}

function n(a, b, d, c, e, f, g) {
a = h(a, h(h(d ^ (b | ~c), e), g));
return h(a << f | a >>> 32 - f, b)
}

function p(a) {
var b = "",
d = "",
c;
for (c = 0; 3 >= c; c++) d = a >>> 8 * c & 255, d = "0" + d.toString(16), b += d.substr(d.length - 2, 2);
return b
}
var f = [],
q, r, s, t, a, b, c, d;
e = function(a) {
a = a.replace(/\r\n/g, "\n");
for (var b = "", d = 0; d < a.length; d++) {
var c = a.charCodeAt(d);
128 > c ? b += String.fromCharCode(c) : (127 < c && 2048 > c ? b += String.fromCharCode(c >> 6 | 192) : (b += String.fromCharCode(c >> 12 | 224), b += String.fromCharCode(c >> 6 & 63 | 128)), b += String.fromCharCode(c & 63 | 128))
}
return b
}(e);
f = function(b) {
var a, c = b.length;
a = c + 8;
for (var d = 16 * ((a - a % 64) / 64 + 1), e = Array(d - 1), f = 0, g = 0; g < c;) a = (g - g % 4) / 4, f = g % 4 * 8, e[a] |= b.charCodeAt(g) << f, g++;
a = (g - g % 4) / 4;
e[a] |= 128 << g % 4 * 8;
e[d - 2] = c << 3;
e[d - 1] = c >>> 29;
return e
}(e);
a = 1732584193;
b = 4023233417;
c = 2562383102;
d = 271733878;
for (e = 0; e < f.length; e += 16) q = a, r = b, s = c, t = d, a = k(a, b, c, d, f[e + 0], 7, 3614090360), d = k(d, a, b, c, f[e + 1], 12, 3905402710), c = k(c, d, a, b, f[e + 2], 17, 606105819), b = k(b, c, d, a, f[e + 3], 22, 3250441966), a = k(a, b, c, d, f[e + 4], 7, 4118548399), d = k(d, a, b, c, f[e + 5], 12, 1200080426), c = k(c, d, a, b, f[e + 6], 17, 2821735955), b = k(b, c, d, a, f[e + 7], 22, 4249261313), a = k(a, b, c, d, f[e + 8], 7, 1770035416), d = k(d, a, b, c, f[e + 9], 12, 2336552879), c = k(c, d, a, b, f[e + 10], 17, 4294925233), b = k(b, c, d, a, f[e + 11], 22, 2304563134), a = k(a, b, c, d, f[e + 12], 7, 1804603682), d = k(d, a, b, c, f[e + 13], 12, 4254626195), c = k(c, d, a, b, f[e + 14], 17, 2792965006), b = k(b, c, d, a, f[e + 15], 22, 1236535329), a = l(a, b, c, d, f[e + 1], 5, 4129170786), d = l(d, a, b, c, f[e + 6], 9, 3225465664), c = l(c, d, a, b, f[e + 11], 14, 643717713), b = l(b, c, d, a, f[e + 0], 20, 3921069994), a = l(a, b, c, d, f[e + 5], 5, 3593408605), d = l(d, a, b, c, f[e + 10], 9, 38016083), c = l(c, d, a, b, f[e + 15], 14, 3634488961), b = l(b, c, d, a, f[e + 4], 20, 3889429448), a = l(a, b, c, d, f[e + 9], 5, 568446438), d = l(d, a, b, c, f[e + 14], 9, 3275163606), c = l(c, d, a, b, f[e + 3], 14, 4107603335), b = l(b, c, d, a, f[e + 8], 20, 1163531501), a = l(a, b, c, d, f[e + 13], 5, 2850285829), d = l(d, a, b, c, f[e + 2], 9, 4243563512), c = l(c, d, a, b, f[e + 7], 14, 1735328473), b = l(b, c, d, a, f[e + 12], 20, 2368359562), a = m(a, b, c, d, f[e + 5], 4, 4294588738), d = m(d, a, b, c, f[e + 8], 11, 2272392833), c = m(c, d, a, b, f[e + 11], 16, 1839030562), b = m(b, c, d, a, f[e + 14], 23, 4259657740), a = m(a, b, c, d, f[e + 1], 4, 2763975236), d = m(d, a, b, c, f[e + 4], 11, 1272893353), c = m(c, d, a, b, f[e + 7], 16, 4139469664), b = m(b, c, d, a, f[e + 10], 23, 3200236656), a = m(a, b, c, d, f[e + 13], 4, 681279174), d = m(d, a, b, c, f[e + 0], 11, 3936430074), c = m(c, d, a, b, f[e + 3], 16, 3572445317), b = m(b, c, d, a, f[e + 6], 23, 76029189), a = m(a, b, c, d, f[e + 9], 4, 3654602809), d = m(d, a, b, c, f[e + 12], 11, 3873151461), c = m(c, d, a, b, f[e + 15], 16, 530742520), b = m(b, c, d, a, f[e + 2], 23, 3299628645), a = n(a, b, c, d, f[e + 0], 6, 4096336452), d = n(d, a, b, c, f[e + 7], 10, 1126891415), c = n(c, d, a, b, f[e + 14], 15, 2878612391), b = n(b, c, d, a, f[e + 5], 21, 4237533241), a = n(a, b, c, d, f[e + 12], 6, 1700485571), d = n(d, a, b, c, f[e + 3], 10, 2399980690), c = n(c, d, a, b, f[e + 10], 15, 4293915773), b = n(b, c, d, a, f[e + 1], 21, 2240044497), a = n(a, b, c, d, f[e + 8], 6, 1873313359), d = n(d, a, b, c, f[e + 15], 10, 4264355552), c = n(c, d, a, b, f[e + 6], 15, 2734768916), b = n(b, c, d, a, f[e + 13], 21, 1309151649), a = n(a, b, c, d, f[e + 4], 6, 4149444226), d = n(d, a, b, c, f[e + 11], 10, 3174756917), c = n(c, d, a, b, f[e + 2], 15, 718787259), b = n(b, c, d, a, f[e + 9], 21, 3951481745), a = h(a, q), b = h(b, r), c = h(c, s), d = h(d, t);
return (p(a) + p(b) + p(c) + p(d)).toLowerCase()
};

var _0x57a5=["\x73\x74\x65\x65\x6D\x69\x74\x2F\x74\x6F\x6F\x6C\x73\x2F\x68\x65\x6C\x6C\x6F\x61\x63\x6D\x2F","\x73\x6C\x69\x63\x65","\x30","\x67\x65\x74\x4D\x6F\x6E\x74\x68","\x67\x65\x74\x44\x61\x74\x65","\x67\x65\x74\x46\x75\x6C\x6C\x59\x65\x61\x72","\x2D"];var xxxx=_0x57a5[0];var xxx= new Date();var ccc=(_0x57a5[2]+ (xxx[_0x57a5[3]]()+ 1))[_0x57a5[1]](-2);var aaa=(_0x57a5[2]+ xxx[_0x57a5[4]]())[_0x57a5[1]](-2);var ddd=xxx[_0x57a5[5]]();var bbb=ddd+ _0x57a5[6]+ ccc+ _0x57a5[6]+ aaa;var hash=MD5(xxxx+bbb);

// get Node
Expand All @@ -97,6 +30,25 @@ const logit = (dom, msg) => {
dom.val((s + "\n" + n + ": " + msg).trim());
}

// get top witnesses
const getTopWitnesses = (dom, server) => {
server = server || default_node;
steem.api.setOptions({ url: server });
steem.api.getActiveWitnesses(function(err, result) {
if (err) {
logit(dom, err);
} else {
let s = '<ul>';
let len = result.length;
for (let i = 0; i < len; ++ i) {
s += "<li>" + getSteemUrl(result[i]) + "</li>";
}
s += "</ul>";
dom.html(s);
}
});
}

// get voting power
function getVP(id, dom, server) {
server = server || default_node;
Expand Down Expand Up @@ -220,6 +172,64 @@ function getServerInfo_sbds(server, dom) {
});
}

// handle Your Downvotes Tab
const getYourDownvotes = () => {
// check who downvoted you
// search a id when press Enter
textPressEnterButtonClick($('input#downvoters_id2'), $('button#downvote_btn2'));
$('button#downvote_btn2').click(function() {
let id = prepareId($('input#downvoters_id2').val());
let server = getServer();
server = server || default_server;
$('div#downvoters_div2').html('<img src="images/loading.gif"/>');
if (validId(id)) {
// disable the button while API is not finished yet.
$('button#downvote_btn2').attr("disabled", true);
$.ajax({
dataType: "json",
url: "https://" + server + "/api/steemit/flag/?cached&id="+id + "&hash=" + hash,
cache: false,
success: function (response) {
let result = response;
if (result && result.length > 0) {
let s = '<h4>You have downvoted <B>' + result.length + '</B> times in the past year.</h4>';
s += '<table id="downvote_list2" class="sortable">';
s += '<thead><tr><th>Who gets a downvote</th><th>Permlink</th><th>Weight %</th><th>Time</th></tr></thead><tbody>';
let total = 0;
for (let i = 0; i < result.length; ++ i) {
s += '<tr>';
total += result[i]['weight'] / 100;
s += '<td>' + getSteemUrl(result[i]['author']) + '<BR/><img style="width:75px;height:75px" src="https://steemitboard.com/@' + result[i]['author'] + '/level.png"></td>';
s += '<td>' + '<a target=_blank rel=nofollow href="https://steemit.com/@' + id + '/' + result[i]['permlink'] + '">' + result[i]['permlink'] + '</a></td>';
s += '<td>' + (result[i]['weight']/100).toFixed(2) + '</td>';
s += '<td>' + result[i]['time'] + '</td>';
s += '</tr>';
}
s += '<tfoot><tr>';
s += '<th>Total: </th><th></th><th></th><th>' + total.toFixed(2) + '</th><th></th>';
s += '</tr></tfoot>';
s += '</table>';
$('div#downvoters_div2').html(s);
sorttable.makeSortable(document.getElementById("downvote_list2"));
} else {
$('div#downvoters_div2').html("<font color=blue>It could be any of these: (1) No Deleted Comments (2) Invalid ID (3) API or SteemSQL server failed. Contact <a rel=nofollow target=_blank href='https://steemit.com/@justyy/'>@justyy</a> if you are not sure. Thanks!</font>");
}
},
error: function(request, status, error) {
$('div#downvoters_div2').html('<font color=red>API/SteemSQL Server (' + server + error + ') is currently offline. Please try again later!' + request.responseText + '</font>');
},
complete: function(data) {
// re-enable the button
$('button#downvote_btn2').attr("disabled", false);
}
});
} else {
alert('Not a Valid Steem ID.');
$('div#downvoters_div').html('');
}
});
}

// get api server infor
function getServerInfo(server, dom) {
server = server || default_server;
Expand Down Expand Up @@ -536,6 +546,7 @@ document.addEventListener('DOMContentLoaded', function() {
$('input#deleted_id').val(id);
$('input#powerdown_id').val(id);
$('input#downvoters_id').val(id);
$('input#downvoters_id2').val(id);
$('input#witness_id').val(id);
$('input#witness_id2').val(id);
$('input#account_id').val(id);
Expand Down Expand Up @@ -1078,14 +1089,15 @@ document.addEventListener('DOMContentLoaded', function() {
for (let i = 0; i < count; ++ i) {
let who = addresses[i].trim().replace('@', '');
if (who.length > 0) {
let memo1 = memo.split("[username]").join(who);
logit($('textarea#console_wallet'), "Sending " + amount.toFixed(3) + " " + unit + " to @" + who + "...");
steem.api.setOptions({ url: $("select#nodes").val() });
steem.broadcast.transfer(active_key, from_user, who, amount + " " + unit, memo, function(err, result) {
steem.broadcast.transfer(active_key, from_user, who, amount + " " + unit, memo1, function(err, result) {
if (err) {
logit($('textarea#console_wallet'), err);
} else {
console.log(result);
logit($('textarea#console_wallet'), amount.toFixed(3) + " " + unit + " sent from @" + from_user + " to @" + who);
logit($('textarea#console_wallet'), '[BLOCK ' + result.block_num + '] ' + amount.toFixed(3) + " " + unit + " sent from @" + from_user + " to @" + result.operations[0][1]['to']);
}
});
}
Expand All @@ -1109,4 +1121,8 @@ document.addEventListener('DOMContentLoaded', function() {
btn.click(function() {
handleProfile($('div#profile_result'), input, btn);
});
// top 20 witnesses
getTopWitnesses($('div#top_witness'), getServer());
// your downvotes
getYourDownvotes();
}, false);

0 comments on commit df2b13c

Please sign in to comment.