New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

timeeditapi

Package Overview
Dependencies
Maintainers
1
Versions
14
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

timeeditapi - npm Package Compare versions

Comparing version 3.0.1 to 4.0.0

140

api.js

@@ -6,29 +6,29 @@ 'use strict';

const _search = html => {
if(!dataParser.isValidSearch(html)){
throw 'unvalid search';
}
return dataParser.getSearchData(html);
if(!dataParser.isValidSearch(html)){
throw 'Invalid search';
}
return dataParser.getSearchData(html);
};
const getScheduleByScheduleUrl = url => {
const s = scrape(url);
return new Promise((resolve, reject) => {
if(s.isUrlTypeHtml()){
s.getHtml(url)
.then(html => dataParser.getSearchId(html))
.then(id => {
const jsonUrl = s.replaceHtmlUrlWithJson();
s.getHtml(jsonUrl)
.then(jsonString => JSON.parse(jsonString))
.then(parsedJson => resolve(dataParser.buildSchedule(parsedJson, id)))
.catch(e => reject(e));
})
.catch(e => reject(e));
}else{
s.getHtml(url)
.then(jsonString => JSON.parse(jsonString))
.then(parsedJson => resolve(dataParser.buildSchedule(parsedJson)))
.catch(e => reject(e));
}
});
const s = scrape(url);
return new Promise((resolve, reject) => {
if(s.isUrlTypeHtml()){
s.getHtml(url)
.then(html => dataParser.getSearchId(html))
.then(id => {
const jsonUrl = s.replaceHtmlUrlWithJson();
s.getHtml(jsonUrl)
.then(jsonString => JSON.parse(jsonString))
.then(parsedJson => resolve(dataParser.buildSchedule(parsedJson, id)))
.catch(reject);
})
.catch(reject);
}else{
s.getHtml(url)
.then(jsonString => JSON.parse(jsonString))
.then(parsedJson => resolve(dataParser.buildSchedule(parsedJson)))
.catch(reject);
}
});
};

@@ -42,8 +42,8 @@

const getAllTypes = url => {
const s = scrape(url);
return new Promise((resolve, reject) => {
s.getHtml(s.getTypeURL())
.then(html => resolve(dataParser.getTypes(html)))
.catch(e => reject(e));
});
const s = scrape(url);
return new Promise((resolve, reject) => {
s.getHtml(s.getTypeURL())
.then(html => resolve(dataParser.getTypes(html)))
.catch(reject);
});
};

@@ -58,8 +58,8 @@

const search = scraper => id =>
new Promise((resolve, reject) => {
scraper.getHtml(scraper.getSearchURL(id))
.then(html => _search(html))
.then(searchData => resolve(searchData))
.catch(e => reject(e));
});
new Promise((resolve, reject) => {
scraper.getHtml(scraper.getSearchURL(id))
.then(html => _search(html))
.then(searchData => resolve(searchData))
.catch(reject);
});

