Giter Site home page Giter Site logo

Comments (9)

danmactough avatar danmactough commented on September 21, 2024 1

@synzen This doesn't appear to be related to feedparser.

Make the following change to your example script:

- res.body.pipe(feedparser)
+ res.body.pipe(process.stdout)

You'll still see the pathological behavior -- no output, no errors. 🤷‍♂

from node-feedparser.

rdbcci avatar rdbcci commented on September 21, 2024

Not sure what your asking, but if fetch returns encoded (gzip) you need to decode it before piping to feedparser. When I do this using a mikeal request, this feed parses just fine. Note, this feed is not encoded.

from node-feedparser.

synzen avatar synzen commented on September 21, 2024

node-fetch doesn't auto-decode the body unless prompted by the user (which is why it's lightweight and faster from my own tests - like the browser's fetch API) - instead, I let feedparser take on the body. node-fetch works over 99.999% of the time (it works reliably, and is lighter than other libs!) until I encountered this issue, where feedparser failed to detect an invalid feed for a feed like this (had me scratching me head for days as to what was happening).

You can see the link above has invalid content-encoding headers when you open it in chrome and you see ERR_CONTENT_DECODING_FAILED

image

and the explanation for it: https://stackoverflow.com/questions/14039804/error-330-neterr-content-decoding-failed. TLDR; response says its gzipped, and it's actually not - browser is confused. I assume feedparser is confused here as well, but instead of giving an error, feedparser just hangs indefinitely

from node-feedparser.

rdbcci avatar rdbcci commented on September 21, 2024

Not a node-fetch user, but parses fine as a mikeal request (feed header in this case indicates that is not encoded).

from node-feedparser.

synzen avatar synzen commented on September 21, 2024

I get that request works, as you've said before, but I'm saying the problem is that feedparser isn't emitting any errors here, as I mentioned in my last sentence

from node-feedparser.

rdbcci avatar rdbcci commented on September 21, 2024

Yea, just catching up to subtlety of your problem.

from node-feedparser.

rdbcci avatar rdbcci commented on September 21, 2024

I just set myself up to use node-fetch. When I run it with your feed and {compress:false} option, it works.

from node-feedparser.

synzen avatar synzen commented on September 21, 2024

Yes it will work in that case because then their server will send an uncompressed body, with no gzip in content-encoding (the main problem with their feed)

but the point here is that feedparser is not emitting an error here when I really think it should (if it's possible) - the issue is basically being swallowed up by the parser. I'm not trying to find a way to work with the feed, just trying to suggest that feedparser should emit an error so

  1. Someone else doesn't spend hours scratching their heads why a feed may never resolve through feedparser
  2. To handle it appropriately in error handling

from node-feedparser.

rdbcci avatar rdbcci commented on September 21, 2024

I think Feedparser is just waiting for input. I think node-fetch maybe hung, not handling the decoding correctly in your offending feeds case. If that's the case Feedparser may not be the place for the fix.

from node-feedparser.

Related Issues (20)

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.