|
|
@@ -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) |