pyfa-org / Phobos

Script for getting full data dump from EVE Online client
GNU General Public License v3.0
31 stars 9 forks source link

Phobos

Phobos is script for dumping EVE client data into JSON format.

It uses collection of data miners which extract data from files of various formats. It does not provide stable "API" by design: if CCP changes data scheme within EVE client, output files will also change.

A note on safety

Several data miners used in Phobos are doing potentially very dangerous thing security-wise, they are loading external code:

It doesn't mean that you should not use these miners. Generally speaking, if you trust EVE client and Phobos - you should have no issues with these miners. Phobos runs simple validation on files which will be worked upon (checksum according to the client's file registry). Still, it is recommended to run Phobos in some sandboxed environment (e.g. separate Wine prefix for Linux).

Requirements

Arguments:

Example

$ python run.py --eve=E:\eve\client\ --json=~\Desktop\phobos_tq_en-us --list="evetypes, marketgroups, metadata"

Phobos-specific data

Besides raw data Phobos pulls from client, it provides two custom containers.

phobos/metadata

Contains just two parameters: client version and UNIX timestamp of the time script was invoked.

phobos/traits

Traits for various ships. Data has following format:

Returned value:
  For single language: ({'typeID': int, 'traits': traits}, ...)
  For multi-language: ({'typeID': int, 'traits_en-us': traits, 'traits_ru': traits, ...}, ...)
  Traits: {'skills': (skill section, ...), 'role': role section, 'misc': misc section}
    // skills, role and misc fields are optional
  Section: {'header': string, 'bonuses': (bonus, ...)}
  Bonus: {'number': string, 'text': string}
    // number field is optional

For example, Cambion traits in JSON format:

{
  "traits": {
    "role": {
      "bonuses": [
        {"number": "115%", "text": "bonus to kinetic Light Missile and Rocket damage"},
        {"number": "50%", "text": "reduction in module heat damage amount taken"},
        {"text": "·Can fit Assault Damage Controls"}
      ],
      "header": "Role Bonus:"
    }, 
    "skills": [
      {
        "bonuses": [{"number": "5%", "text": "bonus to Light Missile and Rocket Launcher rate of fire"}],
        "header": "Assault Frigates bonuses (per skill level):"
      },
      {
        "bonuses": [{"number": "4%", "text": "bonus to all shield resistances"}],
        "header": "Caldari Frigate bonuses (per skill level):"
      }
    ]
  },
  "typeID": 32788
},