[feed] added channel for enclosure link on latest entry (#11345)
Signed-off-by: Juergen Pabel <juergen@pabel.net>
This commit is contained in:
parent
d6748cd481
commit
6fab06243c
@ -32,17 +32,18 @@ Optional configuration:
|
|||||||
|
|
||||||
The binding supports following channels
|
The binding supports following channels
|
||||||
|
|
||||||
| Channel Type ID | Item Type | Description |
|
| Channel Type ID | Item Type | Description |
|
||||||
|--------------------|-----------|-----------------------------------------------------|
|
|--------------------|-----------|-----------------------------------------------------------------------------------------------------------|
|
||||||
| latest-title | String | Contains the title of the last feed entry. |
|
| latest-title | String | Contains the title of the last feed entry. |
|
||||||
| latest-description | String | Contains the description of the last feed entry. |
|
| latest-description | String | Contains the description of the last feed entry. |
|
||||||
| latest-date | DateTime | Contains the published date of the last feed entry. |
|
| latest-date | DateTime | Contains the published date of the last feed entry. |
|
||||||
| latest-link | String | Contains the link of the last feed entry. |
|
| latest-link | String | Contains the link of the last feed entry. |
|
||||||
| author | String | The name of the feed author, if author is present. |
|
| latest-enclosure | String | Contains the enclosure link (podcast) of the last feed entry, if enclosure is present (used in podcasts). |
|
||||||
| title | String | The title of the feed. |
|
| author | String | The name of the feed author, if author is present. |
|
||||||
| description | String | Description of the feed. |
|
| title | String | The title of the feed. |
|
||||||
| last-update | DateTime | The last update date of the feed. |
|
| description | String | Description of the feed. |
|
||||||
| number-of-entries | Number | Number of entries in the feed. |
|
| last-update | DateTime | The last update date of the feed. |
|
||||||
|
| number-of-entries | Number | Number of entries in the feed. |
|
||||||
|
|
||||||
## Example
|
## Example
|
||||||
|
|
||||||
@ -60,6 +61,7 @@ String latest_title {channel="feed:feed:bbc:latest-title"}
|
|||||||
String latest_description {channel="feed:feed:bbc:latest-description"}
|
String latest_description {channel="feed:feed:bbc:latest-description"}
|
||||||
DateTime latest_date {channel="feed:feed:bbc:latest-date"}
|
DateTime latest_date {channel="feed:feed:bbc:latest-date"}
|
||||||
String latest_link {channel="feed:feed:bbc:latest-link"}
|
String latest_link {channel="feed:feed:bbc:latest-link"}
|
||||||
|
String latest_enclosure {channel="feed:feed:bbc:latest-enclosure"}
|
||||||
Number number_of_entries {channel="feed:feed:bbc:number-of-entries"}
|
Number number_of_entries {channel="feed:feed:bbc:number-of-entries"}
|
||||||
String description {channel="feed:feed:bbc:description"}
|
String description {channel="feed:feed:bbc:description"}
|
||||||
String author {channel="feed:feed:bbc:author"}
|
String author {channel="feed:feed:bbc:author"}
|
||||||
|
|||||||
@ -20,6 +20,7 @@ import org.openhab.core.thing.ThingTypeUID;
|
|||||||
* used across the whole binding.
|
* used across the whole binding.
|
||||||
*
|
*
|
||||||
* @author Svilen Valkanov - Initial contribution
|
* @author Svilen Valkanov - Initial contribution
|
||||||
|
* @author Juergen Pabel - Added enclosure channel
|
||||||
*/
|
*/
|
||||||
@NonNullByDefault
|
@NonNullByDefault
|
||||||
public class FeedBindingConstants {
|
public class FeedBindingConstants {
|
||||||
@ -50,6 +51,11 @@ public class FeedBindingConstants {
|
|||||||
*/
|
*/
|
||||||
public static final String CHANNEL_LATEST_LINK = "latest-link";
|
public static final String CHANNEL_LATEST_LINK = "latest-link";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Contains the enclosure link to the last feed entry.
|
||||||
|
*/
|
||||||
|
public static final String CHANNEL_LATEST_ENCLOSURE = "latest-enclosure";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Description of the feed.
|
* Description of the feed.
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -57,6 +57,7 @@ import com.rometools.rome.io.SyndFeedInput;
|
|||||||
* sent to one of the channels and for the regular updates of the feed data.
|
* sent to one of the channels and for the regular updates of the feed data.
|
||||||
*
|
*
|
||||||
* @author Svilen Valkanov - Initial contribution
|
* @author Svilen Valkanov - Initial contribution
|
||||||
|
* @author Juergen Pabel - Added enclosure channel
|
||||||
*/
|
*/
|
||||||
@NonNullByDefault
|
@NonNullByDefault
|
||||||
public class FeedHandler extends BaseThingHandler {
|
public class FeedHandler extends BaseThingHandler {
|
||||||
@ -169,6 +170,13 @@ public class FeedHandler extends BaseThingHandler {
|
|||||||
state = new StringType(getValueSafely(latestEntry.getLink()));
|
state = new StringType(getValueSafely(latestEntry.getLink()));
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case CHANNEL_LATEST_ENCLOSURE:
|
||||||
|
if (latestEntry == null || latestEntry.getEnclosures().isEmpty()) {
|
||||||
|
state = UnDefType.UNDEF;
|
||||||
|
} else {
|
||||||
|
state = new StringType(getValueSafely(latestEntry.getEnclosures().get(0).getUrl()));
|
||||||
|
}
|
||||||
|
break;
|
||||||
case CHANNEL_LATEST_PUBLISHED_DATE:
|
case CHANNEL_LATEST_PUBLISHED_DATE:
|
||||||
case CHANNEL_LAST_UPDATE:
|
case CHANNEL_LAST_UPDATE:
|
||||||
if (latestEntry == null || latestEntry.getPublishedDate() == null) {
|
if (latestEntry == null || latestEntry.getPublishedDate() == null) {
|
||||||
|
|||||||
@ -20,6 +20,7 @@
|
|||||||
<channel id="latest-description" typeId="latest-description"/>
|
<channel id="latest-description" typeId="latest-description"/>
|
||||||
<channel id="latest-date" typeId="latest-date"/>
|
<channel id="latest-date" typeId="latest-date"/>
|
||||||
<channel id="latest-link" typeId="latest-link"/>
|
<channel id="latest-link" typeId="latest-link"/>
|
||||||
|
<channel id="latest-enclosure" typeId="latest-enclosure"/>
|
||||||
<channel id="author" typeId="author"/>
|
<channel id="author" typeId="author"/>
|
||||||
<channel id="description" typeId="description"/>
|
<channel id="description" typeId="description"/>
|
||||||
<channel id="title" typeId="title"/>
|
<channel id="title" typeId="title"/>
|
||||||
@ -71,6 +72,13 @@
|
|||||||
<state readOnly="true" pattern="%s"/>
|
<state readOnly="true" pattern="%s"/>
|
||||||
</channel-type>
|
</channel-type>
|
||||||
|
|
||||||
|
<channel-type id="latest-enclosure">
|
||||||
|
<item-type>String</item-type>
|
||||||
|
<label>Latest Enclosure</label>
|
||||||
|
<description>Contains the first (if any) enclosure link of the last feed entry.</description>
|
||||||
|
<state readOnly="true" pattern="%s"/>
|
||||||
|
</channel-type>
|
||||||
|
|
||||||
<channel-type id="author" advanced="true">
|
<channel-type id="author" advanced="true">
|
||||||
<item-type>String</item-type>
|
<item-type>String</item-type>
|
||||||
<label>Author</label>
|
<label>Author</label>
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user