MainKronos / Sonarr-AnimeDownloader

It is a Docker Container that uses Sonarr to download anime from AnimeWorld site (ITALY).
https://mainkronos.github.io/Sonarr-AnimeDownloader/
MIT License
43 stars 10 forks source link

Escape character Telegram #55

Closed SavvyMeat closed 2 years ago

SavvyMeat commented 2 years ago

Informazioni generali

Livello di Errore:

πŸ…΄πŸ†πŸ†πŸ…ΎπŸ†

Messaggio di Errore

πŸ…΄πŸ†πŸ†πŸ…ΎπŸ†: Command '['connections/telegram.sh', '*Episode Downloaded*\nClassroom of the Elite - 1x1 - What is evil? Whatever springs from weakness.']' returned non-zero exit status 3.,
Traceback (most recent call last):,
  File "/script/anime_downloader/__init__.py", line 84, in job,
    message.warning(txt.CONNECTION_MESSAGE.format(title=anime["title"], season=episode["season"], episode=episode["num"], episodeTitle=episode["title"])),
  File "/usr/local/lib/python3.9/logging/__init__.py", line 1458, in warning,
    self._log(WARNING, msg, args, **kwargs),
  File "/usr/local/lib/python3.9/logging/__init__.py", line 1589, in _log,
    self.handle(record),
  File "/usr/local/lib/python3.9/logging/__init__.py", line 1599, in handle,
    self.callHandlers(record),
  File "/usr/local/lib/python3.9/logging/__init__.py", line 1661, in callHandlers,
    hdlr.handle(record),
  File "/usr/local/lib/python3.9/logging/__init__.py", line 952, in handle,
    self.emit(record),
  File "/script/logger.py", line 26, in emit,
    subprocess.check_call([script, record.msg], stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL),
  File "/usr/local/lib/python3.9/subprocess.py", line 373, in check_call,
    raise CalledProcessError(retcode, cmd),
subprocess.CalledProcessError: Command '['connections/telegram.sh', '*Episode Downloaded*\nClassroom of the Elite - 1x1 - What is evil? Whatever springs from weakness.']' returned non-zero exit status 3.,

Descrizione

Ho copiato dalla cartella degli esempi lo script per notificare tramite telegram, e al momento di utilizzarlo mi ha dato questo errore. Provando lo script per conto suo ho scoperto che fallisce se viene data in ingresso una stringa contenente spazi.

Ti allego la soluzione che ho adottato io, giudica te se aggiungerla nel file tra gli esempi o se gestire l'errore in altro modo. In questo modo ho gestito sia gli spazi che il ritorno a capo.

curl -X POST \
   -H 'Content-Type: application/json' \
   -H 'authority: api.telegram.org' \
   -H 'accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9' \
   -H 'accept-language: it,it-IT;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6' \
   -H 'user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.53 Safari/537.36 Edg/103.0.1264.37' \
   -d "{\"chat_id\": \"$CHAT_ID\", \"text\": \"$1\"}" \
   https://api.telegram.org/bot$BOT_TOKEN/sendMessage \
   --compressed --silent --output /dev/null
MainKronos commented 2 years ago

Si, hai ragione. Ho fatto tutti i test possibili tranne per i messaggi multilinea πŸ˜‚. Grazie mille per la soluzione, provvedo subito ad aggiornarla