Giter Site home page Giter Site logo

mertaybat / boardgamegeek-downloader Goto Github PK

View Code? Open in Web Editor NEW
1.0 1.0 0.0 19.09 MB

Boardgamegeek data downloader

License: MIT License

Kotlin 28.26% Shell 15.16% CSS 2.38% HTML 20.80% TypeScript 33.40%
boardgamegeek data json boardgamegeek-dataset boardgame data-scraper

boardgamegeek-downloader's Introduction

Boardgamegeek Converter

This is an opensource project which is based on data that is owned and published by boardgamegeek.com. All data that is processed by this project is owned by boardgamegeek.com.

The purpose of this project is to download all ranked game data that boardgamegeek keeps, to convert the original XML data to json format and to present this data via a small Angular single page application.

Boardgamegeek XML API v.1 is used to download the original XML data.

Prerequisites

You need to have the following software installed

- wget
- silversearcher
- Java JDK v 11+
- awk
- sed
- tar
- gzip

How It Works

You need to run

./create-data.sh

This will take about 4-5 hours to complete to download all games' XML data from boardgamegeek. In order not to generate too much load on boardgamegeek, every XML API call is performed after 5 seconds of wait. This is recommended and required by boardgamegeek.

The script will first create some necessary directories and create archives of your old runs. Then it will first download the sitemap boardgame pages from boardgamegeek.com. It will then generate a list of game ids that correspond to those games. It will then download, using the boardgamegeek XML api v.1, the xml data of these games. Finally it will run a small software program contained in the converter directory to convert all the xml data to json. It will generate 2 json files; one maps 1-1 to the xml data and another which is custom format used by the frontend application.

Frontend Application

games-list directory contains an Angular frontend application which presents all the games. Running the script will copy for you the json data to the assets of the Angular application. In order to run the frontend application perform

cd games-list
npm install
ng serve

You will have to wait a few moments until the single page application renders the material table because of the large number of data it renders. Optimizing the single page application is not within the scope of this project.

boardgamegeek-downloader's People

Contributors

mertaybat avatar

Stargazers

 avatar

Watchers

 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.