Пример #1
0
    def get(self, request):
        session_id = request.session.get('token') # We do not assign here the session
        last_activity = request.session.get('last_activity')
        request.session['last_activity'] = str(timezone.now()) # Update activity time

        # Get visited times
        visited_times = request.session.get('visited', 0)
        if visited_times == 0:
            request.session['visited'] = 0
        request.session['visited'] += 1
        visited_times = request.session['visited']

        # print(request.session.get_expiry_age()) To check if expiry age has been updated

        return JsonResponse({
            'user_ip': client_ip(request),
            'session_id': session_id,
            'visited_times': visited_times,
            'last_timestamp': last_activity,
            'cookies_data': {
                'cookie_consent_status': request.COOKIES.get('cookieconsent_status', None),
                'session_id': request.COOKIES.get('sessionid', None)

            }
        })
Пример #2
0
def getUsrHost(request):
    '''
        @function: get usr and ip together
        @paras:
        @returns: (usr, ip) tuple
    '''
    return getUsr(request), client_ip(request)
Пример #3
0
def post_ip(request, pk):
    post = get_object_or_404(Board, pk=pk)
    # posts = Board.objects.all()
    ip = client_ip(request)

    try:
        # ip주소와 게시글 번호로 기록을 조회함
        hits = HitCount.objects.get(ip=ip, post=post)
    except Exception as e:
        # 처음 게시글을 조회한 경우엔 조회 기록이 없음
        print(e)
        hits = HitCount.objects.create(ip=ip, post_id=post.id)
        Board.objects.filter(pk=pk).update(hits=post.hits + 1)
        hits.save()
        # 상세화면에서 조회수가 바로 바뀌지 않아서 강제로 출력 조회수 +1 시킴
        post.hits = post.hits + 1
    else:
        # 조회 기록은 있으나, 날짜가 다른 경우
        if not hits.date == timezone.now().date():
            # 테스트할 때 사용
            # if not hits.date == timezone.now():
            Board.objects.filter(pk=pk).update(hits=post.hits + 1)
            hits.date = timezone.now()
            hits.save()
            post.hits = post.hits + 1
        # 날짜가 같은 경우
        else:
            print(str(ip) + ' has already hit this post.\n\n')
    return render(request, 'staff/board_detail.html', {'post': post})
Пример #4
0
def getUsrHost(request):
    '''
        @function: get usr and ip together
        @paras:
        @returns: (usr, ip) tuple
    '''
    return getUsr(request), client_ip(request)
Пример #5
0
def webPhising_view(request, cat, name):
    # ip, is_routable = get_client_ip(request, request_header_order=['X_FORWARDED_FOR', 'REMOTE_ADDR'])
    ip = client_ip(request)
    web_objs = get_object_or_404(PhisingWeb, cat_parse=cat, name_parse=name)

    TrackRecord.objects.create(web_load=web_objs, ip_host=ip)

    content = {'product': web_objs}
    return render(request, 'phiser/phiser_view.html', content)
Пример #6
0
def post_hit(request, pk):
    ip_address = client_ip(request)
    post = get_object_or_404(Post, pk=pk)
    post_view_dupe = post.hit_set.filter(ip_address=ip_address)

    if len(post_view_dupe) == 0:
        hit = Hit(post=post, ip_address=ip_address)
        hit.save()

    return HttpResponse("Image", 'Content-Type: image/png')
