forked from platypush/platypush
Merge branch 'master' into snyk-upgrade-1d870abd0ad2c511fe65000600f02a14
This commit is contained in:
commit
9dc0fbe6e7
280 changed files with 7629 additions and 3198 deletions
|
@ -462,7 +462,7 @@ steps:
|
|||
|
||||
- echo "-- Installing dependencies"
|
||||
- apt update
|
||||
- apt install -y curl dpkg-dev gpg git python3 python3-pip
|
||||
- apt install -y curl dpkg-dev gpg git python3 python3-pip python3-setuptools
|
||||
|
||||
- echo "-- Copying source directory"
|
||||
- mkdir -p "$WORKDIR"
|
||||
|
@ -567,7 +567,7 @@ steps:
|
|||
|
||||
- echo "-- Installing dependencies"
|
||||
- apt update
|
||||
- apt install -y curl dpkg-dev gpg git python3 python3-pip
|
||||
- apt install -y curl dpkg-dev gpg git python3 python3-pip python3-setuptools
|
||||
|
||||
- echo "--- Parsing metadata"
|
||||
- git config --global --add safe.directory "$PWD"
|
||||
|
@ -871,7 +871,7 @@ steps:
|
|||
[ -f .skipci ] && exit 0
|
||||
|
||||
- echo "-- Installing dependencies"
|
||||
- yum install -y createrepo rpm-build rpm-sign gpg wget yum-utils git python python-pip
|
||||
- yum install -y createrepo rpm-build rpm-sign gpg wget yum-utils git python python-pip python-setuptools
|
||||
|
||||
- echo "-- Copying source directory"
|
||||
- mkdir -p "$WORKDIR"
|
||||
|
|
|
@ -563,9 +563,7 @@ Procedures are pieces of custom logic that can be executed as atomic actions
|
|||
using `procedure.<name>` as an action name.
|
||||
|
||||
They can be defined either in the `config.yaml` or as Python scripts stored
|
||||
under `~/.config/platypush/scripts` - provided that the procedure is also
|
||||
imported in `~/.config/platypush/scripts/__init__.py` so it can be discovered
|
||||
by the service.
|
||||
under `~/.config/platypush/scripts`.
|
||||
|
||||
YAML example for a procedure that can be executed when we arrive home and turns
|
||||
on the lights if the luminosity is lower that a certain thresholds, says a
|
||||
|
|
|
@ -7,12 +7,6 @@ Backends
|
|||
:caption: Backends:
|
||||
|
||||
platypush/backend/http.rst
|
||||
platypush/backend/midi.rst
|
||||
platypush/backend/music.mopidy.rst
|
||||
platypush/backend/music.spotify.rst
|
||||
platypush/backend/nodered.rst
|
||||
platypush/backend/redis.rst
|
||||
platypush/backend/stt.deepspeech.rst
|
||||
platypush/backend/stt.picovoice.hotword.rst
|
||||
platypush/backend/stt.picovoice.speech.rst
|
||||
platypush/backend/tcp.rst
|
||||
|
|
|
@ -1,6 +0,0 @@
|
|||
``midi``
|
||||
==========================
|
||||
|
||||
.. automodule:: platypush.backend.midi
|
||||
:members:
|
||||
|
|
@ -1,6 +0,0 @@
|
|||
``music.mopidy``
|
||||
==================================
|
||||
|
||||
.. automodule:: platypush.backend.music.mopidy
|
||||
:members:
|
||||
|
|
@ -1,5 +0,0 @@
|
|||
``music.spotify``
|
||||
===================================
|
||||
|
||||
.. automodule:: platypush.backend.music.spotify
|
||||
:members:
|
|
@ -1,5 +0,0 @@
|
|||
``stt.deepspeech``
|
||||
====================================
|
||||
|
||||
.. automodule:: platypush.backend.stt.deepspeech
|
||||
:members:
|
|
@ -1,5 +0,0 @@
|
|||
``stt.picovoice.hotword``
|
||||
===========================================
|
||||
|
||||
.. automodule:: platypush.backend.stt.picovoice.hotword
|
||||
:members:
|
|
@ -1,5 +0,0 @@
|
|||
``stt.picovoice.speech``
|
||||
==========================================
|
||||
|
||||
.. automodule:: platypush.backend.stt.picovoice.speech
|
||||
:members:
|
5
docs/source/platypush/plugins/assistant.picovoice.rst
Normal file
5
docs/source/platypush/plugins/assistant.picovoice.rst
Normal file
|
@ -0,0 +1,5 @@
|
|||
``assistant.picovoice``
|
||||
=======================
|
||||
|
||||
.. automodule:: platypush.plugins.assistant.picovoice
|
||||
:members:
|
5
docs/source/platypush/plugins/music.mopidy.rst
Normal file
5
docs/source/platypush/plugins/music.mopidy.rst
Normal file
|
@ -0,0 +1,5 @@
|
|||
``music.mopidy``
|
||||
================
|
||||
|
||||
.. automodule:: platypush.plugins.music.mopidy
|
||||
:members:
|
5
docs/source/platypush/plugins/openai.rst
Normal file
5
docs/source/platypush/plugins/openai.rst
Normal file
|
@ -0,0 +1,5 @@
|
|||
``openai``
|
||||
==========
|
||||
|
||||
.. automodule:: platypush.plugins.openai
|
||||
:members:
|
|
@ -1,5 +0,0 @@
|
|||
``stt.deepspeech``
|
||||
====================================
|
||||
|
||||
.. automodule:: platypush.plugins.stt.deepspeech
|
||||
:members:
|
|
@ -1,5 +0,0 @@
|
|||
``stt.picovoice.hotword``
|
||||
===========================================
|
||||
|
||||
.. automodule:: platypush.plugins.stt.picovoice.hotword
|
||||
:members:
|
|
@ -1,5 +0,0 @@
|
|||
``stt.picovoice.speech``
|
||||
==========================================
|
||||
|
||||
.. automodule:: platypush.plugins.stt.picovoice.speech
|
||||
:members:
|
5
docs/source/platypush/plugins/tts.picovoice.rst
Normal file
5
docs/source/platypush/plugins/tts.picovoice.rst
Normal file
|
@ -0,0 +1,5 @@
|
|||
``tts.picovoice``
|
||||
=================
|
||||
|
||||
.. automodule:: platypush.plugins.tts.picovoice
|
||||
:members:
|
|
@ -11,6 +11,7 @@ Plugins
|
|||
platypush/plugins/application.rst
|
||||
platypush/plugins/arduino.rst
|
||||
platypush/plugins/assistant.google.rst
|
||||
platypush/plugins/assistant.picovoice.rst
|
||||
platypush/plugins/autoremote.rst
|
||||
platypush/plugins/bluetooth.rst
|
||||
platypush/plugins/calendar.rst
|
||||
|
@ -84,6 +85,7 @@ Plugins
|
|||
platypush/plugins/ml.cv.rst
|
||||
platypush/plugins/mobile.join.rst
|
||||
platypush/plugins/mqtt.rst
|
||||
platypush/plugins/music.mopidy.rst
|
||||
platypush/plugins/music.mpd.rst
|
||||
platypush/plugins/music.snapcast.rst
|
||||
platypush/plugins/music.spotify.rst
|
||||
|
@ -93,6 +95,7 @@ Plugins
|
|||
platypush/plugins/ngrok.rst
|
||||
platypush/plugins/nmap.rst
|
||||
platypush/plugins/ntfy.rst
|
||||
platypush/plugins/openai.rst
|
||||
platypush/plugins/otp.rst
|
||||
platypush/plugins/pihole.rst
|
||||
platypush/plugins/ping.rst
|
||||
|
@ -118,9 +121,6 @@ Plugins
|
|||
platypush/plugins/smartthings.rst
|
||||
platypush/plugins/sound.rst
|
||||
platypush/plugins/ssh.rst
|
||||
platypush/plugins/stt.deepspeech.rst
|
||||
platypush/plugins/stt.picovoice.hotword.rst
|
||||
platypush/plugins/stt.picovoice.speech.rst
|
||||
platypush/plugins/sun.rst
|
||||
platypush/plugins/switch.tplink.rst
|
||||
platypush/plugins/switch.wemo.rst
|
||||
|
@ -135,6 +135,7 @@ Plugins
|
|||
platypush/plugins/tts.rst
|
||||
platypush/plugins/tts.google.rst
|
||||
platypush/plugins/tts.mimic3.rst
|
||||
platypush/plugins/tts.picovoice.rst
|
||||
platypush/plugins/tv.samsung.ws.rst
|
||||
platypush/plugins/twilio.rst
|
||||
platypush/plugins/udp.rst
|
||||
|
|
|
@ -7,10 +7,13 @@ Platypush
|
|||
|
||||
from .app import Application
|
||||
from .config import Config
|
||||
from .context import get_backend, get_bus, get_plugin
|
||||
from .context import Variable, get_backend, get_bus, get_plugin
|
||||
from .cron import cron
|
||||
from .event.hook import hook
|
||||
from .message.event import Event
|
||||
from .message.request import Request
|
||||
from .message.response import Response
|
||||
from .procedure import procedure
|
||||
from .runner import main
|
||||
from .utils import run
|
||||
|
||||
|
@ -19,14 +22,18 @@ __author__ = 'Fabio Manganiello <fabio@manganiello.tech>'
|
|||
__version__ = '0.50.3'
|
||||
__all__ = [
|
||||
'Application',
|
||||
'Variable',
|
||||
'Config',
|
||||
'Event',
|
||||
'Request',
|
||||
'Response',
|
||||
'cron',
|
||||
'get_backend',
|
||||
'get_bus',
|
||||
'get_plugin',
|
||||
'hook',
|
||||
'main',
|
||||
'procedure',
|
||||
'run',
|
||||
]
|
||||
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
from contextlib import contextmanager
|
||||
import logging
|
||||
import pathlib
|
||||
import os
|
||||
import signal
|
||||
import subprocess
|
||||
|
@ -41,6 +42,7 @@ class Application:
|
|||
self,
|
||||
config_file: Optional[str] = None,
|
||||
workdir: Optional[str] = None,
|
||||
db: Optional[str] = None,
|
||||
logsdir: Optional[str] = None,
|
||||
cachedir: Optional[str] = None,
|
||||
device_id: Optional[str] = None,
|
||||
|
@ -56,30 +58,87 @@ class Application:
|
|||
ctrl_sock: Optional[str] = None,
|
||||
):
|
||||
"""
|
||||
:param config_file: Configuration file override (default: None).
|
||||
:param workdir: Overrides the ``workdir`` setting in the configuration
|
||||
file (default: None).
|
||||
:param logsdir: Set logging directory. If not specified, the
|
||||
``filename`` setting under the ``logging`` section of the
|
||||
configuration file is used. If not set, logging will be sent to
|
||||
stdout and stderr.
|
||||
:param cachedir: Overrides the ``cachedir`` setting in the configuration
|
||||
file (default: None).
|
||||
:param device_id: Override the device ID used to identify this
|
||||
instance. If not passed here, it is inferred from the configuration
|
||||
(device_id field). If not present there either, it is inferred from
|
||||
the hostname.
|
||||
:param config_file: Configuration file. The order of precedence is:
|
||||
|
||||
- The ``config_file`` parameter (or the ``-c``/``--config`` command
|
||||
line argument).
|
||||
- The ``PLATYPUSH_CONFIG`` environment variable.
|
||||
- ``./config.yaml``
|
||||
- ``~/.config/platypush/config.yaml``
|
||||
- ``/etc/platypush/config.yaml``
|
||||
|
||||
:param workdir: Working directory where the application will store its
|
||||
data and integration plugins will store their data. The order of
|
||||
precedence is:
|
||||
|
||||
- The ``workdir`` parameter (or the ``-w``/``--workdir`` command
|
||||
line argument).
|
||||
- The ``PLATYPUSH_WORKDIR`` environment variable.
|
||||
- The ``workdir`` field in the configuration file.
|
||||
- ``~/.local/share/platypush``
|
||||
|
||||
:param db: Main database engine for the application. Supports SQLAlchemy
|
||||
engine strings. The order of precedence is:
|
||||
|
||||
- The ``db`` parameter (or the ``--main-db``/``--db`` command
|
||||
line argument).
|
||||
- The ``PLATYPUSH_DB`` environment variable.
|
||||
- The ``db`` field in the configuration file.
|
||||
- ``sqlite:///<workdir>/main.db``
|
||||
|
||||
:param logsdir: Logs directory where the application will store its logs.
|
||||
The order of precedence is:
|
||||
|
||||
- The ``logsdir`` parameter (or the ``-l``/``--logsdir`` command
|
||||
line argument).
|
||||
- The ``PLATYPUSH_LOGSDIR`` environment variable.
|
||||
- The ``logging`` -> ``filename`` field in the configuration
|
||||
file (the ``format`` and ``level`` fields can be set as well
|
||||
using Python logging configuration).
|
||||
- stdout and stderr
|
||||
|
||||
:param cachedir: Directory where the application and the plugins will store
|
||||
their cache data. The order of precedence is:
|
||||
|
||||
- The ``cachedir`` parameter (or the ``--cachedir`` command line
|
||||
argument).
|
||||
- The ``PLATYPUSH_CACHEDIR`` environment variable.
|
||||
- The ``cachedir`` field in the configuration file.
|
||||
- ``~/.cache/platypush``
|
||||
|
||||
:param device_id: Device ID used to identify this instance. The order
|
||||
of precedence is:
|
||||
|
||||
- The ``device_id`` parameter (or the ``--device-id`` command
|
||||
line argument).
|
||||
- The ``PLATYPUSH_DEVICE_ID`` environment variable.
|
||||
- The ``device_id`` field in the configuration file.
|
||||
- The hostname of the machine.
|
||||
|
||||
:param pidfile: File where platypush will store its PID upon launch,
|
||||
useful if you're planning to integrate the application within a
|
||||
service or a launcher script (default: None).
|
||||
service or a launcher script. Order of precedence:
|
||||
|
||||
- The ``pidfile`` parameter (or the ``-P``/``--pidfile`` command
|
||||
line argument).
|
||||
- The ``PLATYPUSH_PIDFILE`` environment variable.
|
||||
- No PID file.
|
||||
|
||||
:param requests_to_process: Exit after processing the specified
|
||||
number of requests (default: None, loop forever).
|
||||
number of requests (default: None, loop forever). This is usually
|
||||
useful for testing purposes.
|
||||
:param no_capture_stdout: Set to true if you want to disable the
|
||||
stdout capture by the logging system (default: False).
|
||||
:param no_capture_stderr: Set to true if you want to disable the
|
||||
stderr capture by the logging system (default: False).
|
||||
:param redis_queue: Name of the (Redis) queue used for dispatching
|
||||
messages (default: platypush/bus).
|
||||
messages. Order of precedence:
|
||||
|
||||
- The ``redis_queue`` parameter (or the ``--redis-queue`` command
|
||||
line argument).
|
||||
- The ``PLATYPUSH_REDIS_QUEUE`` environment variable.
|
||||
- ``platypush/bus``
|
||||
|
||||
:param verbose: Enable debug/verbose logging, overriding the stored
|
||||
configuration (default: False).
|
||||
:param start_redis: If set, it starts a managed Redis instance upon
|
||||
|
@ -87,34 +146,57 @@ class Application:
|
|||
server). This is particularly useful when running the application
|
||||
inside of Docker containers, without relying on ``docker-compose``
|
||||
to start multiple containers, and in tests (default: False).
|
||||
:param redis_host: Host of the Redis server to be used. It overrides
|
||||
the settings in the ``redis`` section of the configuration file.
|
||||
:param redis_port: Port of the local Redis server. It overrides the
|
||||
settings in the ``redis`` section of the configuration file.
|
||||
:param redis_host: Host of the Redis server to be used. The order of
|
||||
precedence is:
|
||||
|
||||
- The ``redis_host`` parameter (or the ``--redis-host`` command
|
||||
line argument).
|
||||
- The ``PLATYPUSH_REDIS_HOST`` environment variable.
|
||||
- The ``redis`` -> ``host`` field in the configuration file.
|
||||
- The ``backend.redis`` -> ``redis_args`` -> ``host`` field in
|
||||
the configuration file.
|
||||
- ``localhost``
|
||||
|
||||
:param redis_port: Port of the Redis server to be used. The order of
|
||||
precedence is:
|
||||
|
||||
- The ``redis_port`` parameter (or the ``--redis-port`` command
|
||||
line argument).
|
||||
- The ``PLATYPUSH_REDIS_PORT`` environment variable.
|
||||
- The ``redis`` -> ``port`` field in the configuration file.
|
||||
- The ``backend.redis`` -> ``redis_args`` -> ``port`` field in
|
||||
the configuration file.
|
||||
- ``6379``
|
||||
|
||||
:param ctrl_sock: If set, it identifies a path to a UNIX domain socket
|
||||
that the application can use to send control messages (e.g. STOP
|
||||
and RESTART) to its parent.
|
||||
"""
|
||||
|
||||
self.pidfile = pidfile
|
||||
self.pidfile = pidfile or os.environ.get('PLATYPUSH_PIDFILE')
|
||||
self.bus: Optional[Bus] = None
|
||||
self.redis_queue = redis_queue or RedisBus.DEFAULT_REDIS_QUEUE
|
||||
self.config_file = config_file
|
||||
self._verbose = verbose
|
||||
self._logsdir = (
|
||||
os.path.abspath(os.path.expanduser(logsdir)) if logsdir else None
|
||||
self.redis_queue = (
|
||||
redis_queue
|
||||
or os.environ.get('PLATYPUSH_REDIS_QUEUE')
|
||||
or RedisBus.DEFAULT_REDIS_QUEUE
|
||||
)
|
||||
self.config_file = config_file or os.environ.get('PLATYPUSH_CONFIG')
|
||||
self.verbose = verbose
|
||||
self.db_engine = db or os.environ.get('PLATYPUSH_DB')
|
||||
self.device_id = device_id or os.environ.get('PLATYPUSH_DEVICE_ID')
|
||||
|
||||
self.logsdir = self.expand_path(logsdir or os.environ.get('PLATYPUSH_LOGSDIR'))
|
||||
self.workdir = self.expand_path(workdir or os.environ.get('PLATYPUSH_WORKDIR'))
|
||||
self.cachedir = self.expand_path(
|
||||
cachedir or os.environ.get('PLATYPUSH_CACHEDIR')
|
||||
)
|
||||
Config.init(
|
||||
self.config_file,
|
||||
device_id=device_id,
|
||||
workdir=os.path.abspath(os.path.expanduser(workdir)) if workdir else None,
|
||||
cachedir=os.path.abspath(os.path.expanduser(cachedir))
|
||||
if cachedir
|
||||
else None,
|
||||
ctrl_sock=os.path.abspath(os.path.expanduser(ctrl_sock))
|
||||
if ctrl_sock
|
||||
else None,
|
||||
device_id=self.device_id,
|
||||
workdir=self.workdir,
|
||||
db=self.db_engine,
|
||||
cachedir=self.cachedir,
|
||||
ctrl_sock=self.expand_path(ctrl_sock),
|
||||
)
|
||||
|
||||
self.no_capture_stdout = no_capture_stdout
|
||||
|
@ -125,24 +207,25 @@ class Application:
|
|||
self.processed_requests = 0
|
||||
self.cron_scheduler = None
|
||||
self.start_redis = start_redis
|
||||
self.redis_host = redis_host
|
||||
self.redis_port = redis_port
|
||||
self.redis_conf = {}
|
||||
self.redis_host = redis_host or os.environ.get('PLATYPUSH_REDIS_HOST')
|
||||
self.redis_port = redis_port or os.environ.get('PLATYPUSH_REDIS_PORT')
|
||||
self._redis_conf = {
|
||||
'host': self.redis_host or 'localhost',
|
||||
'port': self.redis_port or self._default_redis_port,
|
||||
}
|
||||
|
||||
self._redis_proc: Optional[subprocess.Popen] = None
|
||||
self.cmd_stream = CommandStream(ctrl_sock)
|
||||
|
||||
self._init_bus()
|
||||
self._init_logging()
|
||||
|
||||
@staticmethod
|
||||
def expand_path(path: Optional[str]) -> Optional[str]:
|
||||
return os.path.abspath(os.path.expanduser(path)) if path else None
|
||||
|
||||
def _init_bus(self):
|
||||
self._redis_conf = get_redis_conf()
|
||||
self._redis_conf['port'] = self.redis_port or self._redis_conf.get(
|
||||
'port', self._default_redis_port
|
||||
)
|
||||
|
||||
if self.redis_host:
|
||||
self._redis_conf['host'] = self.redis_host
|
||||
|
||||
self._redis_conf = {**self._redis_conf, **get_redis_conf()}
|
||||
Config.set('redis', self._redis_conf)
|
||||
self.bus = RedisBus(
|
||||
redis_queue=self.redis_queue,
|
||||
|
@ -152,12 +235,18 @@ class Application:
|
|||
|
||||
def _init_logging(self):
|
||||
logging_conf = Config.get('logging') or {}
|
||||
if self._verbose:
|
||||
if self.verbose:
|
||||
logging_conf['level'] = logging.DEBUG
|
||||
if self._logsdir:
|
||||
logging_conf['filename'] = os.path.join(self._logsdir, 'platypush.log')
|
||||
|
||||
if self.logsdir:
|
||||
logging_conf['filename'] = os.path.join(self.logsdir, 'platypush.log')
|
||||
logging_conf.pop('stream', None)
|
||||
|
||||
if logging_conf.get('filename'):
|
||||
pathlib.Path(os.path.dirname(logging_conf['filename'])).mkdir(
|
||||
parents=True, exist_ok=True
|
||||
)
|
||||
|
||||
Config.set('logging', logging_conf)
|
||||
logging.basicConfig(**logging_conf)
|
||||
|
||||
|
@ -214,6 +303,7 @@ class Application:
|
|||
workdir=opts.workdir,
|
||||
cachedir=opts.cachedir,
|
||||
logsdir=opts.logsdir,
|
||||
db=opts.db_engine,
|
||||
device_id=opts.device_id,
|
||||
pidfile=opts.pidfile,
|
||||
no_capture_stdout=opts.no_capture_stdout,
|
||||
|
|
|
@ -402,6 +402,13 @@ class Backend(Thread, EventGenerator, ExtensionWithManifest):
|
|||
)
|
||||
return
|
||||
|
||||
if self.zeroconf:
|
||||
self.logger.info(
|
||||
'Zeroconf service already registered for %s, removing the previous instance',
|
||||
self.__class__.__name__,
|
||||
)
|
||||
self.unregister_service()
|
||||
|
||||
self.zeroconf = Zeroconf()
|
||||
srv_desc = {
|
||||
'name': 'Platypush',
|
||||
|
|
|
@ -1 +1 @@
|
|||
<!doctype html><html lang="en"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1"><!--[if IE]><link rel="icon" href="/favicon.ico"><![endif]--><link rel="stylesheet" href="/fonts/poppins.css"><title>platypush</title><script defer="defer" src="/static/js/chunk-vendors.aeea9c55.js"></script><script defer="defer" src="/static/js/app.6898f17e.js"></script><link href="/static/css/chunk-vendors.a2412607.css" rel="stylesheet"><link href="/static/css/app.28d8a91c.css" rel="stylesheet"><link rel="icon" type="image/svg+xml" href="/img/icons/favicon.svg"><link rel="icon" type="image/png" sizes="32x32" href="/img/icons/favicon-32x32.png"><link rel="icon" type="image/png" sizes="16x16" href="/img/icons/favicon-16x16.png"><link rel="manifest" href="/manifest.json"><meta name="theme-color" content="#ffffff"><meta name="apple-mobile-web-app-capable" content="no"><meta name="apple-mobile-web-app-status-bar-style" content="default"><meta name="apple-mobile-web-app-title" content="Platypush"><link rel="apple-touch-icon" href="/img/icons/apple-touch-icon-152x152.png"><link rel="mask-icon" href="/img/icons/safari-pinned-tab.svg" color="#ffffff"><meta name="msapplication-TileImage" content="/img/icons/msapplication-icon-144x144.png"><meta name="msapplication-TileColor" content="#000000"></head><body><noscript><strong>We're sorry but platypush doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id="app"></div></body></html>
|
||||
<!doctype html><html lang="en"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1"><!--[if IE]><link rel="icon" href="/favicon.ico"><![endif]--><link rel="stylesheet" href="/fonts/poppins.css"><title>platypush</title><script defer="defer" src="/static/js/chunk-vendors.aeea9c55.js"></script><script defer="defer" src="/static/js/app.0e4170c7.js"></script><link href="/static/css/chunk-vendors.a2412607.css" rel="stylesheet"><link href="/static/css/app.5b1362a4.css" rel="stylesheet"><link rel="icon" type="image/svg+xml" href="/img/icons/favicon.svg"><link rel="icon" type="image/png" sizes="32x32" href="/img/icons/favicon-32x32.png"><link rel="icon" type="image/png" sizes="16x16" href="/img/icons/favicon-16x16.png"><link rel="manifest" href="/manifest.json"><meta name="theme-color" content="#ffffff"><meta name="apple-mobile-web-app-capable" content="no"><meta name="apple-mobile-web-app-status-bar-style" content="default"><meta name="apple-mobile-web-app-title" content="Platypush"><link rel="apple-touch-icon" href="/img/icons/apple-touch-icon-152x152.png"><link rel="mask-icon" href="/img/icons/safari-pinned-tab.svg" color="#ffffff"><meta name="msapplication-TileImage" content="/img/icons/msapplication-icon-144x144.png"><meta name="msapplication-TileColor" content="#000000"></head><body><noscript><strong>We're sorry but platypush doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id="app"></div></body></html>
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
1
platypush/backend/http/webapp/dist/static/css/1587.f52aafce.css
vendored
Normal file
1
platypush/backend/http/webapp/dist/static/css/1587.f52aafce.css
vendored
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
1
platypush/backend/http/webapp/dist/static/css/3553.6d93b4b8.css
vendored
Normal file
1
platypush/backend/http/webapp/dist/static/css/3553.6d93b4b8.css
vendored
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
1
platypush/backend/http/webapp/dist/static/css/7841.2a1ced53.css
vendored
Normal file
1
platypush/backend/http/webapp/dist/static/css/7841.2a1ced53.css
vendored
Normal file
File diff suppressed because one or more lines are too long
1
platypush/backend/http/webapp/dist/static/css/906.80f1f8a3.css
vendored
Normal file
1
platypush/backend/http/webapp/dist/static/css/906.80f1f8a3.css
vendored
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -1,2 +1,2 @@
|
|||
"use strict";(self["webpackChunkplatypush"]=self["webpackChunkplatypush"]||[]).push([[1088],{1088:function(n,e,t){t.r(e),t.d(e,{default:function(){return o}});var u=t(6252);function a(n,e,t,a,r,p){const s=(0,u.up)("Zwave");return(0,u.wg)(),(0,u.j4)(s,{"plugin-name":"zwave.mqtt"})}var r=t(7880),p={components:{Zwave:r.Z}},s=t(3744);const c=(0,s.Z)(p,[["render",a]]);var o=c}}]);
|
||||
//# sourceMappingURL=1088.0fe97dc5.js.map
|
||||
//# sourceMappingURL=1088.8670f8f4.js.map
|
|
@ -1 +1 @@
|
|||
{"version":3,"file":"static/js/1088.0fe97dc5.js","mappings":"iPACEA,EAAAA,EAAAA,IAAkCC,EAAA,CAA3B,cAAY,c,eAMrB,GACEC,WAAY,CAACC,MAAKA,EAAAA,I,UCHpB,MAAMC,GAA2B,OAAgB,EAAQ,CAAC,CAAC,SAASC,KAEpE,O","sources":["webpack://platypush/./src/components/panels/ZwaveMqtt/Index.vue","webpack://platypush/./src/components/panels/ZwaveMqtt/Index.vue?4812"],"sourcesContent":["<template>\n <Zwave plugin-name=\"zwave.mqtt\" />\n</template>\n\n<script>\nimport Zwave from \"@/components/panels/Zwave/Zwave\";\n\nexport default {\n components: {Zwave},\n}\n</script>\n","import { render } from \"./Index.vue?vue&type=template&id=8fb9cbb2\"\nimport script from \"./Index.vue?vue&type=script&lang=js\"\nexport * from \"./Index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__"],"names":["_createBlock","_component_Zwave","components","Zwave","__exports__","render"],"sourceRoot":""}
|
||||
{"version":3,"file":"static/js/1088.8670f8f4.js","mappings":"iPACEA,EAAAA,EAAAA,IAAkCC,EAAA,CAA3B,cAAY,c,eAMrB,GACEC,WAAY,CAACC,MAAKA,EAAAA,I,UCHpB,MAAMC,GAA2B,OAAgB,EAAQ,CAAC,CAAC,SAASC,KAEpE,O","sources":["webpack://platypush/./src/components/panels/ZwaveMqtt/Index.vue","webpack://platypush/./src/components/panels/ZwaveMqtt/Index.vue?4812"],"sourcesContent":["<template>\n <Zwave plugin-name=\"zwave.mqtt\" />\n</template>\n\n<script>\nimport Zwave from \"@/components/panels/Zwave/Zwave\";\n\nexport default {\n components: {Zwave},\n}\n</script>\n","import { render } from \"./Index.vue?vue&type=template&id=8fb9cbb2\"\nimport script from \"./Index.vue?vue&type=script&lang=js\"\nexport * from \"./Index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__"],"names":["_createBlock","_component_Zwave","components","Zwave","__exports__","render"],"sourceRoot":""}
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
2
platypush/backend/http/webapp/dist/static/js/1587.e2ebe369.js
vendored
Normal file
2
platypush/backend/http/webapp/dist/static/js/1587.e2ebe369.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
platypush/backend/http/webapp/dist/static/js/1587.e2ebe369.js.map
vendored
Normal file
1
platypush/backend/http/webapp/dist/static/js/1587.e2ebe369.js.map
vendored
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -1,2 +1,2 @@
|
|||
"use strict";(self["webpackChunkplatypush"]=self["webpackChunkplatypush"]||[]).push([[1949],{1949:function(e,t,a){a.r(t),a.d(t,{default:function(){return f}});var l=a(6252);const i={key:2,class:"alarms-container"},n={class:"alarms items"};function s(e,t,a,s,d,o){const r=(0,l.up)("Loading"),m=(0,l.up)("NoItems"),u=(0,l.up)("Entity"),c=(0,l.up)("EntityModal"),p=(0,l.up)("AlarmEditor"),h=(0,l.up)("Modal"),y=(0,l.up)("FloatingButton");return(0,l.wg)(),(0,l.iD)(l.HY,null,[d.loading?((0,l.wg)(),(0,l.j4)(r,{key:0})):Object.keys(d.alarms).length?((0,l.wg)(),(0,l.iD)("div",i,[(0,l._)("div",n,[((0,l.wg)(!0),(0,l.iD)(l.HY,null,(0,l.Ko)(d.alarms,(e=>((0,l.wg)(),(0,l.iD)("div",{class:"item",key:e.external_id},[(0,l.Wm)(u,{value:e,onShowModal:t=>d.selectedAlarm=e.external_id},null,8,["value","onShowModal"])])))),128))])])):((0,l.wg)(),(0,l.j4)(m,{key:1},{default:(0,l.w5)((()=>[(0,l.Uk)(" No alarms configured ")])),_:1})),o.modalVisible?((0,l.wg)(),(0,l.j4)(c,{key:3,entity:d.alarms[d.selectedAlarm],visible:o.modalVisible,"config-values":{},onClose:t[0]||(t[0]=e=>d.selectedAlarm=null)},null,8,["entity","visible"])):(0,l.kq)("",!0),(0,l.Wm)(h,{title:"Add Alarm",visible:d.addAlarmModalVisible,onClose:t[1]||(t[1]=e=>d.addAlarmModalVisible=!1)},{default:(0,l.w5)((()=>[d.addAlarmModalVisible?((0,l.wg)(),(0,l.j4)(p,{key:0,value:d.newAlarm,"new-alarm":"",onInput:o.addAlarm},null,8,["value","onInput"])):(0,l.kq)("",!0)])),_:1},8,["visible"]),(0,l.Wm)(y,{"icon-class":"fa fa-stopwatch",text:"Add Alarm",onClick:t[2]||(t[2]=e=>d.addAlarmModalVisible=!0)})],64)}var d=a(9381),o=a(6791),r=a(1999),m=a(4558),u=a(3901),c=a(3493),p=a(3222),h=a(8637),y={components:{AlarmEditor:d["default"],Entity:m["default"],EntityModal:r["default"],FloatingButton:u.Z,Loading:o.Z,Modal:c.Z,NoItems:p.Z},mixins:[h.Z],props:{pluginName:{type:String},config:{type:Object,default:()=>{}}},data(){return{loading:!1,addAlarmModalVisible:!1,alarms:{},selectedAlarm:null,newAlarm:{condition_type:"cron",when:"* * * * *",audio_volume:this.$root.config?.alarm?.audio_volume??100,media_repeat:!0}}},computed:{modalVisible(){return null!=this.alarms[this.selectedAlarm]}},methods:{addAlarm(e){null!=e.external_id&&(e.name=e?.meta?.name_override||e.name,e.meta={...e.meta,icon:{class:e.meta?.icon?.["class"]||"fas fa-stopwatch"}},this.alarms[e.external_id]=e,this.addAlarmModalVisible=!1)},async refresh(){this.$emit("loading",!0);try{await this.request("alarm.status"),(await this.request("entities.get",{plugins:[this.pluginName]})).forEach((e=>this.addAlarm(e)))}finally{this.$emit("loading",!1)}},async onEntityUpdate(e){const t=e?.entity;t?.plugin===this.pluginName&&this.addAlarm(t)},async onEntityDelete(e){const t=e?.entity;t?.plugin===this.pluginName&&(this.selectedAlarm===t.external_id&&(this.selectedAlarm=null),this.alarms[t.external_id]&&delete this.alarms[t.external_id])}},mounted(){this.refresh(),this.subscribe(this.onEntityUpdate,"on-alarm-entity-update","platypush.message.event.entities.EntityUpdateEvent"),this.subscribe(this.onEntityDelete,"on-alarm-entity-delete","platypush.message.event.entities.EntityDeleteEvent")},unmounted(){this.unsubscribe("on-alarm-entity-update"),this.unsubscribe("on-alarm-entity-delete")}},g=a(3744);const b=(0,g.Z)(y,[["render",s],["__scopeId","data-v-52431f4a"]]);var f=b}}]);
|
||||
//# sourceMappingURL=1949.3e6197ac.js.map
|
||||
//# sourceMappingURL=1949.9d6edfd8.js.map
|
File diff suppressed because one or more lines are too long
|
@ -1,2 +1,2 @@
|
|||
"use strict";(self["webpackChunkplatypush"]=self["webpackChunkplatypush"]||[]).push([[2106],{2106:function(a,e,l){l.r(e),l.d(e,{default:function(){return $}});var i=l(6252),s=l(9963);const t=a=>((0,i.dD)("data-v-4e3d4a40"),a=a(),(0,i.Cn)(),a),n={class:"variable-modal-container"},r={class:"row"},o=t((()=>(0,i._)("div",{class:"col-s-12 col-m-4 label"},[(0,i._)("label",{for:"name"},"Variable Name")],-1))),d={class:"col-s-12 col-m-8 value"},u=["disabled"],c={class:"row"},v=t((()=>(0,i._)("div",{class:"col-s-12 col-m-4 label"},[(0,i._)("label",{for:"name"},"Variable Value")],-1))),m={class:"col-s-12 col-m-8 value"},b=["disabled"],h={class:"row button-container"},p=["disabled"],f=t((()=>(0,i._)("i",{class:"fas fa-check"},null,-1))),V=[f];function _(a,e,l,t,f,_){const y=(0,i.up)("Modal");return(0,i.wg)(),(0,i.j4)(y,{visible:l.visible,title:"Set Variable",ref:"modal",onOpen:_.onOpen,onClose:e[3]||(e[3]=e=>a.$emit("close",e))},{default:(0,i.w5)((()=>[(0,i._)("div",n,[(0,i._)("form",{onSubmit:e[2]||(e[2]=(0,s.iM)(((...a)=>_.setValue&&_.setValue(...a)),["prevent"]))},[(0,i._)("div",r,[o,(0,i._)("div",d,[(0,i.wy)((0,i._)("input",{type:"text",id:"variable-name","onUpdate:modelValue":e[0]||(e[0]=a=>f.varName=a),placeholder:"Variable Name",disabled:f.loading,ref:"varName"},null,8,u),[[s.nr,f.varName]])])]),(0,i._)("div",c,[v,(0,i._)("div",m,[(0,i.wy)((0,i._)("input",{type:"text",id:"variable-value","onUpdate:modelValue":e[1]||(e[1]=a=>f.varValue=a),ref:"varValue",placeholder:"Variable Value",disabled:f.loading},null,8,b),[[s.nr,f.varValue]])])]),(0,i._)("div",h,[(0,i._)("button",{type:"submit",title:"Set",disabled:f.loading},V,8,p)])],32)])])),_:1},8,["visible","onOpen"])}var y=l(3493),g=l(8637),w={name:"VariableModal",components:{Modal:y.Z},mixins:[g.Z],emits:["close"],props:{visible:{type:Boolean,default:!1}},data(){return{loading:!1,varName:null,varValue:null}},methods:{async clearValue(){this.loading=!0;try{await this.request("variable.unset",{name:this.varName.trim()})}finally{this.loading=!1}},async setValue(){const a=this.varName.trim();a?.length||this.notifyWarning("No variable name has been specified");const e=this.varValue;if(e?.length){this.loading=!0;try{const l={};l[a]=e,await this.request("variable.set",l)}finally{this.loading=!1}}else await this.clearValue();this.$refs.varName.value="",this.$refs.varValue.value="",this.$refs.modal.close()},onOpen(){this.$nextTick((()=>{this.$refs.varName.focus()}))}}},N=l(3744);const k=(0,N.Z)(w,[["render",_],["__scopeId","data-v-4e3d4a40"]]);var $=k}}]);
|
||||
//# sourceMappingURL=2106.15b2d62b.js.map
|
||||
//# sourceMappingURL=2106.6553ebed.js.map
|
File diff suppressed because one or more lines are too long
|
@ -1,2 +1,2 @@
|
|||
"use strict";(self["webpackChunkplatypush"]=self["webpackChunkplatypush"]||[]).push([[2140,4619],{4619:function(e,t,s){s.r(t),s.d(t,{default:function(){return w}});var o=s(6252),i=s(3577);const a={class:"date-time"},r=["textContent"],h=["textContent"];function n(e,t,s,n,m,u){return(0,o.wg)(),(0,o.iD)("div",a,[u._showDate?((0,o.wg)(),(0,o.iD)("div",{key:0,class:"date",textContent:(0,i.zw)(e.formatDate(e.now))},null,8,r)):(0,o.kq)("",!0),u._showTime?((0,o.wg)(),(0,o.iD)("div",{key:1,class:"time",textContent:(0,i.zw)(e.formatTime(e.now,u._showSeconds))},null,8,h)):(0,o.kq)("",!0)])}var m=s(8637),u={name:"DateTime",mixins:[m.Z],props:{showDate:{required:!1,default:!0},showTime:{required:!1,default:!0},showSeconds:{required:!1,default:!0}},computed:{_showTime(){return this.parseBoolean(this.showTime)},_showDate(){return this.parseBoolean(this.showDate)},_showSeconds(){return this.parseBoolean(this.showSeconds)}},data:function(){return{now:new Date}},methods:{refreshTime(){this.now=new Date}},mounted:function(){this.refreshTime(),setInterval(this.refreshTime,1e3)}},c=s(3744);const l=(0,c.Z)(u,[["render",n],["__scopeId","data-v-ca42eb9c"]]);var w=l},2140:function(e,t,s){s.r(t),s.d(t,{default:function(){return k}});var o=s(6252),i=s(3577);const a={class:"image-carousel"},r={ref:"background",class:"background"},h=["src"],n={key:1,class:"row info-container"},m={class:"col-6 weather-container"},u={key:0},c={class:"col-6 date-time-container"};function l(e,t,s,l,w,d){const g=(0,o.up)("Loading"),f=(0,o.up)("Weather"),p=(0,o.up)("DateTime");return(0,o.wg)(),(0,o.iD)("div",a,[w.images.length?(0,o.kq)("",!0):((0,o.wg)(),(0,o.j4)(g,{key:0})),(0,o._)("div",r,null,512),(0,o._)("img",{ref:"img",src:d.imgURL,alt:"Your carousel images",style:(0,i.j5)({display:w.images.length?"block":"none"})},null,12,h),d._showDate||d._showTime?((0,o.wg)(),(0,o.iD)("div",n,[(0,o._)("div",m,[d._showWeather?((0,o.wg)(),(0,o.j4)(f,{key:1,"show-icon":d._showWeatherIcon,"show-summary":d._showWeatherSummary,"show-temperature":d._showTemperature,"icon-color":s.weatherIconColor,"icon-size":s.weatherIconSize,animate:d._animateWeatherIcon},null,8,["show-icon","show-summary","show-temperature","icon-color","icon-size","animate"])):((0,o.wg)(),(0,o.iD)("span",u," "))]),(0,o._)("div",c,[d._showTime||d._showDate?((0,o.wg)(),(0,o.j4)(p,{key:0,"show-date":d._showDate,"show-time":d._showTime,"show-seconds":d._showSeconds},null,8,["show-date","show-time","show-seconds"])):(0,o.kq)("",!0)])])):(0,o.kq)("",!0)])}var w=s(8637),d=s(6791),g=s(4619),f=s(5193),p={name:"ImageCarousel",components:{Weather:f["default"],DateTime:g["default"],Loading:d.Z},mixins:[w.Z],props:{imgDir:{type:String,required:!0},refreshSeconds:{type:Number,default:15},showDate:{default:!1},showTime:{default:!1},showSeconds:{default:!1},showWeather:{default:!1},showTemperature:{default:!0},showWeatherIcon:{default:!0},showWeatherSummary:{default:!0},weatherIconColor:{type:String,default:"white"},weatherIconSize:{type:Number,default:70},animateWeatherIcon:{default:!0}},data(){return{images:[],currentImage:void 0,loading:!1}},computed:{imgURL(){let e=8008;return"backend.http"in this.$root.config&&"port"in this.$root.config["backend.http"]&&(e=this.$root.config["backend.http"].port),"//"+window.location.hostname+":"+e+this.currentImage},_showDate(){return this.parseBoolean(this.showDate)},_showTime(){return this.parseBoolean(this.showTime)},_showSeconds(){return this.parseBoolean(this.showSeconds)},_showTemperature(){return this.parseBoolean(this.showTemperature)},_showWeather(){return this.parseBoolean(this.showWeather)},_showWeatherIcon(){return this.parseBoolean(this.showWeatherIcon)},_showWeatherSummary(){return this.parseBoolean(this.showWeatherSummary)},_animateWeatherIcon(){return this.parseBoolean(this.animateWeatherIcon)}},methods:{async refresh(){if(!this.images.length){this.loading=!0;try{this.images=await this.request("utils.search_web_directory",{directory:this.imgDir,extensions:[".jpg",".jpeg",".png"]}),this.shuffleImages()}finally{this.loading=!1}}this.images.length&&(this.currentImage=this.images.pop())},onNewImage(){if(this.$refs.img&&(this.$refs.background.style["background-image"]="url("+this.imgURL+")",this.$refs.img.style.width="auto",this.$refs.img.width>this.$refs.img.height)){const e=this.$refs.img.width/this.$refs.img.height;e>=4/3&&e<=16/9?this.$refs.img.style.width="100%":e<=4/3&&(this.$refs.img.style.height="100%")}},shuffleImages(){for(let e=this.images.length-1;e>0;e--){let t=Math.floor(Math.random()*(e+1)),s=this.images[e];this.images[e]=this.images[t],this.images[t]=s}}},mounted(){this.$refs.img.addEventListener("load",this.onNewImage),this.$refs.img.addEventListener("error",this.refresh),this.refresh(),setInterval(this.refresh,Math.round(1e3*this.refreshSeconds))}},_=s(3744);const y=(0,_.Z)(p,[["render",l],["__scopeId","data-v-7b09a273"]]);var k=y}}]);
|
||||
//# sourceMappingURL=2140.edf81bd3.js.map
|
||||
//# sourceMappingURL=2140.1dc2f842.js.map
|
File diff suppressed because one or more lines are too long
|
@ -1,2 +1,2 @@
|
|||
"use strict";(self["webpackChunkplatypush"]=self["webpackChunkplatypush"]||[]).push([[2183],{2183:function(n,e,r){r.r(e),r.d(e,{default:function(){return o}});var t=r(6252);function u(n,e,r,u,a,p){const s=(0,t.up)("Panel");return(0,t.wg)(),(0,t.j4)(s,{"plugin-name":"rtorrent"})}var a=r(7968),p={name:"Torrent",components:{Panel:a.Z}},s=r(3744);const c=(0,s.Z)(p,[["render",u]]);var o=c}}]);
|
||||
//# sourceMappingURL=2183.e176e1e9.js.map
|
||||
//# sourceMappingURL=2183.2941880a.js.map
|
|
@ -1 +1 @@
|
|||
{"version":3,"file":"static/js/2183.e176e1e9.js","mappings":"iPACEA,EAAAA,EAAAA,IAAgCC,EAAA,CAAzB,cAAY,Y,eAMrB,GACEC,KAAM,UACNC,WAAY,CAACC,MAAKA,EAAAA,I,UCJpB,MAAMC,GAA2B,OAAgB,EAAQ,CAAC,CAAC,SAASC,KAEpE,O","sources":["webpack://platypush/./src/components/panels/Rtorrent/Index.vue","webpack://platypush/./src/components/panels/Rtorrent/Index.vue?5c1f"],"sourcesContent":["<template>\n <Panel plugin-name=\"rtorrent\" />\n</template>\n\n<script>\nimport Panel from \"@/components/panels/Torrent/Panel\";\n\nexport default {\n name: \"Torrent\",\n components: {Panel}\n}\n</script>\n","import { render } from \"./Index.vue?vue&type=template&id=4938278b\"\nimport script from \"./Index.vue?vue&type=script&lang=js\"\nexport * from \"./Index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__"],"names":["_createBlock","_component_Panel","name","components","Panel","__exports__","render"],"sourceRoot":""}
|
||||
{"version":3,"file":"static/js/2183.2941880a.js","mappings":"iPACEA,EAAAA,EAAAA,IAAgCC,EAAA,CAAzB,cAAY,Y,eAMrB,GACEC,KAAM,UACNC,WAAY,CAACC,MAAKA,EAAAA,I,UCJpB,MAAMC,GAA2B,OAAgB,EAAQ,CAAC,CAAC,SAASC,KAEpE,O","sources":["webpack://platypush/./src/components/panels/Rtorrent/Index.vue","webpack://platypush/./src/components/panels/Rtorrent/Index.vue?5c1f"],"sourcesContent":["<template>\n <Panel plugin-name=\"rtorrent\" />\n</template>\n\n<script>\nimport Panel from \"@/components/panels/Torrent/Panel\";\n\nexport default {\n name: \"Torrent\",\n components: {Panel}\n}\n</script>\n","import { render } from \"./Index.vue?vue&type=template&id=4938278b\"\nimport script from \"./Index.vue?vue&type=script&lang=js\"\nexport * from \"./Index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__"],"names":["_createBlock","_component_Panel","name","components","Panel","__exports__","render"],"sourceRoot":""}
|
|
@ -1,2 +1,2 @@
|
|||
"use strict";(self["webpackChunkplatypush"]=self["webpackChunkplatypush"]||[]).push([[2200],{2200:function(s,i,e){e.r(i),e.d(i,{default:function(){return b}});var c=e(6252);const a={class:"youtube-views-browser grid"},l=(0,c._)("div",{class:"icon"},[(0,c._)("i",{class:"fas fa-rss"})],-1),t=(0,c._)("div",{class:"name"},"Feed",-1),n=[l,t],r=(0,c._)("div",{class:"icon"},[(0,c._)("i",{class:"fas fa-list"})],-1),u=(0,c._)("div",{class:"name"},"Playlists",-1),d=[r,u],o=(0,c._)("div",{class:"icon"},[(0,c._)("i",{class:"fas fa-user"})],-1),v=(0,c._)("div",{class:"name"},"Subscriptions",-1),f=[o,v];function _(s,i,e,l,t,r){return(0,c.wg)(),(0,c.iD)("div",a,[(0,c._)("div",{class:"item",onClick:i[0]||(i[0]=i=>s.$emit("select","feed"))},n),(0,c._)("div",{class:"item",onClick:i[1]||(i[1]=i=>s.$emit("select","playlists"))},d),(0,c._)("div",{class:"item",onClick:i[2]||(i[2]=i=>s.$emit("select","subscriptions"))},f)])}var m={emits:["select"]},p=e(3744);const k=(0,p.Z)(m,[["render",_]]);var b=k}}]);
|
||||
//# sourceMappingURL=2200.2e9c8630.js.map
|
||||
//# sourceMappingURL=2200.9fc9fd95.js.map
|
|
@ -1 +1 @@
|
|||
{"version":3,"file":"static/js/2200.2e9c8630.js","mappings":"sLACOA,MAAM,8B,GAEPC,EAAAA,EAAAA,GAEM,OAFDD,MAAM,QAAM,EACfC,EAAAA,EAAAA,GAAwB,KAArBD,MAAM,iBAAY,G,GAEvBC,EAAAA,EAAAA,GAA4B,OAAvBD,MAAM,QAAO,QAAI,G,GAHtBE,EAGAC,G,GAIAF,EAAAA,EAAAA,GAEM,OAFDD,MAAM,QAAM,EACfC,EAAAA,EAAAA,GAAyB,KAAtBD,MAAM,kBAAa,G,GAExBC,EAAAA,EAAAA,GAAiC,OAA5BD,MAAM,QAAO,aAAS,G,GAH3BI,EAGAC,G,GAIAJ,EAAAA,EAAAA,GAEM,OAFDD,MAAM,QAAM,EACfC,EAAAA,EAAAA,GAAyB,KAAtBD,MAAM,kBAAa,G,GAExBC,EAAAA,EAAAA,GAAqC,OAAhCD,MAAM,QAAO,iBAAa,G,GAH/BM,EAGAC,G,0CAnBJC,EAAAA,EAAAA,IAqBM,MArBNC,EAqBM,EApBJR,EAAAA,EAAAA,GAKM,OALDD,MAAM,OAAQU,QAAKC,EAAA,KAAAA,EAAA,GAAAC,GAAEC,EAAAC,MAAM,SAAU,U,IAO1Cb,EAAAA,EAAAA,GAKM,OALDD,MAAM,OAAQU,QAAKC,EAAA,KAAAA,EAAA,GAAAC,GAAEC,EAAAC,MAAM,SAAU,e,IAO1Cb,EAAAA,EAAAA,GAKM,OALDD,MAAM,OAAQU,QAAKC,EAAA,KAAAA,EAAA,GAAAC,GAAEC,EAAAC,MAAM,SAAU,mB,KAU9C,OACEC,MAAO,CAAC,W,UCtBV,MAAMC,GAA2B,OAAgB,EAAQ,CAAC,CAAC,SAASC,KAEpE,O","sources":["webpack://platypush/./src/components/panels/Media/Providers/YouTube/Index.vue","webpack://platypush/./src/components/panels/Media/Providers/YouTube/Index.vue?bde9"],"sourcesContent":["<template>\n <div class=\"youtube-views-browser grid\">\n <div class=\"item\" @click=\"$emit('select', 'feed')\">\n <div class=\"icon\">\n <i class=\"fas fa-rss\" />\n </div>\n <div class=\"name\">Feed</div>\n </div>\n\n <div class=\"item\" @click=\"$emit('select', 'playlists')\">\n <div class=\"icon\">\n <i class=\"fas fa-list\" />\n </div>\n <div class=\"name\">Playlists</div>\n </div>\n\n <div class=\"item\" @click=\"$emit('select', 'subscriptions')\">\n <div class=\"icon\">\n <i class=\"fas fa-user\" />\n </div>\n <div class=\"name\">Subscriptions</div>\n </div>\n </div>\n</template>\n\n<script>\nexport default {\n emits: ['select'],\n}\n</script>\n","import { render } from \"./Index.vue?vue&type=template&id=c531e118\"\nimport script from \"./Index.vue?vue&type=script&lang=js\"\nexport * from \"./Index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__"],"names":["class","_createElementVNode","_hoisted_2","_hoisted_3","_hoisted_5","_hoisted_6","_hoisted_8","_hoisted_9","_createElementBlock","_hoisted_1","onClick","_cache","$event","_ctx","$emit","emits","__exports__","render"],"sourceRoot":""}
|
||||
{"version":3,"file":"static/js/2200.9fc9fd95.js","mappings":"sLACOA,MAAM,8B,GAEPC,EAAAA,EAAAA,GAEM,OAFDD,MAAM,QAAM,EACfC,EAAAA,EAAAA,GAAwB,KAArBD,MAAM,iBAAY,G,GAEvBC,EAAAA,EAAAA,GAA4B,OAAvBD,MAAM,QAAO,QAAI,G,GAHtBE,EAGAC,G,GAIAF,EAAAA,EAAAA,GAEM,OAFDD,MAAM,QAAM,EACfC,EAAAA,EAAAA,GAAyB,KAAtBD,MAAM,kBAAa,G,GAExBC,EAAAA,EAAAA,GAAiC,OAA5BD,MAAM,QAAO,aAAS,G,GAH3BI,EAGAC,G,GAIAJ,EAAAA,EAAAA,GAEM,OAFDD,MAAM,QAAM,EACfC,EAAAA,EAAAA,GAAyB,KAAtBD,MAAM,kBAAa,G,GAExBC,EAAAA,EAAAA,GAAqC,OAAhCD,MAAM,QAAO,iBAAa,G,GAH/BM,EAGAC,G,0CAnBJC,EAAAA,EAAAA,IAqBM,MArBNC,EAqBM,EApBJR,EAAAA,EAAAA,GAKM,OALDD,MAAM,OAAQU,QAAKC,EAAA,KAAAA,EAAA,GAAAC,GAAEC,EAAAC,MAAM,SAAU,U,IAO1Cb,EAAAA,EAAAA,GAKM,OALDD,MAAM,OAAQU,QAAKC,EAAA,KAAAA,EAAA,GAAAC,GAAEC,EAAAC,MAAM,SAAU,e,IAO1Cb,EAAAA,EAAAA,GAKM,OALDD,MAAM,OAAQU,QAAKC,EAAA,KAAAA,EAAA,GAAAC,GAAEC,EAAAC,MAAM,SAAU,mB,KAU9C,OACEC,MAAO,CAAC,W,UCtBV,MAAMC,GAA2B,OAAgB,EAAQ,CAAC,CAAC,SAASC,KAEpE,O","sources":["webpack://platypush/./src/components/panels/Media/Providers/YouTube/Index.vue","webpack://platypush/./src/components/panels/Media/Providers/YouTube/Index.vue?bde9"],"sourcesContent":["<template>\n <div class=\"youtube-views-browser grid\">\n <div class=\"item\" @click=\"$emit('select', 'feed')\">\n <div class=\"icon\">\n <i class=\"fas fa-rss\" />\n </div>\n <div class=\"name\">Feed</div>\n </div>\n\n <div class=\"item\" @click=\"$emit('select', 'playlists')\">\n <div class=\"icon\">\n <i class=\"fas fa-list\" />\n </div>\n <div class=\"name\">Playlists</div>\n </div>\n\n <div class=\"item\" @click=\"$emit('select', 'subscriptions')\">\n <div class=\"icon\">\n <i class=\"fas fa-user\" />\n </div>\n <div class=\"name\">Subscriptions</div>\n </div>\n </div>\n</template>\n\n<script>\nexport default {\n emits: ['select'],\n}\n</script>\n","import { render } from \"./Index.vue?vue&type=template&id=c531e118\"\nimport script from \"./Index.vue?vue&type=script&lang=js\"\nexport * from \"./Index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__"],"names":["class","_createElementVNode","_hoisted_2","_hoisted_3","_hoisted_5","_hoisted_6","_hoisted_8","_hoisted_9","_createElementBlock","_hoisted_1","onClick","_cache","$event","_ctx","$emit","emits","__exports__","render"],"sourceRoot":""}
|
File diff suppressed because one or more lines are too long
1
platypush/backend/http/webapp/dist/static/js/2509.efc0bf4c.js.map
vendored
Normal file
1
platypush/backend/http/webapp/dist/static/js/2509.efc0bf4c.js.map
vendored
Normal file
File diff suppressed because one or more lines are too long
|
@ -1,2 +1,2 @@
|
|||
"use strict";(self["webpackChunkplatypush"]=self["webpackChunkplatypush"]||[]).push([[2614],{2614:function(e,n,a){a.r(n),a.d(n,{default:function(){return i}});var u=a(6252);function t(e,n,a,t,c,r){const p=(0,u.up)("Media");return(0,u.wg)(),(0,u.j4)(p,{"plugin-name":"media.vlc"})}var c=a(1256),r={name:"MediaVlc",components:{Media:c["default"]}},p=a(3744);const s=(0,p.Z)(r,[["render",t]]);var i=s}}]);
|
||||
//# sourceMappingURL=2614.fde99472.js.map
|
||||
"use strict";(self["webpackChunkplatypush"]=self["webpackChunkplatypush"]||[]).push([[2614],{2614:function(e,n,a){a.r(n),a.d(n,{default:function(){return i}});var u=a(6252);function t(e,n,a,t,c,r){const p=(0,u.up)("Media");return(0,u.wg)(),(0,u.j4)(p,{"plugin-name":"media.vlc"})}var c=a(2509),r={name:"MediaVlc",components:{Media:c["default"]}},p=a(3744);const s=(0,p.Z)(r,[["render",t]]);var i=s}}]);
|
||||
//# sourceMappingURL=2614.7997d726.js.map
|
|
@ -1 +1 @@
|
|||
{"version":3,"file":"static/js/2614.fde99472.js","mappings":"iPACEA,EAAAA,EAAAA,IAAiCC,EAAA,CAA1B,cAAY,a,eAMrB,GACEC,KAAM,WACNC,WAAY,CAACC,MAAKA,EAAAA,a,UCJpB,MAAMC,GAA2B,OAAgB,EAAQ,CAAC,CAAC,SAASC,KAEpE,O","sources":["webpack://platypush/./src/components/panels/MediaVlc/Index.vue","webpack://platypush/./src/components/panels/MediaVlc/Index.vue?7b0b"],"sourcesContent":["<template>\n <Media plugin-name=\"media.vlc\" />\n</template>\n\n<script>\nimport Media from '@/components/panels/Media/Index'\n\nexport default {\n name: \"MediaVlc\",\n components: {Media},\n}\n</script>\n\n<style scoped>\n\n</style>\n","import { render } from \"./Index.vue?vue&type=template&id=9233e214\"\nimport script from \"./Index.vue?vue&type=script&lang=js\"\nexport * from \"./Index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__"],"names":["_createBlock","_component_Media","name","components","Media","__exports__","render"],"sourceRoot":""}
|
||||
{"version":3,"file":"static/js/2614.7997d726.js","mappings":"iPACEA,EAAAA,EAAAA,IAAiCC,EAAA,CAA1B,cAAY,a,eAMrB,GACEC,KAAM,WACNC,WAAY,CAACC,MAAKA,EAAAA,a,UCJpB,MAAMC,GAA2B,OAAgB,EAAQ,CAAC,CAAC,SAASC,KAEpE,O","sources":["webpack://platypush/./src/components/panels/MediaVlc/Index.vue","webpack://platypush/./src/components/panels/MediaVlc/Index.vue?7b0b"],"sourcesContent":["<template>\n <Media plugin-name=\"media.vlc\" />\n</template>\n\n<script>\nimport Media from '@/components/panels/Media/Index'\n\nexport default {\n name: \"MediaVlc\",\n components: {Media},\n}\n</script>\n\n<style scoped>\n\n</style>\n","import { render } from \"./Index.vue?vue&type=template&id=9233e214\"\nimport script from \"./Index.vue?vue&type=script&lang=js\"\nexport * from \"./Index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__"],"names":["_createBlock","_component_Media","name","components","Media","__exports__","render"],"sourceRoot":""}
|
|
@ -1,2 +1,2 @@
|
|||
"use strict";(self["webpackChunkplatypush"]=self["webpackChunkplatypush"]||[]).push([[2732],{2732:function(n,e,u){u.r(e),u.d(e,{default:function(){return o}});var t=u(6252);function a(n,e,u,a,r,p){const s=(0,t.up)("Zwave");return(0,t.wg)(),(0,t.j4)(s,{"plugin-name":"zwave"})}var r=u(7880),p={components:{Zwave:r.Z}},s=u(3744);const c=(0,s.Z)(p,[["render",a]]);var o=c}}]);
|
||||
//# sourceMappingURL=2732.423b3029.js.map
|
||||
//# sourceMappingURL=2732.28f617e8.js.map
|
|
@ -1 +1 @@
|
|||
{"version":3,"file":"static/js/2732.423b3029.js","mappings":"iPACEA,EAAAA,EAAAA,IAA6BC,EAAA,CAAtB,cAAY,S,eAMrB,GACEC,WAAY,CAACC,MAAKA,EAAAA,I,UCHpB,MAAMC,GAA2B,OAAgB,EAAQ,CAAC,CAAC,SAASC,KAEpE,O","sources":["webpack://platypush/./src/components/panels/Zwave/Index.vue","webpack://platypush/./src/components/panels/Zwave/Index.vue?b798"],"sourcesContent":["<template>\n <Zwave plugin-name=\"zwave\" />\n</template>\n\n<script>\nimport Zwave from \"@/components/panels/Zwave/Zwave\";\n\nexport default {\n components: {Zwave},\n}\n</script>\n","import { render } from \"./Index.vue?vue&type=template&id=4b554bd5\"\nimport script from \"./Index.vue?vue&type=script&lang=js\"\nexport * from \"./Index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__"],"names":["_createBlock","_component_Zwave","components","Zwave","__exports__","render"],"sourceRoot":""}
|
||||
{"version":3,"file":"static/js/2732.28f617e8.js","mappings":"iPACEA,EAAAA,EAAAA,IAA6BC,EAAA,CAAtB,cAAY,S,eAMrB,GACEC,WAAY,CAACC,MAAKA,EAAAA,I,UCHpB,MAAMC,GAA2B,OAAgB,EAAQ,CAAC,CAAC,SAASC,KAEpE,O","sources":["webpack://platypush/./src/components/panels/Zwave/Index.vue","webpack://platypush/./src/components/panels/Zwave/Index.vue?b798"],"sourcesContent":["<template>\n <Zwave plugin-name=\"zwave\" />\n</template>\n\n<script>\nimport Zwave from \"@/components/panels/Zwave/Zwave\";\n\nexport default {\n components: {Zwave},\n}\n</script>\n","import { render } from \"./Index.vue?vue&type=template&id=4b554bd5\"\nimport script from \"./Index.vue?vue&type=script&lang=js\"\nexport * from \"./Index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__"],"names":["_createBlock","_component_Zwave","components","Zwave","__exports__","render"],"sourceRoot":""}
|
|
@ -1,2 +1,2 @@
|
|||
"use strict";(self["webpackChunkplatypush"]=self["webpackChunkplatypush"]||[]).push([[2853],{5169:function(t,e,a){a.d(e,{Z:function(){return y}});var n=a(6252),l=a(9963);const i=t=>((0,n.dD)("data-v-a248454a"),t=t(),(0,n.Cn)(),t),s={class:"tts-container"},u={class:"field text-container"},r=["disabled"],d={class:"field lang-container"},o=["disabled"],c={class:"field buttons"},p=["disabled"],g=i((()=>(0,n._)("i",{class:"fa fa-volume-up"},null,-1))),f=[g];function v(t,e,a,i,g,v){return(0,n.wg)(),(0,n.iD)("div",s,[(0,n._)("form",{onSubmit:e[0]||(e[0]=(0,l.iM)(((...t)=>v.talk&&v.talk(...t)),["prevent"]))},[(0,n._)("div",u,[(0,n._)("label",null,[(0,n._)("input",{type:"text",name:"text",placeholder:"Text to say",disabled:g.talking},null,8,r)])]),(0,n._)("div",d,[(0,n._)("label",null,[(0,n._)("input",{type:"text",name:"language",placeholder:"Language code",disabled:g.talking},null,8,o)])]),(0,n._)("div",c,[(0,n._)("button",{type:"submit",disabled:g.talking},f,8,p)])],32)])}var m=a(8637),b={name:"Panel",mixins:[m.Z],props:{pluginName:{type:String,required:!0}},data(){return{talking:!1}},methods:{async talk(t){const e=[...t.target.querySelectorAll("input")].reduce(((t,e)=>(e.value.length&&(t[e.name]=e.value),t)),{});this.talking=!0;try{await this.request(`${this.pluginName}.say`,e)}finally{this.talking=!1}}}},h=a(3744);const k=(0,h.Z)(b,[["render",v],["__scopeId","data-v-a248454a"]]);var y=k},7605:function(t,e,a){a.r(e),a.d(e,{default:function(){return d}});var n=a(6252);function l(t,e,a,l,i,s){const u=(0,n.up)("Panel");return(0,n.wg)(),(0,n.j4)(u,{"plugin-name":"tts.google"})}var i=a(5169),s={name:"Tts",components:{Panel:i.Z}},u=a(3744);const r=(0,u.Z)(s,[["render",l]]);var d=r}}]);
|
||||
//# sourceMappingURL=2853.f860fc12.js.map
|
||||
//# sourceMappingURL=2853.47a43033.js.map
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
2
platypush/backend/http/webapp/dist/static/js/3083.8440bfa8.js
vendored
Normal file
2
platypush/backend/http/webapp/dist/static/js/3083.8440bfa8.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
platypush/backend/http/webapp/dist/static/js/3083.8440bfa8.js.map
vendored
Normal file
1
platypush/backend/http/webapp/dist/static/js/3083.8440bfa8.js.map
vendored
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
2
platypush/backend/http/webapp/dist/static/js/3400.1021c9a8.js
vendored
Normal file
2
platypush/backend/http/webapp/dist/static/js/3400.1021c9a8.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
platypush/backend/http/webapp/dist/static/js/3400.1021c9a8.js.map
vendored
Normal file
1
platypush/backend/http/webapp/dist/static/js/3400.1021c9a8.js.map
vendored
Normal file
File diff suppressed because one or more lines are too long
|
@ -1,2 +1,2 @@
|
|||
"use strict";(self["webpackChunkplatypush"]=self["webpackChunkplatypush"]||[]).push([[342],{3222:function(e,t,s){s.d(t,{Z:function(){return r}});var i=s(6252),l=s(3577);const n={class:"no-items-container"};function a(e,t,s,a,o,u){return(0,i.wg)(),(0,i.iD)("div",n,[(0,i._)("div",{class:(0,l.C_)(["no-items fade-in",{shadow:s.withShadow}])},[(0,i.WI)(e.$slots,"default",{},void 0,!0)],2)])}var o={name:"NoItems",props:{withShadow:{type:Boolean,default:!0}}},u=s(3744);const d=(0,u.Z)(o,[["render",a],["__scopeId","data-v-4856c4d7"]]);var r=d},342:function(e,t,s){s.r(t),s.d(t,{default:function(){return y}});var i=s(6252);const l={class:"media-youtube-playlist"};function n(e,t,s,n,a,o){const u=(0,i.up)("Loading"),d=(0,i.up)("NoItems"),r=(0,i.up)("Results");return(0,i.wg)(),(0,i.iD)("div",l,[a.loading?((0,i.wg)(),(0,i.j4)(u,{key:0})):a.items?.length?((0,i.wg)(),(0,i.j4)(r,{key:2,results:a.items,sources:{youtube:!0},filter:s.filter,"selected-result":a.selectedResult,onSelect:t[0]||(t[0]=e=>a.selectedResult=e),onPlay:t[1]||(t[1]=t=>e.$emit("play",t))},null,8,["results","filter","selected-result"])):((0,i.wg)(),(0,i.j4)(d,{key:1,"with-shadow":!1},{default:(0,i.w5)((()=>[(0,i.Uk)(" No videos found. ")])),_:1}))])}var a=s(3222),o=s(6791),u=s(5390),d=s(8637),r={emits:["play"],mixins:[d.Z],components:{Loading:o.Z,NoItems:a.Z,Results:u.Z},props:{id:{type:String,required:!0},filter:{type:String,default:null}},data(){return{items:[],loading:!1,selectedResult:null}},methods:{async loadItems(){this.loading=!0;try{this.items=(await this.request("youtube.get_playlist",{id:this.id})).map((e=>({...e,type:"youtube"})))}finally{this.loading=!1}}},mounted(){this.loadItems()}},c=s(3744);const p=(0,c.Z)(r,[["render",n],["__scopeId","data-v-66236cc4"]]);var y=p}}]);
|
||||
//# sourceMappingURL=342.51066758.js.map
|
||||
"use strict";(self["webpackChunkplatypush"]=self["webpackChunkplatypush"]||[]).push([[342],{3222:function(e,t,s){s.d(t,{Z:function(){return r}});var i=s(6252),l=s(3577);const n={class:"no-items-container"};function a(e,t,s,a,o,u){return(0,i.wg)(),(0,i.iD)("div",n,[(0,i._)("div",{class:(0,l.C_)(["no-items fade-in",{shadow:s.withShadow}])},[(0,i.WI)(e.$slots,"default",{},void 0,!0)],2)])}var o={name:"NoItems",props:{withShadow:{type:Boolean,default:!0}}},u=s(3744);const d=(0,u.Z)(o,[["render",a],["__scopeId","data-v-4856c4d7"]]);var r=d},342:function(e,t,s){s.r(t),s.d(t,{default:function(){return y}});var i=s(6252);const l={class:"media-youtube-playlist"};function n(e,t,s,n,a,o){const u=(0,i.up)("Loading"),d=(0,i.up)("NoItems"),r=(0,i.up)("Results");return(0,i.wg)(),(0,i.iD)("div",l,[a.loading?((0,i.wg)(),(0,i.j4)(u,{key:0})):a.items?.length?((0,i.wg)(),(0,i.j4)(r,{key:2,results:a.items,sources:{youtube:!0},filter:s.filter,"selected-result":a.selectedResult,onSelect:t[0]||(t[0]=e=>a.selectedResult=e),onPlay:t[1]||(t[1]=t=>e.$emit("play",t))},null,8,["results","filter","selected-result"])):((0,i.wg)(),(0,i.j4)(d,{key:1,"with-shadow":!1},{default:(0,i.w5)((()=>[(0,i.Uk)(" No videos found. ")])),_:1}))])}var a=s(3222),o=s(6791),u=s(1983),d=s(8637),r={emits:["play"],mixins:[d.Z],components:{Loading:o.Z,NoItems:a.Z,Results:u.Z},props:{id:{type:String,required:!0},filter:{type:String,default:null}},data(){return{items:[],loading:!1,selectedResult:null}},methods:{async loadItems(){this.loading=!0;try{this.items=(await this.request("youtube.get_playlist",{id:this.id})).map((e=>({...e,type:"youtube"})))}finally{this.loading=!1}}},mounted(){this.loadItems()}},c=s(3744);const p=(0,c.Z)(r,[["render",n],["__scopeId","data-v-66236cc4"]]);var y=p}}]);
|
||||
//# sourceMappingURL=342.d3c0f8f2.js.map
|
File diff suppressed because one or more lines are too long
|
@ -1,2 +1,2 @@
|
|||
"use strict";(self["webpackChunkplatypush"]=self["webpackChunkplatypush"]||[]).push([[3518],{3518:function(e,n,a){a.r(n),a.d(n,{default:function(){return i}});var u=a(6252);function t(e,n,a,t,r,p){const s=(0,u.up)("Media");return(0,u.wg)(),(0,u.j4)(s,{"plugin-name":"media.mplayer"})}var r=a(1256),p={name:"MediaMplayer",components:{Media:r["default"]}},s=a(3744);const c=(0,s.Z)(p,[["render",t]]);var i=c}}]);
|
||||
//# sourceMappingURL=3518.d92a0372.js.map
|
||||
"use strict";(self["webpackChunkplatypush"]=self["webpackChunkplatypush"]||[]).push([[3518],{3518:function(e,n,a){a.r(n),a.d(n,{default:function(){return i}});var u=a(6252);function t(e,n,a,t,r,p){const s=(0,u.up)("Media");return(0,u.wg)(),(0,u.j4)(s,{"plugin-name":"media.mplayer"})}var r=a(2509),p={name:"MediaMplayer",components:{Media:r["default"]}},s=a(3744);const c=(0,s.Z)(p,[["render",t]]);var i=c}}]);
|
||||
//# sourceMappingURL=3518.40e74ddb.js.map
|
|
@ -1 +1 @@
|
|||
{"version":3,"file":"static/js/3518.d92a0372.js","mappings":"iPACEA,EAAAA,EAAAA,IAAqCC,EAAA,CAA9B,cAAY,iB,eAMrB,GACEC,KAAM,eACNC,WAAY,CAACC,MAAKA,EAAAA,a,UCJpB,MAAMC,GAA2B,OAAgB,EAAQ,CAAC,CAAC,SAASC,KAEpE,O","sources":["webpack://platypush/./src/components/panels/MediaMplayer/Index.vue","webpack://platypush/./src/components/panels/MediaMplayer/Index.vue?becb"],"sourcesContent":["<template>\n <Media plugin-name=\"media.mplayer\" />\n</template>\n\n<script>\nimport Media from '@/components/panels/Media/Index'\n\nexport default {\n name: \"MediaMplayer\",\n components: {Media},\n}\n</script>\n\n<style scoped>\n\n</style>\n","import { render } from \"./Index.vue?vue&type=template&id=08ab61b7\"\nimport script from \"./Index.vue?vue&type=script&lang=js\"\nexport * from \"./Index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__"],"names":["_createBlock","_component_Media","name","components","Media","__exports__","render"],"sourceRoot":""}
|
||||
{"version":3,"file":"static/js/3518.40e74ddb.js","mappings":"iPACEA,EAAAA,EAAAA,IAAqCC,EAAA,CAA9B,cAAY,iB,eAMrB,GACEC,KAAM,eACNC,WAAY,CAACC,MAAKA,EAAAA,a,UCJpB,MAAMC,GAA2B,OAAgB,EAAQ,CAAC,CAAC,SAASC,KAEpE,O","sources":["webpack://platypush/./src/components/panels/MediaMplayer/Index.vue","webpack://platypush/./src/components/panels/MediaMplayer/Index.vue?becb"],"sourcesContent":["<template>\n <Media plugin-name=\"media.mplayer\" />\n</template>\n\n<script>\nimport Media from '@/components/panels/Media/Index'\n\nexport default {\n name: \"MediaMplayer\",\n components: {Media},\n}\n</script>\n\n<style scoped>\n\n</style>\n","import { render } from \"./Index.vue?vue&type=template&id=08ab61b7\"\nimport script from \"./Index.vue?vue&type=script&lang=js\"\nexport * from \"./Index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__"],"names":["_createBlock","_component_Media","name","components","Media","__exports__","render"],"sourceRoot":""}
|
2
platypush/backend/http/webapp/dist/static/js/3553.125dc216.js
vendored
Normal file
2
platypush/backend/http/webapp/dist/static/js/3553.125dc216.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
platypush/backend/http/webapp/dist/static/js/3553.125dc216.js.map
vendored
Normal file
1
platypush/backend/http/webapp/dist/static/js/3553.125dc216.js.map
vendored
Normal file
File diff suppressed because one or more lines are too long
|
@ -1,2 +1,2 @@
|
|||
"use strict";(self["webpackChunkplatypush"]=self["webpackChunkplatypush"]||[]).push([[3732],{3732:function(t,a,e){e.r(a),e.d(a,{default:function(){return d}});var n=e(6252);function l(t,a,e,l,i,s){const u=(0,n.up)("Panel");return(0,n.wg)(),(0,n.j4)(u,{"plugin-name":"tts"})}var i=e(5169),s={name:"Tts",components:{Panel:i.Z}},u=e(3744);const r=(0,u.Z)(s,[["render",l]]);var d=r},5169:function(t,a,e){e.d(a,{Z:function(){return y}});var n=e(6252),l=e(9963);const i=t=>((0,n.dD)("data-v-a248454a"),t=t(),(0,n.Cn)(),t),s={class:"tts-container"},u={class:"field text-container"},r=["disabled"],d={class:"field lang-container"},c=["disabled"],o={class:"field buttons"},p=["disabled"],g=i((()=>(0,n._)("i",{class:"fa fa-volume-up"},null,-1))),f=[g];function v(t,a,e,i,g,v){return(0,n.wg)(),(0,n.iD)("div",s,[(0,n._)("form",{onSubmit:a[0]||(a[0]=(0,l.iM)(((...t)=>v.talk&&v.talk(...t)),["prevent"]))},[(0,n._)("div",u,[(0,n._)("label",null,[(0,n._)("input",{type:"text",name:"text",placeholder:"Text to say",disabled:g.talking},null,8,r)])]),(0,n._)("div",d,[(0,n._)("label",null,[(0,n._)("input",{type:"text",name:"language",placeholder:"Language code",disabled:g.talking},null,8,c)])]),(0,n._)("div",o,[(0,n._)("button",{type:"submit",disabled:g.talking},f,8,p)])],32)])}var m=e(8637),b={name:"Panel",mixins:[m.Z],props:{pluginName:{type:String,required:!0}},data(){return{talking:!1}},methods:{async talk(t){const a=[...t.target.querySelectorAll("input")].reduce(((t,a)=>(a.value.length&&(t[a.name]=a.value),t)),{});this.talking=!0;try{await this.request(`${this.pluginName}.say`,a)}finally{this.talking=!1}}}},h=e(3744);const k=(0,h.Z)(b,[["render",v],["__scopeId","data-v-a248454a"]]);var y=k}}]);
|
||||
//# sourceMappingURL=3732.1441dee0.js.map
|
||||
//# sourceMappingURL=3732.17c9c669.js.map
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -1,2 +1,2 @@
|
|||
"use strict";(self["webpackChunkplatypush"]=self["webpackChunkplatypush"]||[]).push([[4221],{4221:function(n,t,c){c.r(t),c.d(t,{default:function(){return p}});var e=c(6252);const u=n=>((0,e.dD)("data-v-7c29571d"),n=n(),(0,e.Cn)(),n),o={class:"row plugin execute-container"},a=u((()=>(0,e._)("h1",null,"Execute Action",-1)));function r(n,t,c,u,r,i){const s=(0,e.up)("ActionEditor");return(0,e.wg)(),(0,e.iD)("div",o,[(0,e._)("main",null,[a,(0,e.Wm)(s)])])}var i=c(1807),s={components:{ActionEditor:i.Z}},d=c(3744);const l=(0,d.Z)(s,[["render",r],["__scopeId","data-v-7c29571d"]]);var p=l}}]);
|
||||
//# sourceMappingURL=4221.40913421.js.map
|
||||
//# sourceMappingURL=4221.292aeb44.js.map
|
|
@ -1 +1 @@
|
|||
{"version":3,"file":"static/js/4221.40913421.js","mappings":"4OACOA,MAAM,gC,UAGPC,EAAAA,EAAAA,GAAuB,UAAnB,kBAAc,K,2EAHtBC,EAAAA,EAAAA,IAMM,MANNC,EAMM,EAJJF,EAAAA,EAAAA,GAGO,aAFLG,GACAC,EAAAA,EAAAA,IAAgBC,M,eAQtB,GACEC,WAAY,CACVC,aAAYA,EAAAA,I,UCRhB,MAAMC,GAA2B,OAAgB,EAAQ,CAAC,CAAC,SAASC,GAAQ,CAAC,YAAY,qBAEzF,O","sources":["webpack://platypush/./src/components/panels/Execute/Index.vue","webpack://platypush/./src/components/panels/Execute/Index.vue?99e5"],"sourcesContent":["<template>\n <div class=\"row plugin execute-container\">\n <!-- Action executor container -->\n <main>\n <h1>Execute Action</h1>\n <ActionEditor />\n </main>\n </div>\n</template>\n\n<script>\nimport ActionEditor from '@/components/Action/ActionEditor'\n\nexport default {\n components: {\n ActionEditor,\n },\n}\n</script>\n\n<style lang=\"scss\" scoped>\n@import \"@/components/Action/common\";\n\n.execute-container {\n width: 100%;\n height: 100%;\n color: $default-fg-2;\n font-weight: 400;\n border-radius: 0 0 1em 1em;\n display: flex;\n flex-direction: column;\n align-items: center;\n\n main {\n width: 100%;\n max-width: 1000px;\n display: flex;\n flex-direction: column;\n box-shadow: $section-shadow;\n\n @include from($desktop) {\n margin: 1em;\n border-radius: 1em 1em 0 0;\n }\n\n :deep(.action-editor-container) {\n .action-editor {\n height: 100%;\n }\n }\n }\n}\n</style>\n","import { render } from \"./Index.vue?vue&type=template&id=7c29571d&scoped=true\"\nimport script from \"./Index.vue?vue&type=script&lang=js\"\nexport * from \"./Index.vue?vue&type=script&lang=js\"\n\nimport \"./Index.vue?vue&type=style&index=0&id=7c29571d&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-7c29571d\"]])\n\nexport default __exports__"],"names":["class","_createElementVNode","_createElementBlock","_hoisted_1","_hoisted_2","_createVNode","_component_ActionEditor","components","ActionEditor","__exports__","render"],"sourceRoot":""}
|
||||
{"version":3,"file":"static/js/4221.292aeb44.js","mappings":"4OACOA,MAAM,gC,UAGPC,EAAAA,EAAAA,GAAuB,UAAnB,kBAAc,K,2EAHtBC,EAAAA,EAAAA,IAMM,MANNC,EAMM,EAJJF,EAAAA,EAAAA,GAGO,aAFLG,GACAC,EAAAA,EAAAA,IAAgBC,M,eAQtB,GACEC,WAAY,CACVC,aAAYA,EAAAA,I,UCRhB,MAAMC,GAA2B,OAAgB,EAAQ,CAAC,CAAC,SAASC,GAAQ,CAAC,YAAY,qBAEzF,O","sources":["webpack://platypush/./src/components/panels/Execute/Index.vue","webpack://platypush/./src/components/panels/Execute/Index.vue?99e5"],"sourcesContent":["<template>\n <div class=\"row plugin execute-container\">\n <!-- Action executor container -->\n <main>\n <h1>Execute Action</h1>\n <ActionEditor />\n </main>\n </div>\n</template>\n\n<script>\nimport ActionEditor from '@/components/Action/ActionEditor'\n\nexport default {\n components: {\n ActionEditor,\n },\n}\n</script>\n\n<style lang=\"scss\" scoped>\n@import \"@/components/Action/common\";\n\n.execute-container {\n width: 100%;\n height: 100%;\n color: $default-fg-2;\n font-weight: 400;\n border-radius: 0 0 1em 1em;\n display: flex;\n flex-direction: column;\n align-items: center;\n\n main {\n width: 100%;\n max-width: 1000px;\n display: flex;\n flex-direction: column;\n box-shadow: $section-shadow;\n\n @include from($desktop) {\n margin: 1em;\n border-radius: 1em 1em 0 0;\n }\n\n :deep(.action-editor-container) {\n .action-editor {\n height: 100%;\n }\n }\n }\n}\n</style>\n","import { render } from \"./Index.vue?vue&type=template&id=7c29571d&scoped=true\"\nimport script from \"./Index.vue?vue&type=script&lang=js\"\nexport * from \"./Index.vue?vue&type=script&lang=js\"\n\nimport \"./Index.vue?vue&type=style&index=0&id=7c29571d&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-7c29571d\"]])\n\nexport default __exports__"],"names":["class","_createElementVNode","_createElementBlock","_hoisted_1","_hoisted_2","_createVNode","_component_ActionEditor","components","ActionEditor","__exports__","render"],"sourceRoot":""}
|
|
@ -1,2 +1,2 @@
|
|||
"use strict";(self["webpackChunkplatypush"]=self["webpackChunkplatypush"]||[]).push([[446],{446:function(e,t,i){i.r(t),i.d(t,{default:function(){return b}});var s=i(6252),n=i(3577);const a={class:"camera component-row"},r={class:"feed-container",ref:"container"},c=["textContent"],l=["src"],o={key:2},u=["src"],p={class:"controls"},d={key:0,class:"fa fa-play"},g={key:1,class:"fa fa-pause"};function f(e,t,i,f,v,m){return(0,s.wg)(),(0,s.iD)("div",a,[(0,s._)("div",r,[v.visible?(0,s.kq)("",!0):((0,s.wg)(),(0,s.iD)("div",{key:0,class:"no-content",textContent:(0,n.zw)(i.name)},null,8,c)),v.visible&&"image"===i.type?((0,s.wg)(),(0,s.iD)("img",{key:1,alt:"Camera feed",src:m.imgUrl},null,8,l)):v.visible&&"video"===i.type?((0,s.wg)(),(0,s.iD)("video",o,[(0,s._)("source",{src:i.src},null,8,u)])):(0,s.kq)("",!0)],512),(0,s._)("div",p,[(0,s._)("button",{class:"toggle-btn",onClick:t[0]||(t[0]=e=>v.visible=!v.visible)},[v.visible?((0,s.wg)(),(0,s.iD)("i",g)):((0,s.wg)(),(0,s.iD)("i",d))])])])}var v=i(8637),m={name:"Camera",mixins:[v.Z],props:{src:{type:String,required:!0},type:{type:String,default:"image"},name:{type:String}},computed:{imgUrl(){if("image"===this.type)return this.src+(this.src.indexOf("?")>0?"&":"?")+"_t="+(new Date).getTime().toString()}},data(){return{visible:!1}}},y=i(3744);const k=(0,y.Z)(m,[["render",f],["__scopeId","data-v-0fad5251"]]);var b=k}}]);
|
||||
//# sourceMappingURL=446.62c50207.js.map
|
||||
//# sourceMappingURL=446.178d2754.js.map
|
|
@ -1 +1 @@
|
|||
{"version":3,"file":"static/js/446.62c50207.js","mappings":"8LACOA,MAAM,wB,GACJA,MAAM,iBAAiBC,IAAI,a,mDAQ3BD,MAAM,Y,SAEJA,MAAM,c,SACNA,MAAM,e,0CAZfE,EAAAA,EAAAA,IAeM,MAfNC,EAeM,EAdJC,EAAAA,EAAAA,GAMM,MANNC,EAMM,CALyCC,EAAAC,S,iBAAO,WAApDL,EAAAA,EAAAA,IAAwD,O,MAAnDF,MAAM,a,aAAaQ,EAAAA,EAAAA,IAAQC,EAAKC,O,WACMJ,EAAAC,SAAoB,UAATE,EAAAE,OAAI,WAA1DT,EAAAA,EAAAA,IAAwE,O,MAAnEU,IAAI,cAAeC,IAAKC,EAAAC,Q,WACXT,EAAAC,SAAoB,UAATE,EAAAE,OAAI,WAAjCT,EAAAA,EAAAA,IAEQ,QAAAc,EAAA,EADNZ,EAAAA,EAAAA,GAAmB,UAAVS,IAAKJ,EAAAI,KAAG,OAAAI,OAAA,sBAIrBb,EAAAA,EAAAA,GAKM,MALNc,EAKM,EAJJd,EAAAA,EAAAA,GAGS,UAHDJ,MAAM,aAAcmB,QAAKC,EAAA,KAAAA,EAAA,GAAAC,GAAEf,EAAAC,SAAWD,EAAAC,U,CACfD,EAAAC,UAAW,WACxCL,EAAAA,EAAAA,IAAgC,IAAhCoB,MADoC,WAApCpB,EAAAA,EAAAA,IAAwC,IAAxCqB,S,eAaR,GACEb,KAAM,SACNc,OAAQ,CAACC,EAAAA,GACTC,MAAO,CAKLb,IAAK,CACHF,KAAMgB,OACNC,UAAU,GAMZjB,KAAM,CACJA,KAAMgB,OACNE,QAAS,SAMXnB,KAAM,CACJC,KAAMgB,SAIVG,SAAU,CACRf,MAAAA,GACE,GAAkB,UAAdgB,KAAKpB,KAGT,OAAOoB,KAAKlB,KAAOkB,KAAKlB,IAAImB,QAAQ,KAAO,EAAI,IAAM,KAAO,OAAS,IAAIC,MAAOC,UAAUC,UAC5F,GAGFC,IAAAA,GACE,MAAO,CACL7B,SAAS,EAEb,G,UC5DF,MAAM8B,GAA2B,OAAgB,EAAQ,CAAC,CAAC,SAASC,GAAQ,CAAC,YAAY,qBAEzF,O","sources":["webpack://platypush/./src/components/widgets/Camera/Index.vue","webpack://platypush/./src/components/widgets/Camera/Index.vue?8b49"],"sourcesContent":["<template>\n <div class=\"camera component-row\">\n <div class=\"feed-container\" ref=\"container\">\n <div class=\"no-content\" v-text=\"name\" v-if=\"!visible\" />\n <img alt=\"Camera feed\" :src=\"imgUrl\" v-if=\"visible && type === 'image'\">\n <video v-else-if=\"visible && type === 'video'\">\n <source :src=\"src\">\n </video>\n </div>\n\n <div class=\"controls\">\n <button class=\"toggle-btn\" @click=\"visible = !visible\">\n <i class=\"fa fa-play\" v-if=\"!visible\" />\n <i class=\"fa fa-pause\" v-else />\n </button>\n </div>\n </div>\n</template>\n\n<script>\nimport Utils from \"@/Utils\";\n\n/**\n * This component can be used to view a feed from a camera.\n */\nexport default {\n name: \"Camera\",\n mixins: [Utils],\n props: {\n /**\n * Camera feed URL.\n * For instance, in the case of a PiCamera feed: http://host:8008/camera/pi/video.mjpeg\n */\n src: {\n type: String,\n required: true,\n },\n\n /**\n * Camera feed type - it can be \"image\" (usually in case of MJPEG feeds) or \"video\".\n */\n type: {\n type: String,\n default: \"image\",\n },\n\n /**\n * Camera feed name.\n */\n name: {\n type: String,\n },\n },\n\n computed: {\n imgUrl() {\n if (this.type !== 'image')\n return\n\n return this.src + (this.src.indexOf('?') > 0 ? '&' : '?') + '_t=' + (new Date().getTime().toString())\n },\n },\n\n data() {\n return {\n visible: false,\n }\n },\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.camera {\n width: calc(100% + 2em);\n height: calc(100% + 2em);\n position: relative;\n background: black;\n color: #888;\n margin: -1em;\n\n .feed-container {\n width: 100%;\n height: calc(100% - 3em);\n display: flex;\n justify-content: center;\n align-items: center;\n }\n\n .controls {\n width: 100%;\n height: 3em;\n position: absolute;\n bottom: 0;\n\n button {\n background: none;\n border: none;\n color: #888;\n }\n }\n}\n</style>\n","import { render } from \"./Index.vue?vue&type=template&id=0fad5251&scoped=true\"\nimport script from \"./Index.vue?vue&type=script&lang=js\"\nexport * from \"./Index.vue?vue&type=script&lang=js\"\n\nimport \"./Index.vue?vue&type=style&index=0&id=0fad5251&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-0fad5251\"]])\n\nexport default __exports__"],"names":["class","ref","_createElementBlock","_hoisted_1","_createElementVNode","_hoisted_2","$data","visible","_toDisplayString","$props","name","type","alt","src","$options","imgUrl","_hoisted_5","_hoisted_6","_hoisted_7","onClick","_cache","$event","_hoisted_9","_hoisted_8","mixins","Utils","props","String","required","default","computed","this","indexOf","Date","getTime","toString","data","__exports__","render"],"sourceRoot":""}
|
||||
{"version":3,"file":"static/js/446.178d2754.js","mappings":"8LACOA,MAAM,wB,GACJA,MAAM,iBAAiBC,IAAI,a,mDAQ3BD,MAAM,Y,SAEJA,MAAM,c,SACNA,MAAM,e,0CAZfE,EAAAA,EAAAA,IAeM,MAfNC,EAeM,EAdJC,EAAAA,EAAAA,GAMM,MANNC,EAMM,CALyCC,EAAAC,S,iBAAO,WAApDL,EAAAA,EAAAA,IAAwD,O,MAAnDF,MAAM,a,aAAaQ,EAAAA,EAAAA,IAAQC,EAAKC,O,WACMJ,EAAAC,SAAoB,UAATE,EAAAE,OAAI,WAA1DT,EAAAA,EAAAA,IAAwE,O,MAAnEU,IAAI,cAAeC,IAAKC,EAAAC,Q,WACXT,EAAAC,SAAoB,UAATE,EAAAE,OAAI,WAAjCT,EAAAA,EAAAA,IAEQ,QAAAc,EAAA,EADNZ,EAAAA,EAAAA,GAAmB,UAAVS,IAAKJ,EAAAI,KAAG,OAAAI,OAAA,sBAIrBb,EAAAA,EAAAA,GAKM,MALNc,EAKM,EAJJd,EAAAA,EAAAA,GAGS,UAHDJ,MAAM,aAAcmB,QAAKC,EAAA,KAAAA,EAAA,GAAAC,GAAEf,EAAAC,SAAWD,EAAAC,U,CACfD,EAAAC,UAAW,WACxCL,EAAAA,EAAAA,IAAgC,IAAhCoB,MADoC,WAApCpB,EAAAA,EAAAA,IAAwC,IAAxCqB,S,eAaR,GACEb,KAAM,SACNc,OAAQ,CAACC,EAAAA,GACTC,MAAO,CAKLb,IAAK,CACHF,KAAMgB,OACNC,UAAU,GAMZjB,KAAM,CACJA,KAAMgB,OACNE,QAAS,SAMXnB,KAAM,CACJC,KAAMgB,SAIVG,SAAU,CACRf,MAAAA,GACE,GAAkB,UAAdgB,KAAKpB,KAGT,OAAOoB,KAAKlB,KAAOkB,KAAKlB,IAAImB,QAAQ,KAAO,EAAI,IAAM,KAAO,OAAS,IAAIC,MAAOC,UAAUC,UAC5F,GAGFC,IAAAA,GACE,MAAO,CACL7B,SAAS,EAEb,G,UC5DF,MAAM8B,GAA2B,OAAgB,EAAQ,CAAC,CAAC,SAASC,GAAQ,CAAC,YAAY,qBAEzF,O","sources":["webpack://platypush/./src/components/widgets/Camera/Index.vue","webpack://platypush/./src/components/widgets/Camera/Index.vue?8b49"],"sourcesContent":["<template>\n <div class=\"camera component-row\">\n <div class=\"feed-container\" ref=\"container\">\n <div class=\"no-content\" v-text=\"name\" v-if=\"!visible\" />\n <img alt=\"Camera feed\" :src=\"imgUrl\" v-if=\"visible && type === 'image'\">\n <video v-else-if=\"visible && type === 'video'\">\n <source :src=\"src\">\n </video>\n </div>\n\n <div class=\"controls\">\n <button class=\"toggle-btn\" @click=\"visible = !visible\">\n <i class=\"fa fa-play\" v-if=\"!visible\" />\n <i class=\"fa fa-pause\" v-else />\n </button>\n </div>\n </div>\n</template>\n\n<script>\nimport Utils from \"@/Utils\";\n\n/**\n * This component can be used to view a feed from a camera.\n */\nexport default {\n name: \"Camera\",\n mixins: [Utils],\n props: {\n /**\n * Camera feed URL.\n * For instance, in the case of a PiCamera feed: http://host:8008/camera/pi/video.mjpeg\n */\n src: {\n type: String,\n required: true,\n },\n\n /**\n * Camera feed type - it can be \"image\" (usually in case of MJPEG feeds) or \"video\".\n */\n type: {\n type: String,\n default: \"image\",\n },\n\n /**\n * Camera feed name.\n */\n name: {\n type: String,\n },\n },\n\n computed: {\n imgUrl() {\n if (this.type !== 'image')\n return\n\n return this.src + (this.src.indexOf('?') > 0 ? '&' : '?') + '_t=' + (new Date().getTime().toString())\n },\n },\n\n data() {\n return {\n visible: false,\n }\n },\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.camera {\n width: calc(100% + 2em);\n height: calc(100% + 2em);\n position: relative;\n background: black;\n color: #888;\n margin: -1em;\n\n .feed-container {\n width: 100%;\n height: calc(100% - 3em);\n display: flex;\n justify-content: center;\n align-items: center;\n }\n\n .controls {\n width: 100%;\n height: 3em;\n position: absolute;\n bottom: 0;\n\n button {\n background: none;\n border: none;\n color: #888;\n }\n }\n}\n</style>\n","import { render } from \"./Index.vue?vue&type=template&id=0fad5251&scoped=true\"\nimport script from \"./Index.vue?vue&type=script&lang=js\"\nexport * from \"./Index.vue?vue&type=script&lang=js\"\n\nimport \"./Index.vue?vue&type=style&index=0&id=0fad5251&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-0fad5251\"]])\n\nexport default __exports__"],"names":["class","ref","_createElementBlock","_hoisted_1","_createElementVNode","_hoisted_2","$data","visible","_toDisplayString","$props","name","type","alt","src","$options","imgUrl","_hoisted_5","_hoisted_6","_hoisted_7","onClick","_cache","$event","_hoisted_9","_hoisted_8","mixins","Utils","props","String","required","default","computed","this","indexOf","Date","getTime","toString","data","__exports__","render"],"sourceRoot":""}
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -1,2 +1,2 @@
|
|||
"use strict";(self["webpackChunkplatypush"]=self["webpackChunkplatypush"]||[]).push([[4619],{4619:function(e,t,s){s.r(t),s.d(t,{default:function(){return l}});var n=s(6252),o=s(3577);const a={class:"date-time"},r=["textContent"],i=["textContent"];function h(e,t,s,h,u,w){return(0,n.wg)(),(0,n.iD)("div",a,[w._showDate?((0,n.wg)(),(0,n.iD)("div",{key:0,class:"date",textContent:(0,o.zw)(e.formatDate(e.now))},null,8,r)):(0,n.kq)("",!0),w._showTime?((0,n.wg)(),(0,n.iD)("div",{key:1,class:"time",textContent:(0,o.zw)(e.formatTime(e.now,w._showSeconds))},null,8,i)):(0,n.kq)("",!0)])}var u=s(8637),w={name:"DateTime",mixins:[u.Z],props:{showDate:{required:!1,default:!0},showTime:{required:!1,default:!0},showSeconds:{required:!1,default:!0}},computed:{_showTime(){return this.parseBoolean(this.showTime)},_showDate(){return this.parseBoolean(this.showDate)},_showSeconds(){return this.parseBoolean(this.showSeconds)}},data:function(){return{now:new Date}},methods:{refreshTime(){this.now=new Date}},mounted:function(){this.refreshTime(),setInterval(this.refreshTime,1e3)}},d=s(3744);const c=(0,d.Z)(w,[["render",h],["__scopeId","data-v-ca42eb9c"]]);var l=c}}]);
|
||||
//# sourceMappingURL=4619.354631e5.js.map
|
||||
//# sourceMappingURL=4619.ea41fd5e.js.map
|
|
@ -1 +1 @@
|
|||
{"version":3,"file":"static/js/4619.354631e5.js","mappings":"gMACOA,MAAM,a,8EAAXC,EAAAA,EAAAA,IAGM,MAHNC,EAGM,CAF6CC,EAAAC,YAAS,WAA1DH,EAAAA,EAAAA,IAA8D,O,MAAzDD,MAAM,O,aAAOK,EAAAA,EAAAA,IAAQC,EAAgBC,WAALD,EAAAE,O,2BAC0BL,EAAAM,YAAS,WAAxER,EAAAA,EAAAA,IAA4E,O,MAAvED,MAAM,O,aAAOK,EAAAA,EAAAA,IAAQC,EAA8BI,WAAnBJ,EAAAE,IAAKL,EAAAQ,gB,2CAQ9C,GACEC,KAAM,WACNC,OAAQ,CAACC,EAAAA,GACTC,MAAO,CAELC,SAAU,CACRC,UAAU,EACVC,SAAS,GAIXC,SAAU,CACRF,UAAU,EACVC,SAAS,GAIXE,YAAa,CACXH,UAAU,EACVC,SAAS,IAIbG,SAAU,CACRZ,SAAAA,GACE,OAAOa,KAAKC,aAAaD,KAAKH,SAChC,EAEAf,SAAAA,GACE,OAAOkB,KAAKC,aAAaD,KAAKN,SAChC,EAEAL,YAAAA,GACE,OAAOW,KAAKC,aAAaD,KAAKF,YAChC,GAGFI,KAAM,WACJ,MAAO,CACLhB,IAAK,IAAIiB,KAEb,EAEAC,QAAS,CACPC,WAAAA,GACEL,KAAKd,IAAM,IAAIiB,IACjB,GAGFG,QAAS,WACPN,KAAKK,cACLE,YAAYP,KAAKK,YAAa,IAChC,G,UCxDF,MAAMG,GAA2B,OAAgB,EAAQ,CAAC,CAAC,SAASC,GAAQ,CAAC,YAAY,qBAEzF,O","sources":["webpack://platypush/./src/components/widgets/DateTime/Index.vue","webpack://platypush/./src/components/widgets/DateTime/Index.vue?dfd6"],"sourcesContent":["<template>\n <div class=\"date-time\">\n <div class=\"date\" v-text=\"formatDate(now)\" v-if=\"_showDate\" />\n <div class=\"time\" v-text=\"formatTime(now, _showSeconds)\" v-if=\"_showTime\" />\n </div>\n</template>\n\n<script>\nimport Utils from \"@/Utils\";\n\n// Widget to show date and time\nexport default {\n name: 'DateTime',\n mixins: [Utils],\n props: {\n // If false then don't display the date.\n showDate: {\n required: false,\n default: true,\n },\n\n // If false then don't display the time.\n showTime: {\n required: false,\n default: true,\n },\n\n // If false then don't display the seconds.\n showSeconds: {\n required: false,\n default: true,\n },\n },\n\n computed: {\n _showTime() {\n return this.parseBoolean(this.showTime)\n },\n\n _showDate() {\n return this.parseBoolean(this.showDate)\n },\n\n _showSeconds() {\n return this.parseBoolean(this.showSeconds)\n },\n },\n\n data: function() {\n return {\n now: new Date(),\n };\n },\n\n methods: {\n refreshTime() {\n this.now = new Date()\n },\n },\n\n mounted: function() {\n this.refreshTime()\n setInterval(this.refreshTime, 1000)\n },\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.date-time {\n .date {\n font-size: 1.3em;\n }\n\n .time {\n font-size: 2em;\n }\n}\n</style>\n","import { render } from \"./Index.vue?vue&type=template&id=ca42eb9c&scoped=true\"\nimport script from \"./Index.vue?vue&type=script&lang=js\"\nexport * from \"./Index.vue?vue&type=script&lang=js\"\n\nimport \"./Index.vue?vue&type=style&index=0&id=ca42eb9c&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-ca42eb9c\"]])\n\nexport default __exports__"],"names":["class","_createElementBlock","_hoisted_1","$options","_showDate","_toDisplayString","_ctx","formatDate","now","_showTime","formatTime","_showSeconds","name","mixins","Utils","props","showDate","required","default","showTime","showSeconds","computed","this","parseBoolean","data","Date","methods","refreshTime","mounted","setInterval","__exports__","render"],"sourceRoot":""}
|
||||
{"version":3,"file":"static/js/4619.ea41fd5e.js","mappings":"gMACOA,MAAM,a,8EAAXC,EAAAA,EAAAA,IAGM,MAHNC,EAGM,CAF6CC,EAAAC,YAAS,WAA1DH,EAAAA,EAAAA,IAA8D,O,MAAzDD,MAAM,O,aAAOK,EAAAA,EAAAA,IAAQC,EAAgBC,WAALD,EAAAE,O,2BAC0BL,EAAAM,YAAS,WAAxER,EAAAA,EAAAA,IAA4E,O,MAAvED,MAAM,O,aAAOK,EAAAA,EAAAA,IAAQC,EAA8BI,WAAnBJ,EAAAE,IAAKL,EAAAQ,gB,2CAQ9C,GACEC,KAAM,WACNC,OAAQ,CAACC,EAAAA,GACTC,MAAO,CAELC,SAAU,CACRC,UAAU,EACVC,SAAS,GAIXC,SAAU,CACRF,UAAU,EACVC,SAAS,GAIXE,YAAa,CACXH,UAAU,EACVC,SAAS,IAIbG,SAAU,CACRZ,SAAAA,GACE,OAAOa,KAAKC,aAAaD,KAAKH,SAChC,EAEAf,SAAAA,GACE,OAAOkB,KAAKC,aAAaD,KAAKN,SAChC,EAEAL,YAAAA,GACE,OAAOW,KAAKC,aAAaD,KAAKF,YAChC,GAGFI,KAAM,WACJ,MAAO,CACLhB,IAAK,IAAIiB,KAEb,EAEAC,QAAS,CACPC,WAAAA,GACEL,KAAKd,IAAM,IAAIiB,IACjB,GAGFG,QAAS,WACPN,KAAKK,cACLE,YAAYP,KAAKK,YAAa,IAChC,G,UCxDF,MAAMG,GAA2B,OAAgB,EAAQ,CAAC,CAAC,SAASC,GAAQ,CAAC,YAAY,qBAEzF,O","sources":["webpack://platypush/./src/components/widgets/DateTime/Index.vue","webpack://platypush/./src/components/widgets/DateTime/Index.vue?dfd6"],"sourcesContent":["<template>\n <div class=\"date-time\">\n <div class=\"date\" v-text=\"formatDate(now)\" v-if=\"_showDate\" />\n <div class=\"time\" v-text=\"formatTime(now, _showSeconds)\" v-if=\"_showTime\" />\n </div>\n</template>\n\n<script>\nimport Utils from \"@/Utils\";\n\n// Widget to show date and time\nexport default {\n name: 'DateTime',\n mixins: [Utils],\n props: {\n // If false then don't display the date.\n showDate: {\n required: false,\n default: true,\n },\n\n // If false then don't display the time.\n showTime: {\n required: false,\n default: true,\n },\n\n // If false then don't display the seconds.\n showSeconds: {\n required: false,\n default: true,\n },\n },\n\n computed: {\n _showTime() {\n return this.parseBoolean(this.showTime)\n },\n\n _showDate() {\n return this.parseBoolean(this.showDate)\n },\n\n _showSeconds() {\n return this.parseBoolean(this.showSeconds)\n },\n },\n\n data: function() {\n return {\n now: new Date(),\n };\n },\n\n methods: {\n refreshTime() {\n this.now = new Date()\n },\n },\n\n mounted: function() {\n this.refreshTime()\n setInterval(this.refreshTime, 1000)\n },\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.date-time {\n .date {\n font-size: 1.3em;\n }\n\n .time {\n font-size: 2em;\n }\n}\n</style>\n","import { render } from \"./Index.vue?vue&type=template&id=ca42eb9c&scoped=true\"\nimport script from \"./Index.vue?vue&type=script&lang=js\"\nexport * from \"./Index.vue?vue&type=script&lang=js\"\n\nimport \"./Index.vue?vue&type=style&index=0&id=ca42eb9c&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-ca42eb9c\"]])\n\nexport default __exports__"],"names":["class","_createElementBlock","_hoisted_1","$options","_showDate","_toDisplayString","_ctx","formatDate","now","_showTime","formatTime","_showSeconds","name","mixins","Utils","props","showDate","required","default","showTime","showSeconds","computed","this","parseBoolean","data","Date","methods","refreshTime","mounted","setInterval","__exports__","render"],"sourceRoot":""}
|
|
@ -1,2 +1,2 @@
|
|||
"use strict";(self["webpackChunkplatypush"]=self["webpackChunkplatypush"]||[]).push([[4765],{4765:function(e,n,a){a.r(n),a.d(n,{default:function(){return i}});var u=a(6252);function t(e,n,a,t,p,r){const s=(0,u.up)("Media");return(0,u.wg)(),(0,u.j4)(s,{"plugin-name":"media.mpv"})}var p=a(1256),r={name:"MediaMpv",components:{Media:p["default"]}},s=a(3744);const c=(0,s.Z)(r,[["render",t]]);var i=c}}]);
|
||||
//# sourceMappingURL=4765.73f378be.js.map
|
||||
"use strict";(self["webpackChunkplatypush"]=self["webpackChunkplatypush"]||[]).push([[4765],{4765:function(e,n,a){a.r(n),a.d(n,{default:function(){return i}});var u=a(6252);function t(e,n,a,t,p,r){const s=(0,u.up)("Media");return(0,u.wg)(),(0,u.j4)(s,{"plugin-name":"media.mpv"})}var p=a(2509),r={name:"MediaMpv",components:{Media:p["default"]}},s=a(3744);const c=(0,s.Z)(r,[["render",t]]);var i=c}}]);
|
||||
//# sourceMappingURL=4765.7ad68124.js.map
|
|
@ -1 +1 @@
|
|||
{"version":3,"file":"static/js/4765.73f378be.js","mappings":"iPACEA,EAAAA,EAAAA,IAAiCC,EAAA,CAA1B,cAAY,a,eAMrB,GACEC,KAAM,WACNC,WAAY,CAACC,MAAKA,EAAAA,a,UCJpB,MAAMC,GAA2B,OAAgB,EAAQ,CAAC,CAAC,SAASC,KAEpE,O","sources":["webpack://platypush/./src/components/panels/MediaMpv/Index.vue","webpack://platypush/./src/components/panels/MediaMpv/Index.vue?4cb2"],"sourcesContent":["<template>\n <Media plugin-name=\"media.mpv\" />\n</template>\n\n<script>\nimport Media from '@/components/panels/Media/Index'\n\nexport default {\n name: \"MediaMpv\",\n components: {Media},\n}\n</script>\n\n<style scoped>\n\n</style>\n","import { render } from \"./Index.vue?vue&type=template&id=52effd7c\"\nimport script from \"./Index.vue?vue&type=script&lang=js\"\nexport * from \"./Index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__"],"names":["_createBlock","_component_Media","name","components","Media","__exports__","render"],"sourceRoot":""}
|
||||
{"version":3,"file":"static/js/4765.7ad68124.js","mappings":"iPACEA,EAAAA,EAAAA,IAAiCC,EAAA,CAA1B,cAAY,a,eAMrB,GACEC,KAAM,WACNC,WAAY,CAACC,MAAKA,EAAAA,a,UCJpB,MAAMC,GAA2B,OAAgB,EAAQ,CAAC,CAAC,SAASC,KAEpE,O","sources":["webpack://platypush/./src/components/panels/MediaMpv/Index.vue","webpack://platypush/./src/components/panels/MediaMpv/Index.vue?4cb2"],"sourcesContent":["<template>\n <Media plugin-name=\"media.mpv\" />\n</template>\n\n<script>\nimport Media from '@/components/panels/Media/Index'\n\nexport default {\n name: \"MediaMpv\",\n components: {Media},\n}\n</script>\n\n<style scoped>\n\n</style>\n","import { render } from \"./Index.vue?vue&type=template&id=52effd7c\"\nimport script from \"./Index.vue?vue&type=script&lang=js\"\nexport * from \"./Index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__"],"names":["_createBlock","_component_Media","name","components","Media","__exports__","render"],"sourceRoot":""}
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue