From 3166138c273273b8f9c4f6b04516780d0af9a73c Mon Sep 17 00:00:00 2001 From: rogersun Date: Fri, 10 Jul 2026 09:45:15 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E8=87=AA=E5=8A=A8=E8=8E=B7?= =?UTF-8?q?=E5=8F=96=E6=9C=AA=E6=9D=A57=E5=A4=A9=E6=96=B0=E7=89=87?= =?UTF-8?q?=E7=9A=84=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ai/tasks.py | 9 ++++++++- ai/urls.py | 1 + ai/utils/show_func.py | 28 +++++++++++++++++++++++++++- ai/views.py | 14 +++++++++++++- 4 files changed, 49 insertions(+), 3 deletions(-) diff --git a/ai/tasks.py b/ai/tasks.py index 03d21ea..3a8fa9b 100644 --- a/ai/tasks.py +++ b/ai/tasks.py @@ -1,7 +1,7 @@ from celery import shared_task from ai.utils.show_process import show_main_process from ai.utils.basic_func import clear_lock_func - +from ai.utils.show_func import get_new_movie @shared_task(time_limit=18*60, soft_time_limit=18*60) def ai_show_general(): @@ -9,3 +9,10 @@ def ai_show_general(): show_main_process() print("task success") return True + + +@shared_task(time_limit=18*60, soft_time_limit=18*60) +def get_new_movie_task(): + get_new_movie() + print("task success") + return True \ No newline at end of file diff --git a/ai/urls.py b/ai/urls.py index 87c9cea..eff10f0 100644 --- a/ai/urls.py +++ b/ai/urls.py @@ -24,4 +24,5 @@ urlpatterns = [ path('clear', clear_lock), path('report', report), path('report_date', get_report_date_api), + path('new_movie', insert_new_movie) ] diff --git a/ai/utils/show_func.py b/ai/utils/show_func.py index b931574..f3db04e 100644 --- a/ai/utils/show_func.py +++ b/ai/utils/show_func.py @@ -141,7 +141,33 @@ def get_new_suggestion(cinema, show_date): for m in movie: new_movie = NewMovieSuggestion.objects.filter(movie_name=m['cinema_movie_cn_name']).first() if new_movie is not None: - new_movie_list.append(f"\t《{m['cinema_movie_cn_name']}》的不同制式版本总计建议至少排{new_movie.suggestion}场;") + new_movie_list.append( + f"\t《{m['cinema_movie_cn_name']}》的不同制式版本总计建议排片占比为{new_movie.suggestion}%;") if len(new_movie_list) > 0: return '\n'.join(new_movie_list) return None + + +def get_new_movie(): + cinema_list = TestCinema.objects.all() + date_list = [datetime.datetime.strftime(datetime.datetime.today() + datetime.timedelta(days=i), '%Y-%m-%d') for i in + range(1, 8)] + new_dict = dict() + new_data = False + for cinema in cinema_list: + data = GetData(cinema) + new_dict[cinema.name] = dict() + for date_val in date_list: + new_list = data.get_movie_info(date_val, 'new') + new_dict[cinema.name][date_val] = [] + for new in new_list: + print(new) + if NewMovieSuggestion.objects.filter(movie_zz_code=new['cinema_movie_num']).first() is None: + NewMovieSuggestion.objects.create(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( + {'movie_zz_code': new['cinema_movie_num'], 'movie_name': new['cinema_movie_cn_name']}) + new_data = True + return None if new_data == False else new_dict diff --git a/ai/views.py b/ai/views.py index c95aa90..ff3ea60 100644 --- a/ai/views.py +++ b/ai/views.py @@ -4,7 +4,7 @@ from django.views.decorators.csrf import csrf_exempt import json from ai.models import * from ai.utils.show_process import show_main_process -from ai.utils.show_func import get_cinema_show_result_func +from ai.utils.show_func import * from ai.utils.basic_func import * @@ -141,3 +141,15 @@ def get_report_date_api(request): } print(result_dict) return JsonResponse(result_dict, json_dumps_params={'ensure_ascii': False}) + +@csrf_exempt +def insert_new_movie(request): + result = get_new_movie() + result_dict = { + 'status': 'success', + 'message': '成功', + 'data': 'None' if result is None else result, + } + print(result_dict) + return JsonResponse(result_dict, json_dumps_params={'ensure_ascii': False}) +