Git Product home page Git Product logo

riot-api-libraries's Introduction

Public Libraries for the Riot Games API

Table of Contents

  1. Introduction
  2. How It Works
  3. I Want to Include My Library!
  4. My Library's Information is Wrong/Outdated
  5. Troubleshooting
  6. Future Work

Introduction

This repository is the home of the configuration files that power the !libs command for BottyMcBotFace on the Riot Games API Developer Community (https://discord.gg/riotgamesdevrel)

The aim of this repository is to provide a semi-automated, centralized way for 3rd Party Library Creators to manage the exposure of their libraries to other 3rd Party Developers.

How It Works

Directory Structure

The libraries directory contains language-specific subdirectories. Within these sub-directories are JSON files that contain library configurations.

The filename is the name of the repository, lowercased and with all non-alphanumeric characters removed.. If the filename already exists (aka there's another library with the same name), simply add a number to the end of your filename (e.g. lolfakejavalib1.json).

Example

For a Java library called LoL-Fake-Java-Lib, it's configuration would live at libraries/java/lolfakejavalib.json

File Structure

Each JSON file should consist of a single RepoObject JSON object with the following properties:

RepoObject

  • owner [string] - The GitHub account that owns the repository
  • repo [string] - The name of the repository
  • description [string] (Optional) - A description of the library. If omitted, the repository description will be used instead
  • language [string] - The programming language of the library
  • links [array] - An array of RepoLink objects
  • metadata [object] - An object containing metadata on the library.
  • tags [array] - An array of strings indicating which features are supported by the library. This array can contain any tags, but only the following are currently used:
    • v4 - Include if the library supports v4 of the Riot Games API. Note that BottyMcBotFace will only show a library that has the v4 tag.
    • rate-limiting - Include if the library natively handles rate limiting headers from the Riot Games API

RepoLink

  • name [string] - The display name of the link
  • url [string] - The URL of the link

Example

lolfakejavalib.json

{
    "owner": "WxWatch",
    "repo": "LoL-Fake-Java-Lib",
    "description": "This is a fake Java library for the Riot Games API",
    "language": "Java",
    "links": [
        {
            "name": "Documentation",
            "url": "https://github.com/WxWatch"
        }
    ],
    "metadata": {
        "version": "1.2.0"
    },
    "tags": [
        "v4",
        "rate-limiting"
    ]
}

I Want to Include My Library!

Awesome! Simply create a Pull Request that adds a file with your library's configuration to the appropriate folder (if your language's folder isn't there, feel free to create it!). Once we verify that everything is correct, we'll merge it in and you're all set!

My Library's Information is Wrong/Outdated

It's simple to fix! Simply create a Pull Request that updates the configuration file for your library. Once we verify that everything is correct, we'll merge it in and you're all set!

Troubleshooting

For any specific issues / feature requests, you can create a Github Issue or reach out to WxWatch on the Riot API Community Discord

Future Improvements/Suggestions

  • With the upcoming deprecation of pre-v3 APIs, a way for libraries to be marked as supporting v3 . Done!
  • Remove the language property and have the updater rely on the directory name to know the language.
  • A more robust way to show what APIs a library supports
  • A way for libraries to show any additional features it may have (rate limiter, etc.)
  • Support for libraries not hosted on Github

Disclaimer

Riot API Libraries Repository isn’t endorsed by Riot Games and doesn’t reflect the views or opinions of Riot Games or anyone officially involved in producing or managing League of Legends. League of Legends and Riot Games are trademarks or registered trademarks of Riot Games, Inc. League of Legends © Riot Games, Inc.

riot-api-libraries's People

Contributors

aj-r avatar bartekprtc avatar blossomishymae avatar canisback avatar cnguy avatar colorfulstan avatar dawidkacprzak avatar dependabot[bot] avatar dolejska-daniel avatar dysolix avatar euphillya avatar iann838 avatar jjmaldonis avatar junlarsen avatar knutzuidema avatar lionelbergen avatar mikaeldui avatar mingweisamuel avatar msx752 avatar pseudonym117 avatar querijn avatar robrua avatar sansossio avatar sousa-andre avatar stelar7 avatar thedrone7 avatar token07 avatar trilleplay avatar user-take avatar wxwatch avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

riot-api-libraries's Issues

Identifying Champion Positions page possibly outdated

Hiya! ( ˶ˆ꒳ˆ˵ )

The information provided on this page may be possibly obsolete (I was in fact told that this page I referenced was outdated >.<). Champion positions can now be identified by the teamPosition and individualPosition properties of ParticipantDto in the Match-v5 API.

Feature Request: Add folder and support for LCU Libraries

I think it'd be beneficial to have a place to keep LCU related community software. All of these libraries could probably stored inside one folder because there's so very few of them.

Right now we've got no way to track or view LCU related libraries as these are usually just shared in the Discord and then forgotten.

Arbitrary Ordering of Libraries and Languages

The languages are in alphabetical order which seems pretty arbitrary. Doesn't really matter though. More importantly, libraries seem to be in an arbitrary order (seems like by the .json timestamp right now). Would make sense to order them by stars maybe.

Custom Descriptions

It seems like utilizing the description field on the repository for the library article doesn't always add good information to the article, since the article is more specialized than Github is (aka we already know it is a library for the Riot Games API).

Suggest adding a description field to the schema to allow devs to write their own descriptions for their libraries.

v3 APIs

On July 24, all APIs that are not v3 will be turned off. Consequently, there will probably be a large number of 3rd party libraries that won't get updates for this and will, effectively, be useless to the community.

The libraries article is likely going to want to hide these libraries or deprioritize them to a "Deprecated" section of the article.

To do this, there needs to be a way for developers to indicate that their library supports v3 APIs. That way, even if they don't get updated until after the deprecation window is up, they can still update the config here and "restore their status" on the main libraries article.

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.