예제 #1
0
def update_fasion():
    try:
        key = Post.objects.filter(department="의류학과").latest('upload_dt')
    except:
        key = None

    if key:
        latest = fashionCrawl.fashion_check_latest()
        if key.title != latest:
            data_dict = fashionCrawl.fashion_extract_latest_notices(key.title)
            for data in data_dict:
                if data['content'] != "":
                    fb = Post(title=data['title'],
                              upload_dt=data['modify_dt'],
                              department=data['type'],
                              content=data['content'],
                              url=data['url'])
                    fb.save()
            return latest
        else:
            return None
    else:
        # data_dict = fashionCrawl.fashion_extract_indeed_notices(3)
        data_dict = fashionCrawl.fashion_extract_indeed_notices(
            fashionCrawl.fashion_extract_indeed_pages())
        for data in data_dict:
            if data['content'] != "":
                fb = Post(title=data['title'],
                          upload_dt=data['modify_dt'],
                          department=data['type'],
                          content=data['content'],
                          url=data['url'])
                fb.save()
        return fashionCrawl.fashion_check_latest()
예제 #2
0
def update_korean():
    try:
        key = Post.objects.filter(department="국어국문학과").latest('upload_dt')
    except:
        key = None

    if key:
        latest = korean_crawl.check_latest()
        if key.title != latest:
            data_dict = korean_crawl.extract_latest_notices(key.title)
            for data in data_dict:
                if data['content'] != "":
                    fb = Post(title=data['title'],
                              upload_dt=data['modify_dt'],
                              department=data['type'],
                              content=data['content'],
                              url=data['url'])
                    fb.save()
            return latest
        else:
            return None
    else:
        data_dict = korean_crawl.extract_korean_notices(3)
        # data_dict = korean_crawl.extract_korean_notices(korean_crawl.extract_last_pages())
        for data in data_dict:
            if data['content'] != "":
                fb = Post(title=data['title'],
                          upload_dt=data['modify_dt'],
                          department=data['type'],
                          content=data['content'],
                          url=data['url'])
                fb.save()
        return korean_crawl.check_latest()
예제 #3
0
파일: views.py 프로젝트: go4math/soup
def post_create(request):
    if request.method == "POST":
        do = request.POST.get('do')
        if do == 'del':
            return redirect(reverse('index'))

        # handle ingredient table
        items = []
        for i, q in zip(request.POST.getlist('item'),
                        request.POST.getlist('quantity')):
            items.append({'item': i, 'quantity': q})

        post = {
            'title': request.POST.get('post-title'),
            'intro': request.POST.get('post-intro'),
            'items': items,
            'steps': request.POST.getlist('post-step'),
            'fyi': request.POST.get('post-fyi'),
        }

        if do == 'pub':
            p = Post(creator=request.user,
                     post_type='R',
                     published_at=timezone.now,
                     content=json.dumps(post))
        else:  # sav
            p = Post(creator=request.user,
                     post_type='R',
                     content=json.dumps(post))
        p.save()
        return redirect(reverse('post_view', args=[p.id]))

    else:
        return render(request, 'post/create.html')
예제 #4
0
def analysis_view(request):

    if request.method == "POST":
        

        body_unicode = request.body.decode('utf-8')
        body = json.loads(request.body)
        print(request.body)
        content = body['b64_image']

        filename = str(dateformat.format(timezone.now(), 'Y-m-d_H-i-s')) + '.jpg'

        post = Post()
        post.image = ContentFile(base64.b64decode(content), name=filename)
        post.name = filename
        post.save()
        object, result_data, total_percent = analysis.draw_line(post.pk)

        user_image = base64.b64encode(post.image.read())
        result_image = base64.b64encode(object.result.read())

        print(test)

        data = {
            "message" : str(result_data[0]),            
            "image_name" : post.image.name.split('.')[0],
            "image" : str(user_image),
            "result" : str(result_image)
        }
        
        return JsonResponse(data)
    else:
        return HttpResponse("get is worng request")
예제 #5
0
def update_haksa():
    try:
        key = Post.objects.filter(department="학사공지").latest('upload_dt')
    except:
        key = None

    if key:
        latest = haksaCrawl.check_latest()
        if key.title != latest:
            data_dict = haksaCrawl.extract_latest_notices(key.title)
            for data in data_dict:
                if data['content'] != "":
                    print(f"{data['title']} is updated")
                    fb = Post(title=data['title'],
                              upload_dt=data['modify_dt'],
                              department=data['type'],
                              content=data['content'],
                              url=data['url'])
                    fb.save()
            return latest
        else:
            return None
    else:
        data_dict = haksaCrawl.extract_indeed_notices(3)
        # data_dict = haksaCrawl.extract_indeed_notices(haksaCrawl.extract_indeed_pages())
        for data in data_dict:
            if data['content'] != "":
                fb = Post(title=data['title'],
                          upload_dt=data['modify_dt'],
                          department=data['type'],
                          content=data['content'],
                          url=data['url'])
                fb.save()
        return haksaCrawl.check_latest()
예제 #6
0
def mail(modeladmin, request, queryset):
    post = Post()
    post.save()

    for user in queryset:
        post.users.add(user)

    return redirect(f'/main/post/{post.pk}/change/')
