| @@ -0,0 +1,24 @@ | |||
| from ananas import PineappleBot, html_strip_tags, reply | |||
| class PingBot(PineappleBot): | |||
| def start(self): | |||
| self.notifiees = self.config.notify.split(',') | |||
| self.notifiees_str = ", ".join(self.notifiees) | |||
| print(f"Now monitoring {self.config.monitor}; pinging {self.notifiees_str}.") | |||
| @reply | |||
| def post_response(self, mention, user): | |||
| petitioner = user["acct"] | |||
| if petitioner != self.config.monitor: # Prevent self-replies | |||
| msg = mention["uri"] | |||
| if self.config.full_message: | |||
| msg += f"\n\n{html_strip_tags(mention['content'])}" | |||
| visibility = 'direct' | |||
| # This is for logging purposes. You may wish to redirect this into a text log. | |||
| print(f"Received a reply from {petitioner}. Pinging {self.notifiees_str}.") | |||
| notify_list = " ".join(self.notifiees) | |||
| status = f"{notify_list} {self.monitor} has received a new message from {petitioner}:\n\n{msg}" | |||
| if len(status) > 450: # don't let the post get too long! | |||
| status = status[:450] + " ...(message continues)" | |||
| self.mastodon.status_post(status, visibility=visibility) | |||