npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

blizzard_forum

v1.0.7

Published

An UNOFFICIAL Node.js API for Blizzard Forums.

Downloads

4

Readme

Try Now

Run a sample online to see how this API works.

Usage

Simply download & save it to your package.json with:

$ npm install --save blizzard_forum

Load it with:

// EcmaScript 6 / EcmaScript 2015
import blizzardForum from "blizzard_forum"
let blizForum = new blizzardForum()

// Lower versions
let blizzardForum = require("blizzard_forum")
let blizForum = new blizzardForum.default()

That's it. And you may want to set the host and region, which are set to https://us.battle.net and en by default:

// https://tw.battle.net/forums/zh

blizForum.set("server.host", "https://tw.battle.net")
blizForum.set("server.region", "zh")

Contribute & Development

See CONTRIBUTING.md.

Features

Functionalities of this API.

query()

Returns an object of functions.

Initalizes an query expression.

blizForum.query()

topic(forum_name, topic_id(, onError))

Returns an array of functions.

This loads a topic with URL https://us.battle.net/forums/en/forum_name/topic/topic_id.

Let's say we're loading this topic: https://us.battle.net/forums/en/bnet/topic/13815891462, thus we should run:

.query().topic("bnet", 13815891462)

onError is a function which handles the error during the loading process. It takes 1 argument: error, which contains the error information.

data()

Returns a Promise object.

This loads the topic's information. Attributes available: id, lastPosition, forum, isSticky, isFeatured, isLocked, isHidden, isFrozen, isSpam and pollId.

.query().topic(...).data().then((data) => {
    console.log(data.isLocked);
});

posts((fields)(, filters))

Returns a Promise object. Loads all posts of a topic.

fields is an array that tells the API what information you want. For example, if you pass ["isBlizzardPost"], the result you get will be something like [{isBlizzardPost: true}, {isBlizzardPost: false}, ...].

filters is a function which tells the API that if you wish a post to be in your result. It takes 1 argument, an object with everything about the post: id, position, info, attributes, create_time, lastEditTime, isBlizzardPost, url and content.

Both arguments are optional.

The example below is to print all URLs (and it will only get the URLs) of the Blizzard-staff posted contents under a topic.

.query().topic(...).posts(['url'], (post) => { return post.isBlizzardPost }).then((posts) => {
    posts.forEach(post => { console.log(post.url) })
});