Skip to content
This repository has been archived by the owner on Nov 16, 2023. It is now read-only.

Commit

Permalink
'vendorizing' canvas because it's impossible to install in cloud buil…
Browse files Browse the repository at this point in the history
…d. Don't know how it ever worked...
  • Loading branch information
blumysden committed Jan 22, 2020
1 parent 7bab3eb commit 331461c
Show file tree
Hide file tree
Showing 75 changed files with 11,949 additions and 117 deletions.
46 changes: 20 additions & 26 deletions audiogram/draw-frames.js
Original file line number Diff line number Diff line change
@@ -1,12 +1,11 @@
var fs = require("fs"),
path = require("path"),
Canvas = require("canvas"),
queue = require("d3").queue;
path = require("path"),
Canvas = require("../vendor/canvas"),
queue = require("d3").queue;

function drawFrames(renderer, options, cb) {

var frameQueue = queue(10),
canvases = [];
canvases = [];

for (var i = 0; i < 10; i++) {
canvases.push(new Canvas(options.width, options.height));
Expand All @@ -19,9 +18,8 @@ function drawFrames(renderer, options, cb) {
frameQueue.awaitAll(cb);

function drawFrame(frameNumber, frameCallback) {

var canvas = canvases.pop(),
context = canvas.getContext("2d");
context = canvas.getContext("2d");

renderer.drawFrame(context, {
caption: options.caption,
Expand All @@ -31,44 +29,40 @@ function drawFrames(renderer, options, cb) {
frame: frameNumber
});

canvas.toBuffer(function(err, buf){

canvas.toBuffer(function(err, buf) {
if (err) {
return cb(err);
}

fs.writeFile(path.join(options.frameDir, zeropad(frameNumber + 1, 6) + ".png"), buf, function(writeErr) {

if (writeErr) {
return frameCallback(writeErr);
}

if (options.tick) {
options.tick();
}
fs.writeFile(
path.join(options.frameDir, zeropad(frameNumber + 1, 6) + ".png"),
buf,
function(writeErr) {
if (writeErr) {
return frameCallback(writeErr);
}

canvases.push(canvas);
if (options.tick) {
options.tick();
}

return frameCallback(null);

});
canvases.push(canvas);

return frameCallback(null);
}
);
});

}

}

function zeropad(str, len) {

str = str.toString();

while (str.length < len) {
str = "0" + str;
}

return str;

}

module.exports = drawFrames;
39 changes: 22 additions & 17 deletions audiogram/initialize-canvas.js
Original file line number Diff line number Diff line change
@@ -1,10 +1,9 @@
var fs = require("fs"),
path = require("path"),
Canvas = require("canvas"),
getRenderer = require("../renderer/");
path = require("path"),
Canvas = require("../vendor/canvas"),
getRenderer = require("../renderer/");

function initializeCanvas(theme, cb) {

// Fonts pre-registered in bin/worker
var renderer = getRenderer(theme);

Expand All @@ -13,20 +12,26 @@ function initializeCanvas(theme, cb) {
}

// Load background image from file (done separately so renderer code can work in browser too)
fs.readFile(path.join(__dirname, "..", "settings", "backgrounds", theme.backgroundImage), function(err, raw){

if (err) {
return cb(err);
fs.readFile(
path.join(
__dirname,
"..",
"settings",
"backgrounds",
theme.backgroundImage
),
function(err, raw) {
if (err) {
return cb(err);
}

var bg = new Canvas.Image();
bg.src = raw;
renderer.backgroundImage(bg);

return cb(null, renderer);
}

var bg = new Canvas.Image;
bg.src = raw;
renderer.backgroundImage(bg);

return cb(null, renderer);

});

);
}

module.exports = initializeCanvas;
1 change: 1 addition & 0 deletions docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,3 +8,4 @@ services:
- "./settings:/usr/src/app/settings/"
- "./lib:/usr/src/app/lib/"
- "./server:/usr/src/app/server/"
- "./vendor:/usr/src/app/vendor/"
6 changes: 3 additions & 3 deletions lib/register-fonts.js
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
var fonts = require("./settings/").fonts,
_ = require("underscore"),
Canvas = require("canvas");
_ = require("underscore"),
Canvas = require("../vendor/canvas");

// Register custom fonts one time
if (Array.isArray(fonts)) {
fonts.forEach(function(font){
fonts.forEach(function(font) {
Canvas.registerFont(font.file, _.pick(font, "family", "weight", "style"));
});
}
1 change: 0 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,6 @@
"dependencies": {
"aws-sdk": "^2.2.39",
"browserify": "^13.0.0",
"canvas": "git+https://github.com/chearon/node-canvas.git#12971f64a66b",
"compression": "^1.6.1",
"d3": "^4.1.1",
"dotenv": "^2.0.0",
Expand Down
2 changes: 1 addition & 1 deletion settings/themes.json
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@
"labelText": "Dear Sugars"
},
"The Choice": {
"waveColor": "rgba(102, 102, 102, 0.25)",
"waveColor": "rgba(255, 255, 255, 0.50)",
"foregroundColor": "#fff",
"citationColor": "#fff",
"backgroundColor": "#f4d7b9",
Expand Down
Loading

0 comments on commit 331461c

Please sign in to comment.