forked from GitHub/dbot
Add basic hashing functionality to imgur
* There is probably a much nicer way of doing it (perhaps a better hash)? * Added a counter to the imgur random page counting the number of [Facebook Monopoly Men](http://i.imgur.com/3Tt6N.gif). * Added the md5sum of the current image to the getRandomImage api call. * Future functionality might be storing every image md5 in an array and counting duplicates, instead of the current check-against-known-dupes.
This commit is contained in:
parent
3097683e1c
commit
7578382bee
@ -4,7 +4,8 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
var _ = require('underscore')._,
|
var _ = require('underscore')._,
|
||||||
request = require('request');
|
request = require('request'),
|
||||||
|
crypto = require('crypto');
|
||||||
|
|
||||||
var imgur = function(dbot) {
|
var imgur = function(dbot) {
|
||||||
this.db = dbot.db.imgur;
|
this.db = dbot.db.imgur;
|
||||||
@ -50,7 +51,8 @@ var imgur = function(dbot) {
|
|||||||
// 492 is body.length of a removed image
|
// 492 is body.length of a removed image
|
||||||
if(!error && response.statusCode == 200 && body.length != 492) {
|
if(!error && response.statusCode == 200 && body.length != 492) {
|
||||||
this.db.totalImages += 1;
|
this.db.totalImages += 1;
|
||||||
callback(testUrl, testSlug);
|
var hash = crypto.createHash('md5').update(body).digest("hex");
|
||||||
|
callback(testUrl, testSlug,hash);
|
||||||
} else {
|
} else {
|
||||||
this.api.getRandomImage(callback);
|
this.api.getRandomImage(callback);
|
||||||
}
|
}
|
||||||
|
@ -106,3 +106,15 @@ html,body {
|
|||||||
overflow:auto;
|
overflow:auto;
|
||||||
padding:0;
|
padding:0;
|
||||||
}
|
}
|
||||||
|
#count2 {
|
||||||
|
bottom:25px;
|
||||||
|
position:absolute;
|
||||||
|
border-radius:5px;
|
||||||
|
display:none;
|
||||||
|
margin;5px;
|
||||||
|
padding:5px;
|
||||||
|
right:25px;
|
||||||
|
background-color:#3b5998;
|
||||||
|
color:white;
|
||||||
|
font-family:'Freight Sans Bold','Lucida Grande',verdana,arial,sans-serif;
|
||||||
|
}
|
||||||
|
76
public/imgurr.js
Normal file
76
public/imgurr.js
Normal file
@ -0,0 +1,76 @@
|
|||||||
|
function giveMessage(msg) {
|
||||||
|
$('<li>'+msg+'</li>').prependTo('#history').hide().slideDown();
|
||||||
|
}
|
||||||
|
|
||||||
|
var lock = false;
|
||||||
|
var highscore = 10 + 1;
|
||||||
|
var score = highscore;
|
||||||
|
var count = 0;
|
||||||
|
var count2 = 0;
|
||||||
|
|
||||||
|
$('#count').text(score);
|
||||||
|
|
||||||
|
function getNewImage() {
|
||||||
|
count += 1;
|
||||||
|
lock = true;
|
||||||
|
$('#loading').fadeIn();
|
||||||
|
$('#loading').text('Loading image ' + count + '...');
|
||||||
|
document.title = 'random imgur (' + count + ')';
|
||||||
|
$('#loading').fadeIn();
|
||||||
|
$('#image').load(function(){});
|
||||||
|
$.get("/api/imgur/getRandomImage", function(d) {
|
||||||
|
$('#image').attr('src', d.data[0]);
|
||||||
|
lock = false;
|
||||||
|
score -= 1;
|
||||||
|
$('#count').text(score);
|
||||||
|
$('#details').text("Fetching info...");
|
||||||
|
giveMessage('<a href="' + d.data[0] + '">' + d.data[0] + '</a>');
|
||||||
|
$.get("/api/imgur/getImageInfoString", { 'slug': d.data[1] }, function(info) {
|
||||||
|
if(info.data[0].indexOf('undefined') == -1) {
|
||||||
|
$("#details").text(count + ': ' + info.data[0]);
|
||||||
|
$('#details').show();
|
||||||
|
} else {
|
||||||
|
$("#details").hide();
|
||||||
|
}
|
||||||
|
$('#loading').fadeOut();
|
||||||
|
}, "json");
|
||||||
|
console.log(d.data[2]);
|
||||||
|
if(d.data[2] == "e49e686582ce3f60cb51d00c10924861") { // 3Tt6N fb guy
|
||||||
|
count2 += 1;
|
||||||
|
if (count2 == 1){
|
||||||
|
$('#count2').text("+ " + count2 + " Facebook Monopoly Man");
|
||||||
|
} else {
|
||||||
|
$('#count2').text("+ " + count2 + " Facebook Monopoly Men");
|
||||||
|
}
|
||||||
|
$('#count2').fadeIn();
|
||||||
|
}
|
||||||
|
}, "json");
|
||||||
|
}
|
||||||
|
|
||||||
|
$(getNewImage());
|
||||||
|
|
||||||
|
$(document).on('keydown', function(e){
|
||||||
|
switch(e.which){
|
||||||
|
case 82: // r
|
||||||
|
score = highscore;
|
||||||
|
$('#count').text(highscore);
|
||||||
|
giveMessage("Score reset.");
|
||||||
|
case 13: // enter
|
||||||
|
case 32: // space
|
||||||
|
if (lock) {
|
||||||
|
$('#loading').text(function(index, text){
|
||||||
|
return text.replace(/.(?=[^.]*$)/, "!");
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
getNewImage();
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 67:
|
||||||
|
$('#count').fadeToggle();
|
||||||
|
$('#count2').fadeToggle();
|
||||||
|
break;
|
||||||
|
case 83: // s
|
||||||
|
$('body').toggleClass('crop');
|
||||||
|
giveMessage("Toggled scrollbars.")
|
||||||
|
};
|
||||||
|
});
|
@ -3,73 +3,17 @@ html(lang='en')
|
|||||||
head
|
head
|
||||||
meta(charset='utf-8')
|
meta(charset='utf-8')
|
||||||
script(type="text/javascript", src="//ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js")
|
script(type="text/javascript", src="//ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js")
|
||||||
|
script(type="text/javascript", src="http://crypto-js.googlecode.com/svn/tags/3.1.2/build/rollups/md5.js")
|
||||||
|
script(type="text/javascript", src="/imgurr.js")
|
||||||
link(rel="stylesheet", href="/imgurr.css")
|
link(rel="stylesheet", href="/imgurr.css")
|
||||||
title random imgur
|
title random imgur
|
||||||
script
|
|
||||||
var count = 0;
|
|
||||||
function giveMessage(msg) {
|
|
||||||
$('<li>'+msg+'</li>').prependTo('#history').hide().slideDown();
|
|
||||||
}
|
|
||||||
var lock = false
|
|
||||||
var highscore = #{highscore} + 1;
|
|
||||||
var score = highscore;
|
|
||||||
$('#count').text(score);
|
|
||||||
function getNewImage() {
|
|
||||||
count += 1;
|
|
||||||
lock = true;
|
|
||||||
$('#loading').fadeIn();
|
|
||||||
$('#loading').text('Loading image ' + count + '...');
|
|
||||||
document.title = 'random imgur (' + count + ')';
|
|
||||||
$('#loading').fadeIn();
|
|
||||||
$('#image').load(function(){});
|
|
||||||
$.get("/api/imgur/getRandomImage", function(d) {
|
|
||||||
$('#image').attr('src', d.data[0]);
|
|
||||||
lock = false;
|
|
||||||
score -= 1;
|
|
||||||
$('#count').text(score);
|
|
||||||
$('#details').text("Fetching info...");
|
|
||||||
giveMessage('<a href="' + d.data[0] + '">' + d.data[0] + '</a>');
|
|
||||||
$.get("/api/imgur/getImageInfoString", { 'slug': d.data[1] }, function(info) {
|
|
||||||
if(info.data[0].indexOf('undefined') == -1) {
|
|
||||||
$("#details").text(count + ': ' + info.data[0]);
|
|
||||||
$('#details').show();
|
|
||||||
} else {
|
|
||||||
$("#details").hide();
|
|
||||||
}
|
|
||||||
$('#loading').fadeOut();
|
|
||||||
}, "json");
|
|
||||||
}, "json");
|
|
||||||
}
|
|
||||||
$(getNewImage());
|
|
||||||
$(document).on('keydown', function(e){
|
|
||||||
switch(e.which){
|
|
||||||
case 82: // r
|
|
||||||
score = highscore;
|
|
||||||
$('#count').text(highscore);
|
|
||||||
giveMessage("Score reset.");
|
|
||||||
case 13: // enter
|
|
||||||
case 32: // space
|
|
||||||
if (lock) {
|
|
||||||
$('#loading').text(function(index, text){
|
|
||||||
return text.replace(/\.(?=[^.]*$)/, "!");
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
getNewImage();
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case 67:
|
|
||||||
$('#count').fadeToggle();
|
|
||||||
break;
|
|
||||||
case 83: // s
|
|
||||||
$('body').toggleClass('crop');
|
|
||||||
giveMessage("Toggled scrollbars.")
|
|
||||||
};
|
|
||||||
});
|
|
||||||
body
|
body
|
||||||
div#loading Loading image 1...
|
div#loading Loading image 1...
|
||||||
div#details Press [SPACE] to load a new image
|
div#details Press [SPACE] to load a new image
|
||||||
div#count
|
div#count
|
||||||
#{highscore}
|
#{highscore}
|
||||||
|
div#count2
|
||||||
|
ø
|
||||||
ul#history
|
ul#history
|
||||||
li Press [SPACE] for next
|
li Press [SPACE] for next
|
||||||
div#container
|
div#container
|
||||||
|
Loading…
Reference in New Issue
Block a user