All Projects → Nookipedia → nookipedia-api

Nookipedia / nookipedia-api

Licence: MIT license
Nookipedia's custom API for querying data from the Animal Crossing video game series.

Programming Languages

python
139335 projects - #7 most used programming language
HTML
75241 projects
CSS
56736 projects

Projects that are alternatives of or similar to nookipedia-api

LDtkMonogame
Monogame renderer and importer for LDtk Level editor
Stars: ✭ 43 (+59.26%)
Mutual labels:  wiki
wiki
Nixos wiki [maintainer=@samueldr]
Stars: ✭ 95 (+251.85%)
Mutual labels:  wiki
dawn-api
A RESTful API package
Stars: ✭ 25 (-7.41%)
Mutual labels:  wiki
InternalSteamWebAPI
Documenting the unofficial and internal Steam Web API
Stars: ✭ 126 (+366.67%)
Mutual labels:  wiki
katapedia
この書は常に未完成である。内容の正誤に保証はない。 ITエンジニアとして役になったTips、よく忘れることを記す。 ブログに記載してもよかったが、水平方向の情報を見つけやすい本の形式をとることにした
Stars: ✭ 30 (+11.11%)
Mutual labels:  wiki
ARF-Converter
Bulk ARF file converter
Stars: ✭ 15 (-44.44%)
Mutual labels:  wiki
rurusetto
A wiki that contain all osu! rulesets
Stars: ✭ 31 (+14.81%)
Mutual labels:  wiki
wikijs ynh
Modern and powerful wiki app package for YunoHost
Stars: ✭ 19 (-29.63%)
Mutual labels:  wiki
qv2ray.github.io
🌟 Qv2ray 项目官方文档 🌟 ,使用 Vuepress / Markdown, 欢迎帮助完善 & 提交 PR!
Stars: ✭ 71 (+162.96%)
Mutual labels:  wiki
wikitext
🌐 Fast wikitext-to-HTML translator
Stars: ✭ 34 (+25.93%)
Mutual labels:  wiki
acala-wiki
Acala GitBook Wiki, https://wiki.acala.network
Stars: ✭ 22 (-18.52%)
Mutual labels:  wiki
quiki
a file-based web engine and server featuring a productive source language, markdown, image generation, categories, templates, and revision tracking
Stars: ✭ 20 (-25.93%)
Mutual labels:  wiki
yunfa wiki
云罚大百科
Stars: ✭ 12 (-55.56%)
Mutual labels:  wiki
WikiChron
Data visualization tool for wikis evolution
Stars: ✭ 19 (-29.63%)
Mutual labels:  wiki
Purity
Wiki authoring engine.
Stars: ✭ 41 (+51.85%)
Mutual labels:  wiki
kitsu-wiki
📑 The wiki frontend for Kitsu
Stars: ✭ 12 (-55.56%)
Mutual labels:  wiki
mycorrhiza
🍄📑 Filesystem and git-based wiki engine written in Go using Mycomarkup as its primary markup language.
Stars: ✭ 142 (+425.93%)
Mutual labels:  wiki
tw5-checklist
Simple checklist widget for TiddlyWiki5:
Stars: ✭ 47 (+74.07%)
Mutual labels:  wiki
yeonghoey
A personal knowledge base
Stars: ✭ 13 (-51.85%)
Mutual labels:  wiki
hirez-api-docs
🚧 Unofficial Hi-Rez Studios API documentation (and assets where possible) for Paladins, Realm Royale, and Smite.
Stars: ✭ 20 (-25.93%)
Mutual labels:  wiki

nookipedia-api

The Nookipedia API is a free RESTful service provides endpoints for retrieving Animal Crossing data pulled from the Nookipedia wiki, the largest community-driven encyclopedia about the series. Built using Python and Flask, the key benefit of using this API is access to clean structured data spanning the entire Animal Crossing series, pulled from information that is constantly updated and expanding as editors work on the wiki.

Visit https://api.nookipedia.com/ for more information.

Support

Our primary method of supporting users and developers is through the Nookipedia Discord; API users and contributors are granted access to the private #wiki-api channel where they can participate in a community of practice and receive near round-the-clock support.

You may also open an issue here on GitHub if you need help, would like to request a feature, or have a bug to report.

Contributing

Anyone is welcome and encouraged to contribute to this API!

See the contributing guide for full details and guidance.

Technical Overview

Nookipedia, which runs on the MediaWiki wiki software (same as Wikipedia), utilizes the Cargo extension. Cargo lets editors store data from templates in structured databases. For example, if you visit any villager's article on Nookipedia (e.g. Rosie), there is an infobox at the top-right of the page; all that information as defined in the infobox is also stored in a database on the backend so that it can be queried elsewhere on the wiki, or externally by third parties. See Nookipedia's Project Database for more information.

This API is essentially a wrapper for the MediaWiki Cargo API that comes as part of the extension. See the MediaWiki cargoquery endpoint for how Cargo tables can be queried directly.

While the Cargo API is freely available for querying, we have our custom-built API for the following reasons:

Deployment

This application requires Python 3 and venv.

This application has the following dependencies from apt get:

  • software-properties-common
  • memcached
  • libmemcached-dev
  • sqlite3

Before running this application:

  • Create a virtual environment by running python3 -m venv env && source env/bin/activate. Check if this is successful if (env) is added at the beginning of your prompt.
    • For those running csh or fish instead of the default shell, replace activate with activate.csh or activate.fish.
  • Install the requirements of the project by running pip install -r requirements.txt
  • Create the database for storing admin/client secrets. Replace <> values with your desired values. Note that the API requires a UUID key (<uuid>) to make calls
$ sudo sqlite3 <desired_db_name>.db
sqlite3> CREATE TABLE <keys_table_name> ( key varchar(32), email TEXT, project TEXT );
sqlite3> CREATE TABLE <admin_keys_table_name> ( key varchar(32) );
sqlite3> INSERT INTO <keys_table_name> VALUES ( "<uuid>", "test", "test" );
sqlite3> .exit 0;
  • In config.ini:
    • Fill in the SECRET_KEY with a long random string of bytes (used for securely signing the session cookie; learn more)
    • Fill in the names for the DATABASE, DB_KEYS, and DB_ADMIN_KEYS with <desired_db_name>.db, <keys_table_name>, and <admin_keys_table_name> (fill in values respective to what was used to instantiate the database above)
    • The AUTH section is optional. Nookipedia bot-owners and administrators may authenticate into the wiki to enable higher query limits by generating a username and password at Special:BotPasswords.
  • In dashboard-config.cfg, change the dashboard's password to something other than the default admin.

Local / Dev

flask run --host=0.0.0.0. Easy.

Note that Flask's built-in server is not suitable for production.

Production

There are a variety of options out there for setting up a proper production server (cloud services, Gunicorn, uWSGI, etc.). Visit Flask's deployment page for a list of options.

Nookipedia's API is deployed via uWSGI and nginx. If you'd like to set up something similar and need help, feel free to get in touch.

Licensing

The Nookipedia API codebase is licensed under the MIT license. See license file for full text.

Dependencies are copyright their respective authors and used under their respective licenses.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].