예제 #7
0
def dtf_main():

    names = dtf_names()
    links = dtf_links()
    conts = dtf_content()
    dts = []
    date = dtf_date()
    time = dtf_time()
    site = "dtf"
    #"https://leonardo.osnova.io/91e47474-c70d-55ad-af16-b3bc2335e282/"
    chck = re.compile(r'\"https\:\/\/.*\/\"')
    url = 'https://dtf.ru/gameindustry/entries/new'
    img_urls = []
    res = requests.get(url)
    soup = bs4.BeautifulSoup(res.text, "html.parser")
    out = soup.find_all('div', class_='content-image')
    urls = []

    for item in out:

        mo = chck.search(str(item))
        img_urls.append(mo.group()[1:-1])

    del img_urls[10:]

    i = 0

    for item in date:
        dts.append(str(item) + " " + time[i])
        i = i + 1

    i = 1

    for item in img_urls:
        res = requests.get(item)
        img_file = open(
            os.path.join(
                'D:\\agregator\\gamers_gazette\\game_news_site\\media\\images',
                'dtf{}.png'.format(i)), 'wb')
        urls.append('images/dtf{}.png'.format(i))
        i = i + 1

        for chunk in res.iter_content(100000):
            img_file.write(chunk)
        img_file.close()

    i = 1

    for i in range(0, 10):
        p = Post(site=site,
                 title=names[i],
                 img=urls[i],
                 pub_date=dts[i],
                 time=time[i],
                 date=date[i],
                 text=conts[i])
        p.save()
예제 #8
0
def comment_list(request):
    if request.method == 'GET':
        comments = Comment.objects.all()
        comments = [c.to_json() for c in comments]
        return JsonResponse(comments, safe=False)
    elif request.method == 'POST':
        data = json.loads(request.body)
        post = Post(content=data['content'], date=data['date'])
        post.save()
        return JsonResponse(post.to_json())
예제 #9
0
def send_post(request):
    if request.user.is_authenticated:
        form = PostForm(request.POST)
        if request.method == "POST":
            form = PostForm(request.POST)
            if form.is_valid():
                country = Country.objects.get(
                    name=form.cleaned_data["country"])

                new_post = Post(
                    country=country,
                    city=form.cleaned_data["city"],
                    total_travelers=form.cleaned_data["total"],
                    wanted_travelers=form.cleaned_data["wanted"],
                    free_places=form.cleaned_data["free"],
                    interest=form.cleaned_data["interest"],
                    title=form.cleaned_data["title"],
                    message=form.cleaned_data["message"],
                    start_date=form.cleaned_data["start"],
                    end_date=form.cleaned_data["end"],
                    budget=form.cleaned_data["budget"],
                    ready=False,
                    created_by=request.user,
                )
                new_post.save()

                clist = []
                c = Country.objects.all()
                for i in c:
                    clist.append(i)
                all_posts = Post.objects.filter(country__id=country.id)
                alpha = country.alpha_2
                url = f"../static/img/flags/flag-{alpha}.jpg"
                name = country.name
                mess = "Message sent!"
                context = {
                    "all_posts": all_posts,
                    "clist": clist,
                    "url": url,
                    "name": name,
                    "mess": mess,
                }
                messages.success(request, "Post sent!")
                return render(request, "main/posts.html", context)
            else:
                return redirect("/")
        else:
            return redirect("/")
    else:
        return render(request, "main/posts.html")
예제 #10
0
def post_list(request):
    if request.method == 'GET':
        posts = Post.objects.all()
        posts = [p.to_json() for p in posts]
        return JsonResponse(posts, safe=False)
    elif request.method == 'POST':
        data = json.loads(request.body)
        post = Post(
            title=data['title'],
            content=data['content'],
            date=data['date'],
            #created_by=data['created_by'],
        )
        post.save()
        return JsonResponse(post.to_json())
예제 #11
0
def submitpost(request):
	u = checkCookies(request)
	print >>sys.stderr,'F*****G HELL {}'.format(u)
	if u != False:
		if request.POST.has_key('content'):
			post = Post(author=u)
			post.setContent(request.POST['content'])
			post.save()
			#for follower in u.is_followed.all():
			#	print >>sys.stderr, "ADDING POST TO FEED"
			#	follower.feed.post_set.add(post)
			return randompost(request)
		else:
			return error(request,"I don't even know")
	else:
		return error(request,"I don't even know")
예제 #12
0
def submitpost(request):
    u = checkCookies(request)
    print >> sys.stderr, 'F*****G HELL {}'.format(u)
    if u != False:
        if request.POST.has_key('content'):
            post = Post(author=u)
            post.setContent(request.POST['content'])
            post.save()
            #for follower in u.is_followed.all():
            #	print >>sys.stderr, "ADDING POST TO FEED"
            #	follower.feed.post_set.add(post)
            return randompost(request)
        else:
            return error(request, "I don't even know")
    else:
        return error(request, "I don't even know")
예제 #13
0
파일: views.py 프로젝트: TimSmole/tld
def ArticleRequest(request, article_id):
    if not request.user.is_authenticated():
        return HttpResponseRedirect('/login/')
    art = Article.objects.get(id=article_id)
    user = Users.objects.get(id=art.user_id.id)
    users = request.user.get_profile()
    posts=Post.objects.filter(art_id=article_id)
    form=PostForm()
    sport_pic=Sport.objects.get(id=art.sport_id.id)

    gps_filename=str(art.gps_file)
    gps_filename=gps_filename[9:]

    if art.art_alb is not None:
        try:
            album = Album.objects.get(id=art.art_alb.id)
        except Album.DoesNotExist:
            album=None
        pic_list = Picture.objects.filter(album=album)
        context =({
                      'art':art,
                      'user1':user,
                      'pic_list':pic_list,
                      'users':users,
                      'posts':posts,
                      'form':form,
                      'sport_pic':sport_pic,
                      'gps_filename':gps_filename,
                  })
    else:
        context=({
                     'art':art,
                     'user1':user,
                     'users':users,
                     'posts':posts,
                     'form':form,
                     'sport_pic':sport_pic,
                     'gps_filename':gps_filename,
                 })

    if request.method=='POST':
        form = PostForm(request.POST)
        if form.is_valid():
            content=form.cleaned_data['content']
            new_post=Post(user_id=users,art_id=art,content=content,date=datetime.datetime.now())
            new_post.save()
    return render_to_response('main/article.html', context, context_instance=RequestContext(request))
