duckduckgo / zeroclickinfo-spice

DuckDuckGo Instant Answers based on JavaScript (JSON) APIs
https://duckduckhack.com/
Other
548 stars 942 forks source link

Airlines: IA Disabled in Production -- No longer triggering correctly #2771

Closed moollaza closed 8 years ago

moollaza commented 8 years ago

This IA stopped working correctly and has been disabled in Production. It is still live on Beta though.

It looks like the API is still responding correctly, however there are no JS errors. Something has likely changed with the API response and so this needs further investigation to get it online again.


IA Page: http://duck.co/ia/view/airlines Maintainer: @amoraleda

moollaza commented 8 years ago

@duckduckgo/duckduckhack-contributors is anyone available to investigate this bug?

@amoraleda is currently busy and doesn't have the time to fix Airlines. This is a very important Instant Answer so getting it back online is a high priority!

I'm not sure how simple or complex the fix is, but the API is working so it may just be a simple JS fix.

marianosimone commented 8 years ago

@moollaza just to be sure... this has nothing to do with this commit: https://github.com/duckduckgo/zeroclickinfo-spice/commit/b518fa3a5a5f13ead1cd2f6995faa96ae4aa6efd which effectively disables de IA, right?

I reenabled it, and it works just fine in my codio instance...

moollaza commented 8 years ago

this has nothing to do with this commit: b518fa3 which effectively disables de IA, right?

Correct. This IA is triggered exclusively via our internal system which looks for certain websites in the link results to determine if the IA should be triggered.

In this case the issue isn't with the triggering, because we're making the client is making the API call. Something is breaking once the JSONP response comes back and the callback fires.

marianosimone commented 8 years ago

I did some manual testing, and I saw that the callback gets invoked twice: once with today's response (which works ok and shows the result), and once in yesterday's (which makes the spice call Spice.failed('airlines')

Internal triggering is a bit obscure to me, so I'm not exactly sure what's going on... but the fact that it's being called twice might be a hint for you guys

moollaza commented 8 years ago

@marianosimone thanks for investigating -- I believe the secondary API call is made by the Spice's JS code. We wanted a wider flight window (the API only supports flights from the previous or future 24 hours) so it means we needed 2 calls to figure out if the flight requested is something that recently departed or is still going to depart.

However, with more testing I'm finally seeing an error on Beta which is that the Spice JS file isn't defined because it doesn't seem to be getting loaded...I'll have to keep digging...

sahildua2305 commented 8 years ago

Did you get any more information on this? @moollaza

jagtalon commented 8 years ago

This works now! Will get it released.

screen shot 2016-06-16 at 4 25 41 pm
moollaza commented 8 years ago

@sahildua2305 this actually isn't working and was disabled again a while ago.

I messed around with it and I think I noticed some timezone issues, making the results to look like none of the flights were for the current day, causing no flights to be considered relevant.

This definitely needs some investigation. @duckduckgo/duckduckhack-contributors if anyone is interested in debugging some more advanced JS, this would be a very helpful task for us!

moollaza commented 8 years ago

@duckduckgo/duckduckhack-contributors are there any JS experts out there interested in investigating why the flights IA isn't working correctly?

I looked into it about a month ago and I think there may be an error with our handling of Timezones, or potentially the data from the API has changed causing this IA to break.

We'd love to see this IA working again!

marianosimone commented 8 years ago

@moollaza I can take a look at this again! Want to assign it to me?

marianosimone commented 8 years ago

@moollaza @jagtalon ping?