Пример #7
0
def post(request, slug):
    http_host = request.META['HTTP_HOST']

    if http_host == 'bearblog.dev' or http_host == 'localhost:8000':
        return redirect('/')
    elif 'bearblog.dev' in http_host or 'localhost:8000' in http_host:
        extracted = tldextract.extract(http_host)
        if is_protected(extracted.subdomain):
            return redirect(get_base_root(extracted))

        blog = get_object_or_404(Blog, subdomain=extracted.subdomain)
        root = get_root(extracted, blog.subdomain)
    else:
        blog = get_object_or_404(Blog, domain=http_host)
        root = http_host

    ip_address = client_ip(request)

    if request.method == "POST":
        upvoted_pose = get_object_or_404(Post, blog=blog, slug=slug)
        posts_upvote_dupe = upvoted_pose.upvote_set.filter(
            ip_address=ip_address)

        if len(posts_upvote_dupe) == 0:
            upvote = Upvote(post=upvoted_pose, ip_address=ip_address)
            upvote.save()

    if request.GET.get('preview'):
        all_posts = blog.post_set.annotate(
            upvote_count=Count('upvote')).all().order_by('-published_date')
    else:
        all_posts = blog.post_set.annotate(
            upvote_count=Count('upvote')).filter(
                publish=True).order_by('-published_date')

    post = get_post(all_posts, slug)

    upvoted = False
    for upvote in post.upvote_set.all():
        if upvote.ip_address == ip_address:
            upvoted = True

    content = markdown(post.content, extensions=['fenced_code'])

    return render(
        request, 'post.html', {
            'blog': blog,
            'content': content,
            'post': post,
            'nav': get_nav(all_posts),
            'root': root,
            'meta_description': unmark(post.content)[:160],
            'upvoted': upvoted
        })
Пример #8
0
def discover(request):
    http_host = request.META['HTTP_HOST']

    if not (http_host == 'bearblog.dev' or http_host == 'localhost:8000'):
        raise Http404("No Post matches the given query.")

    if request.method == "POST":
        pk = request.POST.get("pk", "")
        post = get_object_or_404(Post, pk=pk)
        ip_address = client_ip(request)
        posts_upvote_dupe = post.upvote_set.filter(ip_address=ip_address)

        if len(posts_upvote_dupe) == 0:
            upvote = Upvote(post=post, ip_address=ip_address)
            upvote.save()

    posts_per_page = 20
    page = 0
    gravity = 1.8
    if request.GET.get('page'):
        page = int(request.GET.get('page'))
    posts_from = page * posts_per_page
    posts_to = (page * posts_per_page) + posts_per_page

    newest = request.GET.get('newest')
    if newest:
        posts = Post.objects.annotate(upvote_count=Count('upvote'), ).filter(
            publish=True,
            show_in_feed=True,
            published_date__lte=timezone.now()).order_by(
                '-published_date').select_related('blog')[posts_from:posts_to]
    else:
        posts = Post.objects.annotate(
            upvote_count=Count('upvote'),
            score=ExpressionWrapper(
                ((Count('upvote')) /
                 ((Seconds(Now() - F('published_date'))) + 2)**gravity) *
                100000,
                output_field=FloatField())).filter(
                    publish=True,
                    show_in_feed=True,
                    published_date__lte=timezone.now()).order_by(
                        '-score', '-published_date').select_related(
                            'blog')[posts_from:posts_to]

    return render(
        request, 'discover.html', {
            'posts': posts,
            'next_page': page + 1,
            'posts_from': posts_from,
            'gravity': gravity,
            'newest': newest,
        })
Пример #9
0
def homel(request):
    media = Kurs.objects.all()
    tedbr = Eventa.objects.all()
    bloge = Blog.objects.all()

    ipaddr = client_ip(request)

    context = {
        'bloge': bloge,
        'tedbr': tedbr,
        'media': media,
    }

    return render(request, 'home/homes.html', context)
Пример #10
0
def time_zone(request):
    ipaddr = client_ip(request)
    reader = geoip2.database.Reader(
        os.path.join(settings.BASE_DIR,
                     'static\\static_root\\geoip\\GeoLite2-City.mmdb'))
    if ipaddr in (
            '127.0.0.1',
            '192.168.1.10',
    ):
        ipaddr = '109.79.129.171'
    try:
        response = reader.city(ipaddr)
        timezone = response.location.time_zone
    except geoip2.errors.AddressNotFoundError:
        timezone = None
    return timezone
