Compare commits
6 Commits
01c48a4950
...
cded417589
Author | SHA1 | Date |
---|---|---|
~lucidiot | cded417589 | |
~lucidiot | 734df11d95 | |
~lucidiot | a5d7575384 | |
~lucidiot | 5c13229bcd | |
~lucidiot | 40b0da7709 | |
~lucidiot | 3861f497de |
25
.drone.yml
25
.drone.yml
|
@ -31,28 +31,3 @@ steps:
|
|||
- main
|
||||
repo:
|
||||
- lucidiot/itsb
|
||||
|
||||
- name: irc
|
||||
image: plugins/irc
|
||||
settings:
|
||||
host: m455.casa
|
||||
port: 6697
|
||||
nick: lucibot
|
||||
channel: '#station'
|
||||
enable_tls: yes
|
||||
use_sasl: yes
|
||||
sasl_password:
|
||||
from_secret: sasl_password
|
||||
template: 'deploying https://tildegit.org/lucidiot/itsb/commit/{{ build.commit }} - {{ build.status }} ({{ build.link }})'
|
||||
when:
|
||||
status:
|
||||
- success
|
||||
- failure
|
||||
branch:
|
||||
- main
|
||||
repo:
|
||||
- lucidiot/itsb
|
||||
# For some reason, the IRC plugin works but causes
|
||||
# an "Error, disconnected: EOF" when quitting, which
|
||||
# makes the pipeline fail every time…
|
||||
failure: ignore
|
||||
|
|
134
itsb.xml
134
itsb.xml
|
@ -959,135 +959,15 @@
|
|||
</feed>
|
||||
</source>
|
||||
|
||||
<source id="taiid">
|
||||
<name>Transport Accident and Incident Investigations Division</name>
|
||||
<region>Lithuania</region>
|
||||
<type>Rail, aviation, marine</type>
|
||||
<frequency>50-100 reports/year</frequency>
|
||||
<url>https://tm.lrv.lt/en/fields-of-activity/transport-accident-and-incident-investigations</url>
|
||||
<feed format="rss" lang="English" id="taiid-en-all">
|
||||
<curl>
|
||||
<url>https://tm.lrv.lt/en/fields-of-activity/transport-accident-and-incident-investigations/accidents-and-incidents</url>
|
||||
</curl>
|
||||
<pup>.panel-body tr:not(:first-child)</pup>
|
||||
<jq path="taiid.jq">
|
||||
<arg name="language">en</arg>
|
||||
<arg name="title">TAIID</arg>
|
||||
<arg name="description">Lithuania Transport Accident and Incident Investigations Division reports</arg>
|
||||
<arg name="link">https://tm.lrv.lt/en/fields-of-activity/transport-accident-and-incident-investigations/accidents-and-incidents</arg>
|
||||
</jq>
|
||||
<json2xml />
|
||||
<output>taiid/en/all.xml</output>
|
||||
</feed>
|
||||
<feed format="rss" lang="English" type="air" id="taiid-en-air">
|
||||
<curl>
|
||||
<url>https://tm.lrv.lt/en/fields-of-activity/transport-accident-and-incident-investigations/civil-aviation</url>
|
||||
</curl>
|
||||
<pup>.panel-body tr:not(:first-child)</pup>
|
||||
<jq path="taiid.jq">
|
||||
<arg name="language">en</arg>
|
||||
<arg name="title">TAIID Aviation</arg>
|
||||
<arg name="description">Lithuania Transport Accident and Incident Investigations Division aviation reports</arg>
|
||||
<arg name="link">https://tm.lrv.lt/en/fields-of-activity/transport-accident-and-incident-investigations/civil-aviation</arg>
|
||||
</jq>
|
||||
<json2xml />
|
||||
<output>taiid/en/air.xml</output>
|
||||
</feed>
|
||||
<feed format="rss" lang="English" type="rail" id="taiid-en-rail">
|
||||
<curl>
|
||||
<url>https://tm.lrv.lt/en/fields-of-activity/transport-accident-and-incident-investigations/railway-transport</url>
|
||||
</curl>
|
||||
<pup>.panel-body tr:not(:first-child)</pup>
|
||||
<jq path="taiid.jq">
|
||||
<arg name="language">en</arg>
|
||||
<arg name="title">TAIID Rail</arg>
|
||||
<arg name="description">Lithuania Transport Accident and Incident Investigations Division rail reports</arg>
|
||||
<arg name="link">https://tm.lrv.lt/en/fields-of-activity/transport-accident-and-incident-investigations/railway-transport</arg>
|
||||
</jq>
|
||||
<json2xml />
|
||||
<output>taiid/en/rail.xml</output>
|
||||
</feed>
|
||||
<feed format="rss" lang="English" type="marine" id="taiid-en-marine">
|
||||
<curl>
|
||||
<url>https://tm.lrv.lt/en/fields-of-activity/transport-accident-and-incident-investigations/maritime</url>
|
||||
</curl>
|
||||
<pup>.panel-body tr:not(:first-child)</pup>
|
||||
<jq path="taiid.jq">
|
||||
<arg name="language">en</arg>
|
||||
<arg name="title">TAIID Maritime</arg>
|
||||
<arg name="description">Lithuania Transport Accident and Incident Investigations Division maritime reports</arg>
|
||||
<arg name="link">https://tm.lrv.lt/en/fields-of-activity/transport-accident-and-incident-investigations/maritime</arg>
|
||||
</jq>
|
||||
<json2xml />
|
||||
<output>taiid/en/marine.xml</output>
|
||||
</feed>
|
||||
<feed format="rss" lang="Lithuanian" id="taiid-lt-all">
|
||||
<curl>
|
||||
<url>https://tm.lrv.lt/lt/veiklos-sritys-1/transporto-avariju-ir-incidentu-tyrimai-1/avarijos-ir-incidentai</url>
|
||||
</curl>
|
||||
<pup>.panel-body tr:not(:first-child)</pup>
|
||||
<jq path="taiid.jq">
|
||||
<arg name="language">lt</arg>
|
||||
<arg name="title">TAITS</arg>
|
||||
<arg name="description">Lietuvos Transporto Avarijų ir Incidentų Tyrimai Skyriaus ataskaitos</arg>
|
||||
<arg name="link">https://tm.lrv.lt/lt/veiklos-sritys-1/transporto-avariju-ir-incidentu-tyrimai-1/avarijos-ir-incidentai</arg>
|
||||
</jq>
|
||||
<json2xml />
|
||||
<output>taiid/lt/all.xml</output>
|
||||
</feed>
|
||||
<feed format="rss" lang="Lithuanian" type="air" id="taiid-lt-air">
|
||||
<curl>
|
||||
<url>https://tm.lrv.lt/lt/veiklos-sritys-1/transporto-avariju-ir-incidentu-tyrimai-1/oro-transportas</url>
|
||||
</curl>
|
||||
<pup>.panel-body tr:not(:first-child)</pup>
|
||||
<jq path="taiid.jq">
|
||||
<arg name="language">lt</arg>
|
||||
<arg name="title">TAITS Aviacija</arg>
|
||||
<arg name="description">Lietuvos Transporto Avarijų ir Incidentų Tyrimai Skyriaus aviacija ataskaitos</arg>
|
||||
<arg name="link">https://tm.lrv.lt/lt/veiklos-sritys-1/transporto-avariju-ir-incidentu-tyrimai-1/oro-transportas</arg>
|
||||
</jq>
|
||||
<json2xml />
|
||||
<output>taiid/lt/air.xml</output>
|
||||
</feed>
|
||||
<feed format="rss" lang="Lithuanian" type="rail" id="taiid-lt-rail">
|
||||
<curl>
|
||||
<url>https://tm.lrv.lt/lt/veiklos-sritys-1/transporto-avariju-ir-incidentu-tyrimai-1/gelezinkeliu-transportas</url>
|
||||
</curl>
|
||||
<pup>.panel-body tr:not(:first-child)</pup>
|
||||
<jq path="taiid.jq">
|
||||
<arg name="language">lt</arg>
|
||||
<arg name="title">TAITS Geležinkelio</arg>
|
||||
<arg name="description">Lietuvos Transporto Avarijų ir Incidentų Tyrimai Skyriaus geležinkelio ataskaitos</arg>
|
||||
<arg name="link">https://tm.lrv.lt/lt/veiklos-sritys-1/transporto-avariju-ir-incidentu-tyrimai-1/gelezinkeliu-transportas</arg>
|
||||
</jq>
|
||||
<json2xml />
|
||||
<output>taiid/lt/rail.xml</output>
|
||||
</feed>
|
||||
<feed format="rss" lang="Lithuanian" type="marine" id="taiid-lt-marine">
|
||||
<curl>
|
||||
<url>https://tm.lrv.lt/lt/veiklos-sritys-1/transporto-avariju-ir-incidentu-tyrimai-1/juru-transportas</url>
|
||||
</curl>
|
||||
<pup>.panel-body tr:not(:first-child)</pup>
|
||||
<jq path="taiid.jq">
|
||||
<arg name="language">lt</arg>
|
||||
<arg name="title">TAITS Jūrinis</arg>
|
||||
<arg name="description">Lietuvos Transporto Avarijų ir Incidentų Tyrimai Skyriaus jūrinis ataskaitos</arg>
|
||||
<arg name="link">https://tm.lrv.lt/lt/veiklos-sritys-1/transporto-avariju-ir-incidentu-tyrimai-1/juru-transportas</arg>
|
||||
</jq>
|
||||
<json2xml />
|
||||
<output>taiid/lt/marine.xml</output>
|
||||
</feed>
|
||||
</source>
|
||||
|
||||
<source id="sia">
|
||||
<name>Safety Investigation Authority</name>
|
||||
<region>Finland</region>
|
||||
<type>Road, rail, aviation, marine, industrial, criminal, other</type>
|
||||
<frequency>20 reports/year</frequency>
|
||||
<url>https://onnettomuustutkinta.fi/</url>
|
||||
<url>https://turvallisuustutkinta.fi/</url>
|
||||
<feed format="rss" lang="English" id="sia-en">
|
||||
<curl>
|
||||
<url>https://onnettomuustutkinta.fi/api/oh-internet-sisallonhallinta/hae_nostolista.srv</url>
|
||||
<url>https://turvallisuustutkinta.fi/api/oh-internet-sisallonhallinta/hae_nostolista.srv</url>
|
||||
<header name="Content-Type">application/json; charset=UTF-8</header>
|
||||
<requestBody>
|
||||
<![CDATA[{
|
||||
|
@ -1102,14 +982,14 @@
|
|||
<arg name="language">en</arg>
|
||||
<arg name="title">SIA</arg>
|
||||
<arg name="description">Safety Investigation Authority reports</arg>
|
||||
<arg name="link">https://onnettomuustutkinta.fi/en/index/currentissues/completedinvestigations.html</arg>
|
||||
<arg name="link">https://turvallisuustutkinta.fi/en/index/currentissues/completedinvestigations.html</arg>
|
||||
</jq>
|
||||
<json2xml />
|
||||
<output>sia/en.xml</output>
|
||||
</feed>
|
||||
<feed format="rss" lang="Finnish" id="sia-fi">
|
||||
<curl>
|
||||
<url>https://onnettomuustutkinta.fi/api/oh-internet-sisallonhallinta/hae_nostolista.srv</url>
|
||||
<url>https://turvallisuustutkinta.fi/api/oh-internet-sisallonhallinta/hae_nostolista.srv</url>
|
||||
<header name="Content-Type">application/json; charset=UTF-8</header>
|
||||
<requestBody>
|
||||
<![CDATA[{
|
||||
|
@ -1124,14 +1004,14 @@
|
|||
<arg name="language">fi</arg>
|
||||
<arg name="title">Onnettomuustutkintakeskus</arg>
|
||||
<arg name="description">Onnettomuustutkintakeskus - Valmistuneet tutkinnat</arg>
|
||||
<arg name="link">https://onnettomuustutkinta.fi/fi/index/ajankohtaista/valmistuneettutkinnat.html</arg>
|
||||
<arg name="link">https://turvallisuustutkinta.fi/fi/index/ajankohtaista/valmistuneettutkinnat.html</arg>
|
||||
</jq>
|
||||
<json2xml />
|
||||
<output>sia/fi.xml</output>
|
||||
</feed>
|
||||
<feed format="rss" lang="Swedish" id="sia-sv">
|
||||
<curl>
|
||||
<url>https://onnettomuustutkinta.fi/api/oh-internet-sisallonhallinta/hae_nostolista.srv</url>
|
||||
<url>https://turvallisuustutkinta.fi/api/oh-internet-sisallonhallinta/hae_nostolista.srv</url>
|
||||
<header name="Content-Type">application/json; charset=UTF-8</header>
|
||||
<requestBody>
|
||||
<![CDATA[{
|
||||
|
@ -1146,7 +1026,7 @@
|
|||
<arg name="language">sv</arg>
|
||||
<arg name="title">Olycksutredningscentralen</arg>
|
||||
<arg name="description">Olycksutredningscentralen - Publicerade rapporter</arg>
|
||||
<arg name="link">https://onnettomuustutkinta.fi/sv/index/aktuellt/publiceraderapporter.html</arg>
|
||||
<arg name="link">https://turvallisuustutkinta.fi/sv/index/aktuellt/publiceraderapporter.html</arg>
|
||||
</jq>
|
||||
<json2xml />
|
||||
<output>sia/sv.xml</output>
|
||||
|
|
42
jq/taiid.jq
42
jq/taiid.jq
|
@ -1,42 +0,0 @@
|
|||
# TAIID feed generator
|
||||
# Required arguments:
|
||||
# $title: Feed title
|
||||
# $language: ISO 639-1 language code (lt or en)
|
||||
# $description: Feed description
|
||||
# $link: Feed link
|
||||
# Expects pup JSON output holding <tr> tags, outputs xmltodict-compatible JSON
|
||||
# WARNING: Dates are locale-sensitive; the RSS feed might not generate correctly with another locale.
|
||||
import "./helpers" as helpers;
|
||||
|
||||
{
|
||||
"rss": {
|
||||
"@version": "2.0",
|
||||
"channel": {
|
||||
"title": $title,
|
||||
"description": $description,
|
||||
"link": $link,
|
||||
"language": ($language + "-LT"),
|
||||
"pubDate": (now | strftime("%a, %d %b %Y %T %z")),
|
||||
"docs": "https://www.rssboard.org/rss-specification",
|
||||
"ttl": 1440,
|
||||
"generator": "ITSB",
|
||||
"item": [
|
||||
.[]
|
||||
# Ignore reports without links
|
||||
| select(.children[-2].children != null)
|
||||
| {
|
||||
"title": .children[-2].children[0].text,
|
||||
"link": (.children[-2].children[0].href | helpers::urlresolve($link)),
|
||||
"guid": {
|
||||
"@isPermaLink": "true",
|
||||
"#text": (.children[-2].children[0].href | helpers::urlresolve($link))
|
||||
},
|
||||
"pubDate": (
|
||||
try (.children[-3].text | strptime("%Y-%m-%d") | mktime | strftime("%a, %d %b %Y %T %z"))
|
||||
catch []
|
||||
)
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
|
@ -78,6 +78,14 @@ function log {
|
|||
}
|
||||
|
||||
[ -z "$DIR" ] && DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
|
||||
if [ -e "$DIR/.itsb-feedgen" ]; then
|
||||
echo "The lockfile at $DIR/.itsb-feedgen already exists."
|
||||
exit 1
|
||||
fi
|
||||
log Creating lockfile at "$DIR/.itsb-feedgen"
|
||||
touch "$DIR/.itsb-feedgen"
|
||||
trap "rm -f \"$DIR/.itsb-feedgen\"" EXIT INT TERM
|
||||
|
||||
log Building to $DIR/feeds
|
||||
mkdir -p $DIR/feeds
|
||||
|
||||
|
@ -98,6 +106,8 @@ fi
|
|||
<xsl:text>
|
||||
</xsl:text>
|
||||
<xsl:apply-templates select="//itsb:feed[not(itsb:link)]" />
|
||||
<xsl:text><![CDATA[
|
||||
rm "$DIR/.itsb-feedgen"]]></xsl:text>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="itsb:feed[not(itsb:link)]">
|
||||
|
@ -132,7 +142,7 @@ fi
|
|||
</xsl:template>
|
||||
|
||||
<xsl:template match="itsb:curl">
|
||||
<xsl:text>curl --fail -s </xsl:text>
|
||||
<xsl:text>curl --fail -s --max-time 60 </xsl:text>
|
||||
<xsl:if test="itsb:url/@verify-ssl = 'false' or itsb:url/@verify-ssl = '0'">
|
||||
<xsl:text>-k </xsl:text>
|
||||
</xsl:if>
|
||||
|
@ -203,7 +213,7 @@ fi
|
|||
</xsl:template>
|
||||
|
||||
<xsl:template match="itsb:pup">
|
||||
<xsl:text>pup '</xsl:text>
|
||||
<xsl:text>pup --charset utf-8 '</xsl:text>
|
||||
<xsl:call-template name="escape">
|
||||
<xsl:with-param name="text" select="text()" />
|
||||
</xsl:call-template>
|
||||
|
|
Loading…
Reference in New Issue