def add(name, episode=None): """ ret.name :str """ # action add # add bangumi by a list of bangumi name # result = {} logger.debug('add name: {} episode: {}'.format(name, episode)) if not Bangumi.get_updating_bangumi(): website.fetch(save=True, group_by_weekday=False) try: bangumi_obj = Bangumi.fuzzy_get(name=name) except Bangumi.DoesNotExist: result = {'status': 'error', 'message': '{0} not found, please check the name'.format(name)} return result followed_obj, this_obj_created = Followed.get_or_create(bangumi_name=bangumi_obj.name, defaults={'status': STATUS_FOLLOWED}) if not this_obj_created: if followed_obj.status == STATUS_FOLLOWED: result = {'status': 'warning', 'message': '{0} already followed'.format(bangumi_obj.name)} return result else: followed_obj.status = STATUS_FOLLOWED followed_obj.save() Filter.get_or_create(bangumi_name=name) bangumi_data, _ = website.get_maximum_episode(bangumi_obj, subtitle=False, max_page=MAX_PAGE) followed_obj.episode = bangumi_data['episode'] if episode is None else episode followed_obj.save() result = {'status': 'success', 'message': '{0} has been followed'.format(bangumi_obj.name)} logger.debug(result) return result
def add(name, episode=None): """ ret.name :str """ # action add # add bangumi by a list of bangumi name # result = {} logger.debug('add name: {} episode: {}'.format(name, episode)) if not Bangumi.get_updating_bangumi(): website.fetch(save=True, group_by_weekday=False) try: bangumi_obj = Bangumi.get(name=name) except Bangumi.DoesNotExist: result = { 'status': 'error', 'message': '{0} not found, please check the name'.format(name) } return result followed_obj, this_obj_created = Followed.get_or_create( bangumi_name=bangumi_obj.name, defaults={'status': STATUS_FOLLOWED}) if not this_obj_created: if followed_obj.status == STATUS_FOLLOWED: result = { 'status': 'warning', 'message': '{0} already followed'.format(bangumi_obj.name) } return result else: followed_obj.status = STATUS_FOLLOWED followed_obj.save() Filter.get_or_create(bangumi_name=name) bangumi_data, _ = website.get_maximum_episode(bangumi_obj, subtitle=False, max_page=MAX_PAGE) followed_obj.episode = bangumi_data[ 'episode'] if episode is None else episode followed_obj.save() result = { 'status': 'success', 'message': '{0} has been followed'.format(bangumi_obj.name) } logger.debug(result) return result
def add(name: str, episode: int = None) -> ControllerResult: """ ret.name :str """ # action add # add bangumi by a list of bangumi name logger.debug("add name: %s episode: %d", name, episode) if not Bangumi.get_updating_bangumi(): website.fetch(save=True, group_by_weekday=False) try: bangumi_obj = Bangumi.fuzzy_get(name=name) except Bangumi.DoesNotExist: result = { "status": "error", "message": f"{name} not found, please check the name", } return result followed_obj, this_obj_created = Followed.get_or_create( bangumi_name=bangumi_obj.name, defaults={"status": STATUS_FOLLOWED}) if not this_obj_created: if followed_obj.status == STATUS_FOLLOWED: result = { "status": "warning", "message": f"{bangumi_obj.name} already followed", } return result else: followed_obj.status = STATUS_FOLLOWED followed_obj.save() Filter.get_or_create(bangumi_name=name) max_episode, _ = website.get_maximum_episode(bangumi_obj, max_page=int(MAX_PAGE)) followed_obj.episode = max_episode if episode is None else episode followed_obj.save() result = { "status": "success", "message": f"{bangumi_obj.name} has been followed", } logger.debug(result) return result