smm-course-search

A package to searching courses - Super Mario Maker

Usage no npm install needed!

<script type="module">
  import smmCourseSearch from 'https://cdn.skypack.dev/smm-course-search';
</script>

README

smm-course-search

GPLv3 license npm JsClasses GitHub Codacy Badge


Super Mario Maker is a game from Nintendo Inc. This module can search courses from the official bookmark site.
This module can request and fetching courses data information just passing a query search.

By response the module call a callback function with 2 arguments (error, courses). These arguments: the first is a boolean to check sucess in fetching; and the second is a json with courses informations (like ID, image, maker, difficulty..).

Note: This module makes analysis on the html structure of the bookmark site. In case of site changes, the smm-course-search system may not work correctly.


Installation

npm install --save smm-course-search

Package

courses json

The data information retrive:

id: '0000-0000-0000-0000',
difficulty: [..],
clearRate: number,
title: 'Name',
img: 'Url',
thumbnailImg: 'Url',
gameStyle: [..],
createdAt: Timestamp,
tag: [..],
stared: number,
played: number,
shared: number,
clears: number,
attempts: number,
maker: 
  \_ login: 'Nintendo ID',
  \_ faceImg: 'Url',
  \_ flag: 'Country',
  \_ name: 'Name'

Query Params

The query search parameters are optional, but must be pass at least one.

{
  gameStyle: ['all', 'marioBros', 'marioBros3', 'marioWorld', 'marioBrosU'],
  courseTheme: ['all', 'ground', 'underground', 'underwater', 'ghostHouse', 'airship', 'castle'],
  region: ['all', 'jp', 'us', 'eu', 'other'],
  difficulty: ['all', 'easy', 'normal', 'expert', 'superExpert'],
  tag: ['all', 'automatic', 'music', 'puzzle', 'gimmick', 'dash', 
        'remix', 'thumbnail', 'costume', 'yoshi', 'theme', 'speedrun', 
        'autoscroll', 'shootEmUp', 'track', 'tradicional'],
  uploadDate: ['all', 'pastDay', 'pastWeek', 'pastMonth', 'beforeOneMonth'],
  sortBy: ['all', 'starRate', 'totalStars', 'lowestClearRate', 'timesShared', 'mostRecent']
}

Functions

There are three functions to search courses:

  • .getCourses(query, function(error, courses){} - return first page (max 10 courses).

  • .getCoursesPages(query, (int) firstPage, (int) lastPage, function(error, courses){} - return n pages.

  • .getInfinity(query, function(error, courses){} - search all pages.


Example

Example: How search courses. See test/test.js for other examples.

/* Include */
var SmmCourseSearch = require('smm-course-search');

// ## Try search courses
// For example to get the most recents courses

var query = {
    region: 'us',
    uploadDate: 'pastDay',
    sortBy: 'mostRecent'
};

console.time('test');
SmmCourseSearch.getCourses(query, function(error, courses){
    if(error) console.log('> Courses not exist.');
    else console.log(courses);
    console.timeEnd('test');
});

Also look ~