Transformers take raw data from Granblue Fantasy and transforms them into hensei-compatible JSON. Transformers heavily borrow from vazkii/hensei-transfer.
* Adds more new items to the database
* Updates to older migrations
These were manually updated in the database
* Adds more new items to the database
* Fixes misclassification of Grand Weapons
* Add the final new items
* Delete 20250115-summons-003.csv
* Updates weapons with granblue_id reference to Characters
* Remove extra empty lines
* Adds Orologia summon
* Modify deployment manager
Use - to make it easier to copy paste into Github PR
* Fresh credentials.yml.enc
* Update .ruby-gemset
* Made PostDeploymentManager modular
We broke PostDeploymentManager out into several files to make it easier to maintain.
We also added a "force" mode that forces the script to consider all CSV files. This is useful for testing the post-deploy script itself. This should only be used in test mode or you will dirty your database.
We also fine tuned some of the logging to make sure that both verbose and non-verbose modes are helpful.
* Add table for data version and migrate
* Modify migration and re-migrate
* Create data_version.rb
Adds a model for DataVersion
* Add aws-sdk-s3 and create aws_service.rb
AwsService handles streaming game image files from the Granblue Fantasy server to our S3 instance.
* Add importers
The Importer libraries take CSV data and import them into the database for each type. We currently support characters, summons and weapons.
* Add downloaders
Downloaders take Granblue IDs and download images for those items from the Granblue Fantasy server in all relevant sizes.
Downloaders can download to disk or stream the file directly to S3.
* Create data_importer.rb
* Fetches a list of all CSV files present in the updates folder
* Checks which have already been imported
* Sends unimported data to the appropriate Importer to handle
* Create download_manager.rb
Creates an appropriate downloader for each Granblue ID it receives
* Update download_images.rake
Most of this task has been extracted into the Downloader libraries
* Update import_data.rake
* Create deploy.rake
This task is to be run as a post-deploy script. It checks for new unimported data, imports it, then downloads the relevant images to S3 or local disk depending on the parameters provided.
* Update credentials.yml.enc
* Began working on a README and added example CSVs
* Modify importer to handle updates
This way we can also add FLBs and other uncaps easier.
* Updates only require values that will change
When updating a row, fields that don't have a provided value will not be changed
* Rebuild search indices in post deploy
* Clean up logs with LoggingHelper
* More logging adjustments
Trying to get a nice-looking output
* Change some ASCII characters
* Final ASCII changes
* Fix issues with Summon and Weapon importers
* Finish README for contributing
At the expense of making database calls, the image downloader now only attempts to download images that will exist for the specific object based on how many uncaps it has.
* Make weapon key series an array
Draconic Weapons Providence can have original Draconic Weapon keys, but also have a new key that can only be equipped to them. Thanks, Cygames.
* Update weapon.rb
* Update to check key compatibility against an array instead of an int
* Add convenience function to check if the weapon is part of a Draconic Weapon series
* Update grid_weapon.rb
Update conflict detection to:
* Detect Draconic Weapons Providence
* Add multiple weapons to conflicting weapons instead of just one
* (WIP) Update conflict view rendering
Conflict blueprints should render multiple conflict weapons instead of just one.
Also adds Draconic Weapon Providence series to various places that check series by number
* Finish last bugs
We tested to ensure that conflict resolution appears for
* Opus and Draconic
* Draconic and Draconic 2
* Draconic 2 + Opus and Draconic 1
Manually setting summon transcendence was not working due to a change that passed in the canonical object instead of the grid object to `max_uncap_level`
* Add migrations to add user roles and party visibility.
* Update schema.rb
* Add admin check in User model
* Implement rudimentary visibility of teams
* Adds checks to Party model
* Hides parties from collection views depending on visibility
* Disallows viewing private parties if you're not the owner
* Add a party's visibility to blueprint
* Add admin mode
The API Controller checks if the user is logged in and whether they are an admin, and checks for the X-Admin-Mode header
* Implement admin mode overrides
* Add admin_mode to authorize
* Note to self: Implement user editing by admins
* Fix syntax error with equality in SQL
* Fix syntax error with method name
* Fix bug in who can see restricted parties
* Add privacy control to user profiles
* Fix favorites page by fixing how query is built
* Set uncap level when GridSummon is created
If you don't, then NULL entries get sent to the database from the bookmarklet.
* Remove ap call
* Fix remix render method
* Downcase username on db end
There was a bug where users with capital letters in their name could not access their profiles after we tried to make things case insensitive.
* Remove ap call and unused code
* Add granblue.team to cors
This works now!
* Implement all-entity search to support tagging objects (#117)
* Add table for multisearch
* Add new route for searching all entities
* Make models multisearchable
We're going to start with Character, Summon, Weapon and Jobs
* Add method to Search controller
This will search with trigram first, and then if there aren't enough results, search with prefixed text search
* Add support for Japanese all-entity search
* Update grid_summons_controller.rb
Set the proper uncap level for transcended summons
* Search is broken in Japanese!
* Grid model object updates
* Adds has_one association to canonical objects
* GridWeapon is_mainhand refactored
* GridCharacter add_awakening refactored
* (WIP) Add support for inclusion/exclusion + refactor
This commit adds basic support for including/excluding objects from collection filters. There is also a refactor of the filter logic as a whole. It is only implemented in `teams` for now and is a work in progress.
* Update multisearch for exclusions
* Add nicknames to the index for multisearchable
The list of all items that shows up when you open the search modal will now list all items sorted latest first, whether the item is brand new or an item that recently got an uncap.