[LUA] Script Saints modifié

Vous avez créé un script LUA dont vous êtes fier, un .sh génial, un programme Python hors du commun, un Tuto, c'est ici que vous pouvez les partager.
Chrominator
Messages : 1042
Inscription : 19 déc. 2015, 07:29
Localisation : France

[LUA] Script Saints modifié

Message par Chrominator »

J'ai adopté il y a peu le script de Vil1driver pour afficher le nom des Saints dans Domoticz.

Ces derniers jours, l'API qui renvoie le texte renvoie None, car il n'y aurait pas de Saint ces jours-ci dans son calendrier.
Alors je me suis dit, pourquoi ne pas afficher une citation à la place ? :roll:

J'ai trouvé un site sur Internet qui fait ceci : http://www.citation-du-jour.fr

J'ai modifié le script en conséquence, il fonctionne bien.

Code : Tout sélectionner

-- script_time_saint.lua
--
-- récupération du saint du jour ou d'une citation dans un capteur texte

local saint_text_idx = 115   -- idx du capteur texte
local theme = 'humour'


function os.capture(cmd)
  local f = assert(io.popen(cmd, 'r'))
  local s = assert(f:read('*a'))
  f:close()
  return s
end

commandArray = {}

time = os.date("*t")

-- Trigger at 00:10
if (time.hour == 0 and time.min == 1) then

  -- Path to curl
  local curl = '/usr/bin/curl'

  local cmd = curl .. ' http://domogeek.entropialux.com/feastedsaint/now'
  local saint = os.capture(cmd);
  
  if (saint ~= "None") then 
	-- Update device idx with nValue and sValue
	commandArray['UpdateDevice'] = saint_text_idx .. '|0|Saints&nbspdu&nbspjour&nbsp' .. saint
  else
    cmd = curl .. ' http://www.citation-du-jour.fr/apis/export.php?theme=' .. theme
	local citation = os.capture(cmd);
	-- Récupération de la citation
	-- La chaîne renvoyée est par exemple : var q="“L\'ennemi est bête : il croit que c\'est nous l\'ennemi alors que c\'est lui !”";
	--										var n="Pierre Desproges";
	local QOTD = string.sub(citation, string.find(citation, '&#8220'), string.find(citation,'&#8221') + 5)
	QOTD = string.gsub(QOTD, '\\', '')
	QOTD = string.gsub(QOTD, ' ', '&nbsp')
	
	local auteur = string.gsub(string.sub(citation, string.find(citation, 'var n="') + 7, string.find(citation, '";', string.find(citation, 'var n="')) - 1), ' ', '&nbsp')
	print(string.gsub(QOTD.. auteur, '&nbsp', ' '))
	commandArray['UpdateDevice'] = saint_text_idx .. '|0|' .. QOTD .. '&nbsp' .. auteur
  end
end

return commandArray
Ensuite, le problème c'est pour l'afficher correctement dans la custom page de vil1driver ; comme le texte peut être long, j'avais imaginé un défilement.
Sur mon pc à base de i5 ça marchotte, mais sur la tablette 7" qui me sert pour Domoticz, ça pompe trop de ressources... :(

Je cherche encore, mais si vous avez des idées je suis preneur.
Un bon frein vaut mieux que deux sparadraps.

Ubuntu 24.04.3 LTS - Domoticz 2025.1 (build 16782)
Pentium G3220T 2.6GHz - 4Go DDR3
RFXtrx433 USB Ver Pro1/1043
Z-Stick GEN5 Version: 1.6-1136-g07ea22bb
Rtl433 RTL-SDR receiver
RFLink Gateway
Zigbee SLZB-06
LSBdu68
Messages : 165
Inscription : 17 janv. 2015, 23:45
Localisation : Alsace

Re: Script Saints modifié

Message par LSBdu68 »

Oh voilà une idée sympa, par contre je suis désolé car je ne peux pas t'apporter d'aide. Mon niveau est un peu trop bas ...... :D
Doudy
Messages : 457
Inscription : 07 mai 2016, 17:23

Re: Script Saints modifié

Message par Doudy »

Chrominator a écrit : Ensuite, le problème c'est pour l'afficher correctement dans la custom page de vil1driver ; comme le texte peut être long, j'avais imaginé un défilement.
Tu as trouvé quelque chose pour le défilement ? ;)
RaspberryPi - RFLink - Zwave - WH2600
Domoticz : 2020.2 | Dashticz : V3.12 Master | dzvents : 3.0.2 | Python : 3.7.3
Chrominator
Messages : 1042
Inscription : 19 déc. 2015, 07:29
Localisation : France

Re: Script Saints modifié

Message par Chrominator »

Oui, 2 techniques : l'une bête à base de balise <marquee> html, l'autre très évoluée à base de css. Mais les deux ramaient trop sur ma tablette entrée de gamme...
Un bon frein vaut mieux que deux sparadraps.

Ubuntu 24.04.3 LTS - Domoticz 2025.1 (build 16782)
Pentium G3220T 2.6GHz - 4Go DDR3
RFXtrx433 USB Ver Pro1/1043
Z-Stick GEN5 Version: 1.6-1136-g07ea22bb
Rtl433 RTL-SDR receiver
RFLink Gateway
Zigbee SLZB-06
Répondre