Пример #1
0
def youtube_search(request):
    context = dict()
    q = request.GET.get('q')
    if q:
        data = youtube.search(q)
        for item in data['items']:
            Video.objects.created_from_search_result(item)

        # 검색어가 띄워쓰기로 구분되어 있는 경우 모든 검색어를 포함하는 경우(and) / regex 사용
        re_pattern = ''.join(['(?=.*{})'.format(item) for item in q.split()])
        # re_pattern = (?=.*검색어1)(?=.*검색어2)(?=.*검색어3)...
        videos = Video.objects.filter(
            Q(title__iregex=re_pattern) | Q(description__iregex=re_pattern))

        # videos = Video.objects.filter(title__contains=q)  # 제목에 검색어가 포함되는 경우
        # videos = Video.objects.filter(Q(title__contains=q) | Q(description__contains=q)) # 제목과 설명에 검색어가 포함되는 경우

        # videos = Video.objects.all() # 검색어가 띄워쓰기로 구분되어 있는 경우 모든 검색어를 포함하는 경우(and) / 원초적인 방법
        # for cur_q in q.split(' '):
        #     videos.filter(title__contains=cur_q)
        # videos.filter(title__contains=검색어1).filter(title__contains=검색어2).filter(title__contains=검색어3)....

        # # 검색어가 띄워쓰기로 구분되어 있는 경우 검색어중 하나라도 포함하는 경우(or) / regex 사용
        # re_pattern = '|'.join(['({})'.format(item) for item in q.split()])
        # # re_pattern = (검색어1)|(검색어2)|(검색어3)...
        # videos = Video.objects.filter(title__regex='{}'.format(re_pattern))
        context['videos'] = videos
    return render(request, 'post/youtube_search.html', context=context)
Пример #2
0
def youtube_search(request):
    # YouTube 검색부분을 패키지화

    context = dict()
    q = request.GET.get('q')
    if q:
        data = youtube.search(q)
        for item in data['items']:
            Video.objects.create_from_search_reslt(item)
        re_pattern = ''.join(['(?=.*{})'.format(item) for item in q.split()])
        videos = Video.objects.filter(
            Q(title__iregex=re_pattern) | Q(description__iregex=re_pattern))
        context['videos'] = videos
    return render(request, 'post/youtube_search.html', context)
Пример #3
0
def youtube_search(request, q=None):
    context = dict()
    q = request.GET.get('q')

    if q:
        data = youtube.search(q)
        videos = []
        for item in data['items']:
            videos.append(Video.objects.create_from_search_result(item))
        # re_pattern = ''.join(['(?=.*{}'.format(item) for item in q.split()])
        # videos = Video.objects.filter(
        #     Q(youtube_title__iregex=re_pattern) |
        #     Q(youtube_description__iregex=re_pattern)
        # )
        context['videos'] = videos
    return render(request, 'post/youtube_search.html', context)
Пример #4
0
def youtube_search(request):
    q = request.GET.get('q')
    context = dict()
    if q:
        data = youtube.search(request, q)
        for item in data['items']:
            Video.objects.create_from_search_result(item)
        re_pattern = '|'.join(['({})'.format(item) for item in q.split()])
        videos = Video.objects.filter(title__regex=r'{}'.format(re_pattern))
        context = {
            'videos': videos,
            're_pattern': re_pattern,
        }
    # q값이 없을 때
    else:
        context = {}
    return render(request, 'post/youtube_search.html', context)
Пример #5
0
def youtube_search(request, q=None):
    """
    유튜브 검색을 라이브러리 형태로 정리
    """
    context = dict()
    q = request.GET.get('q')
    if q:

        data = youtube.search(q)

        for item in data['items']:
            Video.objects.create_from_search_result(item)
        re_pattern = ''.join(['(?=.*{})'.format(item) for item in q.split()])
        videos = Video.objects.filter(
            Q(title__iregex=r'{}'.format(re_pattern))
            | Q(description__iregex=r'{}'.format(re_pattern)))

        context['videos'] = videos
    return render(request, 'post/youtube_search.html', context)