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

main
rogersun 1 week ago
parent afc311b4aa
commit 3166138c27
  1. 9
      ai/tasks.py
  2. 1
      ai/urls.py
  3. 28
      ai/utils/show_func.py
  4. 14
      ai/views.py

@ -1,7 +1,7 @@
from celery import shared_task from celery import shared_task
from ai.utils.show_process import show_main_process from ai.utils.show_process import show_main_process
from ai.utils.basic_func import clear_lock_func 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) @shared_task(time_limit=18*60, soft_time_limit=18*60)
def ai_show_general(): def ai_show_general():
@ -9,3 +9,10 @@ def ai_show_general():
show_main_process() show_main_process()
print("task success") print("task success")
return True 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

@ -24,4 +24,5 @@ urlpatterns = [
path('clear', clear_lock), path('clear', clear_lock),
path('report', report), path('report', report),
path('report_date', get_report_date_api), path('report_date', get_report_date_api),
path('new_movie', insert_new_movie)
] ]

@ -141,7 +141,33 @@ def get_new_suggestion(cinema, show_date):
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(movie_name=m['cinema_movie_cn_name']).first()
if new_movie is not None: 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: if len(new_movie_list) > 0:
return '\n'.join(new_movie_list) return '\n'.join(new_movie_list)
return None 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

@ -4,7 +4,7 @@ from django.views.decorators.csrf import csrf_exempt
import json import json
from ai.models import * from ai.models import *
from ai.utils.show_process import show_main_process 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 * from ai.utils.basic_func import *
@ -141,3 +141,15 @@ 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
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})

Loading…
Cancel
Save