Problème de caractère

Hello,

J’avais un scénario (bloc code) voir ci dessous
Qui donnait les plugins à mettre jour.

Avant la MAJ :

Après la MAJ :

Voici le bloc code que j’utilise :

// Récupération des tags passés en paramètre.
// Emoticon utilisé dans telegram
$tags = $scenario->getTags();
$tags['#logoCross#'] = "&"."#x274C;";
$tags['#logoCheck#'] = "&"."#x2705;";
$tags['#logoUpdate#'] = "&"."#x1F504;";


// Emoticon utilisé dans le script
$logogreen_circle = "&"."#x1F7E2;";
$logoorange_circle = "&"."#x1F7E0;";
$logored_circle = "&"."#x1F534;";
$logoalerte = "&"."#x1F6A8;";
$logoUpdate = "&" ."#x1F504;";




$nbNeedUpdate = update::nbNeedUpdate();

if ( $nbNeedUpdate == 0 ) {
$scenario->setlog('0 update');
$messageUpdate = '';
}
else{

// Meesag sur le nombre de MAJ disponible
$messageUpdate .= 'Des mises à jours sont disponibles : ' .$nbNeedUpdate . "\n\n";
#$messageUpdate .= 'Des mises à jours sont disponibles : ' . $logogreen_circle .' ' .$nbNeedUpdate . "\n\n";  
#$messageUpdate = $logoUpdate. 'Update disponibles : ' . $logogreen_circle . ' '.$nbNeedUpdate . "\n\n";  


foreach (update::all() as $update) {
  if ($update->getStatus()!='update') continue;
  if ($update->getConfiguration('doNotUpdate')==1 && $update->getType()!='core') continue;
  
  // Nom du plugin à mettre à jour
  $messageUpdate  .= "<u><b>Plugin : ".$update->getLogicalId()."</b></u>" . "\n";
  #$messageUpdate  .= ' Plugin : ' . $update->getLogicalId(). "\n";

  // Version du plugin installé
  $messageUpdate  .= $logored_circle. ' Version installée : ' .$update->getLocalVersion(). "\n";
  // Nouvelle version du plugin disponible
  $messageUpdate  .= $logogreen_circle. ' Version disponible : ' .$update->getRemoteVersion(). "\n\n";
  // On log un message
  $scenario->setlog($update->getType().':'.$update->getLogicalId().' - '.$update->getLocalVersion().' - '.$update->getRemoteVersion());
  
  if ($update->getType() == 'plugin') {
    try {
      $plugin = plugin::byId($update->getLogicalId());
      // Récupere l'information du change Log pour chaque plugin
      $messageUpdate  .= "<a href='".$plugin->getChangelog()."'>Changelog</a>  |  ";
      // On log un message
      #$scenario->setlog('changelog:'.$plugin->getChangelog());
      // Recupere l'information du community pour chaque plugin
      $messageUpdate  .= "<a href='https://community.jeedom.com/tags/plugin-".$plugin->getId()."’>Community</a>" . "\n\n\n" ;
      // On log un message
      #$scenario->setlog('community:https://community.jeedom.com/tags/plugin-'.$plugin->getId());
    } catch (Exception $e) {

    }
  }
  
    if ($update->getType() == 'core') {
    try {
      // Récupere l'information du change Log pour chaque plugin
      $messageUpdate  .= "<a href='https://doc.jeedom.com/fr_FR/core/4.1/changelog'>Changelog</a>  |  ";
      // On log un message
      #$scenario->setlog('changelog:'.$plugin->getChangelog());
      // Recupere l'information du community pour chaque plugin
      $messageUpdate  .= "<a href='https://community.jeedom.com/search?q=".$update->getRemoteVersion()."'>Community</a>" . "\n\n\n" ;
      // On log un message
      #$scenario->setlog('community:https://community.jeedom.com/tags/plugin-'.$plugin->getId());
    } catch (Exception $e) {

    }
  }

  
}

}

// MAJ des tags avant exécution de la suite du scénario
$scenario->setTags($tags);

// Variable utilisé dans telegram
$scenario->setData('msgUpdate', $messageUpdate);
// On informe le nom du scenario et la date d'éxecution
$namescenario .= 'Exécuté par le Scénario : ' .$scenario->getName() .' | Le ' .date('d/m/Y');
// Variable utilisé dans telegram
$scenario->setData('NameScenario', $namescenario);

En rouge ce qui pose souci depuis la MAJ :

Voici les options utilisé pour l’envoi :

Si quelqu’un peut m’aider sur le sujet et si bien sur on peut corriger le tir :slight_smile:

Merci d’avance.

Bonjour,
Quel format utilisé ? Markdown ?
Vérifiez les règles à respecter pour le formatage sous markdown, il me semble que les lien doivent être mis entre < > simplement, je ne me rappelle plus de tête; pas de balises html.

Hello @Mips,

J’utilise celui par défaut.

Personne a une idée ? :slight_smile:

Et avez-vous vérifié ce que j’ai suggéré ?
Je n’ai pas l’impression.

J’ai précisé dans ma réponse plus haut que je suis par « défaut » dans le plugin Telegram.

