def _parse_album_arguments(bot, args: tuple, user: User): """ Parse arguments to get how an album will be sorted and filtered. The parsed arguments are stored in the user's last used arguments dictionary. :param args: Tuple of arguments. :param user: User who requested the album. """ # Add user to last used argument dictionary if they don't already exist. if user.id not in _last_user_args: _last_user_args[user.id] = _get_new_user_args() # Get values of user's last album preview. page = _last_user_args[user.id]['page'] filters = _last_user_args[user.id]['filters'] sort = _last_user_args[user.id]['sort'] # FIXME This var doesn't seem to have any use. order = _last_user_args[user.id]['order'] new_filters = parse_arguments(bot, args, True) if _has_filter(new_filters): filters = new_filters # Parse other arguments for arg in args: arg = arg.lower() # Reset filter if "all" is given if arg == 'all': filters = { 'name': [], 'i_band': [], 'i_school_year': [], 'i_attribute': [], 'i_rarity': [], 'instrument': [] } # Parse sort if arg in SORTS: sort = arg page = 0 # Parse sort order if arg in ('+', '-'): # FIXME This var doesn't seem to have any use. order = arg # Parse if page number if _is_number(arg): page = int(arg) - 1 _last_user_args[user.id]['page'] = page _last_user_args[user.id]['filters'] = filters _last_user_args[user.id]['sort'] = sort
def __init__(self, bot: HahaNo4Star, user: User, box: str = "honour", count: int = 1, guaranteed_sr: bool = False, args: tuple = ()): """ Constructor for a Play. :param session_manager: the SessionManager. :param user: User requesting play. :param box: Box to play in (star). :param count: Number of cards in play. :param guaranteed_sr: Whether the play will roll at least one SR. :param args: Play command arguments """ self.results = [] self._bot = bot self._user = user self._box = box self._count = count self._guaranteed_sr = guaranteed_sr self._args = parse_arguments(self._bot, args, True)
def __init__(self, bot: HahaNoUR, user: User, box: str = "honour", count: int = 1, guaranteed_sr: bool = False, args: tuple = ()): """ Constructor for a Scout. :param session_manager: the SessionManager. :param user: User requesting scout. :param box: Box to scout in (honour, regular, coupon). :param count: Number of cards in scout. :param guaranteed_sr: Whether the scout will roll at least one SR. :param args: Scout command arguments """ self.results = [] self._bot = bot self._user = user self._box = box self._count = count self._guaranteed_sr = guaranteed_sr self._args = parse_arguments(args, True)