增加自动获取未来7天新片的功能

main
rogersun 1 week ago
parent 3166138c27
commit 20c33f7625
  1. 2
      ai/models.py
  2. 27
      ai/utils/show_func.py
  3. 13
      ai/views.py

@ -158,6 +158,8 @@ class MovieHotInfo(models.Model):
class NewMovieSuggestion(models.Model): class NewMovieSuggestion(models.Model):
id = models.AutoField(primary_key=True) id = models.AutoField(primary_key=True)
cinema = models.CharField(max_length=50)
zz_code = models.CharField(max_length=50)
movie_zz_code = models.CharField(max_length=50) movie_zz_code = models.CharField(max_length=50)
movie_name = models.CharField(max_length=50) movie_name = models.CharField(max_length=50)
suggestion = models.CharField(max_length=50) suggestion = models.CharField(max_length=50)

@ -139,7 +139,7 @@ def get_new_suggestion(cinema, show_date):
movie = data.get_movie_info(show_date, 'new') movie = data.get_movie_info(show_date, 'new')
new_movie_list = [] new_movie_list = []
for m in movie: for m in movie:
new_movie = NewMovieSuggestion.objects.filter(movie_name=m['cinema_movie_cn_name']).first() new_movie = NewMovieSuggestion.objects.filter(Q(movie_name=m['cinema_movie_cn_name']) & Q(zz_code=cinema.zz_code)).first()
if new_movie is not None: if new_movie is not None:
new_movie_list.append( new_movie_list.append(
f"\t{m['cinema_movie_cn_name']}》的不同制式版本总计建议排片占比为{new_movie.suggestion}%;") f"\t{m['cinema_movie_cn_name']}》的不同制式版本总计建议排片占比为{new_movie.suggestion}%;")
@ -148,9 +148,16 @@ def get_new_suggestion(cinema, show_date):
return None return None
def get_new_movie(): def get_new_movie(start_date='today'):
cinema_list = TestCinema.objects.all() cinema_list = TestCinema.objects.all()
date_list = [datetime.datetime.strftime(datetime.datetime.today() + datetime.timedelta(days=i), '%Y-%m-%d') for i in start_date_obj = datetime.datetime.today()
if start_date != 'today':
try:
start_date_obj = datetime.datetime.strptime(start_date, '%Y-%m-%d')
except ValueError:
print(start_date)
return False
date_list = [datetime.datetime.strftime(start_date_obj + datetime.timedelta(days=i), '%Y-%m-%d') for i in
range(1, 8)] range(1, 8)]
new_dict = dict() new_dict = dict()
new_data = False new_data = False
@ -162,11 +169,15 @@ def get_new_movie():
new_dict[cinema.name][date_val] = [] new_dict[cinema.name][date_val] = []
for new in new_list: for new in new_list:
print(new) print(new)
if NewMovieSuggestion.objects.filter(movie_zz_code=new['cinema_movie_num']).first() is None: if NewMovieSuggestion.objects.filter(
NewMovieSuggestion.objects.create(movie_zz_code=new['cinema_movie_num'], Q(movie_zz_code=new['cinema_movie_num']) & Q(zz_code=cinema.zz_code)).first() is None:
movie_name=new['cinema_movie_cn_name'], NewMovieSuggestion.objects.create(
suggestion=0, cinema=cinema.name,
delete_flag=True) zz_code=cinema.zz_code,
movie_zz_code=new['cinema_movie_num'],
movie_name=new['cinema_movie_cn_name'],
suggestion=0,
delete_flag=True)
new_dict[cinema.name][date_val].append( new_dict[cinema.name][date_val].append(
{'movie_zz_code': new['cinema_movie_num'], 'movie_name': new['cinema_movie_cn_name']}) {'movie_zz_code': new['cinema_movie_num'], 'movie_name': new['cinema_movie_cn_name']})
new_data = True new_data = True

@ -142,14 +142,21 @@ def get_report_date_api(request):
print(result_dict) print(result_dict)
return JsonResponse(result_dict, json_dumps_params={'ensure_ascii': False}) return JsonResponse(result_dict, json_dumps_params={'ensure_ascii': False})
@csrf_exempt @csrf_exempt
def insert_new_movie(request): def insert_new_movie(request):
result = get_new_movie() start = request.GET.get('start')
result = get_new_movie(start)
if result is None:
data = 'None'
elif result is False:
data = '参数start格式错误,示例2026-07-11'
else:
data = result
result_dict = { result_dict = {
'status': 'success', 'status': 'success',
'message': '成功', 'message': '成功',
'data': 'None' if result is None else result, 'data': data
} }
print(result_dict) print(result_dict)
return JsonResponse(result_dict, json_dumps_params={'ensure_ascii': False}) return JsonResponse(result_dict, json_dumps_params={'ensure_ascii': False})

Loading…
Cancel
Save