Giter Club home page Giter Club logo

aigis's Introduction

logo

Aigis - Your reliable DUO partner in League of legends

Master - Build Status

Source code soon to be publicly available

Program

Soon

Lib

Soon

Tools

Dumper (tools/analyser)

Dump data from LCU for research purposes. It can currently do the following:

  • Listen for all events available through the websocket, and save them to disk
  • Get the latest swagger.json

Both options will require the League client to be open. The websocket option will listen until either the League client closes down or the dumper tool is closed down.

dumper 0.1.0
Emil H. Clausen (SEQUOIIA) <[email protected]>
Dump data straight from LCU

USAGE:
    aigis_dumper.exe [FLAGS] --league-path <league-path> [SUBCOMMAND]

FLAGS:
    -d, --debug
    -h, --help       Prints help information
    -V, --version    Prints version information

OPTIONS:
    -p, --league-path <league-path>    Path to the League of Legends directory

SUBCOMMANDS:
    help         Prints this message or the help of the given subcommand(s)
    swagger      Dump swagger.json from LCU
    websocket    Dump data from LCU websocket

Analyser (tools/dumper)

Takes as input a websocket dump and outputs every single event as a JSON file, also creates a file called "AIGIS_uri-list" that lists every event.

analyser 0.1.0
Emil H. Clausen (SEQUOIIA) <[email protected]>
Analyse JSON dumps from the dumper tool

USAGE:
    aigis_analyser.exe [FLAGS] [OPTIONS] <path>

FLAGS:
    -d, --debug
    -h, --help       Prints help information
    -l, --legacy     Include this arg for parsing legacy websocket dumps
    -V, --version    Prints version information

OPTIONS:
    -o, --output-path <output-path>    Path to directory where Rust structs will be output [default: output]

ARGS:
    <path>    Path to the JSON dump

The "AIGIS_uri-list" file looks like this:

/riotclient/affinity - _riotclient_affinity.json
/lol-clash/v1/time - _lol-clash_v1_time.json
/lol-clash/v1/visible - _lol-clash_v1_visible.json
/lol-clash/v1/enabled - _lol-clash_v1_enabled.json
/lol-clash/v1/ready - _lol-clash_v1_ready.json
/lol-clash/v1/playmode-restricted - _lol-clash_v1_playmode-restricted.json
/lol-clash/v2/playmode-restricted - _lol-clash_v2_playmode-restricted.json
/lol-gameflow/v1/session - _lol-gameflow_v1_session.json
/lol-gameflow/v1/gameflow-phase - _lol-gameflow_v1_gameflow-phase.json

Lets say I wanted to see how "/lol-gameflow/v1/session" looks like. Simply just open its accompanying JSON file "_lol-gameflow_v1_session.json", which looks like this:

{"data":{"gameClient":{"observerServerIp":"","observerServerPort":0,"running":false,"serverIp":"","serverPort":0,"visible":false},"gameData":{"gameId":0,"gameName":"","isCustomGame":false,"password":"","playerChampionSelections":[],"queue":{"areFreeChampionsAllowed":false,"assetMutator":"","category":"None","description":"","detailedDescription":"","gameMode":"","gameTypeConfig":{"advancedLearningQuests":false,"allowTrades":false,"banMode":"","banTimerDuration":0,"battleBoost":false,"crossTeamChampionPool":false,"deathMatch":false,"doNotRemove":false,"duplicatePick":false,"exclusivePick":false,"id":0,"learningQuests":false,"mainPickTimerDuration":0,"maxAllowableBans":0,"name":"","onboardCoopBeginner":false,"pickMode":"","postPickTimerDuration":0,"reroll":false,"teamChampionPool":false},"id":-1,"isRanked":false,"isTeamBuilderManaged":false,"isTeamOnly":false,"mapId":0,"maxLevel":0,"maxSummonerLevelForFirstWinOfTheDay":0,"maximumParticipantListSize":0,"minLevel":0,"minimumParticipantListSize":0,"name":"","numPlayersPerTeam":0,"queueAvailability":"Available","queueRewards":{"isChampionPointsEnabled":false,"isIpEnabled":false,"isXpEnabled":false,"partySizeIpRewards":[]},"shortName":"","spectatorEnabled":false,"type":""},"spectatorsAllowed":false,"teamOne":[],"teamTwo":[]},"gameDodge":{"dodgeIds":[],"phase":"None","state":"Invalid"},"map":{"assets":null,"categorizedContentBundles":null,"description":"","gameMode":"","gameModeName":"","gameModeShortName":"","gameMutator":"","id":0,"isRGM":false,"mapStringId":"","name":"","platformId":"","platformName":"","properties":null},"phase":"Lobby"},"eventType":"Update","uri":"/lol-gameflow/v1/session"}

Analyser is currently unaware of endpoints that takes parameters, so some events may occur more than once, e.g.

/lol-game-client-chat/v1/buddies/friend1 - _lol-game-client-chat_v1_buddies_friend1.json
/lol-game-client-chat/v1/buddies/poro2 - _lol-game-client-chat_v1_buddies_poro2.json

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.