Пример #11
0
def post(request, slug):
    address_info = resolve_address(request)
    if not address_info:
        return redirect('/')

    blog = address_info['blog']

    ip_address = client_ip(request)

    if request.method == "POST":
        upvoted_pose = get_object_or_404(Post, blog=blog, slug=slug)
        posts_upvote_dupe = upvoted_pose.upvote_set.filter(
            ip_address=ip_address)

        if len(posts_upvote_dupe) == 0:
            upvote = Upvote(post=upvoted_pose, ip_address=ip_address)
            upvote.save()

    if request.GET.get('preview'):
        all_posts = blog.post_set.annotate(
            upvote_count=Count('upvote')).all().order_by('-published_date')
    else:
        all_posts = blog.post_set.annotate(
            upvote_count=Count('upvote')).filter(
                publish=True).order_by('-published_date')

    post = get_post(all_posts, slug)

    upvoted = False
    for upvote in post.upvote_set.all():
        if upvote.ip_address == ip_address:
            upvoted = True

    content = mistune.html(post.content)

    return render(
        request, 'post.html', {
            'blog': blog,
            'content': content,
            'post': post,
            'nav': get_nav(all_posts),
            'root': address_info['root'],
            'meta_description': unmark(post.content)[:160],
            'upvoted': upvoted
        })
Пример #12
0
def signup(request):
    if request.method == 'POST':
        form = SignUpForm(request.POST)
        if form.is_valid():
            user = form.save()
            user.refresh_from_db(
            )  # load the profile instance created by the signal
            user.profile.name = form.cleaned_data.get('name')
            user.profile.emailconfirmed = 'True'
            user.profile.ipaddress = client_ip(request)
            user.save()
            raw_password = form.cleaned_data.get('password1')
            user = authenticate(username=user.username, password=raw_password)
            login(request, user)
            return redirect('home')
    else:
        form = SignUpForm()
    return render(request, 'signup.html', {'form': form})
Пример #13
0
def post(request, slug):
    blog = resolve_address(request)
    if not blog:
        return not_found(request)

    ip_address = client_ip(request)

    if request.method == "POST":
        if request.POST.get("pk", ""):
            # Upvoting
            pk = sanitise_int(request.POST.get("pk", ""), 7)
            post = get_object_or_404(Post, pk=pk)
            posts_upvote_dupe = post.upvote_set.filter(ip_address=ip_address)
            if len(posts_upvote_dupe) == 0:
                upvote = Upvote(post=post, ip_address=ip_address)
                upvote.save()

    if request.GET.get('preview'):
        all_posts = blog.post_set.annotate(
            upvote_count=Count('upvote')).all().order_by('-published_date')
    else:
        all_posts = blog.post_set.annotate(
            upvote_count=Count('upvote')).filter(
                publish=True).order_by('-published_date')

    post = get_post(all_posts, slug)

    upvoted = False
    for upvote in post.upvote_set.all():
        if upvote.ip_address == ip_address:
            upvoted = True

    meta_description = post.meta_description or unmark(post.content)[:160]

    return render(
        request, 'post.html', {
            'blog': blog,
            'content': post.content,
            'post': post,
            'root': blog.useful_domain(),
            'meta_description': meta_description,
            'meta_image': post.meta_image or blog.meta_image,
            'upvoted': upvoted
        })
Пример #14
0
def post_new(request):
    blog = get_object_or_404(Blog, user=request.user)
    if not resolve_subdomain(request.META['HTTP_HOST'], blog):
        return redirect(f"http://{get_root(blog.subdomain)}/dashboard")

    if request.method == "POST":
        form = PostForm(request.user, request.POST)
        if form.is_valid():
            post = form.save(commit=False)
            post.blog = blog
            post.published_date = timezone.now()
            post.save()

            upvote = Upvote(post=post, ip_address=client_ip(request))
            upvote.save()
            return redirect(f"/dashboard/posts/{post.id}/")
    else:
        form = PostForm(request.user)
    return render(request, 'dashboard/post_edit.html', {
        'form': form,
        'blog': blog
    })
