[-]
[+]
|
Changed |
_service:tar_git:harbour-avarisk.spec
|
|
[-]
[+]
|
Changed |
_service
^
|
@@ -1,23 +1,9 @@
<services>
<service name="tar_git">
- <param name="url">https://github.com/fridlmue/harbour-avarisk.git</param>
- <param name="branch">main</param>
- <param name="revision">0.9.1</param>
- </service>
-</services>
-
-<!--
-<services>
- <service name="webhook">
- <param name="repourl">https://github.com/fridlmue/harbour-avarisk.git</param>
- <param name="branch">main</param>
- </service>
- <service name="tar_git">
<param name="url">https://github.com/fridlmue/harbour-avarisk.git</param>
<param name="branch">main</param>
- <param name="revision">3c49a11332a8965a39f493e8f26a14c0745a2393</param>
+ <param name="revision">edbfd38e8c2b2f818fd91427ecc5676388e87e69</param>
<param name="token"/>
<param name="debian">N</param>
<param name="dumb">N</param>
</service></services>
--->
\ No newline at end of file
|
[-]
[+]
|
Deleted |
_service:tar_git:harbour-avarisk-0.9.1.tar.bz2/qml/pages/DangerPage.qml
^
|
@@ -1,581 +0,0 @@
-/*
- Copyright (C) 2020 Friedrich Mütschele and other contributors
- This file is part of avaRisk.
- avaRisk is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
- avaRisk is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
- You should have received a copy of the GNU General Public License
- along with avaRisk. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-import QtQuick 2.2
-import Sailfish.Silica 1.0
-import io.thp.pyotherside 1.5
-import org.freedesktop.contextkit 1.0
-
-Page {
- property string regionID
- property string regionName
- property string country
- property string macroRegion
- property string connection
- property var pm_only
- property var avaReport
- property var avaReportPM
-
- property bool connectionOnceUpdated: false
- property bool pm_available: false
-
- property var dangerLevelError: qsTr("Downloading...")
-
- property var dangerLevel: 0
-
- property var dangerLevel_h: 0
- property var dangerLevel_l: 0
- property var dangerLevel_alti: ""
- property var highlights: ""
- property var comment: ""
- property var structure: ""
- property var tendency: ""
- property date repDate: new Date()
- property date validFrom: new Date()
- property date validTo: new Date()
- property var provider: ""
- property var downloadSucc: false
- property var cached: false
-
- property bool busy: false
-
- property var dPatterns
-
- function dangerLevelText(x) {
- if (x === 1) {return qsTr("low") }
- else if (x === 2) {return qsTr("moderate") }
- else if (x === 3) {return qsTr("considerable")}
- else if (x === 4) {return qsTr("high") }
- else if (x === 5) {return qsTr("very high") }
- else {return qsTr("loading") }
- }
-
- function getAvaDangElevText(validElev) {
- if (validElev) {
- if (validElev.indexOf('>') > -1) {
- return "above"
- }
- else if (validElev.indexOf('<') > -1) {
- return "below"
- }
- }
- return "all"
- }
-
- function getElevFromString(validElev) {
- if (validElev) {
- if (validElev.indexOf('Treeline') > -1) {
- return qsTr("treeline")
- }
-
- var elev = validElev
- if ((validElev.indexOf('<') > -1) || (validElev.indexOf('>') > -1)) {
- elev = validElev.substring(1)
- return elev + " m"
- }
- }
-
- return qsTr("entire range")
-
- }
-
- /*function convertUTCDateToLocalDate(date) {
- var newDate = new Date(date.getTime() - date.getTimezoneOffset()*60*1000);
- return newDate;
- }*/
-
- function parseAvaReportJSON(avaReport) {
- for (var elem in avaReport.danger_main) {
- if (avaReport.danger_main[elem]['main_value'] > dangerLevel) {
- dangerLevel = avaReport.danger_main[elem]['main_value']
- }
- }
-
- // console.log("Plot Report: " + avaReport.report_id)
-
- dangerLevel_h = avaReport.danger_main[0]['main_value'];
- if (avaReport.danger_main.length > 1) {
- dangerLevel_l = avaReport.danger_main[1]['main_value'];
- dangerLevel_alti = avaReport.danger_main[1]['valid_elevation'];
- }
- else {
- dangerLevel_l = avaReport.danger_main[0]['main_value'];
- }
-
- validFrom = new Date(avaReport.validity_begin)
- validTo = new Date(avaReport.validity_end)
- repDate = new Date(avaReport.rep_date)
-
- dPatterns = avaReport.problem_list
-
- for (var elem in avaReport.report_texts) {
- if (avaReport.report_texts[elem].text_type === 'activity_hl') {
- highlights = avaReport.report_texts[elem].text_content;
- }
- if (avaReport.report_texts[elem].text_type === 'activity_com') {
- comment = avaReport.report_texts[elem].text_content;
- }
- if (avaReport.report_texts[elem].text_type === 'snow_struct_com') {
- structure = avaReport.report_texts[elem].text_content;
- }
- if (avaReport.report_texts[elem].text_type === 'tendency_com') {
- tendency = avaReport.report_texts[elem].text_content;
- }
- }
- }
-
- ContextProperty {
- key: "Internet.NetworkState"
- onValueChanged: {
- if (connection == "" || connectionOnceUpdated) {
- connection = value
- connectionOnceUpdated = true
- }
- if (connection == "connected") {
- connectionOnceUpdated = true
- }
- }
- }
-
- onStatusChanged: {
- if ((status == Component.Ready) && (pm_only == false))
- {
- python.startDownload();
- // console.log('Start DL')
- // console.log(pm_only)
- }
- if ((status == Component.Ready) && pm_only)
- {
- parseAvaReportJSON(avaReport);
- // console.log('Load from avaReport')
- // console.log(pm_only)
- downloadSucc = true
- }
- }
-
- SilicaFlickable {
- anchors.fill: parent
- contentHeight: column.height
- bottomMargin: Theme.paddingSmall
-
-
- BusyIndicator {
- id: busyInd
- size: BusyIndicatorSize.Large
- anchors.centerIn: parent
- running: busy
- }
-
- VerticalScrollDecorator{}
-
- PullDownMenu {
- MenuItem {
- text: qsTr("Reload")
- visible: ((connection == "connected") && (pm_only == false)) ? true : false
- onClicked: {
- python.startDownload();
- }
- }
- MenuItem {
- text: qsTr("Know-How")
- onClicked: pageStack.push(Qt.resolvedUrl("Education.qml"))
- }
- MenuItem {
- text: qsTr("PM Report")
- visible: pm_available
- onClicked: {
- onClicked: pageStack.push(Qt.resolvedUrl("DangerPage.qml"), {"regionID": regionID, "regionName": regionName, "country": country, "macroRegion": macroRegion, "connection": connection, "pm_only": true, "avaReport": avaReportPM})
|
[-]
[+]
|
Deleted |
_service:tar_git:harbour-avarisk-0.9.1.tar.bz2/qml/pages/DangerPage_swiss.qml
^
|
@@ -1,531 +0,0 @@
-/*
- Copyright (C) 2020 Friedrich Mütschele and other contributors
- This file is part of avaRisk.
- avaRisk is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
- avaRisk is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
- You should have received a copy of the GNU General Public License
- along with avaRisk. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-import QtQuick 2.2
-import Sailfish.Silica 1.0
-import io.thp.pyotherside 1.5
-import org.freedesktop.contextkit 1.0
-
-Page {
- property string regionID
- property string regionName
- property string country
- property string macroRegion
-
- property string connection
- property bool connectionOnceUpdated: false
-
- property var pm_only
- property var avaReport
- property var avaReportPM
- property bool pm_available: false
-
- property var dangerLevelError: qsTr("Downloading...")
-
- property var dangerLevel: 0
-
- property var repDate: ""
- property var validFrom: ""
- property var validTo: ""
- property var provider: ""
- property var proneLocationsText: ""
- property var proneLocationsImg:""
- property var htmlLocal: ""
- property var htmlWeatherSnow: ""
-
- property var downloadSucc: false
- property var cached: false
-
- property bool busy: false
-
- property var dPatterns
-
- function dangerLevelText(x) {
- if (x === 1) {return qsTr("low") }
- else if (x === 2) {return qsTr("moderate") }
- else if (x === 3) {return qsTr("considerable")}
- else if (x === 4) {return qsTr("high") }
- else if (x === 5) {return qsTr("very high") }
- else {return qsTr("loading") }
- }
-
- function parseAvaReportJSON(avaReport) {
- for (var elem in avaReport.danger_main) {
- if (avaReport.danger_main[elem]['main_value'] > dangerLevel) {
- dangerLevel = avaReport.danger_main[elem]['main_value']
- }
- }
-
- // console.log("Plot Report: " + avaReport.report_id)
-
- /*
- dangerLevel_h = avaReport.danger_main[0]['main_value'];
- if (avaReport.danger_main.length > 1) {
- dangerLevel_l = avaReport.danger_main[1]['main_value'];
- dangerLevel_alti = avaReport.danger_main[1]['valid_elevation'];
- }
- else {
- dangerLevel_l = avaReport.danger_main[0]['main_value'];
- }
- */
- validFrom = new Date(avaReport.validity_begin)
- validTo = new Date(avaReport.validity_end)
- repDate = new Date(avaReport.rep_date)
-
- dPatterns = avaReport.problem_list
-
- for (var elem in avaReport.report_texts) {
- if (avaReport.report_texts[elem].text_type === 'prone_locations_img') {
- proneLocationsImg = avaReport.report_texts[elem].text_content;
- }
- if (avaReport.report_texts[elem].text_type === 'prone_locations_text') {
- proneLocationsText = avaReport.report_texts[elem].text_content;
- }
- if (avaReport.report_texts[elem].text_type === 'html_report_local') {
- htmlLocal = avaReport.report_texts[elem].text_content;
- }
- if (avaReport.report_texts[elem].text_type === 'html_weather_snow') {
- htmlWeatherSnow = avaReport.report_texts[elem].text_content;
- }
- }
- }
-
- function getAvaDangElevText(validElev) {
- if (validElev) {
- if (validElev.indexOf('>') > -1) {
- return "above"
- }
- else if (validElev.indexOf('<') > -1) {
- return "below"
- }
- }
- return "all"
- }
-
- function getElevFromString(validElev) {
- if (validElev) {
- if (validElev.indexOf('Treeline') > -1) {
- return qsTr("treeline")
- }
-
- var elev = validElev
- if ((validElev.indexOf('<') > -1) || (validElev.indexOf('>') > -1)) {
- elev = validElev.substring(1)
- return elev + " m"
- }
- }
-
- return qsTr("entire range")
-
- }
-
- ContextProperty {
- key: "Internet.NetworkState"
-
- onValueChanged: {
- if (connection == "" || connectionOnceUpdated) {
- connection = value
- connectionOnceUpdated = true
- }
- if (connection == "connected") {
- connectionOnceUpdated = true
- }
-
- }
- }
-
- onStatusChanged: {
- if ((status == Component.Ready) && (pm_only == false))
- {
- python.startDownload();
- // console.log('Start DL')
- // console.log(pm_only)
- }
- if ((status == Component.Ready) && pm_only)
- {
- parseAvaReportJSON(avaReport);
- // console.log('Load from avaReport')
- // console.log(pm_only)
- downloadSucc = true
- }
- }
-
- SilicaFlickable {
- anchors.fill: parent
- contentHeight: column.height
- bottomMargin: Theme.paddingSmall
-
-
- BusyIndicator {
- id: busyInd
- size: BusyIndicatorSize.Large
- anchors.centerIn: parent
- running: busy
- }
-
- VerticalScrollDecorator{}
-
- PullDownMenu {
- MenuItem {
- text: qsTr("Reload")
- visible: ((connection == "connected") && (pm_only == false)) ? true : false
- onClicked: {
- python.startDownload();
- }
- }
- MenuItem {
- text: qsTr("Know-How")
- onClicked: pageStack.push(Qt.resolvedUrl("Education.qml"))
- }
- MenuItem {
- text: qsTr("PM Report")
- visible: pm_available
- onClicked: {
- onClicked: pageStack.push(Qt.resolvedUrl("DangerPage_swiss.qml"), {"regionID": regionID, "regionName": regionName, "country": country, "macroRegion": macroRegion, "connection": connection, "pm_only": true, "avaReport": avaReportPM})
- }
- }
- }
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-avarisk-0.9.2.tar.bz2/harbour-avarisk.desktop
^
|
@@ -4,6 +4,14 @@
Icon=harbour-avarisk
Exec=harbour-avarisk
Name=avaRisk
+
+#Prepare Sandboxing, can not yet be used, as contextkit in sailjail has a bug.
+#[X-Sailjail]
+#Permissions=Internet;WebView;Location
+#OrganizationName=de.10hoch-6
+#ApplicationName=avarisk
+
+
# translation example:
# your app name in German locale (de)
#
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-avarisk-0.9.2.tar.bz2/harbour-avarisk.pro
^
|
@@ -22,7 +22,6 @@
DISTFILES += qml/harbour-avarisk.qml \
qml/cover/CoverPage.qml \
qml/pages/BulletinView.qml \
- qml/pages/DangerPage_swiss.qml \
qml/pages/Education.qml \
qml/pages/FirstPage.qml \
qml/pages/SecondPage.qml \
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-avarisk-0.9.2.tar.bz2/qml/pages/BulletinView.qml
^
|
@@ -101,16 +101,19 @@
str_return = problemElev.lowerBound
}
- if (str_return.toLowerCase().indexOf("treeline") === -1 && str_return.toLowerCase().indexOf("entire") === -1) {
+ if (str_return.toLowerCase().indexOf("treeline") === -1 && str_return.indexOf(qsTr("entire range")) === -1) {
str_return += " m"
}
+
+ str_return.replace("treeline", qsTr("treeline"))
+
return str_return
}
- /*function convertUTCDateToLocalDate(date) {
+ function convertUTCDateToLocalDate(date) {
var newDate = new Date(date.getTime() - date.getTimezoneOffset()*60*1000);
return newDate;
- }*/
+ }
ContextProperty {
key: "Internet.NetworkState"
@@ -208,7 +211,7 @@
right: parent.right
margins: Theme.paddingLarge
}
- text: (downloadSucc)? qsTr("Report from") + ": " + Qt.formatDateTime(avaReport.publicationTime, Qt.SystemLocaleShortDate) : qsTr("Report could not be requested")
+ text: (downloadSucc)? qsTr("Report from") + ": " + Qt.formatDateTime(new Date(avaReport.publicationTime), Qt.SystemLocaleShortDate) : qsTr("Report could not be requested")
font.pixelSize: Theme.fontSizeSmall
wrapMode: Text.Wrap
}
@@ -218,7 +221,7 @@
right: parent.right
margins: Theme.paddingLarge
}
- text: (downloadSucc)? Qt.formatDateTime(avaReport.validTime.startTime, Qt.SystemLocaleShortDate) + " - " + Qt.formatDateTime(avaReport.validTime.endTime, Qt.SystemLocaleShortDate) : ""
+ text: (downloadSucc)? Qt.formatDateTime(new Date(avaReport.validTime.startTime), Qt.SystemLocaleShortDate) + " - " + Qt.formatDateTime(new Date(avaReport.validTime.endTime), Qt.SystemLocaleShortDate) : ""
font.pixelSize: Theme.fontSizeSmall
wrapMode: Text.Wrap
}
@@ -587,78 +590,6 @@
wrapMode: Text.Wrap
}
- /*
- ExpandingSectionGroup {
-
- ExpandingSection {
- title: qsTr("Danger Description")
-
- content.sourceComponent: Column {
- width: parent.width
- Label {
- anchors {
- left: parent.left
- right: parent.right
- margins: Theme.paddingMedium
- }
- width: parent.width
- text: highlights
- font.pixelSize: Theme.fontSizeMedium
- wrapMode: Text.Wrap
- }
- Label {
- anchors {
- left: parent.left
- right: parent.right
- margins: Theme.paddingMedium
- }
- width: parent.width
- text: comment
- font.pixelSize: Theme.fontSizeSmall
- wrapMode: Text.Wrap
- }
- }
- }
-
- ExpandingSection {
- title: qsTr("Snowpack Description")
-
- content.sourceComponent: Column {
- width: parent.width
- Label {
- anchors {
- left: parent.left
- right: parent.right
- margins: Theme.paddingMedium
- }
- width: parent.width
- text: structure
- font.pixelSize: Theme.fontSizeSmall
- wrapMode: Text.Wrap
- }
- }
- }
-
- ExpandingSection {
- title: qsTr("Tendency")
-
- content.sourceComponent: Column {
- width: parent.width
- Label {
- anchors {
- left: parent.left
- right: parent.right
- margins: Theme.paddingMedium
- }
- width: parent.width
- text: tendency
- font.pixelSize: Theme.fontSizeSmall
- wrapMode: Text.Wrap
- }
- }
- }
- }
- */
LinkedLabel {
anchors {
left: parent.left
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-avarisk-0.9.2.tar.bz2/qml/pages/FirstPage.qml
^
|
@@ -15,10 +15,24 @@
import QtQuick 2.2
import Sailfish.Silica 1.0
+import QtPositioning 5.4
+import org.freedesktop.contextkit 1.0
import "RegionList"
Page {
+ property string determined_region_name: 'n/a';
+ property string determined_region_id: 'n/a';
+
+ property string connection
+
+ ContextProperty {
+ key: "Internet.NetworkState"
+ onValueChanged: {
+ connection = value
+ }
+ }
+
SilicaFlickable {
anchors.fill: parent
@@ -27,12 +41,47 @@
VerticalScrollDecorator {}
+ PositionSource {
+ id: possrc
+ updateInterval: 10000
+ active: true
+ onPositionChanged: {
+ console.log(possrc.valid)
+ var coordinate = possrc.position.coordinate;
+ //positiontext.text = "Coordinate: " + coordinate.longitude + " " + coordinate.latitude
+ //var endp_url = "http://regresolve.10hoch-6.de/regresolve.cgi?lon=11.4041024&lat=47.2692124"
+ var endp_url = "http://regresolve.10hoch-6.de/regresolve.cgi?lon="+coordinate.longitude+"&lat="+coordinate.latitude
+
+ request(endp_url, function (o) {
+
+ if (o.responseText != '') {
+ possrc.stop();
+ // log the json response
+ console.log(o.responseText);
+
+ // translate response into object
+ // var d = eval('new Object(' + o.responseText + ')');
+ var d = JSON.parse(o.responseText);
+
+ // access elements inside json object with dot notation
+ //console.log(getRegionNameFromId(d.RegionID))
+ getRegionNameFromId(d.RegionID)
+ }
+ });
+
+ }
+ }
+
PullDownMenu {
MenuItem {
text: qsTr("About")
onClicked: pageStack.push(Qt.resolvedUrl("AboutPage.qml"))
}
MenuItem {
+ text: qsTr("Update Position")
+ onClicked: {possrc.update()}
+ }
+ MenuItem {
text: qsTr("Know-How")
onClicked: pageStack.push(Qt.resolvedUrl("Education.qml"))
}
@@ -271,6 +320,50 @@
width: parent.width
+ title: qsTr("Slovenia")
+
+ content.sourceComponent: Column {
+ width: parent.width
+ BackgroundItem {
+ id: bgndSi
+ onClicked: pageStack.push(Qt.resolvedUrl("RegionSelectPage.qml"), {"regionList": RegionList.regionListSi, "country": qsTr("Slovenia"), "macroRegion": qsTr("Slovenia")})
+
+ Label {
+ x: Theme.horizontalPageMargin
+ text: qsTr("Slovenia")
+ anchors.verticalCenter: parent.verticalCenter
+ color: bgndSi.highlighted ? Theme.highlightColor : Theme.primaryColor
+ }
+ }
+ }
+ }
+
+ ExpandingSection {
+
+ width: parent.width
+
+ title: qsTr("Norway")
+
+ content.sourceComponent: Column {
+ width: parent.width
+ BackgroundItem {
+ id: bgndNorway
+ onClicked: pageStack.push(Qt.resolvedUrl("RegionSelectPage.qml"), {"regionList": RegionList.regionListNorway, "country": qsTr("Norway"), "macroRegion": qsTr("Norway")})
+
+ Label {
+ x: Theme.horizontalPageMargin
+ text: qsTr("Norway")
+ anchors.verticalCenter: parent.verticalCenter
+ color: bgndNorway.highlighted ? Theme.highlightColor : Theme.primaryColor
+ }
+ }
+ }
+ }
+
+ ExpandingSection {
+
+ width: parent.width
+
title: qsTr("Spain")
content.sourceComponent: Column {
@@ -434,6 +527,54 @@
}
}
+ SectionHeader {
+ text: qsTr("Region by GPS-Position")
+ }
+
+ Row {
+ width: parent.width
+ spacing: Theme.paddingMedium
+
+ anchors {
+ left: parent.left
+ right: parent.right
+ margins: Theme.paddingLarge
+ }
+
+ Label {
+ //anchors.verticalCenter: parent.verticalCenter
+ id: determinedRegionName
+ width: parent.width * 2 / 3
+ text: determined_region_name;
+ font.pixelSize: Theme.fontSizeLarge
+ wrapMode: Text.Wrap
+ }
+
+ Button {
+ id: requestDetermined
+ text: qsTr("Bulletin")
+ enabled: false
+ width: parent.width * 1 / 3
+ // height: 3 * width * sourceSize.height / sourceSize.width
+ onPressed: {
+ pageStack.push(Qt.resolvedUrl("BulletinView.qml"), {"regionID": determined_region_id, "regionName": determined_region_name, "country": "tbd_1", "macroRegion": "tbd_2", "connection": connection, "pm_only": false})
+ }
+ }
+
+
+ }
+
+ /*
+ Label {
+ id:positiontext
+ //anchors.verticalCenter: parent.verticalCenter
+ width: parent.width
+ text: "n/a"
+ font.pixelSize: Theme.fontSizeLarge
+ wrapMode: Text.Wrap
+ }
+ */
+
}
}
Image {
@@ -447,4 +588,34 @@
bottom: parent.bottom
}
}
+
+ function request(url, callback) {
+ var xhr = new XMLHttpRequest();
+ xhr.onreadystatechange = (function(myxhr) {
+ return function() {
+ callback(myxhr);
+ }
+ })(xhr);
+ xhr.open('GET', url, true);
+ xhr.send('');
+ }
+ function getRegionNameFromId(RegionID) {
+ var xhr = new XMLHttpRequest;
+ xhr.onreadystatechange = function () {
+ if(xhr.readyState === XMLHttpRequest.DONE){
+ var d = JSON.parse(xhr.responseText);
+ if (RegionID != 'na') {
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-avarisk-0.9.2.tar.bz2/qml/pages/RegionList/RegionList.qml
^
|
@@ -138,7 +138,8 @@
ListElement {region: qsTr("Dachsteingebiet"); RegionID: "AT-06-01"}
ListElement {region: qsTr("Totes Gebirge"); RegionID: "AT-06-02"}
ListElement {region: qsTr("Ennstaler Alpen"); RegionID: "AT-06-03"}
- ListElement {region: qsTr("Schladminger Tauern"); RegionID: "AT-06-04"}
+ ListElement {region: qsTr("Schladminger Tauern Nord"); RegionID: "AT-06-04-01"}
+ ListElement {region: qsTr("Schladminger Tauern Süd"); RegionID: "AT-06-04-02"}
ListElement {region: qsTr("Nördl. Wölzer Tauern"); RegionID: "AT-06-05"}
ListElement {region: qsTr("Rottenmanner Tauern"); RegionID: "AT-06-06"}
ListElement {region: qsTr("Südl. Wölzer Tauern"); RegionID: "AT-06-07"}
@@ -176,23 +177,30 @@
ListElement {region: qsTr("Gippel- Göllergebiet"); RegionID: "AT-03-06"}
}
+
property ListModel regionListVorarlberg: ListModel{
- ListElement {region: qsTr("Bregenzerwaldgebirge"); RegionID: "AT8R1"}
- ListElement {region: qsTr("Allgäuer Alpen / Hochtannberg"); RegionID: "AT8R2"}
- ListElement {region: qsTr("Lechquellengeb. / Arlberg / Lechtaler Alp."); RegionID: "AT8R3"}
- ListElement {region: qsTr("Verwall"); RegionID: "AT8R4"}
- ListElement {region: qsTr("Rätikon"); RegionID: "AT8R5"}
- ListElement {region: qsTr("Silvretta"); RegionID: "AT8R6"}
+ ListElement {region: qsTr("Bregenzerwaldgebirge"); RegionID: "AT-08-01"}
+ ListElement {region: qsTr("Allgäuer Alpen / Hochtannberg"); RegionID: "AT-08-02"}
+ ListElement {region: qsTr("Lechtaler Alpen"); RegionID: "AT-08-03-01"}
+ ListElement {region: qsTr("Lechquellengebirge"); RegionID: "AT-08-03-02"}
+ ListElement {region: qsTr("Verwall"); RegionID: "AT-08-04"}
+ ListElement {region: qsTr("Rätikon Ost"); RegionID: "AT-08-05-01"}
+ ListElement {region: qsTr("Rätikon West"); RegionID: "AT-08-05-02"}
+ ListElement {region: qsTr("Silvretta"); RegionID: "AT-08-06"}
}
//REGIONS GERMANY
property ListModel regionListBavaria: ListModel{
- ListElement {region: qsTr("Allgäuer Alpen"); RegionID: "BYALL"}
- ListElement {region: qsTr("Ammergauer Alpen"); RegionID: "BYAMM"}
- ListElement {region: qsTr("Werdenfelser Alpen"); RegionID: "BYWFK"}
- ListElement {region: qsTr("Bayrische Voralpen"); RegionID: "BYBVA"}
- ListElement {region: qsTr("Chiemgauer Alpen"); RegionID: "BYCHG"}
- ListElement {region: qsTr("Berchtesgadener Alpen"); RegionID: "BYBGD"}
+ ListElement {region: qsTr("Allgäuer Vorberge"); RegionID: "DE-BY-11"}
+ ListElement {region: qsTr("Allgäuer Hauptkamm"); RegionID: "DE-BY-12"}
+ ListElement {region: qsTr("Ammergauer Alpen"); RegionID: "DE-BY-20"}
+ ListElement {region: qsTr("Werdenfelser Alpen"); RegionID: "DE-BY-30"}
+ ListElement {region: qsTr("Bayerische Voralpen West"); RegionID: "DE-BY-41"}
+ ListElement {region: qsTr("Bayerische Voralpen Mitte"); RegionID: "DE-BY-42"}
+ ListElement {region: qsTr("Bayerische Voralpen Ost"); RegionID: "DE-BY-43"}
+ ListElement {region: qsTr("Chiemgauer Alpen West"); RegionID: "DE-BY-51"}
+ ListElement {region: qsTr("Chiemgauer Alpen Ost"); RegionID: "DE-BY-52"}
+ ListElement {region: qsTr("Berchtesgadener Alpen"); RegionID: "DE-BY-60"}
}
// REGIONS SPAIN
@@ -441,4 +449,39 @@
ListElement {region: qsTr("CINTO-ROTONDO"); RegionID: "FR-40"}
ListElement {region: qsTr("RENOSO-INCUDINE"); RegionID: "FR-41"}
}
+
+ property ListModel regionListSi: ListModel{
+ ListElement {region: qsTr("Generalized Slovenia"); RegionID: "SI1"}
+ ListElement {region: qsTr("Julian Alps, South and West"); RegionID: "SI2"}
+ ListElement {region: qsTr("Julian Alps, Central and Karawanks, West"); RegionID: "SI3"}
+ ListElement {region: qsTr("Kamnik-Savinja Alps and Karawanks, East"); RegionID: "SI4"}
+ ListElement {region: qsTr("pre-Apline and Dinaric-Alps"); RegionID: "SI5"}
+ }
+
+ property ListModel regionListNorway: ListModel{
+ ListElement {region: qsTr("Nordenskiöld Land"); RegionID: "NO-3003"}
+ ListElement {region: qsTr("Finnmarkskysten"); RegionID: "NO-3006"}
+ ListElement {region: qsTr("Vest-Finnmark"); RegionID: "NO-3007"}
+ ListElement {region: qsTr("Nord-Troms"); RegionID: "NO-3009"}
+ ListElement {region: qsTr("Lyngen"); RegionID: "NO-3010"}
+ ListElement {region: qsTr("Tromsø"); RegionID: "NO-3011"}
+ ListElement {region: qsTr("Sør-Troms"); RegionID: "NO-3012"}
+ ListElement {region: qsTr("Indre Troms"); RegionID: "NO-3013"}
+ ListElement {region: qsTr("Lofoten og Vesterålen"); RegionID: "NO-3014"}
+ ListElement {region: qsTr("Ofoten"); RegionID: "NO-3015"}
+ ListElement {region: qsTr("Salten"); RegionID: "NO-3016"}
+ ListElement {region: qsTr("Svartisen"); RegionID: "NO-3017"}
+ ListElement {region: qsTr("Trollheimen"); RegionID: "NO-3022"}
+ ListElement {region: qsTr("Romsdal"); RegionID: "NO-3023"}
+ ListElement {region: qsTr("Sunnmøre"); RegionID: "NO-3024"}
+ ListElement {region: qsTr("Indre Fjordane"); RegionID: "NO-3027"}
+ ListElement {region: qsTr("Jotunheimen"); RegionID: "NO-3028"}
+ ListElement {region: qsTr("Indre Sogn"); RegionID: "NO-3029"}
+ ListElement {region: qsTr("Voss"); RegionID: "NO-3031"}
+ ListElement {region: qsTr("Hallingdal"); RegionID: "NO-3032"}
+ ListElement {region: qsTr("Hardanger"); RegionID: "NO-3034"}
+ ListElement {region: qsTr("Vest-Telemark"); RegionID: "NO-3035"}
+ ListElement {region: qsTr("Heiane"); RegionID: "NO-3037"}
+
+ }
}
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-avarisk-0.9.2.tar.bz2/qml/pages/avacore/__main__.py
^
|
@@ -1,18 +1,49 @@
"""
+ Copyright (C) 2021 Friedrich Mütschele and other contributors
+ This file is part of pyAvaCore.
+ pyAvaCore is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+ pyAvaCore is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+ You should have received a copy of the GNU General Public License
+ along with pyAvaCore. If not, see <http://www.gnu.org/licenses/>.
+"""
+
+"""
CLI for pyAvaCore
"""
from datetime import datetime
from datetime import timedelta
from pathlib import Path
from urllib.request import urlopen
+import argparse
import json
import typing
import logging
import logging.handlers
-import sys
-from .pyAvaCore import JSONEncoder, get_report_url, get_reports
+from .pyAvaCore import JSONEncoder, get_reports
from .avabulletin import AvaBulletin
+from .avabulletins import Bulletins
+from .geojson import FeatureCollection
+
+parser = argparse.ArgumentParser(description='Download and parse EAWS avalanche bulletins')
+parser.add_argument('--regions',
+ default="AT-02 AT-03 AT-04 AT-05 AT-06 AT-08 DE-BY CH SI FR IT-21 IT-23 IT-25 IT-34 IT-36 IT-57",
+ help='avalanche region to download')
+parser.add_argument('--output',
+ default='./data',
+ help='output directory')
+parser.add_argument('--cache',
+ default='./cache',
+ help='cache directory')
+parser.add_argument('--geojson',
+ help='eaws-regions directory containing *micro-regions_elevation.geojson.json of')
+args = parser.parse_args()
Path('logs').mkdir(parents=True, exist_ok=True)
logging.basicConfig(
@@ -22,20 +53,10 @@
logging.handlers.TimedRotatingFileHandler(filename='logs/pyAvaCore.log', when='midnight'),
logging.StreamHandler()])
-class Bulletins:
- '''
- Class for the AvaBulletin collection
- Follows partly CAAMLv6 caaml:Bulletins
- '''
- bulletins: typing.List[AvaBulletin]
def download_region(regionID):
"""Downloads the given region and converts it to JSON"""
- if regionID == 'CH':
- url = 'https://www.slf.ch/avalanche/mobile/bulletin_en.zip'
- reports, _, _ = get_reports(regionID, cache_path=str(Path('cache')))
- else:
- reports, _, url = get_reports(regionID)
+ reports, _, url = get_reports(regionID)
report: AvaBulletin
for report in reports:
if isinstance(report.validTime.startTime, datetime):
@@ -50,7 +71,7 @@
bulletins = Bulletins()
bulletins.bulletins = reports
- directory = Path(sys.argv[1] if len(sys.argv) > 1 else 'data')
+ directory = Path(args.output)
directory.mkdir(parents=True, exist_ok=True)
ext = 'zip' if url[-3:] == 'zip' else 'xml'
if url != '':
@@ -60,11 +81,22 @@
with open(f'{directory}/{validityDate}-{regionID}.json', mode='w', encoding='utf-8') as f:
logging.info('Writing %s', f.name)
json.dump(bulletins, fp=f, cls=JSONEncoder, indent=2)
+ with open(f'{directory}/{validityDate}-{regionID}.ratings.json', mode='w', encoding='utf-8') as f:
+ obj = dict(maxDangerRatings=bulletins.max_danger_ratings())
+ logging.info('Writing %s', f.name)
+ json.dump(obj, fp=f, indent=2, sort_keys=True)
+ if args.geojson:
+ with open(f'{args.geojson}/{regionID}_micro-regions_elevation.geojson.json', encoding='utf-8') as f:
+ geojson = FeatureCollection.from_dict(json.load(f))
+ bulletins.augment_geojson(geojson)
+ with open(f'{directory}/{validityDate}-{regionID}.geojson', mode='w', encoding='utf-8') as f:
+ # Rounding of feature.geometry.coordinates is performed in to_float_coordinate
+ logging.info('Writing %s', f.name)
+ json.dump(geojson.to_dict(), fp=f)
if __name__ == "__main__":
- regions = ["AT-02", "AT-03", "AT-04", "AT-05", "AT-06", "AT-07", "AT-08", "DE-BY", "CH", "SI", "FR", "IT-AINEVA"]
- for region in regions:
+ for region in args.regions.split():
try:
download_region(region)
except Exception as e: # pylint: disable=broad-except
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-avarisk-0.9.2.tar.bz2/qml/pages/avacore/avabulletin.py
^
|
@@ -70,6 +70,8 @@
return ">"+ self.lowerBound
if hasattr(self,'upperBound'):
return "<"+ self.upperBound
+ else:
+ return ""
class AvaCoreCustom:
'''
|
[-]
[+]
|
Added |
_service:tar_git:harbour-avarisk-0.9.2.tar.bz2/qml/pages/avacore/avabulletins.py
^
|
@@ -0,0 +1,106 @@
+"""
+ Copyright (C) 2021 Friedrich Mütschele and other contributors
+ This file is part of pyAvaCore.
+ pyAvaCore is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+ pyAvaCore is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+ You should have received a copy of the GNU General Public License
+ along with pyAvaCore. If not, see <http://www.gnu.org/licenses/>.
+"""
+
+import typing
+from .avabulletin import AvaBulletin, DangerRatingType
+from .geojson import Feature, FeatureCollection
+
+
+class Bulletins:
+ """
+ Class for the AvaBulletin collection
+ Follows partly CAAMLv6 caaml:Bulletins
+ """
+
+ bulletins: typing.List[AvaBulletin]
+
+ def max_danger_ratings(self):
+ ratings = dict()
+ for bulletin in self.bulletins:
+ for region in bulletin.regions:
+ regionID = region.regionID
+ for danger in bulletin.dangerRatings:
+ if (
+ Bulletins.region_without_elevation(regionID)
+ or not danger.elevation
+ or danger.elevation.toString() == ""
+ or danger.elevation.toString().startswith("<")
+ ):
+ key = f"{regionID}:low"
+ ratings[key] = max(
+ danger.get_mainValue_int(), ratings.get(key, 0)
+ )
+ if (
+ Bulletins.region_without_elevation(regionID)
+ or not danger.elevation
+ or danger.elevation.toString() == ""
+ or danger.elevation.toString().startswith(">")
+ ):
+ key = f"{regionID}:high"
+ ratings[key] = max(
+ danger.get_mainValue_int(), ratings.get(key, 0)
+ )
+ return ratings
+
+ def augment_geojson(self, geojson: FeatureCollection):
+ for feature in geojson.features:
+ self.augment_feature(feature)
+
+ def augment_feature(self, feature: Feature):
+ id = feature.properties.id
+ elevation = feature.properties.elevation
+
+ def affects_region(b: AvaBulletin):
+ return id in [r.regionID for r in b.regions]
+
+ def affects_danger(d: DangerRatingType):
+ if Bulletins.region_without_elevation(id):
+ return True
+ elif not d.elevation:
+ return True
+ elif not (
+ hasattr(d.elevation, "lowerBound") or hasattr(d.elevation, "upperBound")
+ ):
+ return True
+ elif hasattr(d.elevation, "upperBound") and elevation == "low":
+ return True
+ elif hasattr(d.elevation, "lowerBound") and elevation == "high":
+ return True
+ else:
+ return False
+
+ bulletins = [b for b in self.bulletins if affects_region(b)]
+ dangers = [
+ d.get_mainValue_int()
+ for b in bulletins
+ for d in b.dangerRatings
+ if affects_danger(d)
+ ]
+ if not dangers:
+ return
+ feature.properties.max_danger_rating = max(dangers)
+
+ @staticmethod
+ def region_without_elevation(id: str):
+ return (
+ id.startswith("CH-")
+ or id.startswith("IT-21-")
+ or id.startswith("IT-23-")
+ or id.startswith("IT-25-")
+ or id.startswith("IT-34-")
+ or id.startswith("IT-36-")
+ or id.startswith("IT-57-")
+ or id.startswith("FR-")
+ )
|
[-]
[+]
|
Added |
_service:tar_git:harbour-avarisk-0.9.2.tar.bz2/qml/pages/avacore/geojson.py
^
|
@@ -0,0 +1,169 @@
+"""
+ Copyright (C) 2021 Friedrich Mütschele and other contributors
+ This file is part of pyAvaCore.
+ pyAvaCore is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+ pyAvaCore is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+ You should have received a copy of the GNU General Public License
+ along with pyAvaCore. If not, see <http://www.gnu.org/licenses/>.
+"""
+
+# Generated using https://app.quicktype.io/
+from typing import Optional, List, Any, TypeVar, Callable, Type, cast
+
+
+T = TypeVar("T")
+
+
+def from_str(x: Any) -> str:
+ assert isinstance(x, str)
+ return x
+
+
+def from_none(x: Any) -> Any:
+ assert x is None
+ return x
+
+
+def from_union(fs, x):
+ for f in fs:
+ try:
+ return f(x)
+ except:
+ pass
+ assert False
+
+
+def from_list(f: Callable[[Any], T], x: Any) -> List[T]:
+ assert isinstance(x, list)
+ return [f(y) for y in x]
+
+
+def from_float(x: Any) -> float:
+ assert isinstance(x, (float, int)) and not isinstance(x, bool)
+ return float(x)
+
+
+def to_float(x: Any) -> float:
+ assert isinstance(x, float)
+ return x
+
+
+def to_float_coordinate(x: Any) -> float:
+ assert isinstance(x, float)
+ return round(x, 4)
+
+
+def from_int(x: Any) -> int:
+ assert isinstance(x, int) and not isinstance(x, bool)
+ return x
+
+
+def to_class(c: Type[T], x: Any) -> dict:
+ assert isinstance(x, c)
+ return cast(Any, x).to_dict()
+
+
+class Geometry:
+ type: Optional[str]
+ coordinates: Optional[List[List[List[List[float]]]]]
+
+ def __init__(self, type: Optional[str], coordinates: Optional[List[List[List[List[float]]]]]) -> None:
+ self.type = type
+ self.coordinates = coordinates
+
+ @staticmethod
+ def from_dict(obj: Any) -> 'Geometry':
+ assert isinstance(obj, dict)
+ type = from_union([from_str, from_none], obj.get("type"))
+ coordinates = from_union([lambda x: from_list(lambda x: from_list(lambda x: from_list(lambda x: from_list(from_float, x), x), x), x), from_none], obj.get("coordinates"))
+ return Geometry(type, coordinates)
+
+ def to_dict(self) -> dict:
+ result: dict = {}
+ result["type"] = from_union([from_str, from_none], self.type)
+ result["coordinates"] = from_union([lambda x: from_list(lambda x: from_list(lambda x: from_list(lambda x: from_list(to_float_coordinate, x), x), x), x), from_none], self.coordinates)
+ return result
+
+
+class Properties:
+ threshold: None
+ id: Optional[str]
+ elevation: Optional[str]
+ max_danger_rating: Optional[int]
+
+ def __init__(self, threshold: None, id: Optional[str], elevation: Optional[str], max_danger_rating: Optional[int]) -> None:
+ self.threshold = threshold
+ self.id = id
+ self.elevation = elevation
+ self.max_danger_rating = max_danger_rating
+
+ @staticmethod
+ def from_dict(obj: Any) -> 'Properties':
+ assert isinstance(obj, dict)
+ threshold = from_none(obj.get("threshold"))
+ id = from_union([from_str, from_none], obj.get("id"))
+ elevation = from_union([from_str, from_none], obj.get("elevation"))
+ max_danger_rating = from_union([from_int, from_none], obj.get("maxDangerRating"))
+ return Properties(threshold, id, elevation, max_danger_rating)
+
+ def to_dict(self) -> dict:
+ result: dict = {}
+ result["threshold"] = from_none(self.threshold)
+ result["id"] = from_union([from_str, from_none], self.id)
+ result["elevation"] = from_union([from_str, from_none], self.elevation)
+ result["maxDangerRating"] = from_union([from_int, from_none], self.max_danger_rating)
+ return result
+
+
+class Feature:
+ type: Optional[str]
+ properties: Optional[Properties]
+ geometry: Optional[Geometry]
+
+ def __init__(self, type: Optional[str], properties: Optional[Properties], geometry: Optional[Geometry]) -> None:
+ self.type = type
+ self.properties = properties
+ self.geometry = geometry
+
+ @staticmethod
+ def from_dict(obj: Any) -> 'Feature':
+ assert isinstance(obj, dict)
+ type = from_union([from_str, from_none], obj.get("type"))
+ properties = from_union([Properties.from_dict, from_none], obj.get("properties"))
+ geometry = from_union([Geometry.from_dict, from_none], obj.get("geometry"))
+ return Feature(type, properties, geometry)
+
+ def to_dict(self) -> dict:
+ result: dict = {}
+ result["type"] = from_union([from_str, from_none], self.type)
+ result["properties"] = from_union([lambda x: to_class(Properties, x), from_none], self.properties)
+ result["geometry"] = from_union([lambda x: to_class(Geometry, x), from_none], self.geometry)
+ return result
+
+
+class FeatureCollection:
+ type: Optional[str]
+ features: Optional[List[Feature]]
+
+ def __init__(self, type: Optional[str], features: Optional[List[Feature]]) -> None:
+ self.type = type
+ self.features = features
+
+ @staticmethod
+ def from_dict(obj: Any) -> 'FeatureCollection':
+ assert isinstance(obj, dict)
+ type = from_union([from_str, from_none], obj.get("type"))
+ features = from_union([lambda x: from_list(Feature.from_dict, x), from_none], obj.get("features"))
+ return FeatureCollection(type, features)
+
+ def to_dict(self) -> dict:
+ result: dict = {}
+ result["type"] = from_union([from_str, from_none], self.type)
+ result["features"] = from_union([lambda x: from_list(lambda x: to_class(Feature, x), x), from_none], self.features)
+ return result
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-avarisk-0.9.2.tar.bz2/qml/pages/avacore/processor_ch.py
^
|
@@ -21,6 +21,7 @@
import copy
import base64
import json
+import logging
import re
from avacore import pyAvaCore
@@ -34,6 +35,7 @@
'''
Path(path + '/swiss/').mkdir(parents=True, exist_ok=True)
url = 'https://www.slf.ch/avalanche/mobile/bulletin_'+lang+'.zip'
+ logging.info('Fetching %s', url)
urllib.request.urlretrieve(url, path + '/swiss/bulletin_'+lang+'.zip')
try:
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-avarisk-0.9.2.tar.bz2/qml/pages/avacore/processor_fr.py
^
|
@@ -17,6 +17,7 @@
import dateutil.parser
import urllib.request
import copy
+import logging
import re
import string
@@ -47,6 +48,7 @@
req = Request('https://rpcache-aa.meteofrance.com/internet2018client/2.0/report?domain=' + re.sub('FR-', '', region_id) + \
'&report_type=Forecast&report_subtype=BRA')
req.add_header('Authorization', 'Bearer ' + access_token)
+ logging.info('Fetching %s', req.full_url)
response_content = urlopen(req).read()
try:
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-avarisk-0.9.2.tar.bz2/qml/pages/avacore/processor_it.py
^
|
@@ -17,7 +17,6 @@
from datetime import datetime
from datetime import time
from datetime import timedelta
-from pathlib import Path
import pytz
import dateutil.parser
import logging
@@ -26,14 +25,6 @@
from avacore import pyAvaCore
from avacore.avabulletin import AvaBulletin, DangerRatingType, AvalancheProblemType, AvaCoreCustom, ElevationType, RegionType
-Path('logs').mkdir(parents=True, exist_ok=True)
-logging.basicConfig(
- format='[%(asctime)s] {%(module)s:%(lineno)d} %(levelname)s - %(message)s',
- level=logging.INFO,
- handlers=[
- logging.handlers.TimedRotatingFileHandler(filename='logs/pyAvaCore.log', when='midnight'),
- logging.StreamHandler()])
-
def process_reports_it(region_id, today=datetime.now(pytz.timezone('Europe/Rome'))):
@@ -70,6 +61,7 @@
}
req = urllib.request.Request(url, headers=headers)
+ logging.info('Fetching %s', req.full_url)
with urllib.request.urlopen(req) as response:
content = response.read()
@@ -153,9 +145,11 @@
return date
# Only temporary for debug
-def process_all_reports_it():
+def process_all_reports_it(region_prefix=''):
all_reports = []
for region in it_region_ref.keys():
+ if not region.startswith(region_prefix):
+ continue
try:
m_reports = process_reports_it(region)
except Exception as e: # pylint: disable=broad-except
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-avarisk-0.9.2.tar.bz2/qml/pages/avacore/processor_norway.py
^
|
@@ -1,3 +1,17 @@
+"""
+ Copyright (C) 2021 Friedrich Mütschele and other contributors
+ This file is part of pyAvaCore.
+ pyAvaCore is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+ pyAvaCore is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+ You should have received a copy of the GNU General Public License
+ along with pyAvaCore. If not, see <http://www.gnu.org/licenses/>.
+"""
import json
import urllib.request
from datetime import datetime
@@ -5,6 +19,7 @@
from datetime import time
import pytz
import dateutil.parser
+import logging
from avacore.avabulletin import AvaBulletin, DangerRatingType, AvalancheProblemType, AvaCoreCustom, ElevationType, RegionType
@@ -21,6 +36,7 @@
req = urllib.request.Request(url, headers=headers)
+ logging.info('Fetching %s', req.full_url)
with urllib.request.urlopen(req) as response:
content = response.read()
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-avarisk-0.9.2.tar.bz2/qml/pages/avacore/pyAvaCore.py
^
|
@@ -13,7 +13,10 @@
along with pyAvaCore. If not, see <http://www.gnu.org/licenses/>.
"""
+import configparser
from datetime import datetime
+from urllib import parse
+from urllib.parse import urlparse
from urllib.request import urlopen
from pathlib import Path
import re
@@ -28,6 +31,9 @@
from avacore.processor_norway import process_reports_no
from avacore.processor_caamlv5 import parse_xml, parse_xml_bavaria, parse_xml_vorarlberg
+config = configparser.ConfigParser()
+config.read(f'{__file__}.ini')
+
### XML-Helpers
def get_xml_as_et(url):
@@ -42,10 +48,7 @@
import xml.etree.cElementTree as ET
except ImportError:
import xml.etree.ElementTree as ET
- if "VORARLBERG" in url.upper():
- root = ET.fromstring(response_content.decode('latin-1'))
- else:
- root = ET.fromstring(response_content.decode('utf-8'))
+ root = ET.fromstring(response_content.decode('utf-8'))
except Exception as r_e:
print('error parsing ElementTree: ' + str(r_e))
return root
@@ -57,7 +60,6 @@
url = ''
if region_id.startswith("FR"):
- logging.info('Fetching %s', region_id)
if region_id == "FR":
reports = process_all_reports_fr()
else:
@@ -67,10 +69,12 @@
+ "ADSP (Directeurs de Pistes et de la Sécurité des Stations de Sports d'Hiver) et autres acteurs de la montagne."
elif region_id.startswith("CH"):
reports = process_reports_ch(lang=local, path=cache_path, cached=from_cache)
- provider = "WSL Institute for Snow and Avalanche Research SLF: www.slf.ch"
+ url, provider = get_report_url(region_id, local)
elif region_id.startswith('IT-') and not region_id.startswith('IT-32-BZ') and not region_id.startswith('IT-32-TN'):
if region_id == 'IT-AINEVA':
reports = process_all_reports_it()
+ elif region_id == 'IT-21' or region_id == 'IT-23' or region_id == 'IT-25' or region_id == 'IT-34' or region_id == 'IT-36' or region_id == 'IT-57':
+ reports = process_all_reports_it(region_prefix=region_id)
else:
reports = process_reports_it(region_id)
provider = "AINEVA: aineva.it"
@@ -94,97 +98,15 @@
'''
returns the valid URL for requested region_id
'''
-
- # Euregio-Region Tirol, Südtirol, Trentino
- if ("AT-07" in region_id) or ("IT-32-BZ" in region_id) or ("IT-32-TN" in region_id):
- url = "https://avalanche.report/albina_files/latest/en.xml"
- provider = "The displayed information is provided by an open data API on https://avalanche.report by: "\
- "Avalanche Warning Service Tirol, Avalanche Warning Service Südtirol, Avalanche Warning Service Trentino."
- if "DE" in local.upper():
- url = "https://avalanche.report/albina_files/latest/de.xml"
- provider = "Die dargestellten Informationen werden über eine API auf https://avalanche.report abgefragt. Diese wird "\
- "bereitgestellt von: Avalanche Warning Service Tirol, Avalanche Warning Service Südtirol, Avalanche Warning Service Trentino."
- if "FR" in local.upper():
- url = "https://avalanche.report/albina_files/latest/fr.xml"
- provider = "The displayed information is provided by an open data API on https://avalanche.report by: "\
- "Avalanche Warning Service Tirol, Avalanche Warning Service Südtirol, Avalanche Warning Service Trentino."
-
- # Kärnten
- if region_id.startswith("AT-02"):
- url = "https://www.avalanche-warnings.eu/public/kaernten/caaml"
- provider = "Die dargestellten Informationen werden über eine API auf https://www.avalanche-warnings.eu abgefragt. Diese wird "\
- "bereitgestellt vom: Lawinenwarndienst Kärnten (https://lawinenwarndienst.ktn.gv.at)."
-
- # Salzburg
- if region_id.startswith("AT-05"):
- url = "https://www.avalanche-warnings.eu/public/salzburg/caaml/en"
- provider = "Die dargestellten Informationen werden über eine API auf https://www.avalanche-warnings.eu abgefragt. Diese wird "\
- "bereitgestellt vom: Lawinenwarndienst Salzburg (https://lawine.salzburg.at)."
- if "DE" in local.upper():
- url = "https://www.avalanche-warnings.eu/public/salzburg/caaml"
- provider = "The displayed information is provided by an open data API on https://www.avalanche-warnings.eu by: "\
- "Avalanche Warning Service Salzburg (https://lawine.salzburg.at)."
-
- # Steiermark
- if region_id.startswith("AT-06"):
- url = "https://www.avalanche-warnings.eu/public/steiermark/caaml/en"
- provider = "The displayed information is provided by an open data API on https://www.avalanche-warnings.eu by: "\
- "Avalanche Warning Service Steiermark (https://www.lawine-steiermark.at)."
- if "DE" in local.upper():
- url = "https://www.avalanche-warnings.eu/public/steiermark/caaml"
- provider = "Die dargestellten Informationen werden über eine API auf https://www.avalanche-warnings.eu abgefragt. "\
- "Diese wird bereitgestellt vom: Lawinenwarndienst Steiermark (https://www.lawine-steiermark.at)."
-
- # Oberösterreich
- if region_id.startswith("AT-04"):
- url = "https://www.avalanche-warnings.eu/public/oberoesterreich/caaml"
- provider = "Die dargestellten Informationen werden über eine API auf https://www.avalanche-warnings.eu abgefragt. Diese wird "\
- "bereitgestellt vom: Lawinenwarndienst Oberösterreich (https://www.land-oberoesterreich.gv.at/lawinenwarndienst.htm)."
-
- # Niederösterreich
- if region_id.startswith("AT-03"):
- url = "https://www.avalanche-warnings.eu/public/niederoesterreich/caaml"
- provider = "Die dargestellten Informationen werden über eine API auf https://www.avalanche-warnings.eu abgefragt. Diese wird "\
- "bereitgestellt vom: Lawinenwarndienst Niederösterreich (https://www.lawinenwarndienst-niederoesterreich.at)."
-
- #Vorarlberg Neu
- if region_id.startswith("AT-08"):
- url = "https://www.avalanche-warnings.eu/public/vorarlberg/caaml/en"
- provider = "The displayed information is provided by an open data API on https://warndienste.cnv.at by: "\
- "Landeswarnzentrale Vorarlberg - http://www.vorarlberg.at/lawine"
- if "DE" in local.upper():
- url = "https://www.avalanche-warnings.eu/public/vorarlberg/caaml"
- provider = "Die dargestellten Informationen werden über eine API auf https://warndienste.cnv.at abgefragt. Diese wird "\
- "bereitgestellt von der Landeswarnzentrale Vorarlberg - http://www.vorarlberg.at/lawine"
-
- #Bavaria - neu
- if region_id.startswith("DE-BY"):
- url = "https://www.avalanche-warnings.eu/public/bayern/caaml/en"
- provider = "The displayed ihe displayed information is provided by an open data API on https://www.lawinenwarndienst-bayern.de/ "\
- "by: Avalanche warning centre at the Bavarian State Office for the Environment - https://www.lawinenwarndienst-bayern.de/"
- if "DE" in local.upper():
- url = "https://www.avalanche-warnings.eu/public/bayern/caaml"
- provider = "Die dargestellten Informationen werden über eine API auf https://www.lawinenwarndienst-bayern.de abgefragt. "\
- "Diese wird bereitgestellt von der Lawinenwarnzentrale Bayern (https://www.lawinenwarndienst-bayern.de)."
-
- #Val d'Aran
- if region_id.startswith("ES-CT-L"):
- url = "http://statics.lauegi.report/albina_files_local/latest/en.xml"
- provider = "The displayed ihe displayed information is provided by an open data API on https://lauegi.conselharan.org/ by: "\
- "Conselh Generau d'Aran - https://lauegi.conselharan.org/"
- if "DE" in local.upper():
- url = "http://statics.lauegi.report/albina_files_local/latest/de.xml"
- provider = "Die dargestellten Informationen werden über eine API auf https://lauegi.conselharan.org/ abgefragt. "\
- "Diese wird bereitgestellt von Conselh Generau d'Aran (https://lauegi.conselharan.org/)."
- if "FR" in local.upper():
- url = "http://statics.lauegi.report/albina_files_local/latest/fr.xml"
- provider = "The displayed ihe displayed information is provided by an open data API on https://lauegi.conselharan.org/ by: "\
- "Conselh Generau d'Aran - https://lauegi.conselharan.org/"
-
- if region_id.startswith("SI"):
- url = "https://meteo.arso.gov.si/uploads/probase/www/avalanche/text/sl/bulletinAvalanche.xml"
- provider = "Slovenia"
-
+ name = config[region_id]['name']
+ url = config[region_id]['url']
+ if f'url.{local}' in config[region_id]:
+ url = config[region_id][f'url.{local}']
+ netloc = urlparse(url).netloc
+ if "DE" == local.upper():
+ provider = f"Die dargestellten Informationen werden über eine API auf {netloc} abgefragt. Diese wird bereitgestellt von: {name}."
+ else:
+ provider = f"The displayed information is provided by an open data API on {netloc} by: {name}"
return url, provider
|
[-]
[+]
|
Added |
_service:tar_git:harbour-avarisk-0.9.2.tar.bz2/qml/pages/avacore/pyAvaCore.py.ini
^
|
@@ -0,0 +1,63 @@
+[AT-07]
+name = Lawinenwarndienst Tirol
+url = https://avalanche.report/albina_files/latest/en.xml
+url.DE = https://avalanche.report/albina_files/latest/de.xml
+url.FR = https://avalanche.report/albina_files/latest/fr.xml
+
+[IT-32-BZ]
+name = Lawinenwarndienst Alto Adige/Südtirol
+url = https://avalanche.report/albina_files/latest/en.xml
+url.DE = https://avalanche.report/albina_files/latest/de.xml
+url.FR = https://avalanche.report/albina_files/latest/fr.xml
+
+[IT-32-TN]
+name = Lawinenwarndienst Trentino
+url = https://avalanche.report/albina_files/latest/en.xml
+url.DE = https://avalanche.report/albina_files/latest/de.xml
+url.FR = https://avalanche.report/albina_files/latest/fr.xml
+
+[AT-02]
+name = Lawinenwarndienst Kärnten
+url = https://www.avalanche-warnings.eu/public/kaernten/caaml
+
+[AT-05]
+name = Lawinenwarndienst Salzburg
+url = https://www.avalanche-warnings.eu/public/salzburg/caaml/en
+url.DE = https://www.avalanche-warnings.eu/public/salzburg/caaml
+
+[AT-06]
+name = Lawinenwarndienst Steiermark
+url = https://www.avalanche-warnings.eu/public/steiermark/caaml/en
+url.DE = https://www.avalanche-warnings.eu/public/steiermark/caaml
+
+[AT-04]
+name = Lawinenwarndienst Oberösterreich
+url = https://www.avalanche-warnings.eu/public/oberoesterreich/caaml
+
+[AT-03]
+name = Lawinenwarndienst Niederösterreich
+url = https://www.avalanche-warnings.eu/public/niederoesterreich/caaml
+
+[AT-08]
+name = Landeswarnzentrale Vorarlberg
+url = https://www.avalanche-warnings.eu/public/vorarlberg/caaml/en
+url.DE = https://www.avalanche-warnings.eu/public/vorarlberg/caaml
+
+[CH]
+name = WSL Institute for Snow and Avalanche Research SLF
+url = https://www.slf.ch/avalanche/mobile/bulletin_en.zip
+
+[DE-BY]
+name = Lawinenwarnzentrale Bayern
+url = https://www.avalanche-warnings.eu/public/bayern/caaml/en
+url.DE = https://www.avalanche-warnings.eu/public/bayern/caaml
+
+[ES-CT-L]
+name = Conselh Generau d'Aran
+url = http://statics.lauegi.report/albina_files_local/latest/en.xml
+url.DE = http://statics.lauegi.report/albina_files_local/latest/de.xml
+url.FR = http://statics.lauegi.report/albina_files_local/latest/fr.xml
+
+[SI]
+name = Avalanche Warning Service Slovenia
+url = https://meteo.arso.gov.si/uploads/probase/www/avalanche/text/sl/bulletinAvalanche.xml
|
[-]
[+]
|
Added |
_service:tar_git:harbour-avarisk-0.9.2.tar.bz2/qml/pages/micro-regions_names/de.json
^
|
@@ -0,0 +1,501 @@
+{
+ "AD" : "Andorra",
+ "AT" : "Österreich",
+ "AT-02" : "Kärnten",
+ "AT-02-01" : "Glocknergruppe",
+ "AT-02-02" : "Schobergruppe",
+ "AT-02-03" : "Ankogelgruppe",
+ "AT-02-04" : "Nockberge",
+ "AT-02-05" : "Gurktaler Alpen",
+ "AT-02-06" : "Saualpe",
+ "AT-02-07" : "Packalpe",
+ "AT-02-08" : "Koralpe",
+ "AT-02-09" : "Kreuzeckgruppe",
+ "AT-02-10" : "Lienzer Dolomiten",
+ "AT-02-11" : "Gailtaler Alpen West",
+ "AT-02-12" : "Gailtaler Alpen Mitte",
+ "AT-02-13" : "Villacher Alpe",
+ "AT-02-14" : "Karnische Alpen West",
+ "AT-02-15" : "Karnische Alpen Mitte",
+ "AT-02-16" : "Karnische Alpen Ost",
+ "AT-02-17" : "Karawanken West",
+ "AT-02-18" : "Karawanken Mitte",
+ "AT-02-19" : "Karawanken Ost",
+ "AT-03" : "Niederösterreich",
+ "AT-03-01" : "Ybbstaler Alpen",
+ "AT-03-02" : "Türnitzer Alpen",
+ "AT-03-03" : "Gutensteiner Alpen",
+ "AT-03-04" : "Rax - Schneeberggebiet",
+ "AT-03-05" : "Semmering - Wechselgebiet",
+ "AT-03-06" : "Gippel - Göllergebiet",
+ "AT-04" : "Oberösterreich",
+ "AT-04-01" : "Dachstein, Gosaukamm",
+ "AT-04-02" : "Kalmberg, Katergebirge",
+ "AT-04-03" : "Totes Gebirge",
+ "AT-04-04" : "Phyrgas, Haller Mauern",
+ "AT-04-05" : "Zimnitzmassiv, Höllengbirge",
+ "AT-04-06" : "Traunstein, Eibenberg",
+ "AT-04-07" : "Kasbergblock",
+ "AT-04-08" : "Sengsengebirge",
+ "AT-04-09" : "Ennstaler Voralpen",
+ "AT-05" : "Salzburg",
+ "AT-05-01" : "Nockberge",
+ "AT-05-02" : "Niedere Tauern Süd",
+ "AT-05-03" : "Ankogelgruppe, Muhr",
+ "AT-05-04" : "Niedere Tauern Alpenhauptkamm",
+ "AT-05-05" : "Goldberggruppe Alpenhauptkamm",
+ "AT-05-06" : "Glocknergruppe Alpenhauptkamm",
+ "AT-05-07" : "Großvenedigergruppe Alpenhauptkamm",
+ "AT-05-08" : "Niedere Tauern Nord",
+ "AT-05-09" : "Goldberggruppe Nord",
+ "AT-05-10" : "Glocknergruppe Nord",
+ "AT-05-11" : "Großvenedigergruppe Nord",
+ "AT-05-12" : "Pongauer Grasberge",
+ "AT-05-13" : "Dientner Grasberge",
+ "AT-05-14" : "Kitzbüheler Alpen, Glemmtal",
+ "AT-05-15" : "Oberpinzgauer Grasberge",
+ "AT-05-16" : "Tennengebirge, Gosaukamm",
+ "AT-05-17" : "Steinernes Meer, Hochkönig, Hagengebirge, Göllstock",
+ "AT-05-18" : "Loferer und Leoganger Steinberge",
+ "AT-05-19" : "Osterhorngruppe, Gamsfeldgruppe",
+ "AT-05-20" : "Untersbergstock",
+ "AT-05-21" : "Chiemgauer Alpen, Heutal, Reiteralpe",
+ "AT-06" : "Steiermark",
+ "AT-06-01" : "Dachsteingebiet",
+ "AT-06-02" : "Totes Gebirge",
+ "AT-06-03" : "Ennstaler Alpen",
+ "AT-06-04" : "Schladminger Tauern",
+ "AT-06-05" : "Nördliche Wölzer Tauern",
+ "AT-06-06" : "Rottenmanner Tauern",
+ "AT-06-07" : "Südliche Wölzer Tauern",
+ "AT-06-08" : "Seckauer Tauern",
+ "AT-06-09" : "Eisenerzer Alpen",
+ "AT-06-10" : "Hochschwabgebiet",
+ "AT-06-11" : "Mürzsteger Alpen",
+ "AT-06-12" : "Mürztaler Alpen",
+ "AT-06-13" : "Östliche Fischbacher Alpen und Wechselgebiet",
+ "AT-06-14" : "Westliche Fischbacher Alpen und Grazer Bergland",
+ "AT-06-15" : "Stub- und Gleinalpe",
+ "AT-06-16" : "Koralpe",
+ "AT-06-17" : "Seetaler Alpen",
+ "AT-06-18" : "Gurktaler Alpen",
+ "AT-07" : "Tirol",
+ "AT-07-01" : "Allgäuer Alpen",
+ "AT-07-02" : "Östliche Lechtaler Alpen - Ammergauer Alpen",
+ "AT-07-03" : "Mieminger Gebirge",
+ "AT-07-04" : "Karwendel",
+ "AT-07-05" : "Brandenberger Alpen",
+ "AT-07-06" : "Wilder Kaiser - Waidringer Alpen",
+ "AT-07-07" : "Westliche Lechtaler Alpen",
+ "AT-07-08" : "Zentrale Lechtaler Alpen",
+ "AT-07-09" : "Grieskogelgruppe",
+ "AT-07-10" : "Westliche Verwallgruppe",
+ "AT-07-11" : "Östliche Verwallgruppe",
+ "AT-07-12" : "Silvretta",
+ "AT-07-13" : "Samnaungruppe",
+ "AT-07-14" : "Nördliche Ötztaler- und Stubaier Alpen",
+ "AT-07-15" : "Westliche Tuxer Alpen",
+ "AT-07-16" : "Östliche Tuxer Alpen",
+ "AT-07-17" : "Westliche Kitzbüheler Alpen",
+ "AT-07-18" : "Östliche Kitzbüheler Alpen",
+ "AT-07-19" : "Glockturmgruppe",
+ "AT-07-20" : "Weißkugelgruppe",
+ "AT-07-21" : "Gurgler Gruppe",
+ "AT-07-22" : "Zentrale Stubaier Alpen",
+ "AT-07-23" : "Nördliche Zillertaler Alpen",
+ "AT-07-24" : "Venedigergruppe",
+ "AT-07-25" : "Östliche Rieserfernergruppe",
+ "AT-07-26" : "Glocknergruppe",
+ "AT-07-27" : "Östliche Deferegger Alpen",
+ "AT-07-28" : "Schobergruppe",
+ "AT-07-29" : "Lienzer Dolomiten",
+ "AT-08" : "Vorarlberg",
+ "CH" : "Schweiz",
+ "CH-1111" : "Waadtländer Voralpen",
+ "CH-1112" : "Pays d'Enhaut",
+ "CH-1113" : "Aigle-Leysin",
+ "CH-1114" : "Bex-Villars",
+ "CH-1121" : "Jaun",
+ "CH-1122" : "Gruyère",
+ "CH-1211" : "Westliche Berner Voralpen",
+ "CH-1212" : "Östliche Berner Voralpen",
+ "CH-1213" : "Hohgant",
+ "CH-1221" : "Niedersimmental",
+ "CH-1222" : "Gstaad",
+ "CH-1223" : "Wildhorn",
+ "CH-1224" : "Lenk",
+ "CH-1225" : "Iffigen",
+ "CH-1226" : "Adelboden",
+ "CH-1227" : "Engstligen",
+ "CH-1228" : "Obersimmental",
+ "CH-1231" : "Kandersteg",
+ "CH-1232" : "Blüemlisalp",
+ "CH-1233" : "Lauterbrunnen",
+ "CH-1234" : "Jungfrau - Schilthorn",
+ "CH-1241" : "Brienz-Interlaken",
+ "CH-1242" : "Grindelwald",
+ "CH-1243" : "Schreckhorn",
+ "CH-1244" : "Hasliberg - Rosenlaui",
+ "CH-1245" : "Guttannen",
+ "CH-1246" : "Gadmertal",
+ "CH-1247" : "Grimselpass",
+ "CH-1311" : "Vouvry",
+ "CH-1312" : "Monthey-Val d'Illiez",
+ "CH-2111" : "Pilatus",
+ "CH-2112" : "Schwarzenberg",
+ "CH-2121" : "Glaubenberg",
+ "CH-2122" : "Engelberg",
+ "CH-2123" : "Melchtal",
+ "CH-2124" : "Gersau",
+ "CH-2131" : "Rothenthurm",
+ "CH-2132" : "Ybrig",
+ "CH-2133" : "Stoos",
+ "CH-2134" : "Bisistal",
+ "CH-2211" : "Schächental",
+ "CH-2212" : "Uri Rot Stock",
+ "CH-2221" : "Meiental",
+ "CH-2222" : "Maderanertal",
+ "CH-2223" : "Nördliches Urseren",
+ "CH-2224" : "Südliches Urseren",
+ "CH-3111" : "Glarus Nord",
+ "CH-3112" : "Glarus Süd-Grosstal",
+ "CH-3113" : "Glarus Süd-Sernftal",
+ "CH-3114" : "Glarus Mitte",
+ "CH-3211" : "Appenzeller Alpen",
+ "CH-3221" : "Toggenburg",
+ "CH-3222" : "Alpstein - Alvier",
+ "CH-3223" : "Flumserberg",
+ "CH-3224" : "Sarganserland",
+ "CH-3311" : "Liechtenstein",
+ "CH-4111" : "Emosson",
+ "CH-4112" : "Génépi",
+ "CH-4113" : "Val d'Entremont-Val Ferret",
+ "CH-4114" : "Conthey-Fully",
+ "CH-4115" : "Martigny-Verbier",
+ "CH-4116" : "Haut Val de Bagnes",
+ "CH-4121" : "Montana",
+ "CH-4122" : "Val d'Hérens",
+ "CH-4123" : "Arolla",
+ "CH-4124" : "Val d'Anniviers",
+ "CH-4125" : "Mountet",
+ "CH-4211" : "Leukerbad - Lötschental",
+ "CH-4212" : "Turtmanntal",
+ "CH-4213" : "Konkordia Gebiet",
+ "CH-4214" : "Riederalp",
+ "CH-4215" : "Leuk",
+ "CH-4221" : "Untere Vispertäler",
+ "CH-4222" : "Zermatt",
+ "CH-4223" : "Saas Fee",
+ "CH-4224" : "Monte Rosa",
+ "CH-4225" : "Mattmark",
+ "CH-4231" : "Nördliches Simplon Gebiet",
+ "CH-4232" : "Südliches Simplon Gebiet",
+ "CH-4241" : "Reckingen",
+ "CH-4242" : "Binntal",
+ "CH-4243" : "Nördliches Obergoms",
+ "CH-4244" : "Südliches Obergoms",
+ "CH-5111" : "Nördliches Prättigau",
+ "CH-5112" : "Südliches Prättigau",
+ "CH-5113" : "Westliche Silvretta",
|
[-]
[+]
|
Added |
_service:tar_git:harbour-avarisk-0.9.2.tar.bz2/qml/pages/micro-regions_names/en.json
^
|
@@ -0,0 +1,507 @@
+{
+ "AD" : "Andorra",
+ "AT" : "Austria",
+ "AT-02" : "Carinthia",
+ "AT-02-01" : "Glocknergruppe",
+ "AT-02-02" : "Schobergruppe",
+ "AT-02-03" : "Ankogelgruppe",
+ "AT-02-04" : "Nockberge",
+ "AT-02-05" : "Gurktaler Alpen",
+ "AT-02-06" : "Saualpe",
+ "AT-02-07" : "Packalpe",
+ "AT-02-08" : "Koralpe",
+ "AT-02-09" : "Kreuzeckgruppe",
+ "AT-02-10" : "Lienzer Dolomiten",
+ "AT-02-11" : "Gailtaler Alpen West",
+ "AT-02-12" : "Gailtaler Alpen Mitte",
+ "AT-02-13" : "Villacher Alpe",
+ "AT-02-14" : "Karnische Alpen West",
+ "AT-02-15" : "Karnische Alpen Mitte",
+ "AT-02-16" : "Karnische Alpen Ost",
+ "AT-02-17" : "Karawanken West",
+ "AT-02-18" : "Karawanken Mitte",
+ "AT-02-19" : "Karawanken Ost",
+ "AT-03" : "Lower Austria",
+ "AT-03-01" : "Ybbstaler Alpen",
+ "AT-03-02" : "Türnitzer Alpen",
+ "AT-03-03" : "Gutensteiner Alpen",
+ "AT-03-04" : "Rax - Schneeberggebiet",
+ "AT-03-05" : "Semmering - Wechselgebiet",
+ "AT-03-06" : "Gippel - Göllergebiet",
+ "AT-04" : "Upper Austria",
+ "AT-04-01" : "Dachstein, Gosaukamm",
+ "AT-04-02" : "Kalmberg, Katergebirge",
+ "AT-04-03" : "Totes Gebirge",
+ "AT-04-04" : "Phyrgas, Haller Mauern",
+ "AT-04-05" : "Zimnitzmassiv, Höllengbirge",
+ "AT-04-06" : "Traunstein, Eibenberg",
+ "AT-04-07" : "Kasbergblock",
+ "AT-04-08" : "Sengsengebirge",
+ "AT-04-09" : "Ennstaler Voralpen",
+ "AT-05" : "Salzburg",
+ "AT-05-01" : "Nockberge",
+ "AT-05-02" : "Niedere Tauern Süd",
+ "AT-05-03" : "Ankogelgruppe, Muhr",
+ "AT-05-04" : "Niedere Tauern Alpenhauptkamm",
+ "AT-05-05" : "Goldberggruppe Alpenhauptkamm",
+ "AT-05-06" : "Glocknergruppe Alpenhauptkamm",
+ "AT-05-07" : "Großvenedigergruppe Alpenhauptkamm",
+ "AT-05-08" : "Niedere Tauern Nord",
+ "AT-05-09" : "Goldberggruppe Nord",
+ "AT-05-10" : "Glocknergruppe Nord",
+ "AT-05-11" : "Großvenedigergruppe Nord",
+ "AT-05-12" : "Pongauer Grasberge",
+ "AT-05-13" : "Dientner Grasberge",
+ "AT-05-14" : "Kitzbüheler Alpen, Glemmtal",
+ "AT-05-15" : "Oberpinzgauer Grasberge",
+ "AT-05-16" : "Tennengebirge, Gosaukamm",
+ "AT-05-17" : "Steinernes Meer, Hochkönig, Hagengebirge, Göllstock",
+ "AT-05-18" : "Loferer und Leoganger Steinberge",
+ "AT-05-19" : "Osterhorngruppe, Gamsfeldgruppe",
+ "AT-05-20" : "Untersbergstock",
+ "AT-05-21" : "Chiemgauer Alpen, Heutal, Reiteralpe",
+ "AT-06" : "Styria",
+ "AT-06-01" : "Dachsteingebiet",
+ "AT-06-02" : "Totes Gebirge",
+ "AT-06-03" : "Ennstaler Alpen",
+ "AT-06-04" : "Schladminger Tauern",
+ "AT-06-05" : "Nördliche Wölzer Tauern",
+ "AT-06-06" : "Rottenmanner Tauern",
+ "AT-06-07" : "Südliche Wölzer Tauern",
+ "AT-06-08" : "Seckauer Tauern",
+ "AT-06-09" : "Eisenerzer Alpen",
+ "AT-06-10" : "Hochschwabgebiet",
+ "AT-06-11" : "Mürzsteger Alpen",
+ "AT-06-12" : "Mürztaler Alpen",
+ "AT-06-13" : "Östliche Fischbacher Alpen und Wechselgebiet",
+ "AT-06-14" : "Westliche Fischbacher Alpen und Grazer Bergland",
+ "AT-06-15" : "Stub- und Gleinalpe",
+ "AT-06-16" : "Koralpe",
+ "AT-06-17" : "Seetaler Alpen",
+ "AT-06-18" : "Gurktaler Alpen",
+ "AT-07" : "Tyrol",
+ "AT-07-01" : "Allgäu Alps",
+ "AT-07-02" : "Eastern Lechtal Alps - Ammergau Alps",
+ "AT-07-03" : "Mieming Mountains",
+ "AT-07-04" : "Karwendel Mountains",
+ "AT-07-05" : "Brandenberg Alps",
+ "AT-07-06" : "Wilder Kaiser Mountains - Waidring Alps",
+ "AT-07-07" : "Western Lechtal Alps",
+ "AT-07-08" : "Central Lechtal Alps",
+ "AT-07-09" : "Grieskogel Mountains",
+ "AT-07-10" : "Western Verwall Mountains",
+ "AT-07-11" : "Eastern Verwall Mountains",
+ "AT-07-12" : "Silvretta",
+ "AT-07-13" : "Samnaun Mountains",
+ "AT-07-14" : "Northern Oetz and Stubai Alps",
+ "AT-07-15" : "Western Tuxer Alps",
+ "AT-07-16" : "Eastern Tuxer Alps",
+ "AT-07-17" : "Western Kitzbühel Alps",
+ "AT-07-18" : "Eastern Kitzbühel Alps",
+ "AT-07-19" : "Glockturm Range",
+ "AT-07-20" : "Weißkugel Range",
+ "AT-07-21" : "Gurgler Range",
+ "AT-07-22" : "Central Stubai Alps",
+ "AT-07-23" : "Northern Zillertal Alps",
+ "AT-07-24" : "Venediger Range",
+ "AT-07-25" : "Eastern Rieserferner Mountains",
+ "AT-07-26" : "Glockner Range",
+ "AT-07-27" : "Eastern Deferegger Alps",
+ "AT-07-28" : "Schober Mountains",
+ "AT-07-29" : "Lienzer Dolomites",
+ "AT-08" : "Vorarlberg",
+ "AT-08-01" : "",
+ "AT-08-02" : "",
+ "AT-08-03" : "",
+ "AT-08-04" : "",
+ "AT-08-05" : "",
+ "AT-08-06" : "",
+ "CH" : "Switzerland",
+ "CH-1111" : "Waadtländer Voralpen",
+ "CH-1112" : "Pays d'Enhaut",
+ "CH-1113" : "Aigle-Leysin",
+ "CH-1114" : "Bex-Villars",
+ "CH-1121" : "Jaun",
+ "CH-1122" : "Gruyère",
+ "CH-1211" : "westliche Berner Voralpen",
+ "CH-1212" : "östliche Berner Voralpen",
+ "CH-1213" : "Hohgant",
+ "CH-1221" : "Niedersimmental",
+ "CH-1222" : "Gstaad",
+ "CH-1223" : "Wildhorn",
+ "CH-1224" : "Lenk",
+ "CH-1225" : "Iffigen",
+ "CH-1226" : "Adelboden",
+ "CH-1227" : "Engstligen",
+ "CH-1228" : "Obersimmental",
+ "CH-1231" : "Kandersteg",
+ "CH-1232" : "Blüemlisalp",
+ "CH-1233" : "Lauterbrunnen",
+ "CH-1234" : "Jungfrau - Schilthorn",
+ "CH-1241" : "Brienz-Interlaken",
+ "CH-1242" : "Grindelwald",
+ "CH-1243" : "Schreckhorn",
+ "CH-1244" : "Hasliberg - Rosenlaui",
+ "CH-1245" : "Guttannen",
+ "CH-1246" : "Gadmertal",
+ "CH-1247" : "Grimselpass",
+ "CH-1311" : "Vouvry",
+ "CH-1312" : "Monthey-Val d'Illiez",
+ "CH-2111" : "Pilatus",
+ "CH-2112" : "Schwarzenberg",
+ "CH-2121" : "Glaubenberg",
+ "CH-2122" : "Engelberg",
+ "CH-2123" : "Melchtal",
+ "CH-2124" : "Gersau",
+ "CH-2131" : "Rothenthurm",
+ "CH-2132" : "Ybrig",
+ "CH-2133" : "Stoos",
+ "CH-2134" : "Bisistal",
+ "CH-2211" : "Schächental",
+ "CH-2212" : "Uri Rot Stock",
+ "CH-2221" : "Meiental",
+ "CH-2222" : "Maderanertal",
+ "CH-2223" : "nördliches Urseren",
+ "CH-2224" : "südliches Urseren",
+ "CH-3111" : "Glarus Nord",
+ "CH-3112" : "Glarus Süd-Grosstal",
+ "CH-3113" : "Glarus Süd-Sernftal",
+ "CH-3114" : "Glarus Mitte",
+ "CH-3211" : "Appenzeller Alpen",
+ "CH-3221" : "Toggenburg",
+ "CH-3222" : "Alpstein - Alvier",
+ "CH-3223" : "Flumserberg",
+ "CH-3224" : "Sarganserland",
+ "CH-3311" : "Liechtenstein",
+ "CH-4111" : "Emosson",
+ "CH-4112" : "Génépi",
+ "CH-4113" : "Val d'Entremont-Val Ferret",
+ "CH-4114" : "Conthey-Fully",
+ "CH-4115" : "Martigny-Verbier",
+ "CH-4116" : "Haut Val de Bagnes",
+ "CH-4121" : "Montana",
+ "CH-4122" : "Val d'Hérens",
+ "CH-4123" : "Arolla",
+ "CH-4124" : "Val d'Anniviers",
+ "CH-4125" : "Mountet",
+ "CH-4211" : "Leukerbad - Lötschental",
+ "CH-4212" : "Turtmanntal",
+ "CH-4213" : "Konkordia Gebiet",
+ "CH-4214" : "Riederalp",
+ "CH-4215" : "Leuk",
+ "CH-4221" : "untere Vispertäler",
+ "CH-4222" : "Zermatt",
+ "CH-4223" : "Saas Fee",
+ "CH-4224" : "Monte Rosa",
+ "CH-4225" : "Mattmark",
+ "CH-4231" : "nördliches Simplon Gebiet",
+ "CH-4232" : "südliches Simplon Gebiet",
+ "CH-4241" : "Reckingen",
|
[-]
[+]
|
Added |
_service:tar_git:harbour-avarisk-0.9.2.tar.bz2/qml/pages/micro-regions_names/fr.json
^
|
@@ -0,0 +1,501 @@
+{
+ "AD" : "Andorra",
+ "AT" : "Austria",
+ "AT-02" : "Carinthia",
+ "AT-02-01" : "Glocknergruppe",
+ "AT-02-02" : "Schobergruppe",
+ "AT-02-03" : "Ankogelgruppe",
+ "AT-02-04" : "Nockberge",
+ "AT-02-05" : "Gurktaler Alpen",
+ "AT-02-06" : "Saualpe",
+ "AT-02-07" : "Packalpe",
+ "AT-02-08" : "Koralpe",
+ "AT-02-09" : "Kreuzeckgruppe",
+ "AT-02-10" : "Lienzer Dolomiten",
+ "AT-02-11" : "Gailtaler Alpen West",
+ "AT-02-12" : "Gailtaler Alpen Mitte",
+ "AT-02-13" : "Villacher Alpe",
+ "AT-02-14" : "Karnische Alpen West",
+ "AT-02-15" : "Karnische Alpen Mitte",
+ "AT-02-16" : "Karnische Alpen Ost",
+ "AT-02-17" : "Karawanken West",
+ "AT-02-18" : "Karawanken Mitte",
+ "AT-02-19" : "Karawanken Ost",
+ "AT-03" : "Lower Austria",
+ "AT-03-01" : "Ybbstaler Alpen",
+ "AT-03-02" : "Türnitzer Alpen",
+ "AT-03-03" : "Gutensteiner Alpen",
+ "AT-03-04" : "Rax - Schneeberggebiet",
+ "AT-03-05" : "Semmering - Wechselgebiet",
+ "AT-03-06" : "Gippel - Göllergebiet",
+ "AT-04" : "Upper Austria",
+ "AT-04-01" : "Dachstein, Gosaukamm",
+ "AT-04-02" : "Kalmberg, Katergebirge",
+ "AT-04-03" : "Totes Gebirge",
+ "AT-04-04" : "Phyrgas, Haller Mauern",
+ "AT-04-05" : "Zimnitzmassiv, Höllengbirge",
+ "AT-04-06" : "Traunstein, Eibenberg",
+ "AT-04-07" : "Kasbergblock",
+ "AT-04-08" : "Sengsengebirge",
+ "AT-04-09" : "Ennstaler Voralpen",
+ "AT-05" : "Salzburg",
+ "AT-05-01" : "Nockberge",
+ "AT-05-02" : "Niedere Tauern Süd",
+ "AT-05-03" : "Ankogelgruppe, Muhr",
+ "AT-05-04" : "Niedere Tauern Alpenhauptkamm",
+ "AT-05-05" : "Goldberggruppe Alpenhauptkamm",
+ "AT-05-06" : "Glocknergruppe Alpenhauptkamm",
+ "AT-05-07" : "Großvenedigergruppe Alpenhauptkamm",
+ "AT-05-08" : "Niedere Tauern Nord",
+ "AT-05-09" : "Goldberggruppe Nord",
+ "AT-05-10" : "Glocknergruppe Nord",
+ "AT-05-11" : "Großvenedigergruppe Nord",
+ "AT-05-12" : "Pongauer Grasberge",
+ "AT-05-13" : "Dientner Grasberge",
+ "AT-05-14" : "Kitzbüheler Alpen, Glemmtal",
+ "AT-05-15" : "Oberpinzgauer Grasberge",
+ "AT-05-16" : "Tennengebirge, Gosaukamm",
+ "AT-05-17" : "Steinernes Meer, Hochkönig, Hagengebirge, Göllstock",
+ "AT-05-18" : "Loferer und Leoganger Steinberge",
+ "AT-05-19" : "Osterhorngruppe, Gamsfeldgruppe",
+ "AT-05-20" : "Untersbergstock",
+ "AT-05-21" : "Chiemgauer Alpen, Heutal, Reiteralpe",
+ "AT-06" : "Styria",
+ "AT-06-01" : "Dachsteingebiet",
+ "AT-06-02" : "Totes Gebirge",
+ "AT-06-03" : "Ennstaler Alpen",
+ "AT-06-04" : "Schladminger Tauern",
+ "AT-06-05" : "Nördliche Wölzer Tauern",
+ "AT-06-06" : "Rottenmanner Tauern",
+ "AT-06-07" : "Südliche Wölzer Tauern",
+ "AT-06-08" : "Seckauer Tauern",
+ "AT-06-09" : "Eisenerzer Alpen",
+ "AT-06-10" : "Hochschwabgebiet",
+ "AT-06-11" : "Mürzsteger Alpen",
+ "AT-06-12" : "Mürztaler Alpen",
+ "AT-06-13" : "Östliche Fischbacher Alpen und Wechselgebiet",
+ "AT-06-14" : "Westliche Fischbacher Alpen und Grazer Bergland",
+ "AT-06-15" : "Stub- und Gleinalpe",
+ "AT-06-16" : "Koralpe",
+ "AT-06-17" : "Seetaler Alpen",
+ "AT-06-18" : "Gurktaler Alpen",
+ "AT-07" : "Tyrol",
+ "AT-07-01" : "Allgäu Alps",
+ "AT-07-02" : "Eastern Lechtal Alps - Ammergau Alps",
+ "AT-07-03" : "Mieming Mountains",
+ "AT-07-04" : "Karwendel Mountains",
+ "AT-07-05" : "Brandenberg Alps",
+ "AT-07-06" : "Wilder Kaiser Mountains - Waidring Alps",
+ "AT-07-07" : "Western Lechtal Alps",
+ "AT-07-08" : "Central Lechtal Alps",
+ "AT-07-09" : "Grieskogel Mountains",
+ "AT-07-10" : "Western Verwall Mountains",
+ "AT-07-11" : "Eastern Verwall Mountains",
+ "AT-07-12" : "Silvretta",
+ "AT-07-13" : "Samnaun Mountains",
+ "AT-07-14" : "Northern Oetz and Stubai Alps",
+ "AT-07-15" : "Western Tuxer Alps",
+ "AT-07-16" : "Eastern Tuxer Alps",
+ "AT-07-17" : "Western Kitzbühel Alps",
+ "AT-07-18" : "Eastern Kitzbühel Alps",
+ "AT-07-19" : "Glockturm Range",
+ "AT-07-20" : "Weißkugel Range",
+ "AT-07-21" : "Gurgler Range",
+ "AT-07-22" : "Central Stubai Alps",
+ "AT-07-23" : "Northern Zillertal Alps",
+ "AT-07-24" : "Venediger Range",
+ "AT-07-25" : "Eastern Rieserferner Mountains",
+ "AT-07-26" : "Glockner Range",
+ "AT-07-27" : "Eastern Deferegger Alps",
+ "AT-07-28" : "Schober Mountains",
+ "AT-07-29" : "Lienzer Dolomites",
+ "AT-08" : "Vorarlberg",
+ "CH" : "Switzerland",
+ "CH-1111" : "Waadtländer Voralpen",
+ "CH-1112" : "Pays d'Enhaut",
+ "CH-1113" : "Aigle-Leysin",
+ "CH-1114" : "Bex-Villars",
+ "CH-1121" : "Jaun",
+ "CH-1122" : "Gruyère",
+ "CH-1211" : "westliche Berner Voralpen",
+ "CH-1212" : "östliche Berner Voralpen",
+ "CH-1213" : "Hohgant",
+ "CH-1221" : "Niedersimmental",
+ "CH-1222" : "Gstaad",
+ "CH-1223" : "Wildhorn",
+ "CH-1224" : "Lenk",
+ "CH-1225" : "Iffigen",
+ "CH-1226" : "Adelboden",
+ "CH-1227" : "Engstligen",
+ "CH-1228" : "Obersimmental",
+ "CH-1231" : "Kandersteg",
+ "CH-1232" : "Blüemlisalp",
+ "CH-1233" : "Lauterbrunnen",
+ "CH-1234" : "Jungfrau - Schilthorn",
+ "CH-1241" : "Brienz-Interlaken",
+ "CH-1242" : "Grindelwald",
+ "CH-1243" : "Schreckhorn",
+ "CH-1244" : "Hasliberg - Rosenlaui",
+ "CH-1245" : "Guttannen",
+ "CH-1246" : "Gadmertal",
+ "CH-1247" : "Grimselpass",
+ "CH-1311" : "Vouvry",
+ "CH-1312" : "Monthey-Val d'Illiez",
+ "CH-2111" : "Pilatus",
+ "CH-2112" : "Schwarzenberg",
+ "CH-2121" : "Glaubenberg",
+ "CH-2122" : "Engelberg",
+ "CH-2123" : "Melchtal",
+ "CH-2124" : "Gersau",
+ "CH-2131" : "Rothenthurm",
+ "CH-2132" : "Ybrig",
+ "CH-2133" : "Stoos",
+ "CH-2134" : "Bisistal",
+ "CH-2211" : "Schächental",
+ "CH-2212" : "Uri Rot Stock",
+ "CH-2221" : "Meiental",
+ "CH-2222" : "Maderanertal",
+ "CH-2223" : "nördliches Urseren",
+ "CH-2224" : "südliches Urseren",
+ "CH-3111" : "Glarus Nord",
+ "CH-3112" : "Glarus Süd-Grosstal",
+ "CH-3113" : "Glarus Süd-Sernftal",
+ "CH-3114" : "Glarus Mitte",
+ "CH-3211" : "Appenzeller Alpen",
+ "CH-3221" : "Toggenburg",
+ "CH-3222" : "Alpstein - Alvier",
+ "CH-3223" : "Flumserberg",
+ "CH-3224" : "Sarganserland",
+ "CH-3311" : "Liechtenstein",
+ "CH-4111" : "Emosson",
+ "CH-4112" : "Génépi",
+ "CH-4113" : "Val d'Entremont-Val Ferret",
+ "CH-4114" : "Conthey-Fully",
+ "CH-4115" : "Martigny-Verbier",
+ "CH-4116" : "Haut Val de Bagnes",
+ "CH-4121" : "Montana",
+ "CH-4122" : "Val d'Hérens",
+ "CH-4123" : "Arolla",
+ "CH-4124" : "Val d'Anniviers",
+ "CH-4125" : "Mountet",
+ "CH-4211" : "Leukerbad - Lötschental",
+ "CH-4212" : "Turtmanntal",
+ "CH-4213" : "Konkordia Gebiet",
+ "CH-4214" : "Riederalp",
+ "CH-4215" : "Leuk",
+ "CH-4221" : "untere Vispertäler",
+ "CH-4222" : "Zermatt",
+ "CH-4223" : "Saas Fee",
+ "CH-4224" : "Monte Rosa",
+ "CH-4225" : "Mattmark",
+ "CH-4231" : "nördliches Simplon Gebiet",
+ "CH-4232" : "südliches Simplon Gebiet",
+ "CH-4241" : "Reckingen",
+ "CH-4242" : "Binntal",
+ "CH-4243" : "nördliches Obergoms",
+ "CH-4244" : "südliches Obergoms",
+ "CH-5111" : "nördliches Prättigau",
+ "CH-5112" : "südliches Prättigau",
+ "CH-5113" : "westliche Silvretta",
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-avarisk-0.9.2.tar.bz2/qml/pages/pyCore.py
^
|
@@ -65,8 +65,55 @@
# else:
# url, provider = pyAvaCore.get_report_url(region_id, local)
+ region_id_short = region_id
+ if "AT-07" in region_id:
+ region_id_short = 'AT-07'
+
+ if "IT-32-BZ" in region_id:
+ region_id_short = 'IT-32-BZ'
+
+ if "IT-32-TN" in region_id:
+ region_id_short = 'IT-32-TN'
+ # Kärnten
+ if region_id.startswith("AT-02"):
+ region_id_short = 'AT-02'
+
+ # Salzburg
+ if region_id.startswith("AT-05"):
+ region_id_short = 'AT-05'
+
+ # Steiermark
+ if region_id.startswith("AT-06"):
+ region_id_short = 'AT-06'
+
+ # Oberösterreich
+ if region_id.startswith("AT-04"):
+ region_id_short = 'AT-04'
+
+ # Niederösterreich
+ if region_id.startswith("AT-03"):
+ region_id_short = 'AT-03'
+
+ #Vorarlberg Neu
+ if region_id.startswith("AT-08"):
+ region_id_short = 'AT-08'
+
+ #Bavaria - neu
+ if region_id.startswith("DE-BY"):
+ region_id_short = 'DE-BY'
+
+ #Val d'Aran
+ if region_id.startswith("ES-CT-L"):
+ region_id_short = 'ES-CT-L'
+
+ if region_id.startswith("SI"):
+ region_id_short = 'SI'
+
+ if region_id.startswith("CH"):
+ region_id_short = 'CH'
+
try:
- reports_r, provider, url = pyAvaCore.get_reports(region_id, local=local.lower()[0:2], cache_path=path)
+ reports_r, provider, url = pyAvaCore.get_reports(region_id_short, local=local.lower()[0:2], cache_path=path)
reports.extend(reports_r)
pyotherside.send('error', 'local :' +local.lower())
except Exception as e:
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-avarisk-0.9.2.tar.bz2/translations/harbour-avarisk-de.ts
^
|
@@ -150,227 +150,9 @@
<source>Weather Forecast</source>
<translation>Wettervorhersage</translation>
</message>
-</context>
-<context>
- <name>DangerPage</name>
- <message>
- <source>Downloading...</source>
- <translation>Lädt...</translation>
- </message>
- <message>
- <source>low</source>
- <translation>gering</translation>
- </message>
- <message>
- <source>moderate</source>
- <translation>mäßig</translation>
- </message>
- <message>
- <source>considerable</source>
- <translation>erheblich</translation>
- </message>
- <message>
- <source>high</source>
- <translation>groß</translation>
- </message>
- <message>
- <source>very high</source>
- <translation>sehr groß</translation>
- </message>
- <message>
- <source>loading</source>
- <translation>lädt</translation>
- </message>
- <message>
- <source>treeline</source>
- <translation>Waldgrenze</translation>
- </message>
- <message>
- <source>entire range</source>
- <translation>jede Höhe</translation>
- </message>
- <message>
- <source>Reload</source>
- <translation>Neu herunterladen</translation>
- </message>
- <message>
- <source>Know-How</source>
- <translation>Know-How</translation>
- </message>
- <message>
- <source>PM Report</source>
- <translation>Nachmittagsbericht</translation>
- </message>
- <message>
- <source>Report</source>
- <translation>Bericht</translation>
- </message>
- <message>
- <source>Offline Report - Check Validity Date</source>
- <translation>Offline Report: Prüfe ob gültig!</translation>
- </message>
- <message>
- <source>Valid time interval</source>
- <translation>Gültigkeitszeitraum</translation>
- </message>
- <message>
- <source>Report from</source>
- <translation>Bericht vom</translation>
- </message>
- <message>
- <source>Report could not be requested</source>
- <translation>Report konnte nicht abgerufen werden</translation>
- </message>
- <message>
- <source>Danger Level</source>
- <translation>Gefahrenstufe</translation>
- </message>
- <message>
- <source>Level</source>
- <translation>Stufe</translation>
- </message>
- <message>
- <source>Elevation Data</source>
- <translation>Höheneingrenzung</translation>
- </message>
- <message>
- <source>Avalanche Problem</source>
- <translation>Probleme und Gefahrenstellen</translation>
- </message>
- <message>
- <source>Danger Description</source>
- <translation>Gefahrenbeschrieb</translation>
- </message>
- <message>
- <source>Snowpack Description</source>
- <translation>Schneedeckenaufbau</translation>
- </message>
- <message>
- <source>Tendency</source>
- <translation>Tendenz</translation>
- </message>
- <message>
- <source>LEVEL</source>
- <translation>STUFE</translation>
- </message>
- <message>
- <source>Maybe no report is provided for this region at the moment.</source>
- <translation>Möglicherweise wird für diese Region noch kein Lagebericht ausgegeben.</translation>
- </message>
- <message>
- <source>No Internet connection and no report cached for this region</source>
- <translation>Keine Internetverbindung und kein heruntergeladener Report verfügbar</translation>
- </message>
- <message>
- <source>PM Report Available!</source>
- <translation>Nachmittagsbericht verfügbar!</translation>
- </message>
-</context>
-<context>
- <name>DangerPage_swiss</name>
- <message>
- <source>Downloading...</source>
- <translation>Lädt...</translation>
- </message>
- <message>
- <source>low</source>
- <translation>gering</translation>
- </message>
- <message>
- <source>moderate</source>
- <translation>mäßig</translation>
- </message>
- <message>
- <source>considerable</source>
- <translation>erheblich</translation>
- </message>
- <message>
- <source>high</source>
- <translation>groß</translation>
- </message>
- <message>
- <source>very high</source>
- <translation>sehr groß</translation>
- </message>
- <message>
- <source>loading</source>
- <translation>lädt</translation>
- </message>
<message>
<source>treeline</source>
- <translation>Waldgrenze</translation>
- </message>
- <message>
- <source>entire range</source>
- <translation>jede Höhe</translation>
- </message>
- <message>
- <source>Reload</source>
- <translation>Neu herunterladen</translation>
- </message>
- <message>
- <source>Know-How</source>
- <translation>Know-How</translation>
- </message>
- <message>
- <source>PM Report</source>
- <translation>Nachmittagsbericht</translation>
- </message>
- <message>
- <source>Report</source>
- <translation>Bericht</translation>
- </message>
- <message>
- <source>Offline Report - Check Validity Date</source>
- <translation>Offline Report: Prüfe ob gültig!</translation>
- </message>
- <message>
- <source>PM Report Available!</source>
- <translation>Nachmittagsbericht verfügbar!</translation>
- </message>
- <message>
- <source>Valid time interval</source>
- <translation>Gültigkeitszeitraum</translation>
- </message>
- <message>
- <source>Report from</source>
- <translation>Bericht vom</translation>
- </message>
- <message>
- <source>Report could not be requested</source>
- <translation>Report konnte nicht abgerufen werden</translation>
- </message>
- <message>
- <source>Danger Level</source>
- <translation>Gefahrenstufe</translation>
- </message>
- <message>
- <source>Level</source>
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-avarisk-0.9.2.tar.bz2/translations/harbour-avarisk-fr.ts
^
|
@@ -76,7 +76,7 @@
</message>
<message>
<source>Know-How</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished">Know-How</translation>
</message>
<message>
<source>Report</source>
@@ -150,230 +150,12 @@
<source>Weather Forecast</source>
<translation type="unfinished"></translation>
</message>
-</context>
-<context>
- <name>DangerPage</name>
- <message>
- <source>Downloading...</source>
- <translation>Téléchargement...</translation>
- </message>
- <message>
- <source>low</source>
- <translation>faible</translation>
- </message>
- <message>
- <source>moderate</source>
- <translation>limité</translation>
- </message>
- <message>
- <source>considerable</source>
- <translation>marqué</translation>
- </message>
- <message>
- <source>high</source>
- <translation>fort</translation>
- </message>
- <message>
- <source>very high</source>
- <translation>très fort</translation>
- </message>
- <message>
- <source>loading</source>
- <translation>chargement</translation>
- </message>
<message>
<source>treeline</source>
- <translation>limite des arbres</translation>
- </message>
- <message>
- <source>entire range</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Reload</source>
- <translation>Rechargement</translation>
- </message>
- <message>
- <source>Know-How</source>
- <translation>Savoir-faire</translation>
- </message>
- <message>
- <source>PM Report</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Report</source>
- <translation>Bulletin</translation>
- </message>
- <message>
- <source>Offline Report - Check Validity Date</source>
- <translation>Bulletin hors connexion - Vérifiez la date de validité</translation>
- </message>
- <message>
- <source>Valid time interval</source>
- <translation>Interval de validité</translation>
- </message>
- <message>
- <source>Report from</source>
- <translation>Bulletin issu de</translation>
- </message>
- <message>
- <source>Report could not be requested</source>
- <translation>Le bulletin ne peut pas être recueilli</translation>
- </message>
- <message>
- <source>Danger Level</source>
- <translation>Indice de risque</translation>
- </message>
- <message>
- <source>Level</source>
- <translation>Indice</translation>
- </message>
- <message>
- <source>Elevation Data</source>
- <translation>Altitude</translation>
- </message>
- <message>
- <source>Avalanche Problem</source>
- <translation>Les Problèmes d'Avalanche</translation>
- </message>
- <message>
- <source>Danger Description</source>
- <translation>Description du risque</translation>
- </message>
- <message>
- <source>Snowpack Description</source>
- <translation>Manteau neigeux</translation>
- </message>
- <message>
- <source>Tendency</source>
- <translation>Tendance</translation>
- </message>
- <message>
- <source>LEVEL</source>
- <translation>Niveau</translation>
- </message>
- <message>
- <source>Maybe no report is provided for this region at the moment.</source>
- <translation>Il est possible qu'aucun bulletin ne soit disponible actuellement pour cette région</translation>
- </message>
- <message>
- <source>No Internet connection and no report cached for this region</source>
- <translation>Connexion indisponible, et aucune donnée en cache pour cette région</translation>
- </message>
- <message>
- <source>PM Report Available!</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
- <name>DangerPage_swiss</name>
- <message>
- <source>Downloading...</source>
- <translation>Téléchargement...</translation>
- </message>
- <message>
- <source>low</source>
- <translation>faibe</translation>
- </message>
- <message>
- <source>moderate</source>
- <translation>limité</translation>
- </message>
- <message>
- <source>considerable</source>
- <translation>marqué</translation>
- </message>
- <message>
- <source>high</source>
- <translation>fort</translation>
- </message>
- <message>
- <source>very high</source>
- <translation>très fort</translation>
- </message>
- <message>
- <source>loading</source>
- <translation>chargement</translation>
- </message>
- <message>
- <source>treeline</source>
- <translation>limite des arbres</translation>
- </message>
- <message>
- <source>entire range</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Reload</source>
- <translation>rechargement</translation>
- </message>
- <message>
- <source>Know-How</source>
- <translation>savoir-faire</translation>
- </message>
- <message>
- <source>PM Report</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Report</source>
- <translation>Bulletin</translation>
- </message>
- <message>
- <source>Offline Report - Check Validity Date</source>
- <translation>Bulletin hors connexion - Vérifiez la date de validité</translation>
- </message>
- <message>
- <source>PM Report Available!</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Valid time interval</source>
- <translation>Interval de validité</translation>
- </message>
- <message>
- <source>Report from</source>
- <translation>Bulletin issu de</translation>
- </message>
- <message>
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-avarisk-0.9.2.tar.bz2/translations/harbour-avarisk.ts
^
|
@@ -150,228 +150,10 @@
<source>Weather Forecast</source>
<translation type="unfinished"></translation>
</message>
-</context>
-<context>
- <name>DangerPage</name>
- <message>
- <source>Downloading...</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>low</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>moderate</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>considerable</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>high</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>very high</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>loading</source>
- <translation type="unfinished"></translation>
- </message>
<message>
<source>treeline</source>
<translation type="unfinished"></translation>
</message>
- <message>
- <source>entire range</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Reload</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Know-How</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>PM Report</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Report</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Offline Report - Check Validity Date</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Valid time interval</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Report from</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Report could not be requested</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Danger Level</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Level</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Elevation Data</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Avalanche Problem</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Danger Description</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Snowpack Description</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Tendency</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>LEVEL</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Maybe no report is provided for this region at the moment.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>No Internet connection and no report cached for this region</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>PM Report Available!</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>DangerPage_swiss</name>
- <message>
- <source>Downloading...</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>low</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>moderate</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>considerable</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>high</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>very high</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>loading</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>treeline</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>entire range</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Reload</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Know-How</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>PM Report</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Report</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Offline Report - Check Validity Date</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>PM Report Available!</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Valid time interval</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Report from</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Report could not be requested</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Danger Level</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Level</source>
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-avarisk.yaml
^
|
@@ -1,7 +1,7 @@
Name: harbour-avarisk
Summary: SailfishOS Client for EAWS Avalanche Bulletins
Version: 0.9
-Release: 1
+Release: 2
# The contents of the Group field should be one of the groups listed here:
# https://github.com/mer-tools/spectacle/blob/master/data/GROUPS
Group: Qt/Qt
|