Coder Social home page Coder Social logo

moritzhayden / drg-api Goto Github PK

View Code? Open in Web Editor NEW
18.0 2.0 3.0 218 KB

DRG API is a free API which returns Deep Rock Galactic information and resources.

Home Page: https://drgapi.com

License: MIT License

Python 80.38% Shell 19.62%
digitalocean fastapi python deep-rock-galactic uvicorn bash pylint openapi mit-license drg-api

drg-api's Introduction

DRG API

Language Python Version Code Size License

CodeQL Pylint Refresh Issues Pull Requests

Table of Contents

About

DRG API is a free API which returns Deep Rock Galactic information and resources.

Documentation

Documentation using the OpenAPI Specification (OAS) is made available at drgapi.com.

Local Development

In order to run DRG API locally, perform the following steps:

  1. Install Python 3
  2. Clone this repository:
    git clone https://github.com/MoritzHayden/drg-api.git
  3. Navigate to the root directory:
    cd drg-api
  4. Execute the run.sh script with the -i and -d flags:
    ./src/scripts/run.sh -i -d
  5. Navigate to localhost:8080 in your browser

Dependencies

Dependencies are automatically scanned and updated with Dependabot on a weekly interval, as configured in dependabot.yml. For questions about security, please reference the Security Policy.

Deployment

DRG API is automatically deployed to the DigitalOcean App Platform whenever a push is made to the main branch.

Contributing

Contributions are welcome! If you found a bug or have a request, please open an issue. If you would like to contribute changes, please fork this repository, open a pull request with your changes, and link the PR with an issue. All contributions must adhere to the Code of Conduct. PRs must recieve codeowner approval before they will be merged.

Disclaimer

Neither this project nor its contributors are associated with Deep Rock Galactic or Ghost Ship Games in any way whatsoever.

Legal

Copyright © 2023 Hayden Moritz

drg-api's People

Contributors

cartoonishvillain avatar dependabot[bot] avatar matze177 avatar moritzhayden avatar syvex avatar

Stargazers

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

Watchers

 avatar  avatar

drg-api's Issues

Add Localization/Multilingual Support

It would be nice to either have multi language support directly (like fetching/caching translations from crowdin) or at least having enum values for all entries (some have already, but not all).

Typo in Mushroom Pinging Trivia

In the Trivia JSON file, the following string has a typo:
"If you ping anought at brown mushroom, mission control will say "Mushroom, mushroom, SHUT IT! Get back to work!""

anought -> enough

Weapons

So I actually had the DRG API idea a while ago, glad someone actually did it lol.

Have you thought about including weapons, builds, overclocks and the like?

If so, I'd be happy to offer my assistance and contribute as needed. :)

Allow cross origin resource sharing

Hello drg-api people o/

I've recently been looking to build a little project based on the data you're providing with your api but couldn't access it without a CORS proxy. After some research and studying of your code, my idea is to allow all origins to perform a GET call to your api.

For context - My project is hosted on StackBlitz and cannot access your data as the host.

I've tried my best to give you an idea of how I'd implement such a change with my pull request. I would be very happy to see this change happening, as it would allow hobby creators like me to access your data comfortably without their own server. If this isn't the perfect solution I'd also be happy to assist in finding it.

Kind regards,
Syvex (Scout Main) :)

Automate Deep Dive Data Extrapolation

Problem

Currently, the information in deepdives.json needs to be manually extracted from the game using a mod like Sandbox Utilities and uploaded to this repo. Obviously, this introduces a human element and is extremely error-prone, not to mention inconvenient. This process should be automated, if possible.

In an ideal world, the seeds from the official GSG DRG endpoint could be fetched as soon as they are live every Thursday at 11am UTC (cron: 0 11 * * 4) and used to extrapolate the deep dive stage information. However, this logic is only contained in-game, and can change from patch to patch.

Ideas

  • One could theoretically decompile the game, extract this logic, and rewrite it within this API. However, this logic could change and lead to rework.
  • The game could be installed on a server and, once the seeds are live, a script runs to boot the game and scrape the deep dive information from the game files in a similar way to Sandbox Utilities. However, this isn't a very elegant solution as it would require a full installation of the game to be maintained on a remote server.

New Endpoint: Current Mission Data

Really glad I stumbled upon this project, I have been hoping to find a DRG api for some time now.

Would be awesome to get an endpoint that returned the current active missions along with the mission modifiers, biome, etc. Not sure if there is something similar to the official GSG deepdive endpoint as I don't know much about it.

Is it possible to do something similar to how to deep dive data is pulled? Obviously it is much more frequent as the missions change every 30 mins.

Enhance Refresh Script

Description

Enhance the refresh script to utilize @rolfosian's drgmissions deep dive endpoint in addition to the existing spreadsheet. This will provide redundancy in case either option is down at the time of refresh.

Logic

The output text for each objective can be extrapolated using the length and/or complexity (if relevant) as follows:

Primary Objectives

Input Objective Input Length Input Complexity Output Text
Mining Expedition 1 1 Morkite x200
Mining Expedition 1 2 Morkite x225
Mining Expedition 2 2 Morkite x250
Egg Hunt 1 N/A Egg x4
Egg Hunt 2 N/A Egg x6
Egg Hunt 3 N/A Egg x8
On-Site Refining N/A N/A On-Site Refining
Salvage Operation 2 N/A Mule x2
Salvage Operation 3 N/A Mule x3
Point Extraction 2 N/A Aquarq x7
Point Extraction 3 N/A Aquarq x10
Escort Duty N/A N/A Escort Duty
Elimination 2 N/A Dreadnought x2
Elimination 3 N/A Dreadnought x3
Industrial Sabotage N/A N/A Industrial Sabotage

Secondary Objectives

Input Objective Output Text
Mining Expedition Morkite x150
Egg Hunt Egg x2
Salvage Operation Mule x2
Elimination Dreadnought x1
Black Box Black Box

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.