fomoapp
v4.0.0
Published
Get the latest tech news right into your CLI
Downloads
14
Maintainers
Readme
Install
npm install -g fomoapp
Usage
$ fomo
Select a specific source using the -s
flag:
$ fomo -s hn # Hacker News
You can also select a specific ordering/sub-group using the -t
flag:
$ fomo -s hn -t ask # ask HN
Limit the number of responses (for each source) using the -l
flag:
$ fomo -l 3 # showes 3 entries for each source
Configure fomo using the -c
flag:
$ fomo -c # openes the configuration menu
List all available sources (and their types) using the -p
flag:
$ fomo -p # prints all available sources
Get help using the -h
flag:
$ fomo -h
Sources
| Source | Source ID | Available types | |-------------- |----------- |----------------------------------------------------------------------------------------------------------- | | Hacker News | hn | ask (Ask HN)bestjobsnewshow (Show HN)top | | Product Hunt | ph | featurednewtop_rankingtop_votes | | TechCrunch | tc | eurofundinggearmobilesocialstartupstop | | The Verge | verge | breakingculturefullmobilesw (Software and Apps)web | | Reddit | reddit | fed (r/Frontend)js (r/javascript)prog (r/programming)tech (r/technology)webdev (r/webdev) | | Wired | wired | businessgearsciencetop |
User-defined RSS sources (New!)
You can define your own RSS sources using simple configuration files.
In order to configure a new RSS source you'll need:
- Create a new folder to hold your source configuration files.
- Create a configuration file for your desired source.
- Tell fomo where to find your config files:
- Open fomo's config menu (run
fomo -c
) - Choose "Configure external rss feeds directory"
- Enter the path to the folder you created. Make sure to use an absolute path
Source configuration file
Source configuration file should be a valid JSON file with the following structure:
{
"details": {
"name": "The source name",
"id": "The source ID"
},
"baseUrl": "base URL of the RSS feeds",
"fetchTypes": {
"key1": "First RSS feed name",
"key2": "Second RSS feed name",
"keyN": "Nth RSS feed name"
},
"defaultFetchType": "Key name of the default RSS feed (should be one the keys defined above)",
"fieldsMapping": {
"title": "title field name",
"link": "link field name",
"summary": "summary field name (optional)",
"date": "date field name (optional)",
"author": "author field name (optional)"
},
"defaultCacheTTL": "Number of minutes to cache result from this source (optional. default is 10 minutes)"
}
The final RSS feed URL is built in the following way: ${baseUrl}/${selectedFetchTypeValue}
, so make sure baseUrl
doesn't end with a comma and that non of the fetchTypes keys' values doesn't start with a comma.
For your convenience, here's an example source config file:
{
"details": {
"name": "MIT News",
"id": "mit"
},
"baseUrl": "https://news.mit.edu/topic",
"fetchTypes": {
"astronauts": "mitastronauts-rss.xml",
"ai": "mitartificial-intelligence2-rss.xml"
},
"defaultFetchType": "ai",
"fieldsMapping": {
"title": "title",
"link": "link",
"summary": "summary",
"date": "isoDate",
"author": "author"
},
"defaultCacheTTL": 10
}