gabriel-dehan / dyson-sphere-blueprints

A community website to share dyson sphere program blueprints
47 stars 11 forks source link

Add support for DSP blueprint parsing #20

Closed LRFalk01 closed 3 years ago

LRFalk01 commented 3 years ago

Add blueprint parsing back for DSP based blueprints. This will only fill in when the blueprint is modified. We'd probably want to run something to backfill if summary is missing.

gabriel-dehan commented 3 years ago

Hey, seems like you manage to make the project work on your side, nice :)

And thanks, I Just read the code quickly, seems good, I'll have to test out a few things and I was just thinking (right before I saw your PR, a nice coincidence ahah) about the background job that would handle the backfilling.

LRFalk01 commented 3 years ago

We could simply check to see if the blueprint has been parsed in show, and if not try to parse it. This would spare the job to do it, at the expense of running the parse on load potentially. Albeit, once.

I went ahead and did this. Let me know if you want me to revert. here

LRFalk01 commented 3 years ago

I reverted my Ruby to 3.0.0 from 3.0.2 and did my best to make Gemfile.lock as clean as I could... It no longer runs for me on windows, but maybe it works for you. If it's also broken for you, I suppose the bundle update was needed.

gabriel-dehan commented 3 years ago

@LRFalk01 yeah we're not going to do it on the show page, I really don't like doing that I'll just whip up a rake task to do it, it'll take like 10 minutes or something :) I'll look into it today I should have the time

LRFalk01 commented 3 years ago

Optional parse on show reverted.

gabriel-dehan commented 3 years ago

It's live, thanks for your hard work!

LRFalk01 commented 3 years ago

Awesome. Glad it worked. I tried to make a Ruby port of DSP's MD5 alg and it's crazy slow. Going to see if someone can help me make a C port so I can call it from Ruby

gabriel-dehan commented 3 years ago

When you say you tried, you mean the gem you release right? Doesn't seem to be that slow at decoding the blueprint though?

LRFalk01 commented 3 years ago

DSP is using a custom hashing algorithm to validate the blueprint string. My port of that was very slow. If I can figure it out, it allows for a fully functioning validate method as well as the ability to encode blueprints programmatically.

On Thu, Aug 5, 2021, 4:31 PM Gabriel Dehan @.***> wrote:

When you say you tried, you mean the gem you release right? Doesn't seem to be that slow at decoding the blueprint though?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/gabriel-dehan/dyson-sphere-blueprints/pull/20#issuecomment-893775891, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABJILM35OHU3CQC6JATZ56TT3LYILANCNFSM5BP6N5CA . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&utm_campaign=notification-email .

gabriel-dehan commented 3 years ago

Yeah I figured it was a problem for encoding, that'd be amazing, especially since I plan to add some blueprint editor functionalities :)

LRFalk01 commented 3 years ago

I was able to rewrite DSP's custom hashing method into c and call it from my Ruby gem. Going to clean it up today, and push it to RubyGems. This will add an is valid method to the gem which I believe will be true to the game.

On Thu, Aug 5, 2021, 5:43 PM Gabriel Dehan @.***> wrote:

Yeah I figured it was a problem for encoding, that'd be amazing, especially since I plan to add some blueprint editor functionalities :)

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/gabriel-dehan/dyson-sphere-blueprints/pull/20#issuecomment-893827747, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABJILM5INWGV2LQGFDDGM2LT3MAWTANCNFSM5BP6N5CA . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&utm_campaign=notification-email .