RITlug / teleirc

Go implementation of a Telegram <=> IRC bridge for use with any IRC channel and Telegram group
https://docs.teleirc.com/
GNU General Public License v3.0
138 stars 46 forks source link

A member leaving the Telegram group causes unhandled promise rejection #78

Closed icflournoy closed 5 years ago

icflournoy commented 5 years ago

Summary

When a member of a Telegram group leaves the group teleirc tries to evaluate https://github.com/RITlug/teleirc/blob/e81ff0bdb23de46559ba985c02aa5677d3b36bd0/lib/TeleIrc.js#L333 resulting in the following trace being thrown:

Unhandled rejection ReferenceError: teleirc is not defined
    at TeleIrc.handleTelegramMsg (/home/icflournoy/dev/RITlug/teleirc/lib/TeleIrc.js:335:44)
    at TelegramBot.emit (/home/icflournoy/dev/RITlug/teleirc/node_modules/eventemitter3/index.js:116:35)
    at TelegramBot.processUpdate (/home/icflournoy/dev/RITlug/teleirc/node_modules/node-telegram-bot-api/lib/telegram.js:120:14)
    at /home/icflournoy/dev/RITlug/teleirc/node_modules/node-telegram-bot-api/lib/telegramPolling.js:59:17
    at Array.forEach (native)
    at /home/icflournoy/dev/RITlug/teleirc/node_modules/node-telegram-bot-api/lib/telegramPolling.js:56:17
    at tryCatcher (/home/icflournoy/dev/RITlug/teleirc/node_modules/request-promise/node_modules/bluebird/js/main/util.js:26:23)
    at Promise._settlePromiseFromHandler (/home/icflournoy/dev/RITlug/teleirc/node_modules/request-promise/node_modules/bluebird/js/main/promise.js:510:31)
    at Promise._settlePromiseAt (/home/icflournoy/dev/RITlug/teleirc/node_modules/request-promise/node_modules/bluebird/js/main/promise.js:584:18)
    at Promise._settlePromises (/home/icflournoy/dev/RITlug/teleirc/node_modules/request-promise/node_modules/bluebird/js/main/promise.js:700:14)
    at Async._drainQueue (/home/icflournoy/dev/RITlug/teleirc/node_modules/request-promise/node_modules/bluebird/js/main/async.js:123:16)
    at Async._drainQueues (/home/icflournoy/dev/RITlug/teleirc/node_modules/request-promise/node_modules/bluebird/js/main/async.js:133:10)
    at Immediate.Async.drainQueues (/home/icflournoy/dev/RITlug/teleirc/node_modules/request-promise/node_modules/bluebird/js/main/async.js:15:14)
    at runCallback (timers.js:672:20)
    at tryOnImmediate (timers.js:645:5)
    at processImmediate [as _immediateCallback] (timers.js:617:5)

I have tested using both the default configuration and a custom configuration. default

SHOW_ACTION_MESSAGE=true
SHOW_JOIN_MESSAGE=false
SHOW_KICK_MESSAGE=true
SHOW_LEAVE_MESSAGE=false

all-enabled

SHOW_ACTION_MESSAGE=true
SHOW_JOIN_MESSAGE=true
SHOW_KICK_MESSAGE=true
SHOW_LEAVE_MESSAGE=true

It's an easy fix I can open a PR for.

thenaterhood commented 5 years ago

@xforever1313 did you happen to hit this in #80 ?

xforever1313 commented 5 years ago

@thenaterhood - I think so, when its merged we can probably close this as "Overcome By Events".

jwflory commented 5 years ago

I just manually tested this in #90 with @icflournoy's config and confirmed it's working in #ritlug-teleirc. I'll update the PR to also close this issue.