Пример #15
0
def post(request, slug):
    blog = get_object_or_404(Blog, user=request.user)

    ip_address = client_ip(request)

    if request.method == "POST":
        if request.POST.get("pk", ""):
            # Upvoting
            pk = request.POST.get("pk", "")
            post = get_object_or_404(Post, pk=pk)
            posts_upvote_dupe = post.upvote_set.filter(ip_address=ip_address)
            if len(posts_upvote_dupe) == 0:
                upvote = Upvote(post=post, ip_address=ip_address)
                upvote.save()

    if request.GET.get('preview'):
        all_posts = blog.post_set.annotate(
            upvote_count=Count('upvote')).all().order_by('-published_date')
    else:
        all_posts = blog.post_set.annotate(
            upvote_count=Count('upvote')).filter(
                publish=True).order_by('-published_date')

    post = get_post(all_posts, slug)

    upvoted = False
    for upvote in post.upvote_set.all():
        if upvote.ip_address == ip_address:
            upvoted = True

    return render(
        request, 'post.html', {
            'blog': blog,
            'content': post.content,
            'post': post,
            'root': blog.useful_domain(),
            'upvoted': upvoted
        })
Пример #16
0
def process_form(request, form):
    if form.is_valid():
        # Save entry
        entry = models.FormEntry.objects.create(
            form=form.form,
            ip=client_ip(request),
        )

        for field in form.form.forms_formfield_set.all():
            field_entry = models.FormEntryValue.objects.create(
                field=field,
                form_entry=entry,
                value=form.cleaned_data[field.slug],
            )
            if isinstance(form.cleaned_data[field.slug], numbers.Number):
                field_entry.int_value = form.cleaned_data[field.slug]
                field_entry.save()

        data = form.form.webhook_dict.copy(
        ) if form.form.webhook_dict else dict()
        data.update(entry.get_values(form.form.get_fields(), json_safe=True))

        if form.form.webhook:
            requests.post(form.form.webhook, data=data)

        if form.form.list_id:
            requests.post(mailtrain_subscribe_url(form.form), data=data)

        if form.form.mailchimp_connection:
            connection = form.form.mailchimp_connection
            email = data.pop("email", "").lower().encode("utf-8")
            email_hash = hashlib.md5(email).hexdigest()

            mailchimp_data = {
                "email_address": email,
                "status_if_new": "subscribed",
                "status": "subscribed",
                "ip_signup": entry.ip,
                "merge_fields": data,
                "tags": [x.strip() for x in form.form.tags.split(',')],
            }

            headers = {"Content-Type": "application/json"}
            auth = ("key", connection.api_key)

            url = f"https://{connection.api_server}.api.mailchimp.com/3.0/lists/{form.form.mailchimp_list_id}/members/{email_hash}"

            r = requests.put(
                url,
                json=mailchimp_data,
                headers=headers,
                auth=auth,
            )
            data['email'] = email.decode()

        if form.form.email:
            message = (f"Form: {form.form.title} ({form.form.pk})"
                       f"\nEntry-ID: {entry.pk}"
                       f"\nCreated: {entry.created}"
                       f"\nIP: {entry.ip}"
                       "\n--------------------------")
            for field in form.form.get_fields():
                message += f"\n{field}: {data.get(field, '')}"
            message += "\n"
            emails = [email.strip() for email in form.form.email.split(",")]
            send_mail(
                f"Form Entry: {form.form.title}",
                message,
                "*****@*****.**",
                emails,
                False,
            )

        data.update({
            'ip': entry.ip,
            'created': entry.created,
            'sid': str(entry.submission_id),
        })

        if form.form.success_redirect:
            response = HttpResponse(status=201)
            response["URL"] = form.form.success_redirect.format(**data)
            return response

        if form.form.success_message:
            message = form.form.success_message.replace('%7B', '{').replace(
                '%7D', '}').format(**data).replace('{',
                                                   '%7B').replace('}', '%7D')
            return HttpResponse(message, status=202)

        form = form.form.get_instance(None)

    return HttpResponse(
        render_to_string("forms/form.html", {
            "form": form,
            "disable_js": True,
        }))
