<commit_before># Wowser

[![Version](https://img.shields.io/npm/v/wowser.svg?style=flat)](https://www.npmjs.org/package/wowser)
[![Join chat](https://img.shields.io/badge/gitter-join_chat-blue.svg?style=flat)](https://gitter.im/timkurvers/wowser)
[![Build Status](https://img.shields.io/travis/timkurvers/wowser.svg?style=flat)](https://travis-ci.org/timkurvers/wowser)
[![Dependency Status](https://img.shields.io/gemnasium/timkurvers/wowser.svg?style=flat)](https://gemnasium.com/timkurvers/wowser)
[![Code Climate](https://img.shields.io/codeclimate/github/timkurvers/wowser.svg?style=flat)](https://codeclimate.com/github/timkurvers/wowser)
[![Coverage](https://img.shields.io/codeclimate/coverage/github/timkurvers/wowser.svg?style=flat)](https://codeclimate.com/github/timkurvers/wowser)

World of Warcraft in the browser using JavaScript and WebGL.

Licensed under the **MIT** license, see LICENSE for more information.

![Wowser](http://office.moonsphere.net/wowser.png)

## Features

Wowser is both a low-level API as well as a graphical client, interacting with a World of Warcraft server like an official client would.

**Note:** Only Wrath of the Lich King is currently supported.

**Warning:** Do not attempt to use this client on official/retail servers as
your account may get banned.

At present, Wowser is capable of:

* Authenticating by username / password.
* Listing available realms.
* Connecting to a realm.
* Listing characters available on a realm.
* Joining the game world with a character.
* Logging game world packets, such as when a creature moves in the vicinity.

In addition, there's good progress on getting terrain and models rendered visually.


## Browser Support

Wowser is presumed to be working on any browser supporting [JavaScript's typed arrays](http://caniuse.com/#search=typed%20arrays) and at the very least a binary version of the WebSocket protocol.


## Development & Contribution

Wowser is written in [ES2015](https://babeljs.io/docs/learn-es2015/), compiled by [Babel](https://babeljs.io/), developed with [Gulp](http://gulpjs.com/) and tested through [Mocha](http://mochajs.org/).

Getting this toolchain up and running, is easy and straight-forward:

1. Get the code:

   ```shell
   git clone git://github.com/timkurvers/wowser.git
   ```

2. Download and install [Node.js](http://nodejs.org/#download) (includes npm) for your platform.

3. Install dependencies:

   ```shell
   npm install
   ```

4. Install [StormLib](https://github.com/timkurvers/blizzardry#mpq) and [BLPConverter](https://github.com/timkurvers/blizzardry#blp), which are used to handle Blizzard's game files.

5. Run `npm run gulp` which will automatically build the project when source files change.

6. To utilize raw TCP connections a WebSocket proxy is required for JavaScript clients.

   [Websockify](https://github.com/kanaka/websockify/) can - among other things - act
   as a proxy for raw TCP sockets.

   For now, you will want to proxy both port 3724 (auth) and 8129 (world). If your server is on the same machine as your client, use a different set of ports.

   ```shell
   node_modules/.bin/websockify 3724 host:3724
   node_modules/.bin/websockify 8129 host:8129
   ```

7. Use `npm run serve` to start Wowser.
  * **Note:** On first run you will be prompted to specify the following:
    1. Path to WoW client data folder (e.g. `C:/Program Files (x86)/World of Warcraft/Data`)
    2. Server port (default is `3000`)
  * You can clear settings by running `npm run reset`


When contributing, please:

* Fork the repository
* Open a pull request (preferably on a separate branch)<commit_msg>Add disclaimer to README<commit_after># Wowser

[![Version](https://img.shields.io/npm/v/wowser.svg?style=flat)](https://www.npmjs.org/package/wowser)
[![Join chat](https://img.shields.io/badge/gitter-join_chat-blue.svg?style=flat)](https://gitter.im/timkurvers/wowser)
[![Build Status](https://img.shields.io/travis/timkurvers/wowser.svg?style=flat)](https://travis-ci.org/timkurvers/wowser)
[![Dependency Status](https://img.shields.io/gemnasium/timkurvers/wowser.svg?style=flat)](https://gemnasium.com/timkurvers/wowser)
[![Code Climate](https://img.shields.io/codeclimate/github/timkurvers/wowser.svg?style=flat)](https://codeclimate.com/github/timkurvers/wowser)
[![Coverage](https://img.shields.io/codeclimate/coverage/github/timkurvers/wowser.svg?style=flat)](https://codeclimate.com/github/timkurvers/wowser)

World of Warcraft in the browser using JavaScript and WebGL.

Licensed under the **MIT** license, see LICENSE for more information.

![Wowser](http://office.moonsphere.net/wowser.png)

## Features

Wowser is both a low-level API as well as a graphical client, interacting with a World of Warcraft server like an official client would.

**Note:** Only Wrath of the Lich King is currently supported.

**Warning:** Do not attempt to use this client on official/retail servers as
your account may get banned.

At present, Wowser is capable of:

* Authenticating by username / password.
* Listing available realms.
* Connecting to a realm.
* Listing characters available on a realm.
* Joining the game world with a character.
* Logging game world packets, such as when a creature moves in the vicinity.

In addition, there's good progress on getting terrain and models rendered visually.


## Browser Support

Wowser is presumed to be working on any browser supporting [JavaScript's typed arrays](http://caniuse.com/#search=typed%20arrays) and at the very least a binary version of the WebSocket protocol.


## Development & Contribution

Wowser is written in [ES2015](https://babeljs.io/docs/learn-es2015/), compiled by [Babel](https://babeljs.io/), developed with [Gulp](http://gulpjs.com/) and tested through [Mocha](http://mochajs.org/).

Getting this toolchain up and running, is easy and straight-forward:

1. Get the code:

   ```shell
   git clone git://github.com/timkurvers/wowser.git
   ```

2. Download and install [Node.js](http://nodejs.org/#download) (includes npm) for your platform.

3. Install dependencies:

   ```shell
   npm install
   ```

4. Install [StormLib](https://github.com/timkurvers/blizzardry#mpq) and [BLPConverter](https://github.com/timkurvers/blizzardry#blp), which are used to handle Blizzard's game files.

5. Run `npm run gulp` which will automatically build the project when source files change.

6. To utilize raw TCP connections a WebSocket proxy is required for JavaScript clients.

   [Websockify](https://github.com/kanaka/websockify/) can - among other things - act
   as a proxy for raw TCP sockets.

   For now, you will want to proxy both port 3724 (auth) and 8129 (world). If your server is on the same machine as your client, use a different set of ports.

   ```shell
   node_modules/.bin/websockify 3724 host:3724
   node_modules/.bin/websockify 8129 host:8129
   ```

7. Use `npm run serve` to start Wowser.

  * On first run you will be prompted to specify the following:
    1. Path to client data folder (e.g. `C:/Program Files (x86)/World of Warcraft/Data`)
    2. Server port (default is `3000`)
  * You can clear these settings by running `npm run reset`

  **Disclaimer:** Wowser serves up resources to the browser over HTTP. Depending on your network configuration these may be available to others. Respect laws and do not distribute game data you do not own.


When contributing, please:

* Fork the repository
* Open a pull request (preferably on a separate branch)
{'fraction_non_alphanumeric': 0.11601766358892011, 'fraction_numerical': 0.013113876622507695, 'mean_word_length': 4.427741466957153, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 34, 'lorem ipsum': 0, 'www.': 2, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 6, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '35187', 'n_tokens_mistral': 2461, 'n_tokens_neox': 2275, 'n_words': 782}