예제 #14
0
def vg_main():

    names = vg_names()
    conts = vg_content()
    dts = []
    date = vg_date()
    time = vg_time()
    site = "vgtimes"
    chck = re.compile(r'src\=\".*\"')
    url = 'https://vgtimes.ru/tags/%D0%98%D0%B3%D1%80%D0%BE%D0%B2%D1%8B%D0%B5+%D0%BD%D0%BE%D0%B2%D0%BE%D1%81%D1%82%D0%B8'
    img_urls= []
    
    res = requests.get(url)
    soup = bs4.BeautifulSoup(res.text, "html.parser")
    out = soup.find_all("div",class_="image_wrap type0")

    urls = []

    for item in out:

        mo = chck.search(str(item))
        img_urls.append('https://vgtimes.ru'+mo.group()[5:-1])

    del img_urls[10:]
    
    i = 1

    for item in img_urls:
        res = requests.get(item)
        img_file = open(os.path.join('D:\\agregator\\gamers_gazette\\game_news_site\\media\\images','vg{}.png'.format(i)), 'wb')
        urls.append('images/vg{}.png'.format(i))
        i = i + 1

        for chunk in res.iter_content(100000):
            img_file.write(chunk)
        img_file.close()

    i = 0

    for item in date:
        dts.append(str(item)+" "+time[i])
        i = i + 1
    
    for i in range (0, 9):
        p = Post(site = site, title = names[i], img = urls[i], pub_date = dts[i], time = time[i], date = date[i], text =  conts[i])
        p.save() 
예제 #15
0
파일: views.py 프로젝트: rhinon/rblog
def new_post(request):
    if not request.user.is_authenticated():
        return redirect('/admin/login')

    post = Post()
    categories = Category.objects.all()

    if request.method == 'POST':
        print request.POST
        post.user = request.user
        post.title = request.POST.get('post_title','')
        post.text = request.POST.get('post_text','')
        post.category_id = request.POST.get('post_category',0)
        post.save()
        return redirect('/blog/%s' % post.category.name)

    return render(request, 'main/posts/new.html', {'post': post, 'categories': categories})
예제 #16
0
def post_list(request):
    if request.method == 'GET':
        posts = Post.objects.all()
        for post in posts:
            post.to_json()
        return JsonResponse(Post.objects.first().to_json(), safe=False)
    elif request.method == 'POST':
        data = json.loads(request.body)
        plist = Post(
            title=data['title'],
            author=data['author'],
            date_published=data['date_published'],
            content=data['content'],
            comment=data['comment'],
        )
        plist.save()
        return JsonResponse(plist.to_json())
예제 #17
0
def test(request):

    if request.method == "POST":

        post = Post()
        post.name = request.FILES["image"].name
        post.image = request.FILES["image"]
        post.save()

        object, result_data = analysis.draw_line(post.pk)

        data = {
            "message": result_data,
            "image": post.image.url,
            "result": object.result.url
        }
        return render(request, "test.html", data)
    else:
        return render(request, "test.html")
예제 #18
0
def create(request):
    authenticated_user = get_authenticated_user(request)

    # If form method == POST
    if request.method == 'POST':
        form = PostForm(request.POST)  # Get form

        if form.is_valid():
            title = form.cleaned_data['titleInput']  # Read title
            body = form.cleaned_data['bodyInput']  # Read body
            cover = form.cleaned_data['coverInput']  # Read cover
            short_description = form.cleaned_data[
                'shortDescriptionInput']  # Read short description

            # Create a Post model with form data
            post = Post(
                title=title,
                body=body,
                author=authenticated_user,
                cover=cover,
                short_description=short_description,
            )
            post.save()  # Save it

            post.slug = post_slug_generator(post)
            post.save()

            # Redirect user to 'person:post:detail' url
            return HttpResponseRedirect('/user/' + post.author.username +
                                        '/post/' + post.slug)

    # If form method == GET
    else:
        form = PostForm()  # Give form to user

    context = {
        'authenticated_user': authenticated_user,
        'new_notifications': get_new_notifications(authenticated_user),
        'form': form,
    }

    # Show 'create/post.html' to user
    return render(request, 'create/post.html', context)
예제 #19
0
파일: views.py 프로젝트: 0x4cc/MicroBlog
def index(request):
    if request.method == "POST":
        userid = get_object_or_404(User, username=request.user)
        body = request.POST.get('body')
        p = Post()
        p.author = userid
        p.body = body
        p.save()
        return HttpResponseRedirect('/')
    show_followed = False
    if str(request.user) != 'AnonymousUser':
        u = UserProfile.objects.get(user__username=request.user)
        show_cookie = bool(request.COOKIES.get('show_followed', ''))
        if show_cookie:
            posts = u.followed_posts()
        else:
            posts = Post.objects.order_by('-timestamp')
    return render_to_response('index.html',
                              locals(),
                              context_instance=RequestContext(request))
예제 #20
0
def new_post(request):
    person = Person.objects.get(username=request.user.username)

    # If form method == POST
    if request.method == 'POST':
        form = PostForm(request.POST)  # Get form

        if form.is_valid():
            title = form.cleaned_data['title']  # Read title
            body = form.cleaned_data['body']  # Read body
            cover = form.cleaned_data['cover']  # Read cover
            short_description = form.cleaned_data[
                'short_description']  # Read short description
            category = form.cleaned_data['category']  # Read category

            body = mskf.translate_to_html(body)

            # Create a Post model with form data
            post = Post(title = title,\
                        body = body,\
                        author = person,\
                        cover = cover,\
                        short_description = short_description,\
                        category = category)
            post.save()  # Save it

            return HttpResponseRedirect('/user/' + post.author.username +
                                        '/post/' + str(post.id))

    # If form method == GET
    else:
        form = PostForm()  # Give form to user

    context = {
        'form': form,
    }

    mskf.add_notification_availability_to_context(request, context)
    mskf.add_authenticated_user_to_context(request, context)

    return render(request, 'new_post.html', context)
