homeassistant 2025.10.0b1__py3-none-any.whl → 2025.10.0b4__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of homeassistant might be problematic. Click here for more details.
- homeassistant/components/accuweather/manifest.json +1 -1
- homeassistant/components/accuweather/translations/ga.json +16 -1
- homeassistant/components/airos/__init__.py +37 -2
- homeassistant/components/airos/config_flow.py +24 -3
- homeassistant/components/airos/const.py +5 -0
- homeassistant/components/airos/entity.py +8 -3
- homeassistant/components/airos/strings.json +12 -0
- homeassistant/components/airos/translations/de.json +12 -0
- homeassistant/components/airos/translations/en-GB.json +12 -0
- homeassistant/components/airos/translations/en.json +12 -0
- homeassistant/components/airzone/translations/es.json +10 -0
- homeassistant/components/airzone/translations/et.json +10 -0
- homeassistant/components/airzone/translations/ga.json +10 -0
- homeassistant/components/airzone/translations/pt.json +10 -0
- homeassistant/components/alexa_devices/binary_sensor.py +36 -38
- homeassistant/components/alexa_devices/config_flow.py +2 -2
- homeassistant/components/alexa_devices/coordinator.py +1 -1
- homeassistant/components/alexa_devices/diagnostics.py +1 -3
- homeassistant/components/alexa_devices/icons.json +0 -40
- homeassistant/components/alexa_devices/manifest.json +1 -1
- homeassistant/components/alexa_devices/sensor.py +13 -0
- homeassistant/components/alexa_devices/strings.json +0 -20
- homeassistant/components/alexa_devices/switch.py +27 -7
- homeassistant/components/alexa_devices/translations/bg.json +0 -13
- homeassistant/components/alexa_devices/translations/cs.json +0 -20
- homeassistant/components/alexa_devices/translations/de.json +0 -20
- homeassistant/components/alexa_devices/translations/el.json +0 -20
- homeassistant/components/alexa_devices/translations/en-GB.json +0 -20
- homeassistant/components/alexa_devices/translations/en.json +0 -20
- homeassistant/components/alexa_devices/translations/es.json +0 -20
- homeassistant/components/alexa_devices/translations/et.json +0 -20
- homeassistant/components/alexa_devices/translations/ga.json +0 -20
- homeassistant/components/alexa_devices/translations/he.json +0 -7
- homeassistant/components/alexa_devices/translations/hu.json +0 -20
- homeassistant/components/alexa_devices/translations/it.json +0 -20
- homeassistant/components/alexa_devices/translations/ja.json +0 -19
- homeassistant/components/alexa_devices/translations/lt.json +0 -20
- homeassistant/components/alexa_devices/translations/mk.json +0 -14
- homeassistant/components/alexa_devices/translations/nl.json +0 -20
- homeassistant/components/alexa_devices/translations/pl.json +0 -5
- homeassistant/components/alexa_devices/translations/pt.json +0 -20
- homeassistant/components/alexa_devices/translations/ru.json +0 -5
- homeassistant/components/alexa_devices/translations/sk.json +0 -20
- homeassistant/components/alexa_devices/translations/sv.json +0 -20
- homeassistant/components/alexa_devices/translations/tr.json +0 -5
- homeassistant/components/alexa_devices/translations/zh-Hans.json +0 -20
- homeassistant/components/alexa_devices/translations/zh-Hant.json +0 -20
- homeassistant/components/alexa_devices/utils.py +24 -1
- homeassistant/components/assist_pipeline/pipeline.py +43 -18
- homeassistant/components/assist_pipeline/translations/nl.json +1 -0
- homeassistant/components/assist_pipeline/translations/sv.json +1 -0
- homeassistant/components/blue_current/translations/es.json +44 -0
- homeassistant/components/blue_current/translations/et.json +44 -0
- homeassistant/components/blue_current/translations/ga.json +44 -0
- homeassistant/components/blue_current/translations/pt.json +44 -0
- homeassistant/components/cloud/translations/sk.json +1 -1
- homeassistant/components/comelit/config_flow.py +8 -4
- homeassistant/components/cync/translations/es.json +32 -0
- homeassistant/components/cync/translations/et.json +32 -0
- homeassistant/components/cync/translations/ga.json +32 -0
- homeassistant/components/cync/translations/pt.json +32 -0
- homeassistant/components/cync/translations/ru.json +32 -0
- homeassistant/components/ecovacs/translations/es.json +7 -1
- homeassistant/components/ecovacs/translations/et.json +7 -1
- homeassistant/components/ecovacs/translations/ga.json +6 -1
- homeassistant/components/ecovacs/translations/pt.json +4 -0
- homeassistant/components/ecovacs/translations/ru.json +4 -0
- homeassistant/components/edl21/translations/de.json +1 -1
- homeassistant/components/ekeybionyx/translations/es.json +66 -0
- homeassistant/components/ekeybionyx/translations/et.json +66 -0
- homeassistant/components/ekeybionyx/translations/ga.json +66 -0
- homeassistant/components/ekeybionyx/translations/pt.json +66 -0
- homeassistant/components/elvia/translations/de.json +3 -3
- homeassistant/components/esphome/manager.py +1 -1
- homeassistant/components/esphome/manifest.json +1 -1
- homeassistant/components/esphome/translations/nl.json +1 -1
- homeassistant/components/esphome/translations/sv.json +1 -1
- homeassistant/components/ezviz/entity.py +12 -6
- homeassistant/components/file/translations/es.json +31 -0
- homeassistant/components/file/translations/et.json +31 -0
- homeassistant/components/file/translations/ga.json +31 -0
- homeassistant/components/file/translations/pt.json +31 -0
- homeassistant/components/file/translations/ru.json +31 -0
- homeassistant/components/frontend/manifest.json +1 -1
- homeassistant/components/geniushub/entity.py +4 -4
- homeassistant/components/google_generative_ai_conversation/translations/ga.json +6 -0
- homeassistant/components/habitica/translations/ga.json +24 -0
- homeassistant/components/hassio/translations/es.json +4 -0
- homeassistant/components/hassio/translations/et.json +4 -0
- homeassistant/components/hassio/translations/ga.json +4 -0
- homeassistant/components/hassio/translations/pt.json +4 -0
- homeassistant/components/hassio/translations/ru.json +4 -0
- homeassistant/components/here_travel_time/translations/es.json +6 -0
- homeassistant/components/here_travel_time/translations/et.json +6 -0
- homeassistant/components/here_travel_time/translations/ga.json +6 -0
- homeassistant/components/here_travel_time/translations/pt.json +6 -0
- homeassistant/components/irm_kmi/translations/ga.json +50 -0
- homeassistant/components/lamarzocco/__init__.py +1 -1
- homeassistant/components/lamarzocco/coordinator.py +10 -2
- homeassistant/components/lamarzocco/manifest.json +1 -1
- homeassistant/components/letpot/translations/es.json +10 -0
- homeassistant/components/letpot/translations/et.json +10 -0
- homeassistant/components/letpot/translations/ga.json +9 -0
- homeassistant/components/letpot/translations/pt.json +10 -0
- homeassistant/components/lg_thinq/translations/ga.json +9 -0
- homeassistant/components/logbook/translations/es.json +6 -1
- homeassistant/components/logbook/translations/et.json +6 -1
- homeassistant/components/logbook/translations/pl.json +3 -1
- homeassistant/components/logbook/translations/pt.json +6 -1
- homeassistant/components/logbook/translations/ru.json +6 -1
- homeassistant/components/mastodon/translations/ga.json +4 -0
- homeassistant/components/matter/translations/es.json +3 -0
- homeassistant/components/matter/translations/et.json +3 -0
- homeassistant/components/matter/translations/ga.json +3 -0
- homeassistant/components/matter/translations/pt.json +3 -0
- homeassistant/components/matter/translations/ru.json +3 -0
- homeassistant/components/miele/translations/ga.json +1 -0
- homeassistant/components/mqtt/translations/es.json +19 -0
- homeassistant/components/mqtt/translations/et.json +19 -0
- homeassistant/components/mqtt/translations/ga.json +26 -1
- homeassistant/components/mqtt/translations/pt.json +19 -0
- homeassistant/components/mqtt/translations/ru.json +19 -0
- homeassistant/components/mvglive/manifest.json +2 -4
- homeassistant/components/mvglive/sensor.py +116 -86
- homeassistant/components/nina/strings.json +2 -2
- homeassistant/components/nina/translations/ca.json +0 -2
- homeassistant/components/nina/translations/cs.json +0 -2
- homeassistant/components/nina/translations/de.json +3 -3
- homeassistant/components/nina/translations/el.json +0 -1
- homeassistant/components/nina/translations/en-GB.json +3 -3
- homeassistant/components/nina/translations/en.json +3 -3
- homeassistant/components/nina/translations/es.json +0 -2
- homeassistant/components/nina/translations/et.json +0 -2
- homeassistant/components/nina/translations/fi.json +0 -2
- homeassistant/components/nina/translations/ga.json +0 -2
- homeassistant/components/nina/translations/hu.json +0 -2
- homeassistant/components/nina/translations/id.json +0 -1
- homeassistant/components/nina/translations/it.json +0 -2
- homeassistant/components/nina/translations/ja.json +0 -2
- homeassistant/components/nina/translations/ko.json +0 -2
- homeassistant/components/nina/translations/lt.json +0 -2
- homeassistant/components/nina/translations/nl.json +0 -2
- homeassistant/components/nina/translations/pt-BR.json +0 -1
- homeassistant/components/nina/translations/pt.json +0 -2
- homeassistant/components/nina/translations/ro.json +0 -1
- homeassistant/components/nina/translations/ru.json +0 -2
- homeassistant/components/nina/translations/sk.json +0 -2
- homeassistant/components/nina/translations/sv.json +0 -2
- homeassistant/components/nina/translations/tr.json +0 -2
- homeassistant/components/nina/translations/uk.json +0 -1
- homeassistant/components/nina/translations/zh-Hans.json +0 -2
- homeassistant/components/nina/translations/zh-Hant.json +0 -2
- homeassistant/components/nordpool/translations/ga.json +6 -0
- homeassistant/components/pooldose/translations/ga.json +8 -1
- homeassistant/components/portainer/__init__.py +4 -3
- homeassistant/components/portainer/config_flow.py +3 -2
- homeassistant/components/portainer/strings.json +4 -2
- homeassistant/components/portainer/translations/de.json +4 -2
- homeassistant/components/portainer/translations/en-GB.json +4 -2
- homeassistant/components/portainer/translations/en.json +4 -2
- homeassistant/components/profiler/translations/es.json +4 -0
- homeassistant/components/profiler/translations/et.json +4 -0
- homeassistant/components/profiler/translations/ga.json +4 -0
- homeassistant/components/profiler/translations/pt.json +4 -0
- homeassistant/components/route_b_smart_meter/translations/es.json +42 -0
- homeassistant/components/route_b_smart_meter/translations/et.json +42 -0
- homeassistant/components/route_b_smart_meter/translations/ga.json +42 -0
- homeassistant/components/route_b_smart_meter/translations/pt.json +42 -0
- homeassistant/components/russound_rio/manifest.json +1 -1
- homeassistant/components/satel_integra/translations/et.json +1 -0
- homeassistant/components/shelly/translations/pl.json +4 -0
- homeassistant/components/smartthings/manifest.json +1 -1
- homeassistant/components/smartthings/translations/es.json +21 -0
- homeassistant/components/smartthings/translations/et.json +21 -0
- homeassistant/components/smartthings/translations/ga.json +15 -0
- homeassistant/components/smartthings/translations/pt.json +21 -0
- homeassistant/components/thread/config_flow.py +11 -3
- homeassistant/components/thread/manifest.json +1 -0
- homeassistant/components/tolo/translations/es.json +2 -1
- homeassistant/components/tolo/translations/ga.json +2 -1
- homeassistant/components/tuya/translations/es.json +9 -0
- homeassistant/components/tuya/translations/et.json +9 -0
- homeassistant/components/tuya/translations/ga.json +9 -0
- homeassistant/components/tuya/translations/pt.json +9 -0
- homeassistant/components/usage_prediction/translations/et.json +3 -0
- homeassistant/components/valve/translations/pl.json +2 -1
- homeassistant/components/vesync/fan.py +3 -1
- homeassistant/components/voip/translations/nl.json +1 -1
- homeassistant/components/voip/translations/sv.json +1 -1
- homeassistant/components/volvooncall/translations/ga.json +18 -1
- homeassistant/components/wyoming/translations/nl.json +1 -1
- homeassistant/components/wyoming/translations/sv.json +1 -1
- homeassistant/components/zha/config_flow.py +37 -21
- homeassistant/components/zha/manifest.json +1 -1
- homeassistant/components/zha/translations/es.json +81 -3
- homeassistant/components/zha/translations/et.json +78 -0
- homeassistant/components/zha/translations/ga.json +74 -0
- homeassistant/components/zha/translations/pt.json +80 -2
- homeassistant/components/zha/translations/ru.json +8 -2
- homeassistant/components/zwave_js/config_flow.py +30 -11
- homeassistant/components/zwave_js/translations/es.json +1 -0
- homeassistant/components/zwave_js/translations/et.json +1 -0
- homeassistant/components/zwave_js/translations/ga.json +1 -0
- homeassistant/components/zwave_js/translations/pt.json +1 -0
- homeassistant/const.py +1 -1
- homeassistant/generated/integrations.json +2 -1
- homeassistant/package_constraints.txt +1 -1
- {homeassistant-2025.10.0b1.dist-info → homeassistant-2025.10.0b4.dist-info}/METADATA +1 -1
- {homeassistant-2025.10.0b1.dist-info → homeassistant-2025.10.0b4.dist-info}/RECORD +214 -199
- {homeassistant-2025.10.0b1.dist-info → homeassistant-2025.10.0b4.dist-info}/WHEEL +0 -0
- {homeassistant-2025.10.0b1.dist-info → homeassistant-2025.10.0b4.dist-info}/entry_points.txt +0 -0
- {homeassistant-2025.10.0b1.dist-info → homeassistant-2025.10.0b4.dist-info}/licenses/LICENSE.md +0 -0
- {homeassistant-2025.10.0b1.dist-info → homeassistant-2025.10.0b4.dist-info}/licenses/homeassistant/backports/LICENSE.Python +0 -0
- {homeassistant-2025.10.0b1.dist-info → homeassistant-2025.10.0b4.dist-info}/top_level.txt +0 -0
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
"""Support for departure information for public transport in Munich."""
|
|
2
2
|
|
|
3
|
-
# mypy: ignore-errors
|
|
4
3
|
from __future__ import annotations
|
|
5
4
|
|
|
5
|
+
from collections.abc import Mapping
|
|
6
6
|
from copy import deepcopy
|
|
7
7
|
from datetime import timedelta
|
|
8
8
|
import logging
|
|
9
|
+
from typing import Any
|
|
9
10
|
|
|
10
|
-
import
|
|
11
|
+
from mvg import MvgApi, MvgApiError, TransportType
|
|
11
12
|
import voluptuous as vol
|
|
12
13
|
|
|
13
14
|
from homeassistant.components.sensor import (
|
|
@@ -19,6 +20,7 @@ from homeassistant.core import HomeAssistant
|
|
|
19
20
|
from homeassistant.helpers import config_validation as cv
|
|
20
21
|
from homeassistant.helpers.entity_platform import AddEntitiesCallback
|
|
21
22
|
from homeassistant.helpers.typing import ConfigType, DiscoveryInfoType
|
|
23
|
+
import homeassistant.util.dt as dt_util
|
|
22
24
|
|
|
23
25
|
_LOGGER = logging.getLogger(__name__)
|
|
24
26
|
|
|
@@ -44,53 +46,55 @@ ICONS = {
|
|
|
44
46
|
"SEV": "mdi:checkbox-blank-circle-outline",
|
|
45
47
|
"-": "mdi:clock",
|
|
46
48
|
}
|
|
47
|
-
|
|
49
|
+
|
|
50
|
+
ATTRIBUTION = "Data provided by mvg.de"
|
|
48
51
|
|
|
49
52
|
SCAN_INTERVAL = timedelta(seconds=30)
|
|
50
53
|
|
|
51
|
-
PLATFORM_SCHEMA =
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
54
|
+
PLATFORM_SCHEMA = vol.All(
|
|
55
|
+
cv.deprecated(CONF_DIRECTIONS),
|
|
56
|
+
SENSOR_PLATFORM_SCHEMA.extend(
|
|
57
|
+
{
|
|
58
|
+
vol.Required(CONF_NEXT_DEPARTURE): [
|
|
59
|
+
{
|
|
60
|
+
vol.Required(CONF_STATION): cv.string,
|
|
61
|
+
vol.Optional(CONF_DESTINATIONS, default=[""]): cv.ensure_list_csv,
|
|
62
|
+
vol.Optional(CONF_DIRECTIONS, default=[""]): cv.ensure_list_csv,
|
|
63
|
+
vol.Optional(CONF_LINES, default=[""]): cv.ensure_list_csv,
|
|
64
|
+
vol.Optional(
|
|
65
|
+
CONF_PRODUCTS, default=DEFAULT_PRODUCT
|
|
66
|
+
): cv.ensure_list_csv,
|
|
67
|
+
vol.Optional(CONF_TIMEOFFSET, default=0): cv.positive_int,
|
|
68
|
+
vol.Optional(CONF_NUMBER, default=1): cv.positive_int,
|
|
69
|
+
vol.Optional(CONF_NAME): cv.string,
|
|
70
|
+
}
|
|
71
|
+
]
|
|
72
|
+
}
|
|
73
|
+
),
|
|
68
74
|
)
|
|
69
75
|
|
|
70
76
|
|
|
71
|
-
def
|
|
77
|
+
async def async_setup_platform(
|
|
72
78
|
hass: HomeAssistant,
|
|
73
79
|
config: ConfigType,
|
|
74
80
|
add_entities: AddEntitiesCallback,
|
|
75
81
|
discovery_info: DiscoveryInfoType | None = None,
|
|
76
82
|
) -> None:
|
|
77
83
|
"""Set up the MVGLive sensor."""
|
|
78
|
-
|
|
79
|
-
(
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
True,
|
|
93
|
-
)
|
|
84
|
+
sensors = [
|
|
85
|
+
MVGLiveSensor(
|
|
86
|
+
hass,
|
|
87
|
+
nextdeparture.get(CONF_STATION),
|
|
88
|
+
nextdeparture.get(CONF_DESTINATIONS),
|
|
89
|
+
nextdeparture.get(CONF_LINES),
|
|
90
|
+
nextdeparture.get(CONF_PRODUCTS),
|
|
91
|
+
nextdeparture.get(CONF_TIMEOFFSET),
|
|
92
|
+
nextdeparture.get(CONF_NUMBER),
|
|
93
|
+
nextdeparture.get(CONF_NAME),
|
|
94
|
+
)
|
|
95
|
+
for nextdeparture in config[CONF_NEXT_DEPARTURE]
|
|
96
|
+
]
|
|
97
|
+
add_entities(sensors, True)
|
|
94
98
|
|
|
95
99
|
|
|
96
100
|
class MVGLiveSensor(SensorEntity):
|
|
@@ -100,38 +104,38 @@ class MVGLiveSensor(SensorEntity):
|
|
|
100
104
|
|
|
101
105
|
def __init__(
|
|
102
106
|
self,
|
|
103
|
-
|
|
107
|
+
hass: HomeAssistant,
|
|
108
|
+
station_name,
|
|
104
109
|
destinations,
|
|
105
|
-
directions,
|
|
106
110
|
lines,
|
|
107
111
|
products,
|
|
108
112
|
timeoffset,
|
|
109
113
|
number,
|
|
110
114
|
name,
|
|
111
|
-
):
|
|
115
|
+
) -> None:
|
|
112
116
|
"""Initialize the sensor."""
|
|
113
|
-
self._station = station
|
|
114
117
|
self._name = name
|
|
118
|
+
self._station_name = station_name
|
|
115
119
|
self.data = MVGLiveData(
|
|
116
|
-
|
|
120
|
+
hass, station_name, destinations, lines, products, timeoffset, number
|
|
117
121
|
)
|
|
118
122
|
self._state = None
|
|
119
123
|
self._icon = ICONS["-"]
|
|
120
124
|
|
|
121
125
|
@property
|
|
122
|
-
def name(self):
|
|
126
|
+
def name(self) -> str | None:
|
|
123
127
|
"""Return the name of the sensor."""
|
|
124
128
|
if self._name:
|
|
125
129
|
return self._name
|
|
126
|
-
return self.
|
|
130
|
+
return self._station_name
|
|
127
131
|
|
|
128
132
|
@property
|
|
129
|
-
def native_value(self):
|
|
133
|
+
def native_value(self) -> str | None:
|
|
130
134
|
"""Return the next departure time."""
|
|
131
135
|
return self._state
|
|
132
136
|
|
|
133
137
|
@property
|
|
134
|
-
def extra_state_attributes(self):
|
|
138
|
+
def extra_state_attributes(self) -> Mapping[str, Any] | None:
|
|
135
139
|
"""Return the state attributes."""
|
|
136
140
|
if not (dep := self.data.departures):
|
|
137
141
|
return None
|
|
@@ -140,88 +144,114 @@ class MVGLiveSensor(SensorEntity):
|
|
|
140
144
|
return attr
|
|
141
145
|
|
|
142
146
|
@property
|
|
143
|
-
def icon(self):
|
|
147
|
+
def icon(self) -> str | None:
|
|
144
148
|
"""Icon to use in the frontend, if any."""
|
|
145
149
|
return self._icon
|
|
146
150
|
|
|
147
151
|
@property
|
|
148
|
-
def native_unit_of_measurement(self):
|
|
152
|
+
def native_unit_of_measurement(self) -> str | None:
|
|
149
153
|
"""Return the unit this state is expressed in."""
|
|
150
154
|
return UnitOfTime.MINUTES
|
|
151
155
|
|
|
152
|
-
def
|
|
156
|
+
async def async_update(self) -> None:
|
|
153
157
|
"""Get the latest data and update the state."""
|
|
154
|
-
self.data.update()
|
|
158
|
+
await self.data.update()
|
|
155
159
|
if not self.data.departures:
|
|
156
|
-
self._state =
|
|
160
|
+
self._state = None
|
|
157
161
|
self._icon = ICONS["-"]
|
|
158
162
|
else:
|
|
159
|
-
self._state = self.data.departures[0].get("
|
|
160
|
-
self._icon =
|
|
163
|
+
self._state = self.data.departures[0].get("time_in_mins", "-")
|
|
164
|
+
self._icon = self.data.departures[0].get("icon", ICONS["-"])
|
|
165
|
+
|
|
166
|
+
|
|
167
|
+
def _get_minutes_until_departure(departure_time: int) -> int:
|
|
168
|
+
"""Calculate the time difference in minutes between the current time and a given departure time.
|
|
169
|
+
|
|
170
|
+
Args:
|
|
171
|
+
departure_time: Unix timestamp of the departure time, in seconds.
|
|
172
|
+
|
|
173
|
+
Returns:
|
|
174
|
+
The time difference in minutes, as an integer.
|
|
175
|
+
|
|
176
|
+
"""
|
|
177
|
+
current_time = dt_util.utcnow()
|
|
178
|
+
departure_datetime = dt_util.utc_from_timestamp(departure_time)
|
|
179
|
+
time_difference = (departure_datetime - current_time).total_seconds()
|
|
180
|
+
return int(time_difference / 60.0)
|
|
161
181
|
|
|
162
182
|
|
|
163
183
|
class MVGLiveData:
|
|
164
|
-
"""Pull data from the mvg
|
|
184
|
+
"""Pull data from the mvg.de web page."""
|
|
165
185
|
|
|
166
186
|
def __init__(
|
|
167
|
-
self,
|
|
168
|
-
|
|
187
|
+
self,
|
|
188
|
+
hass: HomeAssistant,
|
|
189
|
+
station_name,
|
|
190
|
+
destinations,
|
|
191
|
+
lines,
|
|
192
|
+
products,
|
|
193
|
+
timeoffset,
|
|
194
|
+
number,
|
|
195
|
+
) -> None:
|
|
169
196
|
"""Initialize the sensor."""
|
|
170
|
-
self.
|
|
197
|
+
self._hass = hass
|
|
198
|
+
self._station_name = station_name
|
|
199
|
+
self._station_id = None
|
|
171
200
|
self._destinations = destinations
|
|
172
|
-
self._directions = directions
|
|
173
201
|
self._lines = lines
|
|
174
202
|
self._products = products
|
|
175
203
|
self._timeoffset = timeoffset
|
|
176
204
|
self._number = number
|
|
177
|
-
self.
|
|
178
|
-
self._include_tram = "Tram" in self._products
|
|
179
|
-
self._include_bus = "Bus" in self._products
|
|
180
|
-
self._include_sbahn = "S-Bahn" in self._products
|
|
181
|
-
self.mvg = MVGLive.MVGLive()
|
|
182
|
-
self.departures = []
|
|
205
|
+
self.departures: list[dict[str, Any]] = []
|
|
183
206
|
|
|
184
|
-
def update(self):
|
|
207
|
+
async def update(self):
|
|
185
208
|
"""Update the connection data."""
|
|
209
|
+
if self._station_id is None:
|
|
210
|
+
try:
|
|
211
|
+
station = await MvgApi.station_async(self._station_name)
|
|
212
|
+
self._station_id = station["id"]
|
|
213
|
+
except MvgApiError as err:
|
|
214
|
+
_LOGGER.error(
|
|
215
|
+
"Failed to resolve station %s: %s", self._station_name, err
|
|
216
|
+
)
|
|
217
|
+
self.departures = []
|
|
218
|
+
return
|
|
219
|
+
|
|
186
220
|
try:
|
|
187
|
-
_departures =
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
221
|
+
_departures = await MvgApi.departures_async(
|
|
222
|
+
station_id=self._station_id,
|
|
223
|
+
offset=self._timeoffset,
|
|
224
|
+
limit=self._number,
|
|
225
|
+
transport_types=[
|
|
226
|
+
transport_type
|
|
227
|
+
for transport_type in TransportType
|
|
228
|
+
if transport_type.value[0] in self._products
|
|
229
|
+
]
|
|
230
|
+
if self._products
|
|
231
|
+
else None,
|
|
194
232
|
)
|
|
195
233
|
except ValueError:
|
|
196
234
|
self.departures = []
|
|
197
235
|
_LOGGER.warning("Returned data not understood")
|
|
198
236
|
return
|
|
199
237
|
self.departures = []
|
|
200
|
-
for
|
|
201
|
-
# find the first departure meeting the criteria
|
|
238
|
+
for _departure in _departures:
|
|
202
239
|
if (
|
|
203
240
|
"" not in self._destinations[:1]
|
|
204
241
|
and _departure["destination"] not in self._destinations
|
|
205
242
|
):
|
|
206
243
|
continue
|
|
207
244
|
|
|
208
|
-
if
|
|
209
|
-
"" not in self._directions[:1]
|
|
210
|
-
and _departure["direction"] not in self._directions
|
|
211
|
-
):
|
|
245
|
+
if "" not in self._lines[:1] and _departure["line"] not in self._lines:
|
|
212
246
|
continue
|
|
213
247
|
|
|
214
|
-
|
|
215
|
-
continue
|
|
248
|
+
time_to_departure = _get_minutes_until_departure(_departure["time"])
|
|
216
249
|
|
|
217
|
-
if
|
|
250
|
+
if time_to_departure < self._timeoffset:
|
|
218
251
|
continue
|
|
219
252
|
|
|
220
|
-
# now select the relevant data
|
|
221
253
|
_nextdep = {}
|
|
222
|
-
for k in ("destination", "
|
|
254
|
+
for k in ("destination", "line", "type", "cancelled", "icon"):
|
|
223
255
|
_nextdep[k] = _departure.get(k, "")
|
|
224
|
-
_nextdep["
|
|
256
|
+
_nextdep["time_in_mins"] = time_to_departure
|
|
225
257
|
self.departures.append(_nextdep)
|
|
226
|
-
if i == self._number - 1:
|
|
227
|
-
break
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
"_r_to_u": "City/county (R-U)",
|
|
12
12
|
"_v_to_z": "City/county (V-Z)",
|
|
13
13
|
"slots": "Maximum warnings per city/county",
|
|
14
|
-
"headline_filter": "
|
|
14
|
+
"headline_filter": "Headline blocklist"
|
|
15
15
|
}
|
|
16
16
|
}
|
|
17
17
|
},
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
"_v_to_z": "[%key:component::nina::config::step::user::data::_v_to_z%]",
|
|
35
35
|
"slots": "[%key:component::nina::config::step::user::data::slots%]",
|
|
36
36
|
"headline_filter": "[%key:component::nina::config::step::user::data::headline_filter%]",
|
|
37
|
-
"area_filter": "
|
|
37
|
+
"area_filter": "Affected area filter"
|
|
38
38
|
}
|
|
39
39
|
}
|
|
40
40
|
},
|
|
@@ -14,7 +14,6 @@
|
|
|
14
14
|
"_m_to_q": "Ciutat/comtat (M-Q)",
|
|
15
15
|
"_r_to_u": "Ciutat/comtat (R-U)",
|
|
16
16
|
"_v_to_z": "Ciutat/comtat (V-Z)",
|
|
17
|
-
"headline_filter": "Llista negra regex per filtrar titulars d'alertes",
|
|
18
17
|
"slots": "Nombre d'alertes m\u00e0ximes per ciutat/comtat"
|
|
19
18
|
},
|
|
20
19
|
"title": "Selecciona ciutat/comtat"
|
|
@@ -36,7 +35,6 @@
|
|
|
36
35
|
"_m_to_q": "Ciutat/comtat (M-Q)",
|
|
37
36
|
"_r_to_u": "Ciutat/comtat (R-U)",
|
|
38
37
|
"_v_to_z": "Ciutat/comtat (V-Z)",
|
|
39
|
-
"area_filter": "Expressi\u00f3 regular de llista blanca per filtrar les alertes en funci\u00f3 de les \u00e0rees afectades",
|
|
40
38
|
"headline_filter": "Llista negra regex per filtrar titulars d'alertes",
|
|
41
39
|
"slots": "Nombre d'alertes m\u00e0ximes per ciutat/comtat"
|
|
42
40
|
},
|
|
@@ -14,7 +14,6 @@
|
|
|
14
14
|
"_m_to_q": "M\u011bsto/Okres (M-Q)",
|
|
15
15
|
"_r_to_u": "M\u011bsto/Okres (R-U)",
|
|
16
16
|
"_v_to_z": "M\u011bsto/Okres (V-Z)",
|
|
17
|
-
"headline_filter": "\u010cern\u00e1 listina regul\u00e1rn\u00edch v\u00fdraz\u016f pro filtrov\u00e1n\u00ed varovn\u00fdch nadpis\u016f",
|
|
18
17
|
"slots": "Maxim\u00e1ln\u00ed po\u010det varov\u00e1n\u00ed na m\u011bsto/okres"
|
|
19
18
|
},
|
|
20
19
|
"title": "Vybrat m\u011bsto/okres"
|
|
@@ -36,7 +35,6 @@
|
|
|
36
35
|
"_m_to_q": "M\u011bsto/Okres (M-Q)",
|
|
37
36
|
"_r_to_u": "M\u011bsto/Okres (R-U)",
|
|
38
37
|
"_v_to_z": "M\u011bsto/Okres (V-Z)",
|
|
39
|
-
"area_filter": "B\u00edl\u00e1 listina regul\u00e1rn\u00edch v\u00fdraz\u016f pro filtrov\u00e1n\u00ed varov\u00e1n\u00ed na z\u00e1klad\u011b posti\u017een\u00fdch oblast\u00ed",
|
|
40
38
|
"headline_filter": "\u010cern\u00e1 listina regul\u00e1rn\u00edch v\u00fdraz\u016f pro filtrov\u00e1n\u00ed varovn\u00fdch nadpis\u016f",
|
|
41
39
|
"slots": "Maxim\u00e1ln\u00ed po\u010det varov\u00e1n\u00ed na m\u011bsto/okres"
|
|
42
40
|
},
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
"_m_to_q": "Stadt/Landkreis (M-Q)",
|
|
15
15
|
"_r_to_u": "Stadt/Landkreis (R-U)",
|
|
16
16
|
"_v_to_z": "Stadt/Landkreis (V-Z)",
|
|
17
|
-
"headline_filter": "
|
|
17
|
+
"headline_filter": "\u00dcberschriften-Blockliste",
|
|
18
18
|
"slots": "Maximale Warnungen pro Stadt/Landkreis"
|
|
19
19
|
},
|
|
20
20
|
"title": "Stadt/Landkreis ausw\u00e4hlen"
|
|
@@ -36,8 +36,8 @@
|
|
|
36
36
|
"_m_to_q": "Stadt/Landkreis (M-Q)",
|
|
37
37
|
"_r_to_u": "Stadt/Landkreis (R-U)",
|
|
38
38
|
"_v_to_z": "Stadt/Landkreis (V-Z)",
|
|
39
|
-
"area_filter": "
|
|
40
|
-
"headline_filter": "
|
|
39
|
+
"area_filter": "Filter f\u00fcr betroffene Bereiche",
|
|
40
|
+
"headline_filter": "\u00dcberschriften-Blockliste",
|
|
41
41
|
"slots": "Maximale Warnungen pro Stadt/Landkreis"
|
|
42
42
|
},
|
|
43
43
|
"title": "Optionen"
|
|
@@ -14,7 +14,6 @@
|
|
|
14
14
|
"_m_to_q": "\u03a0\u03cc\u03bb\u03b7/\u03bd\u03bf\u03bc\u03cc\u03c2 (\u039c-Q)",
|
|
15
15
|
"_r_to_u": "\u03a0\u03cc\u03bb\u03b7/\u03bd\u03bf\u03bc\u03cc\u03c2 (R-U)",
|
|
16
16
|
"_v_to_z": "\u03a0\u03cc\u03bb\u03b7/\u03bd\u03bf\u03bc\u03cc\u03c2 (V-Z)",
|
|
17
|
-
"headline_filter": "\u039c\u03b1\u03cd\u03c1\u03b7 \u03bb\u03af\u03c3\u03c4\u03b1 regex \u03b3\u03b9\u03b1 \u03c6\u03b9\u03bb\u03c4\u03c1\u03ac\u03c1\u03b9\u03c3\u03bc\u03b1 \u03c0\u03c1\u03bf\u03b5\u03b9\u03b4\u03bf\u03c0\u03bf\u03b9\u03b7\u03c4\u03b9\u03ba\u03ce\u03bd \u03c4\u03af\u03c4\u03bb\u03c9\u03bd",
|
|
18
17
|
"slots": "\u039c\u03ad\u03b3\u03b9\u03c3\u03c4\u03b5\u03c2 \u03c0\u03c1\u03bf\u03b5\u03b9\u03b4\u03bf\u03c0\u03bf\u03b9\u03ae\u03c3\u03b5\u03b9\u03c2 \u03b1\u03bd\u03ac \u03c0\u03cc\u03bb\u03b7/\u03bd\u03bf\u03bc\u03cc"
|
|
19
18
|
},
|
|
20
19
|
"title": "\u0395\u03c0\u03b9\u03bb\u03bf\u03b3\u03ae \u03c0\u03cc\u03bb\u03b7\u03c2/\u03bd\u03bf\u03bc\u03bf\u03cd"
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
"_m_to_q": "City/county (M-Q)",
|
|
15
15
|
"_r_to_u": "City/county (R-U)",
|
|
16
16
|
"_v_to_z": "City/county (V-Z)",
|
|
17
|
-
"headline_filter": "
|
|
17
|
+
"headline_filter": "Headline blocklist",
|
|
18
18
|
"slots": "Maximum warnings per city/county"
|
|
19
19
|
},
|
|
20
20
|
"title": "Select city/county"
|
|
@@ -36,8 +36,8 @@
|
|
|
36
36
|
"_m_to_q": "City/county (M-Q)",
|
|
37
37
|
"_r_to_u": "City/county (R-U)",
|
|
38
38
|
"_v_to_z": "City/county (V-Z)",
|
|
39
|
-
"area_filter": "
|
|
40
|
-
"headline_filter": "
|
|
39
|
+
"area_filter": "Affected area filter",
|
|
40
|
+
"headline_filter": "Headline blocklist",
|
|
41
41
|
"slots": "Maximum warnings per city/county"
|
|
42
42
|
},
|
|
43
43
|
"title": "Options"
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
"_m_to_q": "City/county (M-Q)",
|
|
15
15
|
"_r_to_u": "City/county (R-U)",
|
|
16
16
|
"_v_to_z": "City/county (V-Z)",
|
|
17
|
-
"headline_filter": "
|
|
17
|
+
"headline_filter": "Headline blocklist",
|
|
18
18
|
"slots": "Maximum warnings per city/county"
|
|
19
19
|
},
|
|
20
20
|
"title": "Select city/county"
|
|
@@ -36,8 +36,8 @@
|
|
|
36
36
|
"_m_to_q": "City/county (M-Q)",
|
|
37
37
|
"_r_to_u": "City/county (R-U)",
|
|
38
38
|
"_v_to_z": "City/county (V-Z)",
|
|
39
|
-
"area_filter": "
|
|
40
|
-
"headline_filter": "
|
|
39
|
+
"area_filter": "Affected area filter",
|
|
40
|
+
"headline_filter": "Headline blocklist",
|
|
41
41
|
"slots": "Maximum warnings per city/county"
|
|
42
42
|
},
|
|
43
43
|
"title": "Options"
|
|
@@ -14,7 +14,6 @@
|
|
|
14
14
|
"_m_to_q": "Ciudad/condado (M-Q)",
|
|
15
15
|
"_r_to_u": "Ciudad/condado (R-U)",
|
|
16
16
|
"_v_to_z": "Ciudad/condado (V-Z)",
|
|
17
|
-
"headline_filter": "Lista negra de expresiones regulares para filtrar titulares de advertencia",
|
|
18
17
|
"slots": "Advertencias m\u00e1ximas por ciudad/condado"
|
|
19
18
|
},
|
|
20
19
|
"title": "Seleccionar ciudad/condado"
|
|
@@ -36,7 +35,6 @@
|
|
|
36
35
|
"_m_to_q": "Ciudad/condado (M-Q)",
|
|
37
36
|
"_r_to_u": "Ciudad/condado (R-U)",
|
|
38
37
|
"_v_to_z": "Ciudad/condado (V-Z)",
|
|
39
|
-
"area_filter": "Lista blanca de expresiones regulares para filtrar los avisos en funci\u00f3n de las zonas afectadas",
|
|
40
38
|
"headline_filter": "Lista negra de expresiones regulares para filtrar titulares de advertencia",
|
|
41
39
|
"slots": "Advertencias m\u00e1ximas por ciudad/condado"
|
|
42
40
|
},
|
|
@@ -14,7 +14,6 @@
|
|
|
14
14
|
"_m_to_q": "Linn/maakond (M-Q)",
|
|
15
15
|
"_r_to_u": "Linn/maakond (R-U)",
|
|
16
16
|
"_v_to_z": "Linn/maakond (V-Z)",
|
|
17
|
-
"headline_filter": "Hoiatuste pealkirjade filtreerimiseks lisage regex musta nimekirja",
|
|
18
17
|
"slots": "Maksimaalne hoiatuste arv linna/maakonna kohta"
|
|
19
18
|
},
|
|
20
19
|
"title": "Vali linn/maakond"
|
|
@@ -36,7 +35,6 @@
|
|
|
36
35
|
"_m_to_q": "Linn/maakond (M-Q)",
|
|
37
36
|
"_r_to_u": "Linn/maakond (R-U)",
|
|
38
37
|
"_v_to_z": "Linn/maakond (V-Z)",
|
|
39
|
-
"area_filter": "Lubatud regex, et filtreerida hoiatused m\u00f5jutatud piirkondade p\u00f5hjal",
|
|
40
38
|
"headline_filter": "Hoiatuste pealkirjade filtreerimiseks lisage regex musta nimekirja",
|
|
41
39
|
"slots": "Maksimaalne hoiatuste arv linna/maakonna kohta"
|
|
42
40
|
},
|
|
@@ -14,7 +14,6 @@
|
|
|
14
14
|
"_m_to_q": "Kaupunki/maakunta (M-Q)",
|
|
15
15
|
"_r_to_u": "Kaupunki/maakunta (R-U)",
|
|
16
16
|
"_v_to_z": "Kaupunki/maakunta (V-Z)",
|
|
17
|
-
"headline_filter": "Lis\u00e4\u00e4 s\u00e4\u00e4nn\u00f6llinen lauseke mustalle listalle varoitusotsikoiden suodattamiseksi",
|
|
18
17
|
"slots": "Varoitusten enimm\u00e4ism\u00e4\u00e4r\u00e4 kaupunkia/maakuntaa kohden"
|
|
19
18
|
},
|
|
20
19
|
"title": "Valitse kaupunki/maakunta"
|
|
@@ -36,7 +35,6 @@
|
|
|
36
35
|
"_m_to_q": "Kaupunki/maakunta (M-Q)",
|
|
37
36
|
"_r_to_u": "Kaupunki/maakunta (R-U)",
|
|
38
37
|
"_v_to_z": "Kaupunki/maakunta (V-Z)",
|
|
39
|
-
"area_filter": "Sallittujen luettelon lauseke, jos haluat suodattaa varoitukset vaikutusalueiden perusteella",
|
|
40
38
|
"headline_filter": "Lis\u00e4\u00e4 s\u00e4\u00e4nn\u00f6llinen lauseke mustalle listalle varoitusotsikoiden suodattamiseksi",
|
|
41
39
|
"slots": "Varoitusten enimm\u00e4ism\u00e4\u00e4r\u00e4 kaupunkia/maakuntaa kohden"
|
|
42
40
|
},
|
|
@@ -14,7 +14,6 @@
|
|
|
14
14
|
"_m_to_q": "Cathair/contae (M-Q)",
|
|
15
15
|
"_r_to_u": "Cathair/contae (R-U)",
|
|
16
16
|
"_v_to_z": "Cathair/contae (V-Z)",
|
|
17
|
-
"headline_filter": "Regex liosta dubh chun ceannl\u00ednte rabhaidh a scagadh",
|
|
18
17
|
"slots": "Uasmh\u00e9id rabhaidh in aghaidh na cathrach/an chontae"
|
|
19
18
|
},
|
|
20
19
|
"title": "Roghnaigh cathair/contae"
|
|
@@ -36,7 +35,6 @@
|
|
|
36
35
|
"_m_to_q": "Cathair/contae (M-Q)",
|
|
37
36
|
"_r_to_u": "Cathair/contae (R-U)",
|
|
38
37
|
"_v_to_z": "Cathair/contae (V-Z)",
|
|
39
|
-
"area_filter": "Gn\u00e9 rialta liosta b\u00e1n chun rabhaidh a scagadh bunaithe ar na limist\u00e9ir lena mbaineann",
|
|
40
38
|
"headline_filter": "Regex liosta dubh chun ceannl\u00ednte rabhaidh a scagadh",
|
|
41
39
|
"slots": "Uasmh\u00e9id rabhaidh in aghaidh na cathrach/an chontae"
|
|
42
40
|
},
|
|
@@ -14,7 +14,6 @@
|
|
|
14
14
|
"_m_to_q": "V\u00e1ros/megye (M-Q)",
|
|
15
15
|
"_r_to_u": "V\u00e1ros/megye (R-U)",
|
|
16
16
|
"_v_to_z": "V\u00e1ros/megye (V-Z)",
|
|
17
|
-
"headline_filter": "Feketelista regex a figyelmeztet\u0151 szalagc\u00edmek sz\u0171r\u00e9s\u00e9hez",
|
|
18
17
|
"slots": "A figyelmeztet\u00e9sek maxim\u00e1lis sz\u00e1ma v\u00e1rosonk\u00e9nt/megy\u00e9nk\u00e9nt"
|
|
19
18
|
},
|
|
20
19
|
"title": "V\u00e1lasszon v\u00e1rost/megy\u00e9t"
|
|
@@ -36,7 +35,6 @@
|
|
|
36
35
|
"_m_to_q": "V\u00e1ros/megye (M-Q)",
|
|
37
36
|
"_r_to_u": "V\u00e1ros/megye (R-U)",
|
|
38
37
|
"_v_to_z": "V\u00e1ros/megye (V-Z)",
|
|
39
|
-
"area_filter": "Feh\u00e9rlista regul\u00e1ris kifejez\u00e9sek haszn\u00e1lat\u00e1val a figyelmeztet\u00e9sek sz\u0171r\u00e9s\u00e9re az \u00e9rintett ter\u00fcletek alapj\u00e1n.",
|
|
40
38
|
"headline_filter": "Feketelista regex a figyelmeztet\u0151 szalagc\u00edmek sz\u0171r\u00e9s\u00e9hez",
|
|
41
39
|
"slots": "A figyelmeztet\u00e9sek maxim\u00e1lis sz\u00e1ma v\u00e1rosonk\u00e9nt/megy\u00e9nk\u00e9nt"
|
|
42
40
|
},
|
|
@@ -14,7 +14,6 @@
|
|
|
14
14
|
"_m_to_q": "Kota/kabupaten (M-Q)",
|
|
15
15
|
"_r_to_u": "Kota/kabupaten (R-U)",
|
|
16
16
|
"_v_to_z": "Kota/kabupaten (V-Z)",
|
|
17
|
-
"headline_filter": "Regex daftar hitam untuk memfilter judul peringatan",
|
|
18
17
|
"slots": "Peringatan maksimum per kota/kabupaten"
|
|
19
18
|
},
|
|
20
19
|
"title": "Pilih kota/kabupaten"
|
|
@@ -14,7 +14,6 @@
|
|
|
14
14
|
"_m_to_q": "Citt\u00e0/provincia (M-Q)",
|
|
15
15
|
"_r_to_u": "Citt\u00e0/provincia (R-U)",
|
|
16
16
|
"_v_to_z": "Citt\u00e0/provincia (V-Z)",
|
|
17
|
-
"headline_filter": "Lista nera regex per filtrare i titoli di avviso",
|
|
18
17
|
"slots": "Numero massimo di avvisi per citt\u00e0/provincia"
|
|
19
18
|
},
|
|
20
19
|
"title": "Seleziona citt\u00e0/provincia"
|
|
@@ -36,7 +35,6 @@
|
|
|
36
35
|
"_m_to_q": "Citt\u00e0/provincia (M-Q)",
|
|
37
36
|
"_r_to_u": "Citt\u00e0/provincia (R-U)",
|
|
38
37
|
"_v_to_z": "Citt\u00e0/provincia (V-Z)",
|
|
39
|
-
"area_filter": "Whitelist regex per filtrare le notifiche in base alle aree coinvolte",
|
|
40
38
|
"headline_filter": "Lista nera regex per filtrare i titoli di avviso",
|
|
41
39
|
"slots": "Numero massimo di avvisi per citt\u00e0/provincia"
|
|
42
40
|
},
|
|
@@ -14,7 +14,6 @@
|
|
|
14
14
|
"_m_to_q": "City/county (M-Q)",
|
|
15
15
|
"_r_to_u": "City/county (R-U)",
|
|
16
16
|
"_v_to_z": "City/county (V-Z)",
|
|
17
|
-
"headline_filter": "\u8b66\u544a\u898b\u51fa\u3057\u3092\u30d5\u30a3\u30eb\u30bf\u30ea\u30f3\u30b0\u3059\u308b\u30d6\u30e9\u30c3\u30af\u30ea\u30b9\u30c8\u6b63\u898f\u8868\u73fe",
|
|
18
17
|
"slots": "1\u5e02\u533a\u753a\u6751/\u90e1\u3042\u305f\u308a\u306e\u6700\u5927\u8b66\u544a\u6570"
|
|
19
18
|
},
|
|
20
19
|
"title": "\u5e02\u533a\u753a\u6751/\u90e1\u3092\u9078\u629e"
|
|
@@ -36,7 +35,6 @@
|
|
|
36
35
|
"_m_to_q": "City/county (M-Q)",
|
|
37
36
|
"_r_to_u": "City/county (R-U)",
|
|
38
37
|
"_v_to_z": "City/county (V-Z)",
|
|
39
|
-
"area_filter": "\u30db\u30ef\u30a4\u30c8\u30ea\u30b9\u30c8\u6b63\u898f\u8868\u73fe\u306b\u3088\u308a\u3001\u5f71\u97ff\u3092\u53d7\u3051\u308b\u9818\u57df\u306b\u57fa\u3065\u3044\u3066\u8b66\u544a\u3092\u30d5\u30a3\u30eb\u30bf\u30ea\u30f3\u30b0\u3059\u308b\u3002",
|
|
40
38
|
"headline_filter": "\u8b66\u544a\u898b\u51fa\u3057\u3092\u30d5\u30a3\u30eb\u30bf\u30ea\u30f3\u30b0\u3059\u308b\u30d6\u30e9\u30c3\u30af\u30ea\u30b9\u30c8\u6b63\u898f\u8868\u73fe",
|
|
41
39
|
"slots": "1\u5e02\u533a\u753a\u6751/\u90e1\u3042\u305f\u308a\u306e\u6700\u5927\u8b66\u544a\u6570"
|
|
42
40
|
},
|
|
@@ -14,7 +14,6 @@
|
|
|
14
14
|
"_m_to_q": "\uc2dc/\uad70(M-Q)",
|
|
15
15
|
"_r_to_u": "\uc2dc/\uad70(R-U)",
|
|
16
16
|
"_v_to_z": "\uc2dc/\uad70(V-Z)",
|
|
17
|
-
"headline_filter": "\uacbd\uace0 \ud5e4\ub4dc\ub77c\uc778\uc744 \ud544\ud130\ub9c1\ud558\ub294 \ube14\ub799\ub9ac\uc2a4\ud2b8 \uc815\uaddc\uc2dd",
|
|
18
17
|
"slots": "\ub3c4\uc2dc/\uad70\ub2f9 \ucd5c\ub300 \uacbd\uace0"
|
|
19
18
|
},
|
|
20
19
|
"title": "\uc2dc/\uad70 \uc120\ud0dd"
|
|
@@ -36,7 +35,6 @@
|
|
|
36
35
|
"_m_to_q": "\uc2dc/\uad70(M-Q)",
|
|
37
36
|
"_r_to_u": "\uc2dc/\uad70(R-U)",
|
|
38
37
|
"_v_to_z": "\uc2dc/\uad70(V-Z)",
|
|
39
|
-
"area_filter": "\uc601\ud5a5\uc744 \ubc1b\ub294 \uc9c0\uc5ed\uc744 \uae30\ubc18\uc73c\ub85c \uacbd\uace0\ub97c \ud544\ud130\ub9c1\ud558\ub294 \uc815\uaddc \ud45c\ud604\uc2dd\uc744 \ud654\uc774\ud2b8\ub9ac\uc2a4\ud2b8\uc5d0 \ucd94\uac00\ud558\uc138\uc694.",
|
|
40
38
|
"headline_filter": "\uacbd\uace0 \ud5e4\ub4dc\ub77c\uc778\uc744 \ud544\ud130\ub9c1\ud558\ub294 \ube14\ub799\ub9ac\uc2a4\ud2b8 \uc815\uaddc\uc2dd",
|
|
41
39
|
"slots": "\ub3c4\uc2dc/\uad70\ub2f9 \ucd5c\ub300 \uacbd\uace0"
|
|
42
40
|
},
|
|
@@ -14,7 +14,6 @@
|
|
|
14
14
|
"_m_to_q": "Miestas / apskritis (M-Q)",
|
|
15
15
|
"_r_to_u": "Miestas / apskritis (R-U)",
|
|
16
16
|
"_v_to_z": "Miestas/apskritis (V-\u017d)",
|
|
17
|
-
"headline_filter": "\u012e juod\u0105j\u012f s\u0105ra\u0161\u0105 \u012ftraukite reguliar\u0173j\u012f rei\u0161kin\u012f, kad filtruotum\u0117te \u012fsp\u0117jim\u0173 antra\u0161tes",
|
|
18
17
|
"slots": "Did\u017eiausias \u012fsp\u0117jim\u0173 skai\u010dius mieste/apskrityje"
|
|
19
18
|
},
|
|
20
19
|
"title": "Pasirinkti miest\u0105 / apskrit\u012f"
|
|
@@ -36,7 +35,6 @@
|
|
|
36
35
|
"_m_to_q": "Miestas / apskritis (M-Q)",
|
|
37
36
|
"_r_to_u": "Miestas / apskritis (R-U)",
|
|
38
37
|
"_v_to_z": "Miestas/apskritis (V-\u017d)",
|
|
39
|
-
"area_filter": "Baltasis s\u0105ra\u0161as regex, kad b\u016bt\u0173 galima filtruoti \u012fsp\u0117jimus pagal paveiktas vietas",
|
|
40
38
|
"headline_filter": "\u012e juod\u0105j\u012f s\u0105ra\u0161\u0105 \u012ftraukite reguliar\u0173j\u012f rei\u0161kin\u012f, kad filtruotum\u0117te \u012fsp\u0117jim\u0173 antra\u0161tes",
|
|
41
39
|
"slots": "Did\u017eiausias \u012fsp\u0117jim\u0173 skai\u010dius mieste/apskrityje"
|
|
42
40
|
},
|
|
@@ -14,7 +14,6 @@
|
|
|
14
14
|
"_m_to_q": "Stad/deelstaat (M-Q)",
|
|
15
15
|
"_r_to_u": "Stad/Deelstaat (R-U)",
|
|
16
16
|
"_v_to_z": "Stad/Deelstaat (V-Z)",
|
|
17
|
-
"headline_filter": "Blacklist regex om waarschuwingskoppen te filteren",
|
|
18
17
|
"slots": "Maximale waarschuwingen per stad/provincie"
|
|
19
18
|
},
|
|
20
19
|
"title": "Selecteer stad/provincie"
|
|
@@ -36,7 +35,6 @@
|
|
|
36
35
|
"_m_to_q": "Stad/deelstaat (M-Q)",
|
|
37
36
|
"_r_to_u": "Stad/Deelstaat (R-U)",
|
|
38
37
|
"_v_to_z": "Stad/Deelstaat (V-Z)",
|
|
39
|
-
"area_filter": "Regex filter waarschuwingen whitelisten gebaseerd op betrokken gebieden",
|
|
40
38
|
"headline_filter": "Blacklist regex om waarschuwingskoppen te filteren",
|
|
41
39
|
"slots": "Maximale waarschuwingen per stad/provincie"
|
|
42
40
|
},
|
|
@@ -14,7 +14,6 @@
|
|
|
14
14
|
"_m_to_q": "Cidade/munic\u00edpio (M-Q)",
|
|
15
15
|
"_r_to_u": "Cidade/munic\u00edpio (R-U)",
|
|
16
16
|
"_v_to_z": "Cidade/munic\u00edpio (V-Z)",
|
|
17
|
-
"headline_filter": "Regex da lista negra para filtrar manchetes de aviso",
|
|
18
17
|
"slots": "M\u00e1ximo de avisos por cidade/munic\u00edpio"
|
|
19
18
|
},
|
|
20
19
|
"title": "Selecione a cidade/munic\u00edpio"
|