async def attempt_delivery(self, location, package): try: if location is None: return False if package.guild_id is None: jumplink_available = "Unavailable" else: jumplink_available = MessageUtils.construct_jumplink(package.guild_id, package.channel_id, package.message_id) mode = "dm" if isinstance(location, User) else "channel" now = datetime.utcfromtimestamp(time.time()) send_time = datetime.utcfromtimestamp(package.send.timestamp()) parts = { "date": send_time.strftime('%c'), "timediff": server_info.time_difference(now, send_time, None if isinstance(location, User) else location.guild.id), "now_date": now.strftime('%c'), "jump_link": jumplink_available, "recipient": None if isinstance(location, User) else (await Utils.get_user(package.user_id)).mention } parcel = Translator.translate(f"reminder_delivery_{mode}", None if isinstance(location, User) else location, **parts) content = f"```\n{package.to_remind}\n```" try: if len(parcel) + len(content) < 2000: await location.send(parcel + content) else: await location.send(parcel) await location.send(content) except (Forbidden, NotFound): return False else: return True except Exception as ex: await TheRealGearBot.handle_exception("Reminder delivery", self.bot, ex, None, None, None, location, package) return False
async def attempt_delivery(self, location, package): try: if location is None: return False tloc = None if isinstance(location, User) or isinstance( location, DMChannel) else location now = datetime.datetime.fromtimestamp(time.time()) send_time = datetime.datetime.fromtimestamp(package.send) desc = Translator.translate( 'reminder_delivery', tloc, date=send_time.strftime('%c'), timediff=server_info.time_difference( now, send_time, tloc)) + f"```\n{package.to_remind}\n```" desc = Utils.trim_message(desc, 2048) embed = Embed(color=16698189, title=Translator.translate('reminder_delivery_title', tloc), description=desc) if location.id == package.channel_id or package.guild_id == '@me': ref = MessageReference(guild_id=package.guild_id if package.guild_id != '@me' else None, channel_id=package.channel_id, message_id=package.message_id, fail_if_not_exists=False) else: ref = None embed.add_field( name=Translator.translate('jump_link', tloc), value= f'[Click me!]({assemble_jumplink(package.guild_id, package.channel_id, package.message_id)})' ) try: await location.send(embed=embed, reference=ref) except (Forbidden, NotFound): return False else: return True except Exception as ex: await TheRealGearBot.handle_exception("Reminder delivery", self.bot, ex, None, None, None, location, package) return False