Пример #17
0
def send_tplmsg(request):
    """ push_id + title/ip/type/descr/detail/time/remark/color/openids + sign """
    text = request.POST.get('text', '') or request.GET.get('text', '')

    if not text:
        return response()

    data = json.loads(text)

    # Key for back compatibility
    wepush_id = data.get('push_id', '') or data.get('key', '')

    reqlog = WeChatTemplateMessageRequestLogInfo.objects.create(
        wepush_id=wepush_id,
        request_ip=client_ip(request),
        request_text=text,
    )

    try:
        tpl = WeChatTemplateInfo.objects.get(wepush_id=wepush_id, status=True)
    except WeChatTemplateInfo.DoesNotExist:
        return response(WeChatTemplateStatusCode.TEMPLATE_NOT_FOUND)

    if not check_signature(data, api_key=tpl.wepush_secret):
        reqlog.request_sign_status = False
        reqlog.save()
        return response(SignatureStatusCode.SIGNATURE_ERROR)

    # 调用方指定接收入
    openids = json.loads(data.get('openids', '[]'))
    if not openids:
        # Pushman 配置接收入
        receivers = WeChatTemplateReceiverInfo.objects.filter(
            wepush_id=tpl.wepush_id)
        openids = [receiver.openid for receiver in receivers]
        if not openids:
            return response(WeChatTemplateStatusCode.RECEIVER_NOT_FOUND)

    color = data.get('color', u'#173177')
    tpl_data = {
        'first': {
            'value': data.get('first') or data.get('title', u'服务器故障'),
            'color': color,
        },
        'keyword1': {
            'value': data.get('keyword1') or data.get('ip', '127.0.0.1'),
            'color': color,
        },
        'keyword2': {
            'value': data.get('keyword2') or data.get('type', u'服务器故障'),
            'color': color,
        },
        'keyword3': {
            'value': data.get('keyword3') or data.get('descr', u'服务器故障'),
            'color': color,
        },
        'keyword4': {
            'value': data.get('keyword4') or data.get('detail', u'服务器故障'),
            'color': color,
        },
        'keyword5': {
            'value':
            data.get('keyword5') or data.get('time', tc.local_string())
            or tc.local_string(),
            'color':
            color,
        },
        'remark': {
            'value': data.get('remark', u'请尽快处理!'),
            'color': color,
        },
    }

    tplmsg = TemplateMessage(appid=tpl.app_id,
                             secret=tpl.app_secret,
                             token=fetch_access_token(tpl.token_url,
                                                      tpl.token_key),
                             storage=RedisStorage(r))

    success = failure = 0
    for openid in openids:
        msgres = tplmsg.send_template_message(user_id=openid,
                                              template_id=tpl.template_id,
                                              data=tpl_data,
                                              url=data.get('url', None))
        # Success Or Not
        send_status = msgres['errcode'] == 0
        # TPL Send Log
        WeChatTemplateMessageSendLogInfo.objects.create(
            wepush_id=wepush_id,
            request_id=reqlog.request_id,
            openid=openid,
            send_msgres=msgres,
            send_status=send_status,
        )
        # Success/Failure Num Incr
        if send_status:
            success += 1
        else:
            failure += 1

    return response(200, data={
        'success': success,
        'failure': failure,
    })
Пример #18
0
def discover(request):
    http_host = request.META['HTTP_HOST']

    get_object_or_404(Site, domain=http_host)

    ip_address = client_ip(request)

    if request.method == "POST":
        pk = request.POST.get("pk", "")
        post = get_object_or_404(Post, pk=pk)
        posts_upvote_dupe = post.upvote_set.filter(ip_address=ip_address)
        if len(posts_upvote_dupe) == 0:
            upvote = Upvote(post=post, ip_address=ip_address)
            upvote.save()

    posts_per_page = 20
    page = 0
    gravity = 1.2
    if request.GET.get('page'):
        page = int(request.GET.get('page'))

    posts_from = page * posts_per_page
    posts_to = (page * posts_per_page) + posts_per_page

    newest = request.GET.get('newest')
    if newest:
        posts = Post.objects.annotate(upvote_count=Count('upvote'), ).filter(
            publish=True,
            show_in_feed=True,
            published_date__lte=timezone.now()).order_by(
                '-published_date').select_related('blog')[posts_from:posts_to]
    else:
        posts = Post.objects.annotate(
            upvote_count=Count('upvote'),
            score=ExpressionWrapper(
                ((Count('upvote')) /
                 ((Seconds(Now() - F('published_date'))) + 2)**gravity) *
                100000,
                output_field=FloatField()),
        ).filter(
            publish=True,
            show_in_feed=True,
            published_date__lte=timezone.now()).order_by(
                '-score', '-published_date').select_related(
                    'blog').prefetch_related('upvote_set')[posts_from:posts_to]

    upvoted_posts = []
    for post in posts:
        for upvote in post.upvote_set.all():
            if upvote.ip_address == ip_address:
                upvoted_posts.append(post.pk)

    return render(
        request, 'discover.html', {
            'site': Site.objects.get_current(),
            'posts': posts,
            'next_page': page + 1,
            'posts_from': posts_from,
            'gravity': gravity,
            'newest': newest,
            'upvoted_posts': upvoted_posts
        })
Пример #19
0
def discover(request):
    ip_address = client_ip(request)

    if request.method == "POST":
        pk = sanitise_int(request.POST.get("pk", ""), 7)
        post = get_object_or_404(Post, pk=pk)
        posts_upvote_dupe = post.upvote_set.filter(ip_address=ip_address)
        if len(posts_upvote_dupe) == 0:
            upvote = Upvote(post=post, ip_address=ip_address)
            upvote.save()

    page = 0

    if request.GET.get("page", 0):
        page = sanitise_int(request.GET.get("page"), 7)

    posts_from = page * posts_per_page
    posts_to = (page * posts_per_page) + posts_per_page

    newest = request.GET.get("newest")
    if newest:
        posts = (Post.objects.annotate(upvote_count=Count("upvote"), ).filter(
            publish=True,
            blog__reviewed=True,
            blog__blocked=False,
            show_in_feed=True,
            published_date__lte=timezone.now(),
        ).order_by("-published_date").select_related("blog")
                 [posts_from:posts_to])
    else:
        posts = (Post.objects.annotate(
            upvote_count=Count("upvote"),
            score=ExpressionWrapper(
                ((Count("upvote") - 1) /
                 ((Seconds(Now() - F("published_date"))) + 4)**gravity) *
                100000,
                output_field=FloatField(),
            ),
        ).filter(
            publish=True,
            blog__reviewed=True,
            blog__blocked=False,
            show_in_feed=True,
            published_date__lte=timezone.now(),
        ).order_by("-score", "-published_date").select_related(
            "blog").prefetch_related("upvote_set")[posts_from:posts_to])

    upvoted_posts = []
    for post in posts:
        for upvote in post.upvote_set.all():
            if upvote.ip_address == ip_address:
                upvoted_posts.append(post.pk)

    return render(
        request,
        "discover.html",
        {
            "site": Site.objects.get_current(),
            "posts": posts,
            "previous_page": page - 1,
            "next_page": page + 1,
            "posts_from": posts_from,
            "gravity": gravity,
            "newest": newest,
            "upvoted_posts": upvoted_posts,
        },
    )