예제 #21
0
파일: views.py 프로젝트: cheney93/MicroBlog
def index(request):
	if request.method == "POST":
		userid = get_object_or_404(User, username=request.user)
		body = request.POST.get('body')
		p = Post()
		p.author = userid
		p.body = body
		p.save()
		return HttpResponseRedirect('/')
	show_followed = False
	if str(request.user) != 'AnonymousUser':
		u = UserProfile.objects.get(user__username=request.user)
		show_cookie = bool(request.COOKIES.get('show_followed', ''))
		if show_cookie:
			posts = u.followed_posts()
		else:
			posts = Post.objects.order_by('-timestamp')
	return render_to_response(
		'index.html',
		locals(),
		context_instance=RequestContext(request))
예제 #22
0
def new_post(request):
    authenticated_user = get_authenticated_user(request)

    # If form method == POST
    if request.method == 'POST':
        form = PostForm(request.POST)  # Get form

        if form.is_valid():
            title = form.cleaned_data['title']  # Read title
            body = form.cleaned_data['body']  # Read body
            cover = form.cleaned_data['cover']  # Read cover
            short_description = form.cleaned_data[
                'short_description']  # Read short description
            category = form.cleaned_data['category']  # Read category

            # Create a Post model with form data
            post = Post(title=title,
                        body=body,
                        author=authenticated_user,
                        cover=cover,
                        short_description=short_description,
                        category=category)
            post.save()  # Save it

            return HttpResponseRedirect('/user/' + post.author.username +
                                        '/post/' + str(post.id))

    # If form method == GET
    else:
        form = PostForm()  # Give form to user

    context = {
        'authenticated_user': authenticated_user,
        'new_notifications': get_new_notifications(authenticated_user),
        'form': form,
    }

    return render(request, 'post/write.html', context)
예제 #23
0
def callback(request):
    def startButton(reply_token, send_text):
        try:
            reply = line_bot_api.reply_message(reply_token, [
                TextSendMessage(send_text),
                TemplateSendMessage(alt_text='メニューを更新',
                                    template=ButtonsTemplate(
                                        title='メニューを更新',
                                        text='更新ボタンを押してください',
                                        actions=[
                                            PostbackTemplateAction(
                                                label='メニューを更新', data='start'),
                                        ]))
            ])
        except LineBotApiError:
            return HttpResponseBadRequest()
        return reply

    def confirmButton(reply_token, send_text):
        try:
            reply = line_bot_api.reply_message(reply_token, [
                TextSendMessage(send_text),
                TemplateSendMessage(
                    alt_text='確認',
                    template=ButtonsTemplate(
                        title='確認',
                        text='選択してください',
                        actions=[
                            PostbackTemplateAction(label='更新', data='save'),
                            PostbackTemplateAction(label='中止', data='quit'),
                        ]))
            ])
        except LineBotApiError:
            return HttpResponseBadRequest()
        return reply

    if request.method == 'POST':
        body = request.body.decode('utf-8')
        signature = request.META['HTTP_X_LINE_SIGNATURE']
        try:
            events = parser.parse(body, signature)
        except InvalidSignatureError:
            return HttpResponseForbidden()
        except LineBotApiError:
            return HttpResponseBadRequest()

        for event in events:
            posts = Post.objects.values('user_id').order_by('-created_at')
            users = []
            for post in posts:
                users.append(post['user_id'])
            has_created = event.source.user_id in users
            if has_created == True:
                post = Post.objects.filter(
                    user_id=event.source.user_id).order_by('-created_at')[0]

            if isinstance(event, FollowEvent):
                startButton(
                    event.reply_token,
                    'フォローありがとうございます!\nメニューを更新したい場合、下のボタンを押してください\nなお、以下がサイトのURLです\n\nhttps://{}'
                    .format(settings.DOMAIN_NAME))

            elif isinstance(event, PostbackEvent):
                if event.postback.data == 'start':
                    if has_created == False:
                        post = Post(user_id=event.source.user_id, status=1)
                        post.save()
                        try:
                            line_bot_api.reply_message(
                                event.reply_token,
                                TextSendMessage('メニューの更新ですね\nまずは料理名を入力してください'))
                        except LineBotApiError:
                            return HttpResponseBadRequest()
                    else:
                        if post.status == 0:
                            post = Post(user_id=event.source.user_id, status=1)
                            post.save()
                            try:
                                line_bot_api.reply_message(
                                    event.reply_token,
                                    TextSendMessage(
                                        'メニューの更新ですね\nまずは料理名を入力してください'))
                            except LineBotApiError:
                                return HttpResponseBadRequest()

                elif event.postback.data == 'save':
                    if has_created == True:
                        if post.status == 5:
                            post.status = 0
                            post.save()
                            try:
                                line_bot_api.reply_message(
                                    event.reply_token,
                                    TextSendMessage(
                                        'サイトが更新されました\n\nhttps://{}'.format(
                                            settings.DOMAIN_NAME)))
                            except LineBotApiError:
                                return HttpResponseBadRequest()

                elif event.postback.data == 'quit':
                    if has_created == True:
                        if post.status == 5:
                            post.image_path.delete()
                            post.delete()
                            try:
                                line_bot_api.reply_message(
                                    event.reply_token,
                                    TextSendMessage('操作中のデータを削除しました'))
                            except LineBotApiError:
                                return HttpResponseBadRequest()

            elif isinstance(event, MessageEvent):
                if isinstance(event.message, TextMessage):
                    if event.message.text == 'ニッポンポン':
                        del_posts = Post.objects.exclude(
                            Q(image_path__contains='ebi-fry')
                            | Q(image_path__contains='katsu-don')
                            | Q(image_path__contains='beef-stew'))
                        for del_post in del_posts:
                            del_post.image_path.delete()
                        Post.objects.all().delete()
                        try:
                            line_bot_api.reply_message(
                                event.reply_token,
                                TextSendMessage('合衆国ニッポンポン!!!'))
                        except LineBotApiError:
                            return HttpResponseBadRequest()
                    elif event.message.text == 'ナナリー':
                        del_posts = Post.objects.exclude(
                            Q(image_path__contains='ebi-fry')
                            | Q(image_path__contains='katsu-don')
                            | Q(image_path__contains='beef-stew'))
                        for del_post in del_posts:
                            del_post.image_path.delete()
                        Post.objects.all().delete()
                        Post.objects.bulk_create([
                            Post(title='エビフライ',
                                 description='プリプリのエビをカリカリの衣で包んだ至高の一品',
                                 price='850',
                                 image_path='img/post/ebi-fry.jpg',
                                 status=0),
                            Post(title='シチュー',
                                 description='バラ肉をルーとともにホロホロになるまで煮込んだビーフシチュー',
                                 price='1200',
                                 image_path='img/post/beef-stew.jpg',
                                 status=0),
                            Post(title='かつ丼',
                                 description='揚げたてのカツをふんわり半熟卵でとじた定番の一品',
                                 price='750',
                                 image_path='img/post/katsu-don.jpg',
                                 status=0),
                        ])
                        try:
                            line_bot_api.reply_message(
                                event.reply_token,
                                TextSendMessage('ナナリーーーーーッッ!!!!!'))
                        except LineBotApiError:
                            return HttpResponseBadRequest()

                    if has_created == True:
                        if post.status == 0:
                            startButton(
                                event.reply_token,
                                'ご利用ありがとうございます\nメニューを更新したい場合、下のボタンを押してください\nなお、以下がサイトのURLです\n\nhttps://{}'
                                .format(settings.DOMAIN_NAME))
                        elif post.status == 1:
                            post.title = event.message.text
                            post.status = 2
                            post.save()
                            try:
                                line_bot_api.reply_message(
                                    event.reply_token,
                                    TextSendMessage('次はメニューの説明文を入力してください'),
                                )
                            except LineBotApiError:
                                return HttpResponseBadRequest()
                        elif post.status == 2:
                            post.description = event.message.text
                            post.status = 3
                            post.save()
                            try:
                                line_bot_api.reply_message(
                                    event.reply_token,
                                    TextSendMessage('次は値段を入力してください'),
                                )
                            except LineBotApiError:
                                return HttpResponseBadRequest()
                        elif post.status == 3:
                            try:
                                post.price = int(event.message.text)
                                post.status = 4
                                post.save()
                            except:
                                try:
                                    line_bot_api.reply_message(
                                        event.reply_token,
                                        TextSendMessage('半角数字を入力してください'),
                                    )
                                except LineBotApiError:
                                    return HttpResponseBadRequest()
                            try:
                                line_bot_api.reply_message(
                                    event.reply_token,
                                    TextSendMessage('次は掲載する画像を送信してください'),
                                )
                            except LineBotApiError:
                                return HttpResponseBadRequest()
                        elif post.status == 4:
                            try:
                                line_bot_api.reply_message(
                                    event.reply_token,
                                    TextSendMessage('画像を送信してください'),
                                )
                            except LineBotApiError:
                                return HttpResponseBadRequest()
                    else:
                        startButton(
                            event.reply_token,
                            'ご利用ありがとうございます\nメニューを更新したい場合、下のボタンを押してください\nなお、以下がサイトのURLです\n\nhttps://{}'
                            .format(settings.DOMAIN_NAME))
                elif isinstance(event.message, ImageMessage):
                    if has_created == True:
                        if post.status == 4:
                            try:
                                message_content = line_bot_api.get_message_content(
                                    event.message.id)
                                with NamedTemporaryFile(mode='w+b') as f:
                                    for chunk in message_content.iter_content(
                                    ):
                                        f.write(chunk)
                                    post.image_path.save(event.message.id +
                                                         '.jpg',
                                                         File(f),
                                                         save=True)
                                post.status = 5
                                post.save()
                            except:
                                traceback.print_exc()
                                try:
                                    line_bot_api.reply_message(
                                        event.reply_token,
                                        TextSendMessage('画像を保存できませんでした'),
                                    )
                                except LineBotApiError:
                                    return HttpResponseBadRequest()
                            confirmButton(
                                event.reply_token,
                                '項目は以上です\nこれでよろしければ「保存」、更新を中止したい場合は「中止」を押してください'
                            )

                        elif post.status == 0:
                            startButton(
                                event.reply_token,
                                'ご利用ありがとうございます\nメニューを更新したい場合、下のボタンを押してください\nなお、以下がサイトのURLです\n\nhttps://{}'
                                .format(settings.DOMAIN_NAME))

                        elif post.status == 5:
                            confirmButton(event.reply_token,
                                          'すでに画像は送信されています\n更新または中止を選択してください')

                        else:
                            try:
                                line_bot_api.reply_message(
                                    event.reply_token,
                                    TextSendMessage('テキストを入力してください'),
                                )
                            except LineBotApiError:
                                return HttpResponseBadRequest()
                    else:
                        startButton(
                            event.reply_token,
                            'ご利用ありがとうございます\nメニューを更新したい場合、下のボタンを押してください\nなお、以下がサイトのURLです\n\nhttps://{}'
                            .format(settings.DOMAIN_NAME))
        return HttpResponse()
    else:
        return HttpResponseBadRequest()
예제 #24
0
 def create(self, validated_data):
     post = Post(**validated_data)
     post.author = User.objects.first()
     post.created = datetime.datetime.now()
     post.save()
     return post
예제 #25
0
def filler():

    arr = fresher()

    v_name = vg.vg_names()
    v_link = vg.vg_links()
    v_content = vg.vg_content()
    v_time = vg.vg_time()
    v_date = vg.vg_date()
    v_dt = []

    d_name = dtf.dtf_names()
    d_link = dtf.dtf_links()
    d_content = dtf.dtf_content()
    d_time = dtf.dtf_time()
    d_date = dtf.dtf_date()
    d_dt = []
    d_img_links = []

    #for i in range(1,11):
    # d_img_links.append("images/dtf{}.png".format(i))

    i_name = igrm.igrm_names()
    i_link = igrm.igrm_links()
    i_content = igrm.igrm_content()
    i_date = igrm.igrm_date()
    i_time = igrm.igrm_time()
    i_dt = []

    i = 0
    j = 0
    k = 0
    o = 0

    for item in d_date:
        d_dt.append(str(item) + " " + d_time[i])
        i = i + 1

    i = 0

    for item in v_date:
        i_dt.append(str(item) + " " + i_time[i])
        i = i + 1

    i = 0

    for item in i_date:
        v_dt.append(str(item) + " " + v_time[i])
        i = i + 1

    i = 0

    Post.objects.all().delete()

    while i < 28:

        if arr[i] == d_time[j]:
            site = "dtf"
            p = Post(site=site,
                     title=d_name[j],
                     pub_date=d_dt[j],
                     time=d_time[j],
                     date=d_date[j],
                     text=d_content[j])
            p.save()
            i = i + 1
            j = 0
            k = 0
            o = 0
        else:
            j = j + 1

        if arr[i] == i_time[k]:
            site = "igromania"
            p = Post(site=site,
                     title=i_name[k],
                     pub_date=i_dt[k],
                     time=i_time[k],
                     date=i_date[k],
                     text=i_content[k])
            p.save()
            i = i + 1
            k = 0
            o = 0
            j = 0

        else:
            k = k + 1

        if arr[i] == v_time[o]:
            site = "vgtimes"
            p = Post(site=site,
                     title=v_name[o],
                     pub_date=v_dt[o],
                     time=v_time[o],
                     date=v_date[o],
                     text=v_content[o])
            p.save()
            i = i + 1
            o = 0
            j = 0
            k = 0

        else:
            o = o + 1
예제 #26
0
 def handle(self, **options):
     Menu.objects.get_or_create(name='menu')
     Menu.objects.get_or_create(name='bottom_menu')
     post_count = int(options.get('post-count', 100))
     comment_limit = int(options.get('comment-limit', 100))
     random_rate = lambda: int(random() * 1000)
     get_rand = lambda _list: _list[int(random() * len(_list))]
     blog_types = map(
         lambda type: BlogType.objects.get_or_create(name=type)[0], (
             getattr(settings, 'DEFAULT_BLOG_TYPE', 'main'),
             'talks',
             'personal',
         ))
     random_type = partial(get_rand, blog_types)
     users = map(
         lambda username: User.objects.get_or_create(username=username)[0],
         (
             'bob',
             'paul',
             'mike',
             'anna',
             'sasha',
             'katya',
             'masha',
         ))
     map(
         lambda user: Profile.objects.get_or_create(
             user=user,
             rate=random_rate(),
             posts_rate=random_rate(),
             comments_rate=random_rate(),
             blogs_rate=random_rate(),
         )[0], users)
     random_user = partial(get_rand, users)
     blogs = map(
         lambda (blog_name, url): Blog.objects.get_or_create(
             name=blog_name,
             owner=random_user(),
             type=random_type(),
             description=url,
             rate=random_rate(),
             rate_count=random_rate(),
         )[0], (
             (u'астрономии', 'astronomy.xml'),
             (u'геологии', 'geology.xml'),
             (u'гироскопии', 'gyroscope.xml'),
             (u'литературоведению', 'literature.xml'),
             (u'маркетингу', 'marketing.xml'),
             (u'математике', 'mathematics.xml'),
             (u'музыковедению', 'music.xml'),
             (u'политологии', 'polit.xml'),
             (u'почвоведению', 'agrobiologia.xml'),
             (u'правоведению', 'law.xml'),
             (u'психологии', 'psychology.xml'),
             (u'страноведению', 'geography.xml'),
             (u'физике', 'physics.xml'),
             (u'философии', 'philosophy.xml'),
             (u'химии', 'chemistry.xml'),
             (u'эстетике', 'estetica.xml'),
         ))
     random_blog = partial(get_rand, blogs)
     random_comment = lambda limit: Post.objects.all()[int(random() * limit)
                                                       ].title
     for counter in range(post_count):
         post = Post()
         post.author = random_user()
         post.blog = random_blog()
         post.title, post.text = obtain_spring(post.blog.description)
         post.rate = random_rate()
         post.rate_count = random_rate()
         post.save(edit=False, retry=True)
         post.set_tags(','.join(post.title.split()))
         last = root = post.create_comment_root()
         limit = int(random() * comment_limit)
         while limit:
             if not int(random() * 3):
                 last = root
             last = last.add_child(post=post,
                                   author=random_user(),
                                   text=random_comment(counter),
                                   created=datetime.now(),
                                   rate=random_rate(),
                                   rate_count=random_rate())
             limit -= 1