J’utilise pas markdown, la solution que vous m’avez proposé c’est pour markdown.

Je n’ai en soit donné aucune solution mais une piste à explorer, chose que vous n’avez pas faite mais par contre vous demander d’autres pistes…
Je vous rappelle le point 9 de ce post: Comment nous aider à vous aider - ou Comment poser une bonne question?
Vous pouvez relire les autres points également.

Juste pour comprendre dans quel cas est-on ici:

  1. vous savez que « par défaut » n’est pas une valeur et dans ce cas en fait cela veut dire que vous jouer avec mes pieds (pour rester poli) en faisant exprès de ne pas être clair?
  2. vous ne savez pas que « par défaut » n’est pas une valeur de format de message et qu’en fait cela veut dire que le plugin va appliquer un choix prédéfini parmi les autres possibilités à votre place?
    Question subsidiaire: Connaissez-vous le format de message par défaut? (moi oui).

Dans tous les cas:

  • pourquoi ne pas explorer cette piste? (qui va mener à un résultat fonctionnel, je viens de tester, moi!)
  • j’avais lu votre poste sur mobile initialement et donc je n’avais pas fait attention qu’il manque plusieurs informations majeures, notamment:
    • quelle version de jeedom?
    • avant/après la mise à jour de quoi? telegram?
  • Pour finir, perso je ne reproduis pas votre problème (oui, ca aussi j’ai testé) donc soit il n’existe pas, soit il manque des informations pour le reproduire.

Bonne chance pour la suite, vu le peu d’implication de votre part je m’arrête ici.

Hello,

C’est dommage de me prendre de haut … et de vouloir m’infantilisé de la sorte.
J’ai oublié des infos oki je l’accorde mais ce n’est pas une façon de faire.

Oui je sais parfaitement que par default n’est pas une valeur à proprement dit.
En l’occurrence dans le plugin Telegram (voir screen ci-dessous) i y a bien un mode par défaut donc je fais que répondre à votre question je ne vois pas où est le mal ?
Après de là à savoir la fonction utilisée en mode par défaut je ne serais pas répondre.

Car pour ma défense on ne parlait pas du même mode.
Je ne connais pas langage php… Sinon je ne serais pas là à demander de l’aide

A titre d’information ce bout de code c’est toi qui la fais et @tomitomas suite à ma demande Notification Update plugin + core + lien change log via Telegram - #9 par Mips

Je parlais depuis la maj de Telegram.

Version jeedom 4.1.25

Merci de me souhaiter bonne chance et de penser à moi :slight_smile:
Cela n’a rien avoir avec mon implication ou pas, encore une fois j’ai oublié de mettre d’avantage d’information et je m’en excuse.

Que ça soit ici ou sur d’autre canaux d’entraide Jeedom comme Les groupes Facebook, Télégram (sarakha, différents discord…) Jamais on ne m’a parler de cette façon et inversement je ne me suis jamais permis de parler de la sorte à qui que ce soit sur un réseau d’entraide.
Souvent les personnes répètent les mêmes questions sans même chercher ou oublie de fournir des infos pour faire avancer le problème.
Mais on fait avec, tout le monde n’est pas Dev ou à cette approche technique (Type DSI).

En tant que modérateur on doit faire respecter les règles je l’entends parfaitement mais faut savoir transmettre le message avec ca plus belle plume sinon on change de métier.

C’est dommage je ne dis pas tout le temps mais c’est assez récurrent sur le community. On se fait souvent ramasser par les modérateurs ou les devs (attention je ne mets pas tout le monde dans le même panier) cela entache l’image de jeedom et les gens fuit le community et vont vers d’autres canaux d’entraide et pour le coup on perd une base de connaissance qui pourrait être plus riche en évitant ce genre de communication désastreuse.

Si tu veux fermer le sujet il n’y a pas de souci je le prendrais pas mal j’irais voir ailleurs, bien que cela soit dommage.

Cordialement,

AnOnYmEnEt

Bonjour,

Son calme il faut savoir garder.
Passe en HTML au lieu de défaut, comme le sous-entendais @Mips. Et ça fonctionne.

Le défaut est normalement du markdown, étonnant que cela fonctionnait jusqu’à présent.

surement un bug corrigé :slight_smile:

Merci pour vos réponses.

J’ai passé télégram en HTML
image

Je viens de relancer le scenario mais c’est tjrs pareil :frowning:

image

Avec le (quasi) même code ça fonctionne chez moi.

#Code php pour récupération update plugin + core + lien changelog via Telegram 
#https://community.jeedom.com/t/notification-update-plugin-core-lien-change-log-via-telegram/47163/15


#Déclaration icones Unicode
$logogreen_circle = "&"."#x1F7E2;";
$logoorange_circle = "&"."#x1F7E0;";
$logored_circle = "&"."#x1F534;";
$logoalerte = "&"."#x1F6A8;";
$logoUpdate = "&" . "#x1F504;" ;

