From e59e4c343fe1b1bc06d804c3ceb2a0b84cd8461a Mon Sep 17 00:00:00 2001 From: Douglas Gardner Date: Wed, 1 May 2013 09:42:42 +0000 Subject: [PATCH] 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. --- modules/imgur/imgur.js | 6 ++-- public/imgurr.css | 12 ++++++++ views/imgur/imgurr.jade | 64 +++-------------------------------------- 3 files changed, 20 insertions(+), 62 deletions(-) diff --git a/modules/imgur/imgur.js b/modules/imgur/imgur.js index 507e6f2..b412d4c 100644 --- a/modules/imgur/imgur.js +++ b/modules/imgur/imgur.js @@ -4,7 +4,8 @@ */ var _ = require('underscore')._, - request = require('request'); + request = require('request'), + crypto = require('crypto'); var imgur = function(dbot) { this.db = dbot.db.imgur; @@ -50,7 +51,8 @@ var imgur = function(dbot) { // 492 is body.length of a removed image if(!error && response.statusCode == 200 && body.length != 492) { this.db.totalImages += 1; - callback(testUrl, testSlug); + var hash = crypto.createHash('md5').update(body).digest("hex"); + callback(testUrl, testSlug,hash); } else { this.api.getRandomImage(callback); } diff --git a/public/imgurr.css b/public/imgurr.css index f2bbb11..37d6fc7 100644 --- a/public/imgurr.css +++ b/public/imgurr.css @@ -106,3 +106,15 @@ html,body { overflow:auto; 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; +} diff --git a/views/imgur/imgurr.jade b/views/imgur/imgurr.jade index b3e4436..41d27fe 100644 --- a/views/imgur/imgurr.jade +++ b/views/imgur/imgurr.jade @@ -3,73 +3,17 @@ html(lang='en') head 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="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") title random imgur - script - var count = 0; - function giveMessage(msg) { - $('
  • '+msg+'
  • ').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('' + d.data[0] + ''); - $.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 div#loading Loading image 1... div#details Press [SPACE] to load a new image div#count #{highscore} + div#count2 + ΓΈ ul#history li Press [SPACE] for next div#container