Coder Social home page Coder Social logo

blacksagres / howlongtobeat Goto Github PK

View Code? Open in Web Editor NEW

This project forked from ckatzorke/howlongtobeat

0.0 1.0 0.0 779 KB

A simple api for https://howlongtobeat.com/

License: Do What The F*ck You Want To Public License

TypeScript 11.35% HTML 88.65%

howlongtobeat's Introduction

Howlongtobeat API

Latest Build Status npm version codecov

About & Credits

How long to beat provides information and data about games and how long it will take to finish them.

This library is a simple wrapper api to fetch data from How long to beat (search and detail). It is an awesome website and a great service, also heavily living from community data. Please check the website and support if you like what they are doing.

Usage

Install the dependency

npm install howlongtobeat --save

Use in code

Add imports

  • javascript
let hltb = require('howlongtobeat');
let hltbService = new hltb.HowLongToBeatService();
  • typescript
import { HowLongToBeatService, HowLongToBeatEntry } from 'howlongtobeat';

let hltbService = new HowLongToBeatService();

Searching for a game

hltbService.search('Nioh').then(result => console.log(result));

search() will return a Promise with an Array<HowLongToBeatEntry>

  • Search response example:
[ {
    id: '36936',
    name: 'Nioh',
    imageUrl: 'https://howlongtobeat.com/gameimages/36936_Nioh.jpg',
    timeLabels: [ [Array], [Array], [Array] ],
    gameplayMain: 34.5,
    gameplayMainExtra: 61,
    gameplayCompletionist: 93.5,
    similarity: 1,
    searchTerm: 'Nioh'
    },
    {
    id: '50419',
    name: 'Nioh: Complete Edition',
    imageUrl: 'https://howlongtobeat.com/gameimages/50419_Nioh_Complete_Edition.jpg',
    timeLabels: [ [Array], [Array], [Array] ],
    gameplayMain: 42,
    gameplayMainExtra: 84,
    gameplayCompletionist: 97,
    similarity: 0.18,
    searchTerm: 'Nioh'
    },
    ...
]

Getting details for a game

hltbService.detail('36936').then(result => console.log(result)).catch(e => console.error(e));

The search() method will return a Promise with an HowLongToBeatEntry. If the id is not known, an error is thrown, you should catch the Promise anyway.

  • Detail response example:
{
  id: '36936',
  name: 'Nioh',
  imageUrl: 'https://howlongtobeat.com/gameimages/36936_Nioh.jpg',
  timeLabels:
   [ [ 'gameplayMain', 'Main Story' ],
     [ 'gameplayMainExtra', 'Main + Extras' ],
     [ 'gameplayComplete', 'Completionist' ] ],
  gameplayMain: 34.5,
  gameplayMainExtra: 61,
  gameplayCompletionist: 93.5,
  similarity: 1,
  searchTerm: 'Nioh'
}

Time Labels

HLTB has 7 differents ways to count games hours, here they are:

  • Main Story
  • Main + Extras
  • Completionist
  • Single-Player
  • Solo
  • Co-Op
  • Vs.

Use the timeLabels attribute for mapping purposes

Known issues

Missing features

  • Error and Exception handling is almost not present, must be improved

License

WTFPL

howlongtobeat's People

Contributors

ckatzorke avatar moraisandre avatar dependabot[bot] avatar blacksagres avatar alexanderglueck avatar sreuter avatar bedwardly-down avatar leonardoalemax avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.