Awesome
Irodr
RSS reader client for Inoreader.
This RSS reader provide a similar experience to LDR.
Purpose
- Fast read RSS like LDR
- Prefetch contents
- Mark as "read" on idle time
- Keyboard Shortcut
- Customizable by UserScript
- Provide UserScript API like
window.getActiveItem
- Provide UserScript API like
Usage
- Open https://irodr.netlify.app/
- Click Connect to Inoreader
- Click Authorize on Inoreader site
Keyboard Shortcut
- <kbd>j</kbd>: move-next-content-item
- <kbd>shift</kbd>+<kbd>j</kbd>: load-more-past-contents
- <kbd>t</kbd>: toggle-content-filter
- <kbd>k</kbd>: move-prev-content-item
- <kbd>a</kbd>: move-prev-subscription-feed
- <kbd>s</kbd>: move-next-subscription-feed
- <kbd>m</kbd>: make-subscription-read
- <kbd>v</kbd>: open-current-content-url
- <kbd>z</kbd>: toggle-subscription-feed-list
- <kbd>space</kbd>: scroll-down-content
- <kbd>shift</kbd>+<kbd>space</kbd>: scroll-up-content
- <kbd>shift</kbd>+<kbd>s</kbd>: 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:
- Visit https://www.inoreader.com/
- Open "Preferences"
- Open "Developer" tab
- Create new App
- "Redirect URL" is not required
- "Scoped": Read and Write
- Copy Client Id and Client Secret
You paste the Client ID and secret to Irodr Authorization.
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. See also resources/userScript directory.
:memo: Notes
- Inoreader doesn't support CORS
- Please support CORS :bow:
- Comment to 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. It uses Netlify Edge Functions for CORS proxy.
Recommend: You can connect to Inoreader API without CORS proxy via UserScripts.
Also, you can use own CORS proxy.
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.
Changelog
See Releases page.
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. 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.
- Fork it!
- Create your feature branch:
git checkout -b my-new-feature
- Commit your changes:
git commit -am 'Add some feature'
- Push to the branch:
git push origin my-new-feature
- Submit a pull request :D
Author
License
MIT © azu