From ead555830dcfcc0b2623b231fd97e016a3929bb8 Mon Sep 17 00:00:00 2001 From: copystring Date: Fri, 10 Mar 2023 23:17:20 +0100 Subject: [PATCH] chore: release v0.1.4-beta.3 * (copystring) Fix charger position --- README.md | 2 +- io-package.json | 28 ++++++++++++++-------------- package-lock.json | 4 ++-- package.json | 2 +- 4 files changed, 18 insertions(+), 18 deletions(-) diff --git a/README.md b/README.md index 1f1d41ef46..b566b14eed 100644 --- a/README.md +++ b/README.md @@ -44,7 +44,7 @@ This feature only works when map creation is enabled in the adapter options! Placeholder for the next version (at the beginning of the line): ### **WORK IN PROGRESS** --> -### **WORK IN PROGRESS** +### 0.1.4-beta.3 (2023-03-10) * (copystring) Fix charger position ### 0.1.4-beta.2 (2023-03-08) diff --git a/io-package.json b/io-package.json index db902d6705..7211f3934b 100644 --- a/io-package.json +++ b/io-package.json @@ -1,8 +1,21 @@ { "common": { "name": "roborock", - "version": "0.1.4-beta.2", + "version": "0.1.4-beta.3", "news": { + "0.1.4-beta.3": { + "en": "Fix charger position", + "de": "Ladeposition festsetzen", + "ru": "Fix позиция зарядного устройства", + "pt": "Posição do carregador de fixação", + "nl": "Fix lading positie", + "fr": "Position du chargeur", + "it": "Posizione del caricatore fisso", + "es": "Posición de cargador fijo", + "pl": "Fix charger", + "uk": "Фіксована позиція зарядного пристрою", + "zh-cn": "固定收费职位" + }, "0.1.4-beta.2": { "en": "Temporarily disable sendRequest timeout", "de": "Temporär disable sendRequest Timeout", @@ -80,19 +93,6 @@ "pl": "Wszystko o nazwie i hasło. Oznacza to, że potrzebujesz ponownego dostępu do nazwy użytkownika i hasła w opcji\nWykorzystywanie Sentry Plugin zamiast nazw\nZmiany setInterval()/setTimeout na to.setInterval()/thissetTimeout\nOczywiście jasne odstępy i czasy wyładowują i ponownie łączą się\nKod aktualny", "uk": "Зашифрувати ім'я користувача та пароль. Це означає, що вам потрібно перереєструвати ім'я користувача та пароль в опції\nВикористовуйте Sentry плагін замість рідного відправника\nПеретворення setInterval()/setTimeout в this.setInterval()/this.setTimeout\nПравильно зрозумілі інтервали і часові маршрути на розвантаження і відключення\nОновлення код витратних матеріалів", "zh-cn": "加密用户和密码。 这意味着,你需要在选择中重新命名用户和密码。\n使用Sentry Plugin,而不是土著寄托\n规 律\n适时的间隔时间和时间安排\nA. 最新消耗代码" - }, - "0.1.0": { - "en": "* (copystring) Fix a lot of my seriously shitty robot coords and pixel XY code\n* (copystring) Fix connecting to websocket for hosts with more than one network card\n* (copystring) Disable buttons on webinterface when they can't be used\n* (copystring) Improve deleting/addin zones in webinterface\n* (copystring) map_status the currently selected map when bitwise shifted by 2 to the right\n* (copystring) use currently selected map to get floor rooms of selected map\n* (copystring) Update map only once on start of adapter\n\n* (copystring) Automatically send current map to webinterface when updating map* (copystring) Update clean summary only after once after cleaning and once at start\n\n* (copystring) Implement charger and robot angle on map\n* (copystring) Fix zone positions\n* (copystring) Locating should not be an error. Make this an info instead\n* (copystring) Fix robot position and rotation\n* (copystring) Fix mop path detection at start of robot\n* (copystring) Don't process is_Locating for starting the map updater\n* (copystring) Add go to and go to predicted path feature in webinterface\n* (copystring) Make the actual path slightly transparent\n* (copystring) New robot image on map\n* (copystring) Add pause, stop, dock buttons to webinterface\n* (copystring) Reconnect websocket after 10 seconds of disconnection\n* (copystring) Remove unnecessary getMap() calls\n* (copystring) Improve reconnect logic\n* (copystring) Add Sentry\n* (copystring) Correct mop_mode state\n* (copystring) Add consumables life in percent", - "de": "* (copystring) Korrigiere viele meiner wirklich beschissenen Roboterkoordinaten und Pixel-XY-Code\n* (copystring) Verbindung zum Websocket für Hosts mit mehr als einer Netzwerkkarte behoben\n* (copystring) Deaktiviert Schaltflächen auf der Weboberfläche, wenn sie nicht verwendet werden können\n* (copystring) Verbessertes Löschen/Hinzufügen von Zonen im Webinterface\n* (copystring) map_status die aktuell ausgewählte Map, wenn sie bitweise um 2 nach rechts verschoben wird\n* (Kopierzeichenfolge) verwendet die aktuell ausgewählte Karte, um Stockwerksräume der ausgewählten Karte zu erhalten\n* (copystring) Karte nur einmal beim Start des Adapters aktualisieren\n\n* (copystring) Automatisches Senden der aktuellen Karte an das Webinterface, wenn die Karte aktualisiert wird* (copystring) Aktualisierung der sauberen Zusammenfassung nur einmal nach dem Reinigen und einmal beim Start\n\n* (copystring) Ladegerät und Roboterwinkel auf der Karte implementieren\n* (copystring) Zonenpositionen fixieren\n* (copystring) Lokalisierung sollte kein Fehler sein. Machen Sie dies stattdessen zu einer Info\n* (copystring) Roboterposition und Rotation korrigieren\n* (copystring) Mopppfad-Erkennung beim Start des Roboters behoben\n* (copystring) Verarbeite is_Locating nicht, um den Karten-Updater zu starten\n* (Kopierzeichenfolge) Hinzufügen von Gehe zu und Gehe zu vorhergesagtem Pfad-Feature im Webinterface\n* (copystring) Machen Sie den tatsächlichen Pfad leicht transparent\n* (copystring) Neues Roboterbild auf der Karte\n* (copystring) Hinzufügen von Schaltflächen zum Anhalten, Stoppen und Andocken zum Webinterface\n* (copystring) Verbinden Sie den Websocket nach 10 Sekunden der Trennung erneut\n* (copystring) Unnötige Aufrufe von getMap() entfernen\n* (copystring) Verbesserte Reconnect-Logik\n* (copystring) Sentry hinzufügen\n* (copystring) Korrigieren Sie den Status von mop_mode\n* (copystring) Lebensdauer der Verbrauchsmaterialien in Prozent hinzufügen", - "ru": "* (copystring) Исправлено множество моих очень дерьмовых координат робота и пиксельный код XY\n* (copystring) Исправлено подключение к веб-сокету для хостов с более чем одной сетевой картой.\n* (copystring) Отключить кнопки в веб-интерфейсе, когда они не могут быть использованы\n* (copystring) Улучшено удаление/добавление зон в веб-интерфейсе\n* (copystring) map_status текущая выбранная карта при побитовом сдвиге на 2 вправо\n* (copystring) использовать текущую выбранную карту, чтобы получить комнаты этажа выбранной карты\n* (copystring) Обновление карты только один раз при запуске адаптера\n\n* (copystring) Автоматически отправлять текущую карту в веб-интерфейс при обновлении карты* (copystring) Обновлять сводку очистки только один раз после очистки и один раз при запуске\n\n* (copystring) Реализовать зарядное устройство и угол робота на карте\n* (copystring) Исправить положение зон\n* (copystring) Поиск не должен быть ошибкой. Вместо этого сделайте это информацией\n* (copystring) Исправить положение и вращение робота\n* (copystring) Исправлено обнаружение пути швабры при запуске робота.\n* (copystring) Не обрабатывать is_Locating для запуска программы обновления карты\n* (copystring) Добавить функцию перехода и перехода к прогнозируемому пути в веб-интерфейсе\n* (copystring) Сделать фактический путь слегка прозрачным\n* (copystring) Новое изображение робота на карте\n* (copystring) Добавить кнопки паузы, остановки, закрепления в веб-интерфейс\n* (copystring) Переподключить веб-сокет через 10 секунд после отключения\n* (copystring) Удалить ненужные вызовы getMap()\n* (copystring) Улучшить логику повторного подключения\n* (copystring) Добавить часового\n* (copystring) Правильное состояние mop_mode\n* (copystring) Добавить ресурс расходников в процентах", - "pt": "* (copystring) Conserte muitas das minhas coordenadas de robô seriamente ruins e código XY de pixel\n* (copystring) Corrige conexão com websocket para hosts com mais de uma placa de rede\n* (copystring) Desabilita botões na interface web quando eles não podem ser usados\n* (copystring) Melhorar a exclusão/adicionar zonas na interface da web\n* (copystring) map_status o mapa atualmente selecionado quando deslocado bit a bit em 2 para a direita\n* (copystring) use o mapa atualmente selecionado para obter as salas do mapa selecionado\n* (copystring) Atualiza o mapa apenas uma vez na inicialização do adaptador\n\n* (copystring) Envia automaticamente o mapa atual para a interface da web ao atualizar o mapa* (copystring) Atualize o resumo limpo apenas uma vez após a limpeza e uma vez no início\n\n* (copystring) Implemente o carregador e o ângulo do robô no mapa\n* (copystring) Corrigir as posições da zona\n* (copystring) A localização não deve ser um erro. Faça disso uma informação\n* (copystring) Corrige a posição e rotação do robô\n* (copystring) Corrige a detecção do caminho do esfregão no início do robô\n* (copystring) Não processar is_Locating para iniciar o atualizador de mapa\n* (copystring) Adicionar ir para e ir para o recurso de caminho previsto na interface da web\n* (copystring) Torna o caminho atual ligeiramente transparente\n* (copystring) Nova imagem do robô no mapa\n* (copystring) Adicionar botões de pausa, parada e encaixe à interface da web\n* (copystring) Reconectar websocket após 10 segundos de desconexão\n* (copystring) Remova chamadas getMap() desnecessárias\n* (copystring) Melhorar a lógica de reconexão\n* (copystring) Adicionar Sentinela\n* (copystring) Corrigir estado mop_mode\n* (copystring) Adiciona a vida útil dos consumíveis em porcentagem", - "nl": "* (copystring) Repareer veel van mijn serieus waardeloze robotcoördinaten en pixel XY-code\n* (copystring) Verbinding met websocket repareren voor hosts met meer dan één netwerkkaart\n* (copystring) Schakel knoppen op webinterface uit wanneer ze niet kunnen worden gebruikt\n* (copystring) Verbeter het verwijderen/toevoegen van zones in de webinterface\n* (copystring) map_status de huidig ​​geselecteerde kaart wanneer bitsgewijs 2 naar rechts verschoven\n* (copystring) gebruik de momenteel geselecteerde kaart om verdiepingsruimten van de geselecteerde kaart te krijgen\n* (copystring) Update de kaart slechts één keer bij het starten van de adapter\n\n* (copystring) Stuur huidige kaart automatisch naar webinterface bij het updaten van de kaart* (copystring) Update schone samenvatting slechts een keer na het opschonen en een keer bij het starten\n\n* (copystring) Implementeer lader en robothoek op de kaart\n* (copystring) Fix zoneposities\n* (copystring) Lokaliseren zou geen fout moeten zijn. Maak dit in plaats daarvan een info\n* (copystring) Bevestig de positie en rotatie van de robot\n* (copystring) Detectie dweilpad repareren bij starten van robot\n* (copystring) Verwerk is_Locating niet voor het starten van de kaartupdater\n* (copystring) Toevoegen ga naar en ga naar voorspelde pad-functie in webinterface\n* (copystring) Maak het eigenlijke pad enigszins transparant\n* (copystring) Nieuwe robotafbeelding op kaart\n* (copystring) Voeg pauze-, stop-, dock-knoppen toe aan webinterface\n* (copystring) Sluit de websocket opnieuw aan na 10 seconden loskoppeling\n* (copystring) Verwijder onnodige getMap()-aanroepen\n* (copystring) Verbeter de logica voor opnieuw verbinden\n* (copystring) Voeg schildwacht toe\n* (copystring) Correcte status mop_mode\n* (copystring) Levensduur verbruiksartikelen in procenten toevoegen", - "fr": "* (copystring) Corrige beaucoup de mes coords de robot sérieusement merdiques et du code pixel XY\n* (copystring) Correction de la connexion au websocket pour les hôtes avec plus d'une carte réseau\n* (copystring) Désactiver les boutons sur l'interface Web lorsqu'ils ne peuvent pas être utilisés\n* (copystring) Améliorer la suppression/ajout de zones dans l'interface Web\n* (copystring) map_status la carte actuellement sélectionnée lorsqu'elle est décalée au niveau du bit de 2 vers la droite\n* (copystring) utilise la carte actuellement sélectionnée pour obtenir les pièces au sol de la carte sélectionnée\n* (copystring) Mettre à jour la carte une seule fois au démarrage de l'adaptateur\n\n* (copystring) Envoyer automatiquement la carte actuelle à l'interface Web lors de la mise à jour de la carte * (copystring) Mettre à jour le résumé propre uniquement après une fois après le nettoyage et une fois au démarrage\n\n* (copystring) Mettre en œuvre le chargeur et l'angle du robot sur la carte\n* (copystring) Correction des positions de zone\n* (copystring) La localisation ne doit pas être une erreur. Faites-en une info à la place\n* (copystring) Correction de la position et de la rotation du robot\n* (copystring) Correction de la détection du chemin de la vadrouille au démarrage du robot\n* (copystring) Ne pas traiter is_Locating pour démarrer le programme de mise à jour de la carte\n* (copystring) Ajouter aller à et aller à la fonction de chemin prévu dans l'interface Web\n* (copystring) Rendre le chemin réel légèrement transparent\n* (copystring) Nouvelle image du robot sur la carte\n* (copystring) Ajouter des boutons de pause, d'arrêt et d'ancrage à l'interface Web\n* (copystring) Reconnectez le websocket après 10 secondes de déconnexion\n* (copystring) Supprime les appels getMap() inutiles\n* (copystring) Améliorer la logique de reconnexion\n* (copystring) Ajouter une sentinelle\n* (copystring) Corriger l'état de mop_mode\n* (copystring) Ajouter la durée de vie des consommables en pourcentage", - "it": "* (copystring) Risolvi molte delle mie coordinate di robot seriamente di merda e il codice pixel XY\n* (copystring) Corretta la connessione al websocket per gli host con più di una scheda di rete\n* (copystring) Disattiva i pulsanti sull'interfaccia web quando non possono essere utilizzati\n* (copystring) Migliora l'eliminazione/aggiunta di zone nell'interfaccia web\n* (copystring) map_status la mappa attualmente selezionata quando viene spostata bit per bit di 2 a destra\n* (copystring) utilizza la mappa attualmente selezionata per ottenere le stanze del piano della mappa selezionata\n* (copystring) Aggiorna la mappa solo una volta all'avvio dell'adattatore\n\n* (copystring) Invia automaticamente la mappa corrente all'interfaccia web durante l'aggiornamento della mappa* (copystring) Aggiorna il riepilogo della pulizia solo una volta dopo la pulizia e una volta all'avvio\n\n* (copystring) Implementa il caricabatterie e l'angolazione del robot sulla mappa\n* (copystring) Fissa le posizioni delle zone\n* (copystring) La localizzazione non dovrebbe essere un errore. Rendilo invece un'informazione\n* (copystring) Fissa la posizione e la rotazione del robot\n* (copystring) Corretto il rilevamento del percorso del mop all'avvio del robot\n* (copystring) Non elaborare is_Locating per l'avvio del programma di aggiornamento della mappa\n* (copystring) Aggiunta la funzionalità vai a e vai al percorso previsto nell'interfaccia web\n* (copystring) Rende il percorso effettivo leggermente trasparente\n* (copystring) Nuova immagine del robot sulla mappa\n* (copystring) Aggiungi i pulsanti pausa, stop, dock all'interfaccia web\n* (copystring) Riconnettere websocket dopo 10 secondi di disconnessione\n* (copystring) Rimuove le chiamate getMap() non necessarie\n* (copystring) Migliora la logica di riconnessione\n* (copystring) Aggiungi sentinella\n* (copystring) Correggere lo stato mop_mode\n* (copystring) Aggiungi la durata dei consumabili in percentuale", - "es": "* (copystring) Arreglar muchas de mis coordenadas de robot y el código XY de píxeles.\n* (copystring) Arreglar la conexión a websocket para hosts con más de una tarjeta de red\n* (copystring) Deshabilitar botones en la interfaz web cuando no se pueden usar\n* (copystring) Mejorar eliminar/agregar zonas en la interfaz web\n* (cadena de copia) map_status el mapa actualmente seleccionado cuando bit a bit se desplaza 2 a la derecha\n* (copystring) use el mapa seleccionado actualmente para obtener las habitaciones del piso del mapa seleccionado\n* (copystring) Actualizar el mapa solo una vez al iniciar el adaptador\n\n* (cadena de copia) Enviar automáticamente el mapa actual a la interfaz web al actualizar el mapa* (cadena de copia) Actualizar el resumen de limpieza solo una vez después de la limpieza y una vez al inicio\n\n* (copystring) Implemente el cargador y el ángulo del robot en el mapa\n* (copystring) Fijar posiciones de zona\n* (copystring) La localización no debería ser un error. Haz de esto una información en su lugar\n* (copystring) Corregir la posición y rotación del robot\n* (copystring) Arreglar la detección de la ruta del trapeador al inicio del robot\n* (copystring) No procesar is_Locating para iniciar el actualizador de mapas\n* (copystring) Agregue ir a e ir a la función de ruta predicha en la interfaz web\n* (copystring) Hace que la ruta real sea ligeramente transparente\n* (copystring) Nueva imagen de robot en el mapa\n* (copystring) Agregar pausa, detener, botones de acoplamiento a la interfaz web\n* (copystring) Vuelva a conectar websocket después de 10 segundos de desconexión\n* (copystring) Eliminar llamadas innecesarias a getMap()\n* (copystring) Mejorar la lógica de reconexión\n* (cadena de texto) Agregar centinela\n* (copystring) Estado correcto de mop_mode\n* (cadena de texto) Agregue la vida útil de los consumibles en porcentaje", - "pl": "* (copystring) Napraw wiele moich naprawdę gównianych współrzędnych robota i kodu XY pikseli\n* (copystring) Naprawiono łączenie się z websocket dla hostów z więcej niż jedną kartą sieciową\n* (copystring) Wyłącz przyciski na interfejsie internetowym, gdy nie można ich użyć\n* (copystring) Usprawniono usuwanie/dodawanie stref w interfejsie WWW\n* (copystring) map_status aktualnie wybrana mapa po przesunięciu bitowym o 2 w prawo\n* (copystring) użyj aktualnie wybranej mapy, aby uzyskać pokoje na piętrze wybranej mapy\n* (copystring) Aktualizuj mapę tylko raz podczas uruchamiania adaptera\n\n* (copystring) Automatycznie wysyłaj bieżącą mapę do interfejsu sieciowego podczas aktualizacji mapy* (copystring) Aktualizuj czyste podsumowanie tylko raz po czyszczeniu i raz na początku\n\n* (copystring) Ładowarka narzędzia i kąt robota na mapie\n* (copystring) Napraw pozycje stref\n* (copystring) Lokalizacja nie powinna być błędem. Zamiast tego ustaw to jako informację\n* (copystring) Napraw pozycję i obrót robota\n* (copystring) Naprawiono wykrywanie ścieżki mopa na starcie robota\n* (copystring) Nie przetwarzaj is_Locating w celu uruchomienia aktualizatora map\n* (copystring) Dodaj funkcję przejścia do i przejścia do przewidywanej ścieżki w interfejsie internetowym\n* (copystring) Spraw, aby rzeczywista ścieżka była nieco przezroczysta\n* (copystring) Nowy obraz robota na mapie\n* (copystring) Dodaj przyciski pauzy, stopu i stacji dokującej do interfejsu internetowego\n* (copystring) Ponownie podłącz websocket po 10 sekundach rozłączenia\n* (copystring) Usuń niepotrzebne wywołania funkcji getMap().\n* (copystring) Popraw logikę ponownego łączenia\n* (copystring) Dodaj Sentry\n* (copystring) Poprawny stan mop_mode\n* (copystring) Dodaj żywotność materiałów eksploatacyjnych w procentach", - "uk": "* (копіювальний рядок) Виправити багато моїх серйозно поганих координат робота та піксельного коду XY\n* (copystring) Виправлено підключення до websocket для хостів з більш ніж однією мережевою картою\n* (копіювальний рядок) Вимкніть кнопки у веб-інтерфейсі, якщо ними не можна скористатися\n* (копіювальний рядок) Покращено зони видалення/додавання у веб-інтерфейсі\n* (копіювальний рядок) map_status поточна вибрана карта при побітовому зсуві на 2 вправо\n* (рядок копіювання) використовувати поточну вибрану карту, щоб отримати поверхи вибраної карти\n* (copystring) Оновлювати карту лише один раз під час запуску адаптера\n\n* (copystring) Автоматично надсилати поточну карту до веб-інтерфейсу під час оновлення карти* (copystring) Оновлювати чистий підсумок лише один раз після очищення та один раз на початку\n\n* (копіювальний рядок) Кут зарядного пристрою та робота на карті\n* (copystring) Виправити позиції зон\n* (copystring) Пошук не має бути помилкою. Натомість зробіть це інформацією\n* (копіювальний рядок) Виправлення положення та обертання робота\n* (копіювальний рядок) Виправлено виявлення швабри під час запуску робота\n* (копіювальний рядок) Не обробляти is_Locating для запуску програми оновлення карти\n* (копіювальний рядок) Додайте функцію переходу до передбаченого шляху та переходу до нього у веб-інтерфейсі\n* (копіювальний рядок) Зробіть фактичний шлях трохи прозорим\n* (копіювальний рядок) Нове зображення робота на карті\n* (копіювальний рядок) Додайте кнопки паузи, зупинки та закріплення до веб-інтерфейсу\n* (копіювальний рядок) Повторно підключіть веб-сокет через 10 секунд після відключення\n* (copystring) Видаліть непотрібні виклики getMap().\n* (копіювальний рядок) Покращено логіку повторного підключення\n* (копіювальний рядок) Додати Sentry\n* (копіювальний рядок) Правильний стан mop_mode\n* (рядок копіювання) Додати ресурс витратних матеріалів у відсотках", - "zh-cn": "* (copystring) 修复了很多我严重糟糕的机器人坐标和像素 XY 代码\n* (copystring) 修复连接到具有多个网卡的主机的 websocket\n* (copystring) 无法使用时禁用 web 界面上的按钮\n* (copystring) 改进网络界面中的删除/添加区域\n* (copystring) map_status 按位向右移动 2 时当前选择的地图\n* (copystring) 使用当前选中的地图获取选中地图的楼层房间\n* (copystring) 仅在适配器启动时更新地图一次\n\n*(copystring)更新地图时自动将当前地图发送到网络界面*(copystring)仅在清洁后和开始时更新清洁摘要\n\n* (copystring) 在地图上实现充电器和机器人角度\n*(复制字符串)固定区域位置\n* (copystring) 定位应该不会出错。改为将其设为信息\n* (copystring) 固定机器人位置和旋转\n* (copystring) 修复机器人启动时的拖把路径检测\n* (copystring) 不要处理 is_Locating 以启动地图更新程序\n* (copystring) 在 web 界面中添加 go to 和 go to predicted path 功能\n* (copystring) 使实际路径稍微透明\n*(复制字符串)地图上的新机器人图像\n* (copystring) 添加暂停、停止、停靠按钮到 web 界面\n* (copystring) 断开连接 10 秒后重新连接 websocket\n* (copystring) 删除不必要的 getMap() 调用\n* (copystring) 改进重连逻辑\n* (copystring) 添加哨兵\n* (copystring) 正确的 mop_mode 状态\n* (copystring) 添加耗材寿命百分比" } }, "titleLang": { diff --git a/package-lock.json b/package-lock.json index 8860677868..d498ef24c5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "iobroker.roborock", - "version": "0.1.4-beta.2", + "version": "0.1.4-beta.3", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "iobroker.roborock", - "version": "0.1.4-beta.2", + "version": "0.1.4-beta.3", "license": "MIT", "dependencies": { "@iobroker/adapter-core": "^2.6.7", diff --git a/package.json b/package.json index aed3175e71..8211773406 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "iobroker.roborock", - "version": "0.1.4-beta.2", + "version": "0.1.4-beta.3", "description": "roborock", "author": { "name": "copystring",