def disp_rumors(self, caller, rumors, add_heard=True): table = evtable.EvTable("{w#{n", "{w%s{n" % self.key.capitalize(), border="cells", width=78, align="l", justify=True) x = 0 heard_rumors = caller.ndb.heard_rumors or [] week = get_week() for rumor in rumors: now = time_now() if (now - rumor.db_date_created).days > RUMOR_LIFETIME: continue x += 1 table.add_row(x, rumor.db_message) if add_heard and rumor not in heard_rumors: heard_rumors.append(rumor) if add_heard: caller.ndb.heard_rumors = heard_rumors msg = "{w%s{n" % self.key.capitalize().center(78) msg += "\n" msg += str(table) stories = AssignedTask.objects.filter(finished=True, week__gte=week-3, observer_text__isnull=False) if stories: msg += "\n" msg += "{wOther Rumors{n".center(78) msg += "\n" table = evtable.EvTable("{wRumored Story #{n", "{wWeek{n", border="cells", width=78) for story in stories: table.add_row(story.id, story.week) msg += str(table) return arx_more.msg(caller, msg, justify_kwargs=False)
def disp_rumors(self, caller, rumors, add_heard=True): table = evtable.EvTable("{w#{n", "{wTopic{n", "{w%s{n" % self.key.capitalize(), border="cells", width=78, align="l", justify=True) x = 0 week = get_week() heard_rumors = caller.ndb.heard_rumors or [] for rumor in rumors: x += 1 player = rumor.db_receivers_players.all() if not player: continue player = player[0].key.capitalize()[:12] table.add_row(x, player, rumor.db_message) if add_heard and rumor not in heard_rumors: heard_rumors.append(rumor) table.reformat_column(0, width=5) table.reformat_column(1, width=12) table.reformat_column(2, width=61) if add_heard: caller.ndb.heard_rumors = heard_rumors msg = "{w%s{n" % self.key.capitalize().center(78) msg += "\n" msg += str(table) stories = AssignedTask.objects.filter(finished=True, week__gte=week-3, observer_text__isnull=False) if stories: msg += "\n" msg += "{wOther Rumors{n".center(78) msg += "\n" table = evtable.EvTable("{wRumored Story #{n", "{wWeek{n", border="cells", width=78) for story in stories: table.add_row(story.id, story.week) msg += str(table) return arx_more.msg(caller, msg, justify_kwargs=False)
def cleanup_old_praises(): """Clean up old praises""" try: from world.dominion.models import PraiseOrCondemn qs = PraiseOrCondemn.objects.filter(week__lte=get_week() - 4) qs.delete() except Exception as err: traceback.print_exc() print("Error in cleaning praises: %s" % err)
def get_current_praises_and_condemns(self): """Current praises given by this player character""" from server.utils.arx_utils import get_week return self.Dominion.praises_given.filter(week=get_week())