diff options
| -rw-r--r-- | lib/db/bookshelf.js | 24 | ||||
| -rw-r--r-- | lib/db/index.js | 13 | ||||
| -rw-r--r-- | lib/index.js | 46 | ||||
| -rw-r--r-- | public/assets/css/css.css | 4 | ||||
| -rw-r--r-- | public/assets/js/index.js | 25 | ||||
| -rw-r--r-- | public/assets/js/lib/index.js | 18 | ||||
| -rw-r--r-- | public/assets/js/nav.js | 65 |
7 files changed, 154 insertions, 41 deletions
diff --git a/lib/db/bookshelf.js b/lib/db/bookshelf.js new file mode 100644 index 0000000..69157cc --- /dev/null +++ b/lib/db/bookshelf.js @@ -0,0 +1,24 @@ +var knex = require('knex')({ + client: 'mysql2', + connection: { + host : process.env.DB_HOST, + user : process.env.DB_USER, + password : process.env.DB_PASS, + database : process.env.DB_NAME, + charset : 'utf8', + typecast : function (field, next) { + console.log(field.type) + if (field.type == 'BLOB') { + return field.string() + } + return next() + } + } +}) + +var bookshelf = require('bookshelf')(knex) + +module.exports = { + bookshelf: bookshelf, + knex: knex, +} diff --git a/lib/db/index.js b/lib/db/index.js new file mode 100644 index 0000000..33beae9 --- /dev/null +++ b/lib/db/index.js @@ -0,0 +1,13 @@ +var db = module.exports + +var connection = require("./bookshelf") +var bookshelf = connection.bookshelf +var knex = connection.knex + + +/* MODELS */ + +var Image = db.Image = bookshelf.Model.extend({ + tableName: 'images', + hasTimestamps: false, +}) diff --git a/lib/index.js b/lib/index.js new file mode 100644 index 0000000..0cc00a9 --- /dev/null +++ b/lib/index.js @@ -0,0 +1,46 @@ +require('dotenv').load(); +var fs = require('fs') +var app, express = require('express'); +var http = require('http'); +var https = require('https'); +var bodyParser = require('body-parser') +var cookieParser = require('cookie-parser') +var csurf = require('csurf') +var path = require('path') +var multiparty = require('multiparty') +var ejs = require('ejs') +var passport = require('passport') +var sessionstore = require('sessionstore') +var session = require('express-session') +var multer = require('multer') + +var app, server + +var db = require("./db") + +var site = module.exports = {} +site.init = function(){ + app = express() + app.set('port', 5000) + app.set('view engine', 'ejs') + app.set('views', path.join(__dirname, '../views')) + app.use(express.static(path.join(__dirname, '../public'))) + app.use(bodyParser.json()) + app.use(bodyParser.urlencoded({ extended: false })) + app.use( multer({ dest:'./uploads/' }).single("file") ) + + app.use(express.query()) + + server = http.createServer(app).listen(5000, function () { + console.log('Bucky listening at http://5.k:%s', server.address().port) + }) + + app.get("/p/:id", function(req, res){}) + + app.get("/get/random", function(req, res){ + }) + app.get("/get/latest", function(req, res){ + }) + app.get("/get/:id", function(req, res){ + }) +}
\ No newline at end of file diff --git a/public/assets/css/css.css b/public/assets/css/css.css index 06a20e6..50b5023 100644 --- a/public/assets/css/css.css +++ b/public/assets/css/css.css @@ -76,7 +76,7 @@ a:visited { font-style:italic; text-transform:uppercase; } -#windowinwindow { +#pip { position:absolute; z-index:8; top:80px; @@ -85,7 +85,7 @@ a:visited { box-shadow: 5px 5px 4px #888; border:2px inset black; } -#windowinwindow:hover { +#pip:hover { border:2px solid blue; cursor:pointer; } diff --git a/public/assets/js/index.js b/public/assets/js/index.js index 2e5ac92..fefb7fc 100644 --- a/public/assets/js/index.js +++ b/public/assets/js/index.js @@ -1,13 +1,13 @@ var app = (function(){ var app = {} + var id = -1 + app.init = function(){ - app.router = new SiteRouter () - app.view = null + app.view = new NavView () $(window).on("focus", app.focus) $(window).on("blur", app.blur) - $(window).on("keydown", app.keydown) } app.focused = true @@ -20,24 +20,7 @@ var app = (function(){ app.blur = function(){ app.focused = false } - - app.keydown = function(e){ - switch (e.keyCode) { - case 37: // left - // prev - break - case 39: // right - // next - break - case 38: // up - // home - break - case 40: // down - // random - break - } - } - + document.addEventListener('DOMContentLoaded', app.init) return app diff --git a/public/assets/js/lib/index.js b/public/assets/js/lib/index.js deleted file mode 100644 index af381c1..0000000 --- a/public/assets/js/lib/index.js +++ /dev/null @@ -1,18 +0,0 @@ -var SiteRouter = Router.extend({ - - el: "body", - - routes: { - "/": 'login', - "/index": 'index', - }, - - initialize: function(){ - this.route() - }, - - index: function(){ - app.view = new IndexView () - }, - -})
\ No newline at end of file diff --git a/public/assets/js/nav.js b/public/assets/js/nav.js new file mode 100644 index 0000000..401c6ff --- /dev/null +++ b/public/assets/js/nav.js @@ -0,0 +1,65 @@ +var NavView = View.extend({ + + el: "body", + events: { + "click #prev": "prev", + "click #next": "next", + "click #refresh": "refresh", + "click #random": "random", + }, + + initialize: function(){ + this.id = -1 + this.$pip = this.$("#pip img") + this.$image = this.$("#luckyimage") + + $(window).on("keydown", app.keydown) + this.latest() + }, + + keydown: function(e){ + switch (e.keyCode) { + case 37: // left + this.prev() + break + case 39: // right + this.next() + break + case 38: // up + this.latest() + break + case 40: // down + this.random() + break + } + }, + + latest: function(){ + this.onLatest = true + $.get("/get/latest", this.display.bind(this)) + }, + + prev: function(){ + if (this.id - 1 < 1) { return } + this.onLatest = false + $.get("/get/" + (this.id-1), this.display.bind(this)) + }, + + next: function(){ + if (this.onLatest || this.id < 1) { return } + this.onLatest = false + $.get("/get/" + (this.id+1), this.display.bind(this)) + }, + + random: function(){ + this.onLatest = false + $.get("/get/random", this.display.bind(this)) + }, + + display: function(data){ + this.id = data.id + this.$pip.attr("src", data.url) + this.$image.css("background-image", "url(" + data.url + ")") + }, + +}) |
