🚀 Harness the power of AI, Got RSS CAN be better and simple.

  • By Su Yang
  • Last update: May 8, 2023
  • Comments: 9

RSS Can / RSS 罐头

CodeQL Build Artifacts Go Report Card codecov Docker Image

ENGLISH | 中文文档

📰 🥫 Got RSS CAN be better and simple.

Supported Systems and Architectures

  • Linux: AMD64(x86_64)
  • macOS: AMD64(x86_64) / ARMv64

Usage

Download the binary from the github release page, with the following command:

./rssc

Docker

Pull the docker image and mount the Feed rules file in the project to the docker container:

docker pull soulteary/rss-can:0.3.6
docker run --rm -it -p 8080:8080 -v `pwd`/rules:/rules soulteary/rss-can:0.3.6

Cli Parameters & Environment

All parameters are optional, please adjust according to your needs

The parameters supported by the program can be obtained through -h or --help:

Usage of rssc:
  -debug RSS_DEBUG
    	whether to output debugging logging, env: RSS_DEBUG
  -debug-level RSS_DEBUG_LEVEL
    	set debug log printing level, env: RSS_DEBUG_LEVEL (default "info")
  -feed-path RSS_HTTP_FEED_PATH
    	http feed path, env: RSS_HTTP_FEED_PATH (default "/feed")
  -headless-addr RSS_HEADLESS_SERVER
    	set Headless server address, env: RSS_HEADLESS_SERVER (default "127.0.0.1:9222")
  -headless-slow-motion RSS_HEADLESS_SLOW_MOTION
    	set Headless slow motion, env: RSS_HEADLESS_SLOW_MOTION (default 2)
  -host RSS_HOST
    	web service listening address, env: RSS_HOST (default "0.0.0.0")
  -memory RSS_MEMORY
    	using Memory(build-in) as a cache service, env: RSS_MEMORY (default true)
  -memory-expiration RSS_MEMORY_EXPIRATION
    	set Memory cache expiration, env: RSS_MEMORY_EXPIRATION (default 600)
  -port RSS_PORT
    	web service listening port, env: RSS_PORT (default 8080)
  -proxy RSS_PROXY
    	Proxy, env: RSS_PROXY
  -redis RSS_REDIS
    	using Redis as a cache service, env: RSS_REDIS (default true)
  -redis-addr RSS_SERVER
    	set Redis server address, env: RSS_SERVER (default "127.0.0.1:6379")
  -redis-db RSS_REDIS_DB
    	set Redis db, env: RSS_REDIS_DB
  -redis-pass RSS_REDIS_PASSWD
    	set Redis password, env: RSS_REDIS_PASSWD
  -rod string
    	Set the default value of options used by rod.
  -rule RSS_RULE
    	set Rule directory, env: RSS_RULE (default "./rules")
  -timeout-headless RSS_HEADLESS_EXEC_TIMEOUT
    	set headless execution timeout, env: RSS_HEADLESS_EXEC_TIMEOUT (default 5)
  -timeout-js RSS_JS_EXEC_TIMEOUT
    	set js sandbox code execution timeout, env: RSS_JS_EXEC_TIMEOUT (default 200)
  -timeout-request RSS_REQUEST_TIMEOUT
    	set request timeout, env: RSS_REQUEST_TIMEOUT (default 5)
  -timeout-server RSS_SERVER_TIMEOUT
    	set web server response timeout, env: RSS_SERVER_TIMEOUT (default 8)

Milestone

PLAN

  • Docs: Provide a simple tutorial on how to use Docker images with common technology stacks #16
  • Pipeline: Support RSS pipeline flow, customize information processing tasks and integrate other open-source software
  • AI: NLP tasks
  • Rules: Support merge open-source software rules: rss-bridge / RSSHub
  • Tools: Quick RSS rules generator, like: damoeb/rss-proxy

License & Credits

This project is licensed under the MIT License

The rapid evolution of the project is inseparable from the following excellent open source software, you can click this link to know who they are : Credits

Download

rss-can.zip