예제 #27
0
파일: tests.py 프로젝트: go4math/soup
class ViewTests(TestCase):
    def setUp(self):
        self.author = User.objects.create(username='******',
                                          password=make_password('secret'),
                                          email='*****@*****.**')
        self.viewer = User.objects.create(username='******',
                                          password=make_password('secret'),
                                          email='*****@*****.**')
        self.post = Post(creator=self.author,
                         published_at=timezone.now(),
                         content="{}")
        self.draft = Post(creator=self.author, content="{}")
        self.post.save()
        self.draft.save()

    def test_author_view_post(self):
        self.client.login(username='******', password='******')
        response = self.client.get(reverse('post_view', args=[self.post.id]))
        self.assertEqual(response.status_code, 200)

    def test_author_view_draft(self):
        self.client.login(username='******', password='******')
        response = self.client.get(reverse('post_view', args=[self.draft.id]))
        self.assertEqual(response.status_code, 200)

    def test_viewer_view_post(self):
        self.client.login(username='******', password='******')
        response = self.client.get(reverse('post_view', args=[self.post.id]))
        self.assertEqual(response.status_code, 200)

    def test_viewer_view_draft(self):
        self.client.login(username='******', password='******')
        response = self.client.get(reverse('post_view', args=[self.draft.id]))
        self.assertEqual(response.status_code, 404)

    def test_author_edit_post(self):
        self.client.login(username='******', password='******')
        response = self.client.get(reverse('post_edit', args=[self.post.id]))
        self.assertRedirects(response, reverse('post_view',
                                               args=[self.post.id]))

    def test_author_edit_draft(self):
        self.client.login(username='******', password='******')
        response = self.client.get(reverse('post_edit', args=[self.draft.id]))
        self.assertTemplateUsed(response, 'post/edit.html')

    def test_viewer_edit_permission_denied(self):
        self.client.login(username='******', password='******')
        response = self.client.get(reverse('post_edit', args=[self.draft.id]))
        self.assertEqual(response.status_code, 403)

    def test_comment_create_unconfirmed_redirect(self):
        self.client.login(username='******', password='******')
        response = self.client.post(
            reverse('post_comment_create', args=[self.post.id]), {})
        self.assertRedirects(
            response,
            reverse('unconfirmed') + '?next=' +
            reverse('post_comment_create', args=[self.post.id]))

    def test_comment_create_confirmed(self):
        self.viewer.confirmed = True
        self.viewer.save()
        self.client.login(username='******', password='******')
        response = self.client.post(
            reverse('post_comment_create', args=[self.post.id]),
            {'comment': 'ruin my life'})
        self.assertRedirects(response, reverse('post_view',
                                               args=[self.post.id]))

    def test_comment_create_on_draft(self):
        self.client.login(username='******', password='******')
        self.viewer.confirmed = True
        self.viewer.save()
        response = self.client.post(
            reverse('post_comment_create', args=[self.draft.id]),
            {'comment': 'ruin my life'})
        self.assertEqual(response.status_code, 404)

    def test_comment_delete(self):
        author_comment = Comment.objects.create(creator=self.author,
                                                post=self.post,
                                                content="author comment")
        viewer_comment1 = Comment.objects.create(creator=self.viewer,
                                                 post=self.post,
                                                 content="viewer comment 1")
        viewer_comment2 = Comment.objects.create(creator=self.viewer,
                                                 post=self.post,
                                                 content="viewer comment 2")
        author_comment.save()
        viewer_comment1.save()
        viewer_comment2.save()
        self.client.login(username='******', password='******')
        response = self.client.get(
            reverse('post_comment_delete', args=[author_comment.id]))
        self.assertEqual(response.status_code, 403)

        response = self.client.get(
            reverse('post_comment_delete', args=[viewer_comment1.id]))
        self.assertRedirects(response, reverse('index'))

        self.client.login(username='******', password='******')
        response = self.client.get(
            reverse('post_comment_delete', args=[viewer_comment2.id]))
        self.assertRedirects(response, reverse('index'))

    def test_view_comments(self):

        self.client.login(username='******', password='******')
        response = self.client.get(
            reverse('post_view_comments', args=[self.draft.id]))
        self.assertEqual(response.status_code, 404)

        response = self.client.get(
            reverse('post_view_comments', args=[self.post.id]))
        self.assertTemplateUsed(response, 'post/view_comments.html')
예제 #28
0
 def create(self, validated_data):
     post = Post(**validated_data)
     post.user = User.objects.first()
     post.save()
     return post
