Сначала получите значение
Zenity напечатает количество часов, которое пользователь ввел в стандартный вывод после нажатия GO
.
Первым шагом будет изменение вашего скрипта для захвата результата и присвоения его переменной:
hours=$(zenity \
--forms \
--title="TIME TRACKING" \
--text="Please track your time" \
--add-entry="¿ What have you done ?" \
--ok-label "GO")
Опции
Что вы можете сделать дальше, зависит от типа доступа и контроля над сайтом. Некоторые варианты хаки.
Для каждого из следующих параметров передайте переменную $hours
на веб-сайт в качестве параметра запроса, например:
case $? in
0) chromium-browser "http://site/that/I/want/to/open?hours=$hours"
Вариант A - Веб-сайт поддерживает заполнение поля параметром запроса
Возможно, вам повезет, и все вышеперечисленное сработает. Если это не сработает вначале, возможно, у вас неверное имя параметра запроса.
Чтобы определить правильное имя параметра запроса, изучите исходный код и его поведение при отправке формы вручную.
например. https://www.google.com? Д = до + заполнения + кнопки + поиск + бар
Вариант B - написать скрипт пользователя для этого в браузере
Используйте инструмент Tamper Monkey для запуска пользовательского сценария при загрузке страницы, который извлекает параметр запроса и устанавливает поле.
// ==UserScript==
// @name Set Hours
// @match http://site/that/I/want/to/open*
// ==/UserScript==
(function() {
var urlParams = new URLSearchParams(window.location.search); // Reference: https://stackoverflow.com/a/47566165/241294
if (urlParams.has('hours')) {
var hours = urlParams.get('hours');
document.getElementById("my_id").value = hours;
alert('well done ad3luc you did ' + hours + ' hours today');
}
})();
Недостатком, конечно, является логика в двух местах: ваш скрипт и ваш браузер.
Это хак, но мне нравится разделять проблемы. Скрипт отправляет значение на сайт. Сайт, задающий значение поля.
Вы также должны убедиться, что выбранный вами параметр не конфликтует ни с одним из существующих параметров запроса, используемых сайтом.
Вариант C - Изменить сайт
Измените исходный код сайта, чтобы он поддерживал вариант A.