kgaughan / mercury Goto Github PK
View Code? Open in Web Editor NEWA Planet-style feed aggregator
Home Page: https://kgaughan.github.io/mercury/
License: MIT License
A Planet-style feed aggregator
Home Page: https://kgaughan.github.io/mercury/
License: MIT License
I believe this might be something to do with some particular RSS feed not including a published date or something:
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x3918bc]
goroutine 1 [running]:
main.feedQueue.Less(0x22bb200, 0x57, 0x80, 0x20f7200, 0x57, 0x80, 0x50, 0x4f, 0x64b01)
mercury/feedqueue.go:35 +0x150
container/heap.down(0x4deed8, 0x209f6e0, 0x27, 0x57, 0x209f301)
container/heap/heap.go:109 +0x104
container/heap.Init(0x4deed8, 0x209f6e0)
container/heap/heap.go:46 +0x5c
main.main()
mercury/main.go:95 +0x864
I'll investigate this, but I think the solution would be to filter out any bad feed items like this.
This was originally written in a bit of a rush, so I skimped on the test suite. I ought to fix that.
This is trivial to add. Mercury should publish an Atom feed.
Currently, the spider could be making unnecessary requests, as it's only does conditional GET requests. While doing conditional GETs is a good thing, it should also avoid making requests by checking the Expires and Cache-Control headers to see if it should be relying on the cached version instead.
There ought to be a flag to disable this, if necessary.
Internally, it might be good to parse them into a single structure, converting max-age
into a timestamp.
See: https://github.com/marketplace/actions/goreleaser-action
When I create a release tag, I'd like to use goreleaser to generate the binaries and attach them to the release.
One gap in the functionality of Planet Mercury over Planet Venus is the lack of a plugin/filter system.
I think this should be implemented in two ways:
process
that takes a serialised entry and returns a result along the same lines as the pipeline-based method.stdin
and read the result from stdout
. There's an opportunity for batching here, which could aid with filtering. I think the top level of the request and response should be an array of entries, even if the entries are just being passed through one-by-one. That way, if an entry should be skipped, omitting the entry will be enough.
Themes should include a BOM indicating which files should be copied across to the output directory.
There's a chance that some feeds may not be sorted in the expected reverse chronological order. If a feed is refreshed, the order should be normalised.
Give a way to specify particular categories that should be included from the source feed. This would be useful for blogs that lack per-category feeds.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.