Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
db.Image.findOne({where: {url: url_nq}}).then(function(image){
if (image) {
updateImage(image, url_nq);
} else {
// As we havent seen the image in the database, we will
// then download the file, compute the MD5 hash, then
// store the file with the MD5 hash as the filename.
httpreq.get(url, {binary: true}, function(err, res){
if (err) {
console.log('NGrep: download error - ' + err);
} else {
var hash = md5(res.body);
var filename = hash + '.' + ext;
// Attempt to write the file...
fs.writeFile(config.AppServer.images + '/' + filename, res.body, function(err) {
if (err) {
console.log('NGrep: file save error - ' + err);
} else {
// Creating a new image object and inserting it into the database...
db.Image.findOrCreate({where: {hash: hash},
defaults: {
hash: hash,
filename: filename,
url: url_nq,
update(callback) {
httpreq.get(this.url, {binary: true}, (err, res) => {
if (err) {
Homey.log(err);
return;
}
// Ignore first 4 bits
const buffer = res.body.slice(4);
const buffers = [];
// Split buffers on 9x 00 followed by 04
// Not the nicest way to do this probably, ideas welcome
let lastEnd = 0;
for (let i = 10; i < buffer.length; i++) {
let split = true;
for (let x = i - 10; x < i - 1; x++) {
fontReferences.forEach(function (fontReference) {
var reference = fontReference.substring(4, fontReference.length - 1);
var fontName = reference.substring(fontReference.lastIndexOf("/"));
cssString = cssString.replace(reference, fontName);
httpreq.get(reference, {binary: true}, function (err, response) {
if (err) {
console.log(err);
} else {
files.push({
name:fontName,
file:response.body
});
}
if(files.length === fontReferences.length){
completion();
}
});
});
}
function(req, res) {
var errors = [];
var params, rep;
var requestUrl = 'http://fonts.googleapis.com' + '/css'+req.originalUrl.substring(req.originalUrl.indexOf('?'));
var indexOfFamilySeperator = req.originalUrl.indexOf(":");
if(indexOfFamilySeperator<0){
indexOfFamilySeperator = req.originalUrl.length;
}
var requestedFontName = req.originalUrl.substring(req.originalUrl.indexOf('=')+1, indexOfFamilySeperator);
requestedFontName = requestedFontName.replace(/\+/g, "");
requestedFontName = requestedFontName.charAt(0).toLocaleLowerCase()+requestedFontName.substr(1);
var requestedPackageName = req.originalUrl.substring(req.originalUrl.lastIndexOf("/")+1, req.originalUrl.indexOf('?'));
httpreq.get(requestUrl, function (err, response){
if (err){
console.log(err);
res.send(500, {error:err});
}else {
if (response.statusCode !== 200) {
res.status(response.statusCode).send(response.body);
return
}
var cssString = response.body;
var files = [];
var completion = function(){
res.setHeader('Content-Type', 'application/octet-stream');
res.setHeader('Content-disposition', 'attachment; filename='+requestedFontName+'.zip');
return new Promise((resolve) => {
http.get(this.getUpdatesJsonUrl(), (err, res) => {
if (err) {
console.warn(
`Could not get updates.json. ${IGNORE_WARNING} `
+ `An error occurred ${err.message}`
);
resolve(empty);
return;
}
if (res.statusCode !== 200) {
console.warn(
`Could not get updates.json. ${IGNORE_WARNING} A hosting `
+ `response is:\n${res.statusCode} ${res.body}`
);
resolve(empty);
return;
return new Promise((resolve, reject) => {
request.get(url, (err, response) => {
if (err) {
reject(err);
} else {
try {
resolve(JSON.parse(response.body));
} catch (e) {
e.message = `Error while parsing '${url}'. `
+ `${e.message}. Data:\n ${response.body}`;
reject(e);
}
}
});
});
}
getTVInfo(callback, timeout) {
if (!timeout) {
timeout = 5000;
}
httpreq.get(this.url, {timeout: timeout}, (err, res) => {
if (err) {
Homey.log("[GET TV INFO] " + err);
typeof callback === 'function' && callback(err, null);
return;
}
xml2js.parseString(res.body, (err, result) => {
if (err) {
Homey.log("[GET TV INFO] " + err);
typeof callback === 'function' && callback(err, null);
return;
}
try {
const tvInfo = {};
const rawTvInfo = result['root']['device'][0];