예제 #29
0
 def handle(self, **options):
     Menu.objects.get_or_create(
         name='menu'
     )
     Menu.objects.get_or_create(
         name='bottom_menu'
     )
     post_count = int(options.get('post-count', 100))
     comment_limit = int(options.get('comment-limit', 100))
     random_rate = lambda: int(random() * 1000)
     get_rand = lambda _list: _list[int(random()*len(_list))]
     blog_types = map(
         lambda type: BlogType.objects.get_or_create(name=type)[0],
         (getattr(settings, 'DEFAULT_BLOG_TYPE', 'main'), 'talks', 'personal',)
     )
     random_type = partial(get_rand, blog_types)
     users = map(
         lambda username: User.objects.get_or_create(username=username)[0],
         ('bob', 'paul', 'mike', 'anna', 'sasha', 'katya', 'masha',)
     )
     map(
         lambda user: Profile.objects.get_or_create(
             user=user,
             rate=random_rate(),
             posts_rate=random_rate(),
             comments_rate=random_rate(),
             blogs_rate=random_rate(),
         )[0], users
     )
     random_user = partial(get_rand, users)
     blogs = map(
         lambda (blog_name, url): Blog.objects.get_or_create(
             name=blog_name,
             owner=random_user(),
             type=random_type(),
             description=url,
             rate=random_rate(),
             rate_count=random_rate(),
         )[0], (
             (u'астрономии', 'astronomy.xml'),
             (u'геологии', 'geology.xml'),
             (u'гироскопии', 'gyroscope.xml'),
             (u'литературоведению', 'literature.xml'),
             (u'маркетингу', 'marketing.xml'),
             (u'математике', 'mathematics.xml'),
             (u'музыковедению', 'music.xml'),
             (u'политологии', 'polit.xml'),
             (u'почвоведению', 'agrobiologia.xml'),
             (u'правоведению', 'law.xml'),
             (u'психологии', 'psychology.xml'),
             (u'страноведению', 'geography.xml'),
             (u'физике', 'physics.xml'),
             (u'философии', 'philosophy.xml'),
             (u'химии', 'chemistry.xml'),
             (u'эстетике', 'estetica.xml'),
         )
     )
     random_blog = partial(get_rand, blogs)
     random_comment = lambda limit: Post.objects.all()[int(random() * limit)].title
     for counter in range(post_count):
         post = Post()
         post.author = random_user()
         post.blog = random_blog()
         post.title, post.text = obtain_spring(post.blog.description)
         post.rate = random_rate()
         post.rate_count = random_rate()
         post.save(edit=False, retry=True)
         post.set_tags(','.join(post.title.split()))
         last = root = post.create_comment_root()
         limit = int(random() * comment_limit)
         while limit:
             if not int(random()*3):
                 last = root
             last = last.add_child(
                 post=post,
                 author=random_user(),
                 text=random_comment(counter),
                 created=datetime.now(),
                 rate=random_rate(),
                 rate_count=random_rate()
             )
             limit -= 1
예제 #30
0
def post_add(request):
	if(request.POST.get('addPostBtn')):
		p = Post(post_author=request.user, post_title=request.POST.get('post_title'), post_content = request.POST.get('post_content'), created_at=timezone.now())
		p.save()
		return redirect('/blog')
예제 #31
0
 def create(self, validated_data):
     post = Post(**validated_data)
     post.save()
     return post
예제 #32
0
ACCESS_SECRET = os.environ['TWITTER_ACCESS_SECRET']

auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET)
auth.set_access_token(ACCESS_KEY, ACCESS_SECRET)
api = tweepy.API(auth)

sample_user = CustomUser.objects.get(username = '******')
twitter_account = SocialAccount.objects.get(user_id=sample_user.id)
tweets = api.user_timeline(twitter_account.uid, tweet_mode='extended', include_rts=False)
filtered = filter(lambda t: not t.full_text.startswith('@'), tweets)
tweets_without_mentions = list(filtered)

for tweet in tweets_without_mentions:
    new_post = Post(
        text_content = tweet.full_text,
        source = 'twitter', # TODO: move this constant into a separate file
        associated_social_account = twitter_account,
        tweet_id_str = tweet.id_str,
        posted_by = sample_user,
        date_posted = tweet.created_at
    )
    new_post.save()

    sentences = split_text_into_sentences(new_post.text_content)
    for i in range(len(sentences)):
        new_sentence = Sentence(
            sentence_index = i,
            text_content = sentences[i],
            parent_post = new_post
        )
        new_sentence.save()
예제 #33
0
파일: tests.py 프로젝트: go4math/soup
class ViewTests(TestCase):
    def setUp(self):
        self.me = User.objects.create(username='******',
                                      password=make_password('secret'),
                                      email='*****@*****.**')
        self.idol = User.objects.create(username='******',
                                        password='******',
                                        email='*****@*****.**')
        self.fan = User.objects.create(username='******',
                                       password='******',
                                       email='*****@*****.**')
        self.me.save()
        self.idol.save()
        self.fan.save()

        self.my_post = Post(creator=self.me,
                            published_at=timezone.now(),
                            content="{}")
        self.my_draft = Post(creator=self.me, content="{}")
        self.my_post.save()
        self.my_draft.save()

        self.idol_post = Post(creator=self.idol,
                              published_at=timezone.now(),
                              content="{}")
        self.idol_post.save()

        self.comment_sent = Comment(creator=self.me,
                                    post=self.idol_post,
                                    content="ruin my life")
        self.comment_rcvd = Comment(creator=self.fan,
                                    post=self.my_post,
                                    content="awesome!")
        self.comment_sent.save()
        self.comment_rcvd.save()

        self.me.follow.add(self.idol)
        self.me.fans.add(self.fan)
        self.me.save()

    def test_panel_posts(self):
        self.client.login(username='******', password='******')
        response = self.client.get(reverse('panel_posts'))
        p = response.context["items"][0]
        self.assertEqual(p.id, self.my_post.id)

    def test_panel_drafts(self):
        self.client.login(username='******', password='******')
        response = self.client.get(reverse('panel_drafts'))
        p = response.context["items"][0]
        self.assertEqual(p.id, self.my_draft.id)

    def test_comments_rcvd(self):
        self.client.login(username='******', password='******')
        response = self.client.get(reverse('panel_comments_rcvd'))
        p = response.context["items"][0]
        self.assertEqual(p.id, self.comment_rcvd.id)

    def test_comments_sent(self):
        self.client.login(username='******', password='******')
        response = self.client.get(reverse('panel_comments_sent'))
        p = response.context["items"][0]
        self.assertEqual(p.id, self.comment_sent.id)

    def test_users_followed_by_me(self):
        self.client.login(username='******', password='******')
        response = self.client.get(reverse('panel_users_followed_by_me'))
        p = response.context["items"][0]
        self.assertEqual(p.id, self.idol.id)

    def test_users_following_me(self):
        self.client.login(username='******', password='******')
        response = self.client.get(reverse('panel_users_following_me'))
        p = response.context["items"][0]
        self.assertEqual(p.id, self.fan.id)