#Récupération du nombre d'update dispo et vérifier s'il a changé par rapport à précédemment via variable "NbUpdateJeedom"
$nbupdateprev = $scenario->getData('NbUpdateJeedom',false,-1);
update::checkAllUpdate();
$nbupdate = update::nbNeedUpdate();
//$modifMAJ = ($nbupdateprev == $nbupdate)? 0 : 1;
$scenario->setData('NbUpdateJeedom',$nbupdate);

//update::checkAllUpdate();
//$nbNeedUpdate = update::nbNeedUpdate();

if ($nbupdate == 0) {
	$scenario->setlog('--> Aucun update');
	$messageUpdate = '';
}
elseif ($nbupdateprev != $nbupdate) {
  
$messageUpdate .=  $logoUpdate . ' Des mises à jours sont disponibles ' .' : ' .$nbupdate . "\n\n";  
#$messageUpdate = $logoUpdate. 'Update disponibles : ' . $logogreen_circle . ' '.$$nbupdate . "\n\n";  


foreach (update::all() as $update) {
  if ($update->getStatus()!='update') continue;
  if ($update->getConfiguration('doNotUpdate')==1 && $update->getType()!='core') continue;
  
  if ($update->getLogicalId()=='jeedom') {
	$messageUpdate .= "<b>Core ".$update->getLogicalId()."</b>" . "\n";
  } else {
  	$messageUpdate .= "<b>Plugin : ".$update->getLogicalId()."</b>" . "\n";
  	#$messageUpdate .= ' Plugin : ' . $update->getLogicalId(). "\n";
  }
  $messageUpdate  .= $logored_circle. ' Version installée : ' .$update->getLocalVersion(). "\n";
  $messageUpdate  .= $logogreen_circle. ' Version disponible : ' .$update->getRemoteVersion(). "\n\n";
  $scenario->setlog('__' . $update->getType().' -> '.$update->getLogicalId().' - '.$update->getLocalVersion().'/'.$update->getRemoteVersion());
  
  if ($update->getType() == 'plugin') {
    try {
      $plugin = plugin::byId($update->getLogicalId());
      $messageUpdate  .= "<a href='".$plugin->getChangelog()."'>changelog</a>  |  ";
      $scenario->setlog('__changelog -> '.$plugin->getChangelog());
      $messageUpdate  .= "<a href='https://community.jeedom.com/tags/plugin-".$plugin->getId()."'>community</a>" . "\n\n" ;
      $scenario->setlog('__community -> https://community.jeedom.com/tags/plugin-'.$plugin->getId());
    } catch (Exception $e) {

    }
  } else {
     $messageUpdate  .= "<a href='https://doc.jeedom.com/fr_FR/core/4.1/changelog?theme=dark'>changelog</a>";
  }
}

}
else $scenario->setlog('--> Aucun nouvel update depuis la dernière alerte');
##variable globale
#$scenario->setData('msgUpdate', $messageUpdate);

#Tag
$tags = $scenario->getTags();
$tags['#msgUpdate#'] = $messageUpdate;
$scenario->setTags($tags);

Je reprécise aussi, si c’est utile, que j’avais fait le test sur une 4.2.2, avec telegram en version « 2021-08-14 01:04:46 », configuré comme chez vous et que je ne reproduisais pas le problème, le message arrive correctement formaté.

@Madcow

que veux-tu dire? qu’as-tu changé?

J’ai pas fait de modification au niveau du code et paf ca a fait des chocapic :slight_smile:

Tu dis n’avoir rien changé sauf la version jeedom qui change …

J’ai loupé un épisode chez toi ça marche et chez moi cela ne marche plus je sèche :frowning:

Cette partie (+ un peu de cosmétique) car je suis en déclenchement programmé :

#Récupération du nombre d'update dispo et vérifier s'il a changé par rapport à précédemment via variable "NbUpdateJeedom"
$nbupdateprev = $scenario->getData('NbUpdateJeedom',false,-1);
update::checkAllUpdate();
$nbupdate = update::nbNeedUpdate();

$scenario->setData('NbUpdateJeedom',$nbupdate);

//update::checkAllUpdate();
//$nbNeedUpdate = update::nbNeedUpdate();

if ($nbupdate == 0) {
	$scenario->setlog('--> Aucun update');
	$messageUpdate = '';
}
elseif ($nbupdateprev != $nbupdate) {

C’est pas la partie qui merdouille chez moi.

tu as mit quoi au niveau de l’envoie telegram ? (Possible de screen) ?

Je vais faire la même chose que toi pour voir si je reproduis le souci

Je suis en 4.1.25, avec telegram en version « 2021-08-14 01:04:46 ».

J’ai trouvé une erreur dans le bloc code qui explique peut-être le problème:
sur cette ligne

$messageUpdate  .= "<a href='https://community.jeedom.com/tags/plugin-".$plugin->getId()."’>Community</a>" . "\n\n\n" ;

la dernière apostrophe est incorrecte, c’est ce caractère:

au lieu de

'

Visiblement il y a surtout deja une issue de creer concernant les msg HTML

1 « J'aime »

C’est sur la version du 30 août ce commit.

Car le html fonctionne chez moi avec la version du 14 août :