Comments(9)

  • 1

    chore(deps): bump golang.org/x/text from 0.8.0 to 0.9.0

    Bumps golang.org/x/text from 0.8.0 to 0.9.0.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • 2

    chore(deps): bump golang.org/x/net from 0.8.0 to 0.9.0

    Bumps golang.org/x/net from 0.8.0 to 0.9.0.

    Commits
    • 694cff8 go.mod: update golang.org/x dependencies
    • 6960703 http2: log the correct error when retrying in (*Transport).RoundTripOpt
    • 9f24bb4 http2: properly discard data received after request/response body is closed
    • 08dda57 html: fix package doc typo
    • See full diff in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • 3

    chore(deps): bump golang.org/x/net from 0.4.0 to 0.8.0

    ⚠️ Dependabot is rebasing this PR ⚠️

    Rebasing might not happen immediately, so don't worry if this takes some time.

    Note: if you make any changes to this PR yourself, they will take precedence over the rebase.


    Bumps golang.org/x/net from 0.4.0 to 0.8.0.

    Commits
    • dfa2b5d go.mod: update golang.org/x dependencies
    • 8c4ef2f hmtl: add security section to package comment
    • 1d46ed8 html: have Render escape comments less often
    • 569fe81 html: add "Microsoft Outlook comment" tests
    • 8e2b117 http2/hpack: avoid quadratic complexity in hpack decoding
    • 547e7ed http2: avoid referencing ResponseWrite.Write parameter after returning
    • 39940ad html: parse comments per HTML spec
    • 87ce33e go.mod: update golang.org/x dependencies
    • 415cb6d all: fix some comments
    • 7e3c19c all: correct typos in comments
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • 4

    chore(deps): bump github.com/gin-gonic/gin from 1.8.2 to 1.9.0

    Bumps github.com/gin-gonic/gin from 1.8.2 to 1.9.0.

    Release notes

    Sourced from github.com/gin-gonic/gin's releases.

    v1.9.0

    Changelog

    BREAK CHANGES

    • Stop useless panicking in context and render #2150

    BUG FIXES

    • fix(router): tree bug where loop index is not decremented. #3460
    • fix(context): panic on NegotiateFormat - index out of range #3397
    • Add escape logic for header #3500 and #3503

    SECURITY

    • Fix the GO-2022-0969 and GO-2022-0288 vulnerabilities #3333
    • fix(security): vulnerability GO-2023-1571 #3505

    ENHANCEMENTS

    • feat: add sonic json support #3184
    • chore(file): Creates a directory named path #3316
    • fix: modify interface check way #3327
    • remove deprecated of package io/ioutil #3395
    • refactor: avoid calling strings.ToLower twice #3343
    • console logger HTTP status code bug fixed #3453
    • chore(yaml): upgrade dependency to v3 version #3456
    • chore(router): match method added to routergroup for multiple HTTP methods supporting #3464
    • chore(http): add support for go1.20 http.rwUnwrapper to gin.responseWriter #3489

    DOCS

    • docs: update markdown format #3260
    • docs(readme): Add the TOML rendering example #3400
    • docs(readme): move more example to docs/doc.md #3449
    • docs: update markdown format #3446
    Changelog

    Sourced from github.com/gin-gonic/gin's changelog.

    Gin v1.9.0

    BREAK CHANGES

    • Stop useless panicking in context and render #2150

    BUG FIXES

    • fix(router): tree bug where loop index is not decremented. #3460
    • fix(context): panic on NegotiateFormat - index out of range #3397
    • Add escape logic for header #3500 and #3503

    SECURITY

    • Fix the GO-2022-0969 and GO-2022-0288 vulnerabilities #3333
    • fix(security): vulnerability GO-2023-1571 #3505

    ENHANCEMENTS

    • feat: add sonic json support #3184
    • chore(file): Creates a directory named path #3316
    • fix: modify interface check way #3327
    • remove deprecated of package io/ioutil #3395
    • refactor: avoid calling strings.ToLower twice #3343
    • console logger HTTP status code bug fixed #3453
    • chore(yaml): upgrade dependency to v3 version #3456
    • chore(router): match method added to routergroup for multiple HTTP methods supporting #3464
    • chore(http): add support for go1.20 http.rwUnwrapper to gin.responseWriter #3489

    DOCS

    • docs: update markdown format #3260
    • docs(readme): Add the TOML rendering example #3400
    • docs(readme): move more example to docs/doc.md #3449
    • docs: update markdown format #3446
    Commits
    • ea03e10 docs(readme): release v1.9.0 version (#3474)
    • 4cee78f Fix #3500 Add escape logic for header (#3503)
    • fc1c432 fix(security): vulnerability GO-2023-1571 (#3505)
    • 81ac7d5 Add escape logic for header (#3500)
    • d07db17 chore(deps): bump golang.org/x/net from 0.5.0 to 0.6.0 (#3498)
    • c1d06e3 add supprt for go1.20 http.rwUnwrapper to gin.responseWriter (#3489)
    • bd82c9e chore(go): Add support go 1.20 (#3484)
    • 0c96a20 Stop useless panicking in context and render (#2150)
    • 153b229 chore(deps): bump github.com/ugorji/go/codec from 1.2.8 to 1.2.9 (#3491)
    • e02ae6a chore(router): match method added to routergroup for multiple HTTP methods su...
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • 5

    chore(deps): bump golang.org/x/text from 0.5.0 to 0.8.0

    Bumps golang.org/x/text from 0.5.0 to 0.8.0.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • 6

    chore(deps): bump rogchap.com/v8go from 0.7.0 to 0.9.0

    Bumps rogchap.com/v8go from 0.7.0 to 0.9.0.

    Release notes

    Sourced from rogchap.com/v8go's releases.

    v0.9.0

    What's Changed

    New Contributors

    Full Changelog: https://github.com/rogchap/v8go/compare/v0.8.0...v0.9.0

    v0.8.0

    Full changelog ⇒ v0.8.0

    What's Changed

    New Contributors

    Full Changelog: https://github.com/rogchap/v8go/compare/v0.7.0...v0.8.0

    Changelog

    Sourced from rogchap.com/v8go's changelog.

    [v0.9.0] - 2023-03-30

    Fixed

    • Upgrade to V8 11.1.277.13

    [v0.8.0] - 2023-01-19

    Added

    • Added support for Value.release() and FunctionCallbackInfo.release(). This is useful when using v8go in a long-running context.

    Fixed

    • Use string length to ensure null character-containing strings in Go/JS are not terminated early.
    • Object.Set with an empty key string is now supported
    • Upgrade to V8 10.9.194.9
    • Upgrade V8 build OS to Ubuntu 22.04
    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • 7

    chore(deps): bump github.com/go-rod/rod from 0.112.2 to 0.112.8

    Bumps github.com/go-rod/rod from 0.112.2 to 0.112.8.

    Release notes

    Sourced from github.com/go-rod/rod's releases.

    v0.112.8

    Full Changelog: https://github.com/go-rod/rod/compare/v0.112.7...v0.112.8

    v0.112.7

    What's Changed

    New Contributors

    Full Changelog: https://github.com/go-rod/rod/compare/v0.112.6...v0.112.7

    v0.112.6

    What's Changed

    New Contributors

    Full Changelog: https://github.com/go-rod/rod/compare/v0.112.5...v0.112.6

    v0.112.5

    No release notes provided.

    v0.112.4

    What's Changed

    New Contributors

    Full Changelog: https://github.com/go-rod/rod/compare/v0.112.3...v0.112.4

    v0.112.3

    No release notes provided.

    Commits
    • 4bbe74c all the actions of an element should use its own context
    • c448d2f all the actions of an element should use its own context
    • 3a88bf4 update chromium revision
    • f525037 Delete disable-dev-shm usage flag (#815)
    • b851044 chore: optimize code and doc
    • aba9252 add termux support (#808)
    • 946d337 update lint
    • 72382c6 protective code for init connection
    • 0d0e59e Add Element.Disabled() and Element.MustDisabled() (#799)
    • 70a7a73 update chromium revision
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • 8

    Charset auto detection, Mix parser support, Improve CSR, Muti-page data extract

    • [x] 2022.12.19 Support document charset auto detection, MIX parser, both use CSR and SSR parser, faster batch CSR processing, Extract combined data from detail pages and assemble detailed RSS feed data.
  • 9

    chore(deps): bump github.com/go-rod/rod from 0.112.8 to 0.112.9

    Bumps github.com/go-rod/rod from 0.112.8 to 0.112.9.

    Release notes

    Sourced from github.com/go-rod/rod's releases.

    v0.112.9

    What's Changed

    New Contributors

    Full Changelog: https://github.com/go-rod/rod/compare/v0.112.8...v0.112.9

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)