Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/azu/irodr
RSS reader client like LDR for Inoreader.
https://github.com/azu/irodr
browser inoreader ldr rss viewer
Last synced: 2 days ago
JSON representation
RSS reader client like LDR for Inoreader.
- Host: GitHub
- URL: https://github.com/azu/irodr
- Owner: azu
- License: mit
- Created: 2017-08-27T15:25:51.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2025-01-08T18:42:49.000Z (13 days ago)
- Last Synced: 2025-01-13T05:04:35.613Z (9 days ago)
- Topics: browser, inoreader, ldr, rss, viewer
- Language: TypeScript
- Homepage: https://irodr.netlify.app/
- Size: 4.45 MB
- Stars: 129
- Watchers: 6
- Forks: 4
- Open Issues: 20
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# Irodr [![Actions Status: test](https://github.com/azu/irodr/workflows/test/badge.svg)](https://github.com/azu/irodr/actions?query=workflow%3A"test")
RSS reader client for [Inoreader](http://www.inoreader.com/ "Inoreader").
This RSS reader provide a similar experience to [LDR](http://reader.livedoor.com/).
![Screen Shot](./docs/img/irodr-behavior.gif)
## Purpose
- [x] Fast read RSS like [LDR](http://reader.livedoor.com/)
- [x] Prefetch contents
- [x] Mark as "read" on idle time
- [x] Keyboard Shortcut
- [x] Customizable by UserScript
- [x] Provide [UserScript API](src/component/container/App/Hidden/UserScript) like `window.getActiveItem`## Usage
![login gif](./docs/img/login-irodr.gif)
1. Open
2. Click **Connect to Inoreader**
3. Click **Authorize** on Inoreader site### Keyboard Shortcut
- j: move-next-content-item
- shift+j: load-more-past-contents
- t: toggle-content-filter
- k: move-prev-content-item
- a: move-prev-subscription-feed
- s: move-next-subscription-feed
- m: make-subscription-read
- v: open-current-content-url
- z: toggle-subscription-feed-list
- space: scroll-down-content
- shift+space: scroll-up-content
- shift+s: skip-and-move-next-subscription-feed### Custom Client Id and Client Secret
If you want to your Client ID/Secret of inoreader, do following steps:
1. Visit https://www.inoreader.com/
2. Open "Preferences"
3. Open "Developer" tab
4. Create new App
- "Redirect URL" is not required
- "Scoped": Read and Write
5. Copy Client Id and Client Secret![Create new App](https://monosnap.com/file/uKYqAHpIjibLkffvfHWXoSys1wVxl7.png)
You paste the Client ID and secret to Irodr Authorization.
![Irodr Authorization](https://monosnap.com/file/ki0yNr9jfRu9TBHvHxrrLOH78w8JyY.png)
## UserScript API
Irodr provide some UserScript API for UserScript like Greasemonkey.
- `window.addEventListener("userscript-init", (event) => { /* Initialize UseScript object */ })`
- `window.userScript.getActiveContent(): UserScriptActiveContent | undefined`
- `window.userScript.getActiveSubscription(): UserScriptActiveSubscription | undefined`
- `window.userScript.triggerKey(keys: string, action?: string): void`For more details, see [UserScript API document](src/component/container/App/Hidden/UserScript).
See also [resources/userScript](./resources/userScript) directory.## :memo: Notes
- Inoreader doesn't support CORS
- Please support CORS :bow:
- [x] Comment to [Inoreader Developers - User authentication via OAuth 2.0](http://www.inoreader.com/developers/oauth "Inoreader Developers - User authentication via OAuth 2.0")
- Currently, We need CORS proxy in `package.json`
- In other word, require proxy or proxy server## Development
### Usage
Run following command and open local server.
npm start
# open http://localhost:13245/### :memo: CORS workaround
Inoreader doesn't support CORS for API.
So, Irodr use CORS proxy for Inoreader API.#### Production
http://irodr.netlify.app/ work on [Netlify](https://www.netlify.com/ "Netlify").
It uses [Netlify Edge Functions](https://docs.netlify.com/edge-functions/overview/) for CORS proxy.- [netlify/edge-functions/cors-proxy.ts](./netlify/edge-functions/cors-proxy.ts)
Recommend: You can connect to Inoreader API without CORS proxy via UserScripts.
- [irodr-cros.js](./resources/userScript/irodr-cors.js "irodr-cros.js")
Also, you can use own CORS proxy.
- [irodr-custom-cors-proxy.js](./resources/userScript/irodr-custom-cors-proxy.js)
#### Local server
In local, you can just run `npm run dev` and open `http://localhost:8888/`.
npm run dev
### :memo: Limitation of Mixed-content
A browser show a warning on https://irodr.netlify.app/
It is caused by Mixed content.- [Mixed content - Web security | MDN](https://developer.mozilla.org/en-US/docs/Web/Security/Mixed_content "Mixed content - Web security | MDN")
## Changelog
See [Releases page](https://github.com/azu/irodr/releases).
## Running tests
Install devDependencies and Run `npm test`:
npm test
## Code of Conduct
Please note that this project is released with a [Contributor Code of Conduct](./CODE_OF_CONDUCT.md).
By participating in this project you agree to abide by its terms.## Contributing
Pull requests and stars are always welcome.
For bugs and feature requests, [please create an issue](https://github.com/azu/irodr/issues).
1. Fork it!
2. Create your feature branch: `git checkout -b my-new-feature`
3. Commit your changes: `git commit -am 'Add some feature'`
4. Push to the branch: `git push origin my-new-feature`
5. Submit a pull request :D## Author
- [github/azu](https://github.com/azu)
- [twitter/azu_re](https://twitter.com/azu_re)## License
MIT © azu
## OSS Supports