Пример #20
0
def process_form(request, form):
    if form.is_valid():
        # Save entry
        entry = models.FormEntry.objects.create(
            form=form.form,
            ip=client_ip(request),
        )

        for field in form.form.forms_formfield_set.all():
            field_entry = models.FormEntryValue.objects.create(
                field=field,
                form_entry=entry,
                value=form.cleaned_data[field.slug],
            )
            if isinstance(form.cleaned_data[field.slug], numbers.Number):
                field_entry.int_value = form.cleaned_data[field.slug]
                field_entry.save()

        data = form.form.webhook_dict.copy(
        ) if form.form.webhook_dict else dict()
        data.update(form.cleaned_data)

        if form.form.webhook:
            requests.post(form.form.webhook, data=data)

        if form.form.list_id:
            requests.post(mailtrain_subscribe_url(form.form), data=data)

        if form.form.mailchimp_connection:
            connection = form.form.mailchimp_connection
            email = data.pop('email', '').lower().encode('utf-8')
            email_hash = hashlib.md5(email).hexdigest()

            mailchimp_data = {
                'email_address': email,
                'status_if_new': 'subscribed',
                'status': 'subscribed',
                'ip_signup': entry.ip,
                'merge_fields': data,
                'tags': (form.form.slug, )
            }

            headers = {'Content-Type': 'application/json'}
            auth = ('key', connection.api_key)

            url = f'https://{connection.api_server}.api.mailchimp.com/3.0/lists/{form.form.mailchimp_list_id}/members/{email_hash}'

            r = requests.put(
                url,
                json=mailchimp_data,
                headers=headers,
                auth=auth,
            )

        if form.form.email:
            message = (f"Form: {form.form.title} ({form.form.pk})"
                       f"\nEntry-ID: {entry.pk}"
                       f"\nCreated: {entry.created}"
                       f"\nIP: {entry.ip}"
                       "\n--------------------------")
            for field in form.form.forms_formfield_set.all():
                message += f"\n{field.name}: {form.cleaned_data[field.slug]}"
            message += "\n"
            emails = [email.strip() for email in form.form.email.split(',')]
            send_mail(
                f"Form Entry: {form.form.title}",
                message,
                "*****@*****.**",
                emails,
                False,
            )

        if form.form.success_redirect:
            response = HttpResponse(status=201)
            response["URL"] = form.form.success_redirect
            return response

        if form.form.success_message:
            return HttpResponse(form.form.success_message, status=202)

        form = form.form.get_instance(None)

    return HttpResponse(
        render_to_string("forms/form.html", {
            "form": form,
            "disable_js": True,
        }))
Пример #21
0
def get_ip(request):
    ipaddr = client_ip(request)
    print("Public IP address of intruder is:")
    print(ipaddr)
    return render(request, "fakelogin.html")
Пример #22
0
def linkhashtag(request, slug='covid19'):
    room = Explore.objects.get(slug='covid19')
    hash = Explore.objects.all()
    post = Post.objects.filter(hashtag=slug)[:4]
    likers = Like.objects.all
    dic = {'post': post}
    users = Profile.objects.get(user=request.user)
    users.ipadress = client_ip(request)
    users.save()
    print(post)

    noti = Like.objects.filter(user=request.user)
    followpost = Post.objects.filter(user__following__follower=request.user)
    followpost = followpost.order_by('date_posted').reverse()
    countfollowpost = Post.objects.filter(
        user__following__follower=request.user).count()
    userlist = Profile.objects.all()
    comments = Post.objects.all()
    likecountpost = 0
    commentcountpost = 0
    for live in followpost:
        live.user_namepost = str(live.user)
        live.namepost = str(live.user.profile.name)
        live.postprofilepic = 'https://potatomello.pythonanywhere.com/media/' + str(
            live.user.profile.pic)
        live.verified = str(live.user.profile.verified)
        likecountpost = Like.objects.filter(post=live).count()
        commentcountpost = Comments.objects.filter(post=live).count()
        live.likepost = str(likecountpost)
        live.commentpost = str(commentcountpost)
        live.save()
    video = ''
    if request.method == 'POST':
        form = Posting(request.POST, request.FILES)

        if form.is_valid():
            post = form.save(commit=False)
            post.user = request.user
            video = post.pic
            if str(video).split(".")[-1] == 'mp4':
                post.video = 'True'

            form.save()
            post = Post.objects.filter(hashedshaurl='False')
            for iteration in post:
                if iteration.hashedshaurl == 'False':
                    postid = iteration.id
                    hashid = bytes(str(postid), 'utf-8')
                    iteration.hashedshaurl = hashlib.sha224(hashid).hexdigest()
                    iteration.save()

            return redirect('link', 'covid19')
    else:
        form = Posting()

    quickpost = Quickpost.objects.all()
    quickpost = quickpost.order_by('time').reverse()
    countn = 0
    n = Notification.objects.filter(viewed='False')
    for notification in n:
        if notification.foruser in request.user.username:
            countn += 1

    return render(
        request, 'hashtagroom.html', {
            'form': form,
            'room': room,
            'post': post,
            'hash': hash,
            'likers': likers,
            'users': users,
            'noti': noti,
            'followpost': followpost,
            'countfollowpost': countfollowpost,
            'userlist': userlist,
            'quickpost': quickpost,
            'countn': countn,
            'notification': n
        })