예제 #1
0
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
예제 #2
0
 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)
예제 #3
0
 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)