@@ -73,8 +73,8 @@ /**

const getSchedule = _getSchedule => id =>
new Promise((resolve, reject) => {
_getSchedule(id)
.then(data => JSON.parse(data))
.then(parsedData => resolve(dataParser.buildSchedule(parsedData, id)))
.catch(e => reject(e));
});
new Promise((resolve, reject) => {
_getSchedule(id)
.then(data => JSON.parse(data))
.then(parsedData => resolve(dataParser.buildSchedule(parsedData, id)))
.catch(reject);
});

@@ -88,8 +88,8 @@ /**

const getTodaysSchedule = _getSchedule => id =>
new Promise((resolve, reject) => {
_getSchedule(id)
.then(data => JSON.parse(data))
.then(parsedData => resolve(dataParser.buildTodaysSchedule(parsedData, id)))
.catch(e => reject(e));
});
new Promise((resolve, reject) => {
_getSchedule(id)
.then(data => JSON.parse(data))
.then(parsedData => resolve(dataParser.buildTodaysSchedule(parsedData, id)))
.catch(reject);
});

@@ -103,32 +103,32 @@ /**

const _getSchedule = scraper => id =>
new Promise((resolve, reject) => {
scraper.getHtml(scraper.getSearchURL(id))
.then(html => _search(html))
.then(searchData => searchData.map(a => a.id))
.then(dataIds => scraper.getHtml(scraper.getScheduleURL(dataIds)))
.then(jsonString => resolve(jsonString))
.catch(e => reject(e));
});
new Promise((resolve, reject) => {
scraper.getHtml(scraper.getSearchURL(id))
.then(html => _search(html))
.then(searchData => searchData.map(a => a.id))
.then(dataIds => scraper.getHtml(scraper.getScheduleURL(dataIds)))
.then(jsonString => resolve(jsonString))
.catch(reject);
});
const getScheduleByItemId = scraper => itemId =>
new Promise((resolve, reject) => {
scraper.getHtml(scraper.getScheduleURL(itemId))
.then(jsonString => resolve(jsonString))
.catch(er => reject(er));
});
new Promise((resolve, reject) => {
scraper.getHtml(scraper.getScheduleURL(itemId))
.then(jsonString => resolve(jsonString))
.catch(reject);
});
const api = (url, types) => {
const scraper = scrape(url, types);
const scraper = scrape(url, types);
return {
getSchedule: getSchedule(_getSchedule(scraper)),
getTodaysSchedule: getTodaysSchedule(_getSchedule(scraper)),
search: search(scraper),
getScheduleByItemId: getScheduleByItemId(scraper),
return {
getSchedule: getSchedule(_getSchedule(scraper)),
getTodaysSchedule: getTodaysSchedule(_getSchedule(scraper)),
search: search(scraper),
getScheduleByItemId: getScheduleByItemId(scraper),
getAllTypes,
getScheduleByScheduleUrl
};
getAllTypes,
getScheduleByScheduleUrl
};
};
module.exports = api;

@@ -6,26 +6,26 @@ 'use strict';

const _getTodaysDate = () => new Date();
const _parseDate = dateString => new Date(dateString);
const getSearchData = html => {
let $ = _loadHtml(html);
let dataIds = $('.searchObject').map((i, elem) => {
return {
id: $(elem).data('id'),
name: $(elem).data('name')
};
}).get();
return dataIds.length > 0 ? dataIds : dataIds[0];
const $ = _loadHtml(html);
const dataIds = $('.searchObject')
.map((i, elem) => {
return {
id: $(elem).data('id'),
name: $(elem).data('name')
};
}).get();
return dataIds.length > 0 ? dataIds : dataIds[0];
};
const getTypes = html => {
let $ = _loadHtml(html);
let types = $('#fancytypeselector option').map((i, elem) => {
return {
name: $(elem).text(),
value: $(elem).val()
};
}).get();
return types;
const $ = _loadHtml(html);
const types = $('#fancytypeselector option')
.map((i, elem) => {
return {
name: $(elem).text(),
value: $(elem).val()
};
}).get();
return types;
};

@@ -39,4 +39,4 @@

const getSearchId = html => {
let $ = _loadHtml(html);
return $('#searchTextWide').text().trim();
const $ = _loadHtml(html);
return $('#searchTextWide').text().trim();
};

@@ -51,20 +51,18 @@

const buildSchedule = (object, id) => {
id = id || null;
if(!object.hasOwnProperty('reservations')){ throw 'Invalid search result'; }
return object.reservations
.map((reservation) => {
return {
booking: {
time:{
startDate: reservation.startdate,
startTime: reservation.starttime,
endDate: reservation.enddate,
endTime: reservation.endtime
},
id,
bookingId: reservation.id,
columns: reservation.columns
}
};
});
id = id || null;
if(!object.hasOwnProperty('reservations')){ throw 'Invalid search result'; }
return object.reservations
.map(reservation => {
return {
time:{
startDate: reservation.startdate,
startTime: reservation.starttime,
endDate: reservation.enddate,
endTime: reservation.endtime
},
searchId: id,
bookingId: reservation.id,
columns: reservation.columns
};
});
};

@@ -78,26 +76,25 @@

const buildTodaysSchedule = (object, id) => {
let todaysSchedule = buildSchedule(object, id)
.filter((reservation) => {
let reservationDate = _parseDate(reservation.booking.time.startDate);
let todaysDate = _getTodaysDate();
return reservationDate.getFullYear() === todaysDate.getFullYear() &&
reservationDate.getMonth() === todaysDate.getMonth() &&
reservationDate.getDate() === todaysDate.getDate();
});
return todaysSchedule.length > 0 ? todaysSchedule : [{ id }] ;
const todaysSchedule = buildSchedule(object, id)
.filter((reservation) => {
const reservationDate = _parseDate(reservation.time.startDate);
const todaysDate = new Date();
return reservationDate.getFullYear() === todaysDate.getFullYear() &&
reservationDate.getMonth() === todaysDate.getMonth() &&
reservationDate.getDate() === todaysDate.getDate();
});
return todaysSchedule.length > 0 ? todaysSchedule : null;
};
const isValidSearch = html => {
let $ = _loadHtml(html);
return $('.searchObject').hasOwnProperty('0');
const $ = _loadHtml(html);
return $('.searchObject').hasOwnProperty('0');
};
module.exports = {
isValidSearch,
buildTodaysSchedule,
buildSchedule,
getSearchId,
getTypes,
getSearchData
isValidSearch,
buildTodaysSchedule,
buildSchedule,
getSearchId,
getTypes,
getSearchData
};
{
"name": "timeeditapi",
"version": "3.0.1",
"version": "4.0.0",
"description": "web scraper api to easy get schedule information from timeedit",

@@ -5,0 +5,0 @@ "main": "api.js",

@@ -8,17 +8,17 @@ 'use strict';

const app = (url, types) => {
if(!urlValidation.isValidUrl(url)){
throw 'Invalid url';
}
if(!urlValidation.isValidUrl(url)){
throw 'Invalid url';
}
return {
getHtml: scrape.getHtml,
isUrlTypeHtml: urlValidation.isUrlTypeHtml.bind(null, url),
return {
getHtml: scrape.getHtml,
isUrlTypeHtml: urlValidation.isUrlTypeHtml.bind(null, url),
replaceHtmlUrlWithJson: urlBuilder.replaceHtmlUrlWithJson.bind(null, url),
getTypeURL: urlBuilder.getTypeURL.bind(null, url),
getSearchURL: urlBuilder.getSearchURL.bind(null, url, types),
getScheduleURL: urlBuilder.getScheduleURL.bind(null, url),
};
replaceHtmlUrlWithJson: urlBuilder.replaceHtmlUrlWithJson.bind(null, url),
getTypeURL: urlBuilder.getTypeURL.bind(null, url),
getSearchURL: urlBuilder.getSearchURL.bind(null, url, types),
getScheduleURL: urlBuilder.getScheduleURL.bind(null, url),
};
};
module.exports = app;

@@ -11,10 +11,10 @@ 'use strict';

const getHtml = url =>
new Promise((resolve, reject) => {
request(url, (error, response, body) => {
if (!error && response.statusCode === 200) {
return resolve(body);
}
return reject(error);
});
new Promise((resolve, reject) => {
request(url, (error, response, body) => {
if (!error && response.statusCode === 200) {
return resolve(body);
}
return reject(error);
});
});

@@ -21,0 +21,0 @@

'use strict';
const scheduleUrl = 'ri.json?h=f&sid=3&p=0.m%2C12.n&objects=&ox=0&types=0&fe=0&h2=f';
const scheduleUrl = 'ri.json?h=f&sid=3&objects=&ox=0&types=0&fe=0&h2=f';
const searchUrlExtension = 'objects.html?max=15&fr=t&partajax=t&im=f&sid=3&l=sv_SE&search_text=&types=';

@@ -20,4 +20,4 @@ const typeUrlExtension = 'ri1Q7.html';

const replaceHtmlUrlWithJson = url => {
let reg = new RegExp('html');
return url.replace(reg, 'json');
const reg = new RegExp('html');
return url.replace(reg, 'json');
};

@@ -36,8 +36,8 @@

const makeSearchURL = (a, b, c) => {
const d = a(b);
const d = a(b);
return (url, types, id) => {
let urlArray = c(types).split(b);
return a(url)(urlArray.join(d(id)));
};
return (url, types, id) => {
const urlArray = c(types).split(b);
return a(url)(urlArray.join(d(id)));
};
};

@@ -64,8 +64,8 @@

const makeScheduleURL = (a, b, c) => {
const d = a(c);
const d = a(c);
return (url, dataIds) => {
let urlArray = b.split(c);
return a(url)(urlArray.join(d(dataIds)));
};
return (url, dataIds) => {
const urlArray = b.split(c);
return a(url)(urlArray.join(d(dataIds)));
};
};

@@ -88,8 +88,8 @@

const joinAllArgumentsIfArray = fn => (...args) =>
fn(...args.map(a => {
if(Array.isArray(a)){
return a.join();
}
return a;
}));
fn(...args.map(a => {
if(Array.isArray(a)){
return a.join();
}
return a;
}));

@@ -113,5 +113,5 @@ /**

const doIfArrayOrNot = (a, b) => (url, dataIds) =>
Array.isArray(dataIds) ?
a(url, dataIds):
b(url, dataIds);
Array.isArray(dataIds) ?
a(url, dataIds):
b(url, dataIds);

@@ -128,6 +128,6 @@ /**

module.exports = {
replaceHtmlUrlWithJson,
getTypeURL,
getSearchURL,
getScheduleURL
replaceHtmlUrlWithJson,
getTypeURL,
getSearchURL,
getScheduleURL
};

@@ -9,16 +9,16 @@ 'use strict';

const isValidUrl = url => {
let timeeditReg = new RegExp('timeedit');
let urlReg = new RegExp('^(https?:\\/\\/)?'+
'((([a-z\\d]([a-z\\d-]*[a-z\\d])*)\\.?)+[a-z]{2,}|'+
'((\\d{1,3}\\.){3}\\d{1,3}))'+
'(\\:\\d+)?(\\/[-a-z\\d%_.~+]*)*'+
'(\\?[;&a-z\\d%_.~+=-]*)?'+
'(\\#[-a-z\\d_]*)?$','i');
if(!urlReg.test(url)){
return false;
}
if(!url.match(timeeditReg)){
return false;
}
return true;
const timeeditReg = new RegExp('timeedit');
const urlReg = new RegExp('^(https?:\\/\\/)?'+
'((([a-z\\d]([a-z\\d-]*[a-z\\d])*)\\.?)+[a-z]{2,}|'+
'((\\d{1,3}\\.){3}\\d{1,3}))'+
'(\\:\\d+)?(\\/[-a-z\\d%_.~+]*)*'+
'(\\?[;&a-z\\d%_.~+=-]*)?'+
'(\\#[-a-z\\d_]*)?$','i');
if(!urlReg.test(url)){
return false;
}
if(!url.match(timeeditReg)){
return false;
}
return true;
};

@@ -31,9 +31,9 @@

const isUrlTypeHtml = url => {
let reg = new RegExp('html');
return url.match(reg);
const reg = new RegExp('html');
return url.match(reg);
};
module.exports = {
isValidUrl,
isUrlTypeHtml
isValidUrl,
isUrlTypeHtml
};
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc