Research
Security News
Malicious npm Packages Inject SSH Backdoors via Typosquatted Libraries
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
Track the completion of sports games from a URL.
var Scores = require('scores');
var scores = new Scores({
// Default: 15min
interval: 30 // minutes,
// If you change the URL you'll probably want to override `Scores.prototype.parse`
url: 'http://place-where-scores-are.com'
});
// Will be fired on the completion of each game
scores.on('game', function(game) {
/* game
{
id: 'AN_ID_FROM_THE_DOM_NODE_123',
region: 'MIDWEST', // or null if there is no region
home: {
name: 'Home Team Name',
seed: 5, // Or null is there is no seed/rank
isWinner: false
},
visitor: {
name: 'Visitor Team Name',
seed: 12, // Or null is there is no seed/rank
isWinner: true
}
}
*/
});
scores.start();
It intermittently parses the DOM of the URL to see if any games have been completed. The parse
method is tied to the DOM structure, so if you are using a different URL, you'll want to change how that method parses the DOM to find completed games.
There is also logic (again, based on the DOM) for what to do in situations where there are no games that day or none of the games have started. If you want this behavior, you'll have to implement it in your modified parse method. See the original code for an example.
new Scores(options)
options.interval (Integer, default: 15)
Interval in minutes for how often to request the urloptions.maxInterval (Integer, default: null)
If a maxInterval is set, the interval
will be backed off by 50% each time if there are no game events until it reaches the maxInterval.options.timezone (String, default: 'America/New_York')
A moment-timezone string for which timezone you want to base dates offoptions.dailyCutoff (Integer, default: 180)
The amount of minutes after midnight that the date should switch. This allows you to keep checking for the games that might go past midnight.options.url (String)
The url to request. {date}
will be replaced with today's date as YYYYMMDD
options.ignoreInitial (Boolean, default: true)
A boolean whether to ignore any already completed games on the initial requestoptions.logger
A bucker compatible instance which will log interesting thingsmethods
start()
Start the interval to watch for new gamesstop()
Stop watchingparse(html, ignore)
Parse some html
. Will emit game
events. Will ignore
any already completed games.request(ignore)
Request the url. Will pass ignore
and the requested html
to parse()
. Will emit any error
events from the request.events
scores.on('game', function (data) {})
scores.on('error', function (error, responseCode) {})
scores.on('setTimeout', function (timeInMsUntilNextReq) {})
FAQs
Track the completion of sports games from a URL.
We found that scores demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Security News
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
Security News
MITRE's 2024 CWE Top 25 highlights critical software vulnerabilities like XSS, SQL Injection, and CSRF, reflecting shifts due to a refined ranking methodology.
Security News
In this segment of the Risky Business podcast, Feross Aboukhadijeh and Patrick Gray discuss the challenges of tracking malware discovered in open source softare.