Page 1 sur 1

[LUA] Script Saints modifié

Publié : 24 déc. 2015, 13:43
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.

Re: Script Saints modifié

Publié : 30 mai 2016, 20:15
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

Re: Script Saints modifié

Publié : 24 juin 2016, 17:26
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 ? ;)

Re: Script Saints modifié

Publié : 01 juil. 2016, 19:33
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...