log tv episode change
This commit is contained in:
parent
eedbbf8d0e
commit
dba06e7e70
3 changed files with 17 additions and 7 deletions
|
@ -150,8 +150,7 @@ class IMDB(AbstractSite):
|
|||
return episodes
|
||||
|
||||
@staticmethod
|
||||
def fetch_episodes_for_season(season_uuid):
|
||||
season = TVSeason.get_by_url(season_uuid)
|
||||
def fetch_episodes_for_season(season):
|
||||
if not season.season_number or not season.imdb:
|
||||
_logger.warning(f"season {season} is missing season number or imdb id")
|
||||
return
|
||||
|
|
|
@ -190,25 +190,25 @@ class IMDBTestCase(TestCase):
|
|||
season = SiteManager.get_site_by_url(t_url).get_resource_ready().item
|
||||
self.assertIsNotNone(season)
|
||||
self.assertIsNone(season.season_number)
|
||||
IMDB.fetch_episodes_for_season(season.uuid)
|
||||
IMDB.fetch_episodes_for_season(season)
|
||||
# no episodes fetch bc no season number
|
||||
episodes = list(season.episodes.all().order_by("episode_number"))
|
||||
self.assertEqual(len(episodes), 0)
|
||||
# set season number and fetch again
|
||||
season.season_number = 1
|
||||
season.save()
|
||||
IMDB.fetch_episodes_for_season(season.uuid)
|
||||
IMDB.fetch_episodes_for_season(season)
|
||||
episodes = list(season.episodes.all().order_by("episode_number"))
|
||||
self.assertEqual(len(episodes), 2)
|
||||
# fetch again, no duplicated episodes
|
||||
IMDB.fetch_episodes_for_season(season.uuid)
|
||||
IMDB.fetch_episodes_for_season(season)
|
||||
episodes2 = list(season.episodes.all().order_by("episode_number"))
|
||||
self.assertEqual(episodes, episodes2)
|
||||
# delete one episode and fetch again
|
||||
episodes[0].delete()
|
||||
episodes3 = list(season.episodes.all().order_by("episode_number"))
|
||||
self.assertEqual(len(episodes3), 1)
|
||||
IMDB.fetch_episodes_for_season(season.uuid)
|
||||
IMDB.fetch_episodes_for_season(season)
|
||||
episodes4 = list(season.episodes.all().order_by("episode_number"))
|
||||
self.assertEqual(len(episodes4), 2)
|
||||
self.assertEqual(episodes[1], episodes4[1])
|
||||
|
|
|
@ -13,6 +13,7 @@ from .forms import *
|
|||
from .search.views import *
|
||||
from journal.models import update_journal_for_merged_item
|
||||
from common.utils import get_uuid_or_404
|
||||
from auditlog.context import set_actor
|
||||
|
||||
_logger = logging.getLogger(__name__)
|
||||
|
||||
|
@ -219,11 +220,21 @@ def fetch_tvepisodes(request, item_path, item_uuid):
|
|||
if item.class_name != "tvseason" or not item.imdb or item.season_number is None:
|
||||
raise BadRequest()
|
||||
item.log_action({"!fetch_tvepisodes": ["", ""]})
|
||||
django_rq.get_queue("crawl").enqueue(IMDB.fetch_episodes_for_season, item.uuid)
|
||||
django_rq.get_queue("crawl").enqueue(
|
||||
fetch_episodes_for_season_task, item.uuid, request.user
|
||||
)
|
||||
messages.add_message(request, messages.INFO, _("已开始更新单集信息"))
|
||||
return redirect(item.url)
|
||||
|
||||
|
||||
def fetch_episodes_for_season_task(item_uuid, user):
|
||||
with set_actor(user):
|
||||
season = Item.get_by_url(item_uuid)
|
||||
episodes = season.episode_uuids
|
||||
IMDB.fetch_episodes_for_season(season)
|
||||
season.log_action({"!fetch_tvepisodes": [episodes, season.episode_uuids]})
|
||||
|
||||
|
||||
@login_required
|
||||
def merge(request, item_path, item_uuid):
|
||||
if request.method != "POST":
|
||||
|
|
Loading…
Add table
Reference in a new issue