Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
blocks:app-note:rss-feed [2024-03-14 09:58]
mattias [Configure the script]
blocks:app-note:rss-feed [2024-03-14 13:10] (current)
mattias
Line 2: Line 2:
  
 This application note assumes previous experience with blocks, it exemplifies how to use a feed script to parse an RSS feed and use child replication in blocks to publish the content on a spot.  This application note assumes previous experience with blocks, it exemplifies how to use a feed script to parse an RSS feed and use child replication in blocks to publish the content on a spot. 
-[[https://www.rssboard.org/rss-specification| The RSS specification]] stipulates the scheme for rss. One can tell from the content of that site that the purpose of RSS has evolved over the years,  before fast internet and networks it was used to automatically download rich media such as video and imaged over night to allow us to see the latest news without having to download a video over a slow mode Now it is mainly used as source for news feeds but it is still a very useful method to provide feeds in a structured way. Some web CMS systems like in example WorldPress has built in functions to automatically publish its content in the form of rss.+[[https://www.rssboard.org/rss-specification| The RSS specification]] stipulates the scheme for rss. One can tell from the content of that site that the purpose of RSS has evolved over the years,  before fast internet and networks it was used to automatically download rich media such as video and imaged over night to allow us to see the latest news without having to download a video over a slow mode Now it is mainly used as source for news feeds but it is still a very useful method to provide feeds in a structured way. Some web CMS systems like in example WorldPress have built in functions to automatically publish its content in the form of rss.
  
 ====Installation==== ====Installation====
  
-  * Make sure you have the latest script dependencies from https://github.com/pixilab/blocks-script merged in to the /script directory in the PIXILAB-Blocks-root. +  * Make sure you have the latest script dependencies from https://github.com/pixilab/blocks-script merged in to the /script directory in the PIXILAB-Blocks-root. [[blocks:drivers:tools#install_the_scripts|Instructions here]] 
-  * Enable the script by copy the RSS.ts and RSS.js from the script/feed-archive into script/feed directory.+  * Enable the script by copying the RSS.ts and RSS.js from the script/feed-archive into script/feed directory. 
   * Restart blocks. This will enable the script and the script will write an example configuration file in scripts/files/   * Restart blocks. This will enable the script and the script will write an example configuration file in scripts/files/
   * Rename the example file Rss.config.example.json to Rss.config.json (this file it written when the script is used)   * Rename the example file Rss.config.example.json to Rss.config.json (this file it written when the script is used)
-  * Create a task with a do statement bound the scripts callable: Script.feed.RSS.reInitialize+  * Create a task with a do statement bound the scripts Script.feed.RSS.reInitialize callable.
   * Run the task to restart the script and use the sample settings.    * Run the task to restart the script and use the sample settings. 
   * Download the example block from here: {{ :blocks:app-note:rss:rss_block.zip |}}   * Download the example block from here: {{ :blocks:app-note:rss:rss_block.zip |}}
Line 43: Line 43:
 ====Configure the script==== ====Configure the script====
 ===Configuration file=== ===Configuration file===
-This feedscript can use an optional configuration file //Rss.config.json// stored in /script/files/, the script generate an exampe file //Rss.config.example.json// that can be renamed and used as a template. The text must be valid JSON format.+This feedscript can use an optional configuration file //Rss.config.json// stored in /script/files/, the script generates an exampe file //Rss.config.example.json// that can be renamed and used as a template. The text must be valid JSON format.
  
 In the example configuration we can see an entry where a preferred image size has been indicated. This setting only works for feeds that contain what's in RSS called a <media:group> containing several <media:content> because such groups can only contain different versions of the same image according to the RSS standard. The script will find the image that has the best matched the wanted size. In the example configuration we can see an entry where a preferred image size has been indicated. This setting only works for feeds that contain what's in RSS called a <media:group> containing several <media:content> because such groups can only contain different versions of the same image according to the RSS standard. The script will find the image that has the best matched the wanted size.
-Use the //maxAge// to control for how long we want to show the article in the feed, and use the maxLength  to limit how many articles to show from the feed.  The latter can be also be controlled in the block child replication //Skip// and //Limit// settings.+Use the //maxAge// to control for how long we want to show the article in the feed, and use the maxLength  to limit how many articles to show from the feed.  The latter can also be controlled in the block child replication //Skip// and //Limit// settings.
  
 Exampel configuration: Exampel configuration:
Line 81: Line 81:
 {{:blocks:app-note:rss:rsscallable.png?600|}} {{:blocks:app-note:rss:rsscallable.png?600|}}
  
-The options are basically the same as with the config file method but feeds  will only be added if a config task has been setup to be triggered at startup. +The options are basically the same as with the config file methodbut feeds will only be added if a config task has been setup to be triggered at startup. 
-If using task to configure feeds one may want to remove the config file if present.+If using the task to configure feeds one may want to remove the config file if present.
  
 ===Reinitialize the script=== ===Reinitialize the script===
Line 89: Line 89:
  
 ====Styling==== ====Styling====
-In the example block we use a CSS trick to be able to add ellipsis [...] to indicate that we cannot show all text available from the feed. It is a bit tricky to use because one must also limit the text-block manually in the way that it is just capable to show as many lines as specified in the css, else the line with the ellipsis will appear on the correct line but lines can still appear after the ellipsis. +In the example block we use a CSS trick to be able to add ellipses [...] to indicate that we cannot show the full text available from the feed items description. It is a bit tricky to use because one must also limit the text-block manually in the way that it is just capable to show as many lines as specified in the css rule, else the line with the ellipsis will appear on the correct line but lines can still appear after the ellipsis. 
-The ellipsis css rule:+The ellipsis css rule used here:
 <code> <code>
 .rss .multi-line-ellipsis { .rss .multi-line-ellipsis {
Line 98: Line 98:
 } }
 </code> </code>
 +