Instead, we can use the undocumented "im.info" call to find the same
thing. Additionally, we can use the "is_open" value as the result of
the is_member() thread function.
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
This already existed, so I just had to define the api calls to use.
Unfortunately, groups return a similar group object so I also have to
define what return object needs to be looked up. Additionally, IMs have
an extra "return_im" object that needs to be passed to get the full
channel info.
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
Rather than having each thread type define its own mark method, let's
instead have them tell us what api call to use to avoid duplicating
work.
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
Rather than having each thread type define its own fetch history method,
let's instead have them tell us what api call to use to avoid
duplicating work
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
So that we can mark posts from bots as read. Otherwise we could end up
sending empty messages until another human posts.
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
It's not enough to check for None, we also need to check that there is
actually text in the message.
Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
Don't create a message object for posts without text. Additionally, use
the accepted character replacements for unicode characters.
Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>