Module telereddit.linker

Linker class which handles all telereddit requests.

Classes

class Linker (chat_id: int)

Handle a single telereddit request.

Gets instanciated at every telereddit request. (new message, messsage callback, etc.)

Attributes

bot : Bot
python-telegram-bot's Bot instance: initialized by set_bot().
chat_id : Int
Telegram's chat id to which to send the message.
args : dict
Args to construct the Telegram message.

Class variables

var bot : telegram.bot.Bot

Static methods

def set_bot(bot: telegram.bot.Bot) ‑> NoneType

Set the python-telegram-bot's Bot instance for the Linker object.

This should be set only once, at the package startup.

Note: This needs to be set before starting the bot loop.

Parameters

bot : Bot
The bot instance provided by python-telegram-bot

Methods

def get_args(self, override_dict: Union[dict, NoneType] = None) ‑> dict

Get the args parameters potentially overriding some of them.

Parameters

override_dict : dict

(Default value = {})

Args to override, with key as argument key and value as override value.

Returns

args

def send_random_post(self, subreddit: str) ‑> NoneType

Send a random post to the chat from the given subreddit.

Potentially catch Telereddit exceptions.

Parameters

subreddit : str

Valid subreddit name.

Note: This should be a r/ prefixed subreddit name.

def send_post_from_url(self, post_url: str) ‑> NoneType

Try to send the reddit post relative to post_url to the chat.

Potentially catch Telereddit exceptions.

Parameters

post_url : str
Reddit share link of the post.
def send_post(self, post_url: str, from_url: bool = False) ‑> NoneType

Send the reddit post relative to post_url to the chat.

This is the core functionality of Linker.

Parameters

post_url : str
Reddit share link of the post.
from_url : Boolean

(Default value = False)

Indicates whether the post url has been received from the chat or from the random post.

def edit_result(self, message: telegram.message.Message) ‑> NoneType

Edit the given message with a new post from that subreddit.

Edit the keyboard markup to give the user the ability to edit or confirm the message.

Parameters

message : Message
python-telegram-bot's instance of the Telegram message.
def edit_random_post(self, message: telegram.message.Message, subreddit: str) ‑> NoneType

Edit the current Telegram message with another random Reddit post.

Parameters

message : Message
python-telegram-bot's instance of the Telegram message.
subreddit : str
Subreddit from which to retrieve the random post.
def delete_message(self, message: telegram.message.Message)

Delete a bot's message from the chat.

Parameters

message : Message
python-telegram-bot's instance of the message object.