Coder Social home page Coder Social logo

srss's Introduction

CI Relase

๐Ÿ“˜ srss

Simple-RSS - A fast & simple command line RSS/ATOM/JSON feed reader written in Go, inspired by newsboat

Language:Go License:MIT Latest Release

This repository is still under development!. Specifications are subject to change without notice.

Features

  • Fast, efficient, and easy-to-use interface for CLI lovers
  • Supports multiple feed format: RSS, Atom and JSON
  • You can import a file in OPML format and register URL entries

Demo

demo

Usage

Commands and Options

NAME:
   srss - A simple command line RSS feed reader

USAGE:
   srss [global options] command [command options] [arguments...]

VERSION:
   0.0.3-alpha

COMMANDS:
   add, a     Add url entry
   edit, e    Edit URL entry file
   tui, t     View items in the feed with built-in pager
   open, o    Open feed URL on your browser
   import, i  Import Feed URL from OPML file
   update, u  Fetch the latest feeds and update the cache
   help, h    Shows a list of commands or help for one command

GLOBAL OPTIONS:
   --help, -h     show help (default: false)
   --version, -v  print the version (default: false)

Register or edit the feeds URL

Use the add command to register the feed URL.

The feeds URL is saved in a plain text file and you can edit it using the edit command. You can specify the command name of the editor in the argument of the -e, --editor option. If the environment variable $EDITOR is set, will use it.

srss add https://zenn.dev/topics/go/feed
srss edit --editor nvim

NOTE

The location of the URL entry file depends on the OS. It is as follows:

OS Path
Windows %APPDATA%\srss\urls.txt or C:\Users\%USER%\AppData\Roaming\srss\urls.txt
Linux $XDG_CONFIG_HOME/srss/urls.txt or $HOME/.config/srss/urls.txt
macOS $HOME/Library/Application Support/srss/urls.txt

Fetch the feeds and update cache

Run the update, u command before view the feeds. The feed is fetched from the URL described in the URL entry file and the cache is updated.

srss update

NOTE

The location of the cache file depends on the OS. It is as follows:

OS Path
Windows %LOCALAPPDATA%\srss\cache.gobor C:\Users\%USER%\AppData\Local\srss\cache.gob
Linux $XDG_CACHE_HOME/srss/cache.gobor $HOME/.cache/srss/cache.gob
macOS $HOME/Library/Caches/srss/cache.gob

View items in the feed on the terminal

Run the tui, t command then narrow down and select the items in the feed with a fuzzyfinder-like UI, you can browse the items with a less like pager UI.

srss tui

The key bindings in fuzzyfinder UI are follows:

Key Description
C-k C-p Move focus up
C-j C-n Move focus down
Enter Select the item
q Esc Quit fuzzyfinder

The key bindings in pager UI are follows:

Key Description
k Up Scroll up
j Down Scroll down
g Home Scroll on top
G End Scroll on bottom
q Esc Quit pager then back to fuzzyfinder

Open links on items in the feed in the browser

Use the open, o command, you can open the link of the selected item in your browser. You can select multiple items with Tab key.

srss open

Import feeds URL from OPML file

Use the import, i command, you can import a file in OPML format and register feeds URL.

srss import --path path/to/file.opml

Installation

Executable binaries are available from the latest release page.

Latest Release

To build from source, clone this repository then run go install. Developing with Go v1.18.2 linux/amd64

Contributing

Welcome any bug reports, requests, typo fixes, etc.

LICENSE

MIT

Author

Sheepla

srss's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

srss's Issues

Auto save cache

ใƒ•ใ‚ฃใƒผใƒ‰ใฎใ‚ญใƒฃใƒƒใ‚ทใƒฅใ‚’ไฟๅญ˜ใ—ใฆใŠใ„ใฆใƒใƒƒใƒˆใƒฏใƒผใ‚ฏใ‚ขใ‚ฏใ‚ปใ‚นใ‚’็ฏ€ๆธ›ใ™ใ‚‹ใ€‚
ๅฝขๅผใฏSQLite3? gob? JSON?

Create a menu TUI with a preview

The UI of fuzzyfinder is nice. However, it is not possible to classify items for each feed and display them in an easy-to-view. So I'm thinking of making a TUI by replacing the fuzzyfinder UI of the tui command.

runtime error: invalid memory address or nil pointer dereference

Hi. I ran the srss u as usual and after it i caught the error:

โžœ ~ $ srss tui
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x841baa]

goroutine 1 [running]:
github.com/sheepla/srss/ui.humanizeTime(0x0)
/home/runner/work/srss/srss/ui/util.go:121 +0x2a
github.com/sheepla/srss/ui.FindItem.func1(0xfd)
/home/runner/work/srss/srss/ui/finder.go:18 +0x46
github.com/ktr0731/go-fuzzyfinder.(*finder).find.func1(0x210)
/home/runner/go/pkg/mod/github.com/ktr0731/[email protected]/fuzzyfinder.go:604 +0x8a
github.com/ktr0731/go-fuzzyfinder.(*finder).find(0xc0001032b0, {0x89f500?, 0xc0008012c0}, 0xc0007fa9c0, {0xc0005f1bc0, 0x1, 0x7fb4389e6501?})
/home/runner/go/pkg/mod/github.com/ktr0731/[email protected]/fuzzyfinder.go:646 +0x6bd
github.com/ktr0731/go-fuzzyfinder.(*finder).Find(0xc0007fa9c0?, {0x89f500?, 0xc0008012c0?}, 0xc0005f1b80?, {0xc0005f1bc0?, 0x20?, 0x8ddcc0?})
/home/runner/go/pkg/mod/github.com/ktr0731/[email protected]/fuzzyfinder.go:726 +0x28
github.com/ktr0731/go-fuzzyfinder.Find({0x89f500, 0xc0008012c0}, 0x210?, {0xc0005f1bc0, 0x1, 0x1})
/home/runner/go/pkg/mod/github.com/ktr0731/[email protected]/fuzzyfinder.go:722 +0x65
github.com/sheepla/srss/ui.FindItem({0xc0000be000, 0x210, 0x210})
/home/runner/work/srss/srss/ui/finder.go:15 +0x119
main.initApp.func5(0xc000242240?)
/home/runner/work/srss/srss/main.go:169 +0x110
github.com/urfave/cli/v2.(*Command).Run(0xc000242240, 0xc000244100)
/home/runner/go/pkg/mod/github.com/urfave/cli/[email protected]/command.go:168 +0x631
github.com/urfave/cli/v2.(*App).RunContext(0xc000153380, {0xa12ec0?, 0xc0000280d8}, {0xc00001e060, 0x2, 0x2})
/home/runner/go/pkg/mod/github.com/urfave/cli/[email protected]/app.go:320 +0xbc8
github.com/urfave/cli/v2.(*App).Run(...)
/home/runner/go/pkg/mod/github.com/urfave/cli/[email protected]/app.go:226
main.main()
/home/runner/work/srss/srss/main.go:50 +0x45

set proxy and ctrl-n, ctrl-p to half scroll

i in china , many feed must proxy , please set argu to proxy

and ctrl-k just scroll
ctrl - p just half scroll

i use fzf too
and my fzf config just it
you can enhancement

Allow titles to be included in URL entry files

Currently, only valid URLs can be included in the URL entry file (urls.txt). However, as the number of feeds increases, it becomes difficult to manage, so I think it will be better if you can include the title.

e.g.

AAAAA    https://www.aaaaa.com/rss/feed.xml
BBBBB    https://www.bbbbb.com/rss/feed.xml

... or other format?

I prefer plain text because it's easier to edit in a text editor, but JSON or XML have the advantage of making it easier to add elements.

Cut out functions from `initApp()`

The initApp() function has become bloated. I want to cut out functions from the Action property to directory under the initApp() function.

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.