示例#1
0
def addcontent(request):
    if request.method == 'POST':
        form = ContentForm(request.POST, request.FILES)
        if form.is_valid():
            current_user = request.user
            data = Content()
            data.user_id = current_user.id
            data.title = form.cleaned_data['title']
            data.keywords = form.cleaned_data['keywords']
            data.description = form.cleaned_data['description']
            data.thumbnail = form.cleaned_data['thumbnail']
            data.type = form.cleaned_data['type']
            data.slug = form.cleaned_data['slug']
            data.detail = form.cleaned_data['detail']
            data.status = 'False'
            data.save()
            messages.success(request, 'İçeriğin başarıyla eklendi.')
            return HttpResponseRedirect('/user/contents')
        else:
            messages.warning(request, 'Content Form Hata:' + str(form.errors))
            return HttpResponseRedirect('/user/addcontent')
    else:
        setting = Settings.objects.get(pk=1)
        category = Category.objects.all()
        form = ContentForm()
        context = {
            'setting': setting,
            'category': category,
            'form': form,
        }
        return render(request, 'user_addcontent.html', context)
def addcontent(request):
    if request.method == 'POST':
        form = ContentForm(request.POST, request.FILES)  # fileupload varsa request.FILES yapmazsak formumuz çalışmaz
        if form.is_valid():
            current_user = request.user
            data = Content()  # model ile bağlantı kur
            data.user_id = current_user.id
            data.title = form.cleaned_data['title']
            data.keywords = form.cleaned_data['keywords']
            data.description = form.cleaned_data['description']
            data.image = form.cleaned_data['image']
            data.type = form.cleaned_data['type']
            data.slug = form.cleaned_data['slug']
            data.detail = form.cleaned_data['detail']
            data.status = 'False'
            data.save()  # veritabanına kaydet
            messages.success(request, 'İçeriğiniz başarılı bir şekilde eklendi !')
            return HttpResponseRedirect("/user/contents")
        else:
            messages.error(request, 'İçerik Form Hatası : ' + str(
                form.errors))  # bunu buraya yazabilmemiz için stringe çevirmemiz lazım on yüzden str yazıyoruz
            return HttpResponseRedirect('/user/addcontent')
    else:
        menu = Menu.objects.all()
        form = ContentForm()  # content form ile ilişki kuruyorum
        context = {
            'form': form,
            'menu': menu
        }
        return render(request, 'user_addcontent.html', context)
示例#3
0
def addcontent(request):
    if request.method == 'POST':
        form = ContentForm(request.POST, request.FILES)
        if form.is_valid():
            current_user = request.user
            data = Content()
            data.user_id = current_user.id
            data.title = form.cleaned_data['title']
            data.price = form.cleaned_data['price']
            data.keywords = form.cleaned_data['keywords']
            data.description = form.cleaned_data['description']
            data.image = form.cleaned_data['image']
            data.type = form.cleaned_data['type']
            data.slug = form.cleaned_data['slug']
            data.detail = form.cleaned_data['detail']
            data.status = 'False'
            data.save()
            messages.success(request, "İçerik başarı ile eklendi")
            return HttpResponseRedirect('/user/contents')
        else:
            messages.success(request, 'İçerik form hatası' + str(form.errors))
            return HttpResponseRedirect('/user/addcontent')
    else:
        category = Category.objects.all()
        menu = Menu.objects.all()
        form = ContentForm()
        context = {
            'category': category,
            'form': form,
            'menu': menu,
        }
        return render(request, 'user_addcontent.html', context)
示例#4
0
def addcontent(request):
    setting = Setting.objects.get(pk=1)
    last_posts = Post.objects.filter(status=True).order_by('-id')[:4]
    if request.method == 'POST':
        form = ContentForm(request.POST, request.FILES)
        if form.is_valid():
            current_user = request.user
            data = Content()
            data.user_id = current_user.id
            data.type = form.cleaned_data['type']
            data.title = form.cleaned_data['title']
            data.keywords = form.cleaned_data['keywords']
            data.description = form.cleaned_data['description']
            data.image = form.cleaned_data['image']
            data.slug = form.cleaned_data['slug']
            data.detail = form.cleaned_data['detail']
            data.status = 'False'
            data.save()
            messages.success(request, 'İçeriğiniz başarıyla kaydedildi.')
            return HttpResponseRedirect('/user/contents')
        else:
            messages.error(request, 'Lütfen hatalı alanları kontrol ediniz.<br>'+ str(form.errors))
            return HttpResponseRedirect('/user/contents')
    else:
        category = Category.objects.all()
        menu = Menu.objects.all()
        form = ContentForm()
        context = {'setting': setting,
                   'menu': menu,
                   'category': category,
                   'form': form,
                   'last_posts': last_posts,
                   }
    return render(request, 'user_addcontent.html', context)
示例#5
0
def addContent(request):
    url = request.META.get('HTTP_REFERER')
    if request.method == 'POST':
        form = DuyuruForm(request.POST, request.FILES)
        if form.is_valid():
            current_user = request.user
            data = Content()
            data.user_id = current_user.id

            data.title = form.cleaned_data['title']
            data.keywords = form.cleaned_data['keywords']
            data.description = form.cleaned_data['description']
            data.image = form.cleaned_data['image']
            data.type = form.cleaned_data['type']
            data.slug = form.cleaned_data['slug']
            data.detail = form.cleaned_data['detail']
            data.status = 'Hayır'
            data.save()
            messages.success(
                request, 'Duyurunuz başarı ile gönderilmiştir.Teşekkür ederiz')
            return HttpResponseRedirect(url)
        else:
            messages.warning(request, 'Form Hatalı!!')
            return HttpResponseRedirect(url)
    else:
        menu = Menu.objects.all()
        setting = Setting.objects.get(pk=1)
        form = DuyuruForm()
        context = {
            'setting': setting,
            'menu': menu,
            'form': form,
        }
        return render(request, 'userDuyuruEkle.html', context)
示例#6
0
def addcontent(request):
    if request.method == 'POST':
        form = ContentForm(request.POST, request.FILES)
        if form.is_valid():
            current_user = request.user
            data = Content()
            data.user_id = current_user.id
            data.title = form.cleaned_data['title']
            data.keywords = form.cleaned_data['keywords']
            data.description = form.cleaned_data['description']
            data.image = form.cleaned_data['image']
            data.type = form.cleaned_data['type']
            data.slug = form.cleaned_data['slug']
            data.detail = form.cleaned_data['detail']
            data.status = 'False'
            data.save()   # veritabanına kaydet
            messages.success(request, 'Your content insterted successfully!')
            return HttpResponseRedirect('/user/contents')
        else:
            messages.error(request, 'Content Form Error :' + str(form.errors))
            return HttpResponseRedirect('/user/addcontent')
    else:
        category = Category.objects.all()
        menu = Menu.objects.all()
        form = ContentForm()
        return render(request, 'user_addcontent.html', {'form': form, 'category': category, 'menu': menu, })
示例#7
0
def add_content(request):
    if request.method == 'POST':
        form = ContentForm(request.POST, request.FILES)
        if form.is_valid():
            current_user = request.user
            data = Content()
            data.user_id = current_user.id
            data.category = form.cleaned_data['category']
            data.title = form.cleaned_data['title']
            data.keywords = form.cleaned_data['keywords']
            data.description = form.cleaned_data['description']
            data.image = form.cleaned_data['image']
            data.slug = form.cleaned_data['slug']
            data.detail = form.cleaned_data['detail']
            data.status = 'False'
            data.save()
            messages.success(request, 'Your trip has been added.')
            return HttpResponseRedirect('/user/contents')
        else:
            messages.error(request, 'Content Form Error: ', + str(form.errors))
            return HttpResponseRedirect('/user/add_content')
    else:
        form = ContentForm()
        context = {
            'form': form
        }
        return render(request, 'add_content.html', context)
def addcontent(request):
    if request.method == 'POST':
        form = ContentForm(request.POST, request.FILES)
        print("post girdi")
        if form.is_valid():
            print("valid girdi")
            current_user = request.user
            data = Content()
            data.user_id = current_user.id
            data.title = form.cleaned_data['title']
            data.keywords = form.cleaned_data['keywords']
            data.description = form.cleaned_data['description']
            data.image = form.cleaned_data['image']
            data.slug = form.cleaned_data['slug']
            data.detail = form.cleaned_data['detail']
            data.category_id = form.cleaned_data['category'].id
            data.status = 'False'
            data.save()
            messages.success(request, 'Your Content Inserted Successfully')
            return HttpResponseRedirect('/user/contents')
        else:
            print("hata girdi")
            messages.success(request,
                             'Content Form Error : ' + str(form.errors))
            return HttpResponseRedirect('/user/addcontent')
    else:
        category = Category.objects.all()
        form = ContentForm()
        context = {'category': category, 'form': form}
        return render(request, 'user_addcontent.html', context)
示例#9
0
def addcontent(request):
    if request.method == "POST":
        form = ContentForm(request.POST, request.FILES)
        if form.is_valid():
            data = Content()
            data.user_id = request.user.id
            data.title = form.cleaned_data['title']
            data.keywords = form.cleaned_data['keywords']
            data.description = form.cleaned_data['description']
            data.image = form.cleaned_data['image']
            data.kind = form.cleaned_data['kind']
            data.slug = form.cleaned_data['slug']
            data.detail = form.cleaned_data['detail']
            data.status = "False"
            data.save()
            messages.success(request, 'Content added!')
            return HttpResponseRedirect('/user/contents')
        else:
            messages.warning(request, 'Content Form Error:' + str(form.errors))
            return HttpResponseRedirect('/user/addcontent')
    else:
        setting = Setting.objects.first()
        category = Category.objects.filter(status=True)
        menu = Menu.objects.filter(status=True)
        form = ContentForm()
        context = {
            'setting': setting,
            'category': category,
            'menu': menu,
            'page': 'Add Content',
            'form': form
        }
        return render(request, 'user_addcontent.html', context)
示例#10
0
 def create(self, validated_data):
     """
     Create a new Content instance.
     Note that lots of saving process is done in views.py and models.py.
     """
     c = Content(**validated_data)
     c.save()
     return c
示例#11
0
    def testNewContentFromTestContentDir(self):
        self.assertTrue(
            os.path.isdir(TEST_CONTENT_DIR),
            "Directory '%s' containing test files does not exist." %
            TEST_CONTENT_DIR)
        files = os.listdir(TEST_CONTENT_DIR)
        print("\n\nFAILEJA", TEST_CONTENT_DIR, files)
        self.assertGreater(
            len(files), 0, "Directory '%s' containing test files is empty." %
            TEST_CONTENT_DIR)
        cnt = 0
        for filename in files:
            cnt += 1
            c = Content(caption="New content #%d" % cnt)
            full_path = os.path.join(TEST_CONTENT_DIR, str(filename))
            c.set_file(str(filename), full_path)
            c.set_fileinfo()
            c.generate_thumbnail()
            c.save()
            maintype = c.mimetype.split("/")[0]
            print("MIMETYYPPI", c.mimetype, c.preview)

            if maintype in ["video", "audio"]:
                ffp = content.filetools.FFProbe(c.file.path)
                info = content.filetools.fileinfo(c.file.path)
                print(info)

                if ffp.is_video():
                    new_video, cmd_str, output = create_videoinstance(
                        c.file.path)
                    vi = Videoinstance(content=c)
                    vi.save()
                    vi.set_file(new_video, "webm")
                    vi.set_metadata(info)
                    vi.save()
                    print("%s %.1f sec %dx%d pix" %
                          (vi.mimetype, vi.duration, vi.width, vi.height))

                if ffp.is_audio():
                    new_audio, cmd_str, output = create_audioinstance(
                        c.file.path)
                    ai = Audioinstance(content=c)
                    ai.save()
                    ai.set_file(new_audio, "ogg")
                    ai.set_metadata(info)
                    ai.save()
                    print("%s %.1f sec" % (ai.mimetype, ai.duration))

            self.all_content.append(c)
            # self.assertEqual(c.file.path, "sd", c.file.path)
        # import time
        # time.sleep(20)
        self.assertEqual(Content.objects.count(), len(self.all_content),
                         "1 or more files failed")
示例#12
0
    def testNewContentSaving(self):
        self.assertTrue(
            os.path.isdir(TEST_CONTENT_DIR),
            f"Directory '{TEST_CONTENT_DIR}' containing test files does not exist."
        )
        files = os.listdir(TEST_CONTENT_DIR)
        self.assertGreater(
            len(files), 0,
            f"Directory '{TEST_CONTENT_DIR}' containing test files is empty.")
        cnt = 0
        for filename in files:
            full_path = os.path.join(TEST_CONTENT_DIR, str(filename))
            if os.path.isfile(full_path) is False:
                print(f"Skip {full_path}, not a file")
                continue
            cnt += 1
            c = Content(caption="New content #%d" % cnt)
            c.set_file(str(filename), full_path)
            c.set_fileinfo()
            c.generate_thumbnail()
            c.save()
            maintype = c.mimetype.split("/")[0]

            if maintype in ["video", "audio"]:
                ffp = content.filetools.FFProbe(c.file.path)
                info = content.filetools.fileinfo(c.file.path)
                print(info)
                if ffp.is_video():
                    new_video, cmd_str, output = create_videoinstance(
                        c.file.path)
                    vi = Videoinstance(content=c)
                    vi.save()
                    vi.set_file(new_video, "webm")
                    vi.set_metadata(info)
                    vi.save()
                    print(
                        f"{c.mimetype} {c.preview} {vi.mimetype} {vi.duration:.1f} sec {vi.width}x{vi.height} px"
                    )
                if ffp.is_audio():
                    new_audio, cmd_str, output = create_audioinstance(
                        c.file.path)
                    ai = Audioinstance(content=c)
                    ai.save()
                    ai.set_file(new_audio, "ogg")
                    ai.set_metadata(info)
                    ai.save()
                    print(
                        f"{c.mimetype} {c.preview} {ai.mimetype} {ai.duration:.1f} sec"
                    )
            self.all_content.append(c)
示例#13
0
 def testNewContentSaving(self):
     self.assertTrue(os.path.isdir(TESTCONTENT_DIR), "Directory '%s' containing test files does not exist." % TESTCONTENT_DIR)
     files = os.listdir(TESTCONTENT_DIR)
     self.assertGreater(len(files), 0,  "Directory '%s' containing test files is empty." % TESTCONTENT_DIR)
     cnt = 0
     for filename in files:
         cnt += 1
         c = Content(caption=u'New content #%d' % cnt)
         full_path = os.path.join(TESTCONTENT_DIR, filename)
         if not os.path.isfile(full_path):
             continue
         c.set_file(filename, full_path)
         c.set_fileinfo()
         c.generate_thumbnail()
         c.save()
         maintype = c.mimetype.split('/')[0]
         print "MIMETYYPPI", c.mimetype, c.preview
         if maintype in ['video', 'audio']:
             ffp = content.filetools.FFProbe(c.file.path)
             info = content.filetools.fileinfo(c.file.path)
             print info
             #finfo = get_ffmpeg_videoinfo(c.file.path)
             #print finfo
             if ffp.is_video():
                 new_video, cmd_str = create_videoinstance(c.file.path)
                 vi = Videoinstance(content=c)
                 vi.save()
                 vi.set_file(new_video, 'webm')
                 #info = get_videoinfo(get_ffmpeg_videoinfo(vi.file.path))
                 vi.set_metadata(info)
                 vi.save()
                 print u'%s %.1f sec %dx%d pix' % (vi.mimetype, vi.duration, vi.width, vi.height)
             if ffp.is_audio():
                 new_audio, cmd_str = create_audioinstance(c.file.path)
                 ai = Audioinstance(content=c)
                 ai.save()
                 ai.set_file(new_audio, 'ogg')
                 #info = get_audioinfo(get_ffmpeg_videoinfo(ai.file.path))
                 #print info
                 ai.set_metadata(info)
                 ai.save()
                 print u'%s %.1f sec' % (ai.mimetype, ai.duration)
         #print c.get_type_instance()
         #print c.caption
         self.all_content.append(c)
         #self.assertEqual(c.file.path, "sd", c.file.path)
     #import time
     #time.sleep(20)
     self.assertEqual(Content.objects.count(), len(self.all_content), "1 or more files failed")
def addcontent(request):
    setting = Setting.objects.get(pk=1)
    current_user = request.user
    profile = UserProfile.objects.get(user_id=current_user.id)
    if request.method == 'POST':
        form = ContentForm(request.POST, request.FILES)
        if form.is_valid():
            current_user = request.user
            data = Content()
            data.user_id = current_user.id
            data.title = form.cleaned_data['title']
            data.keywords = form.cleaned_data['keywords']
            data.description = form.cleaned_data['description']
            data.image = form.cleaned_data['image']
            data.type = form.cleaned_data['type']
            data.slug = form.cleaned_data['slug']
            data.detail = form.cleaned_data['detail']
            data.status = 'False'
            data.save()
            messages.success(request, 'Your Content Inserted Succesfully')
            return HttpResponseRedirect('/user/contents')
        else:
            messages.success(request,
                             'Content Form Error : ' + str(form.errors))
            return HttpResponseRedirect('/user/addcontent')
    else:
        category = Categories.objects.all()
        menu = Menu.objects.all()
        form = ContentForm()
        context = {
            'category': category,
            'menu': menu,
            'form': form,
            'profile': profile,
            'setting': setting,
        }
        return render(request, 'user_addcontent.html', context)
示例#15
0
def savefiles(msg, simulate):
    """
    Extract parts from  msg (which is an email.message_from_string(str) instance)
    and send them to the database.
    NOTES:
    - uses only the first found email address to assume recipient

    TODO stuff
    - reject if From: is empty
    """
    part_counter = 1
    subject = get_subject(msg)
    tos = get_recipient(msg)
    #print tos
    msg_id = msg.get('message-id', '')
    froms = msg.get_all('from', [])
    p = re.compile('([\w\.\-]+)@')
    try:  # May raise in some cases IndexError: list index out of range
        matches = p.findall(froms[0])
        sender_nick = matches[0].split(
            ".")[0].title()  # Use all before first '.'
    except:
        print "ERROR: No From header %s" % (msg_id)
        return False
    if len(tos) == 0:
        print "ERROR: No Tos found %s" % (msg_id)
        return False
    p = re.compile('([\w]+)\.([\w]+)@')  # e.g. [email protected]
    matches = p.findall(tos[0])
    if len(matches) > 0:
        username = matches[0][0].title()
        key = matches[0][1].lower()
    else:
        print "ERROR: No user.authkey found from %s %s" % (tos[0], msg_id)
        return False
    #print "User, key:", username, key
    # TODO: replace this with AuthTicket stuff
    #from django.contrib.auth import authenticate
    #user = authenticate(authtoken='qwerty123')
    try:
        user = User.objects.get(username=username.lower())
    except User.DoesNotExist:
        print "User.DoesNotExist !", username
        log.warning("User.DoesNotExist: '%s'" % username)
        return False
    contentgroup = None
    if user.albumitgroups.count() > 0:
        contentgroup = user.albumitgroups.all()[0]
    sourceorg = None
    if user.sourceorgs.count() > 0:
        sourceorg = user.sourceorgs.all()[0]
    photographer_name = sender_nick
    photographer = None
    if sourceorg and sourceorg.photographers.count() > 0:
        p = sourceorg.photographers.all()[0]
        photographer_name = u'{} {}'.format(p.firstname, p.lastname)
        photographer = p
    #privacy = 'PRIVATE'
    privacy = 'RESTRICTED'
    if key.lower() == 'pub':
        privacy = 'PUBLIC'
    elif key.lower() == 'res':
        privacy = 'RESTRICTED'
    else:
        log.warning("Privacy part not found: '%s'" % key)

    parts_not_to_save = [
        "multipart/mixed",
        "multipart/alternative",
        "multipart/related",
        "text/plain",
    ]
    if simulate:  # Print lots of debug stuff
        print u'=========\nMetadata:\n========='
        print u'''Subject: %s\nUsername: %s\nFrom: %s\nTo: %s\nM-id: %s\n(%s)''' % (
            subject, user, u','.join(froms), u','.join(tos), msg_id, privacy)
        print u'=========\nParts:\n========='
    saved_parts = 0
    log.info("Walking through message parts")
    for part in msg.walk():
        part_content_type = part.get_content_type()
        filename, filedata = handle_part(part)
        if part_content_type in parts_not_to_save or filename is None:
            # print "NOT SAVING", part_content_type
            log_msg = "Not saving '%s', filename '%s'." % (part_content_type,
                                                           filename)
            log.info(log_msg)
            if simulate: print log_msg  # Print lots of debug stuff
            continue
            #print filedata, type(filedata), len(filedata)
        if filedata is None or len(filedata) == 0:
            log_msg = "Not saving '%s', filename '%s', file has no data" % (
                part_content_type, filename)
            log.warning(log_msg)
            if simulate:
                print log_msg  # Print lots of debug stuff
            continue
        log_msg = u'Saving: %s (%s)' % (filename, part_content_type)
        log.info(log_msg)
        if simulate:
            print log_msg  # Print lots of debug stuff
        c = Content(
            user=user,
            privacy=privacy,
            caption=subject,
            author=photographer_name,
            #author=sender_nick,
            #group=contentgroup,
        )
        if simulate is False:
            log.info("Saving file %s" % filename)
            c.set_file(filename, filedata)
            log.info("set_fileinfo()")
            c.set_fileinfo()
            log.info("c.generate_thumbnail()")
            c.generate_thumbnail()
            c.save()
            saved_parts += 1
            log.info("Saving really")
        else:
            log.info("Not saving, simulate %s" % simulate)
        m = Metadata(
            content=c,
            sourceorg=sourceorg,
            photographer=photographer,
            group=contentgroup,
            caption=subject,
            author=photographer_name,
            geometry=c.point,
        )
        m.save()
    return saved_parts
示例#16
0
    def handle(self, *args, **options):

        starting_message_id = None
        
        for i in range(350):
            print(f'on batch {i}')
            messages_url = f"{BASE_URL}groups/{GROUP_ID}/messages?token={TOKEN}&limit=100"

            if starting_message_id:
                messages_url += f"&before_id={starting_message_id}"

            response = requests.get(messages_url)

            if response.status_code != 200:
                print(response)
                continue

            content = json.loads(response.content.decode())
            message_list = content['response']['messages']

            for message in message_list:
                if Content.objects.filter(name=message['id'], media_url__isnull=False).exists():
                    print(f'seen message with id {message["id"]} before, exiting')
                    return
                try:
                    if message['attachments'] and len(message['favorited_by']) > 1:
                        try:
                            member = Member.objects.get(groupme_id=message['user_id'])
                        except Member.DoesNotExist:
                            member = Member.objects.create(
                                groupme_id=message['user_id'],
                                name=message['name'],
                                avatar_url=message['avatar_url']
                            )
                        if not member.avatar_url and message['avatar_url']:
                            member.avatar_url = message['avatar_url']
                            member.save()

                        Nickname.objects.get_or_create(
                            nickname=message['name'],
                            member=member
                        )

                        attachment = message['attachments'][0]
                        url = attachment.get('url') or attachment.get('source_url') or attachment.get('preview_url')
                        print(url)
                        if url:
                            file_type = self.get_file_type(url)
                            if file_type:
                                if file_type == '.mp4':
                                    kind = 'VIDEO'
                                else:
                                    kind = 'IMAGE'
                                print(file_type)

                                file_name = '{}{}'.format(message['id'], file_type)
                                response = requests.get(url, stream=True)

                                if response.status_code != 200:
                                    continue

                                lf = tempfile.NamedTemporaryFile()
                                for block in response.iter_content(1024 * 8):
                                    if not block:
                                        break
                                    lf.write(block)

                                kwargs = {
                                    "create_date": datetime.datetime.fromtimestamp(message['created_at']),
                                    "creator": member,
                                    "creator_nickname": message['name'],
                                    "kind": kind,
                                    "likes": len(message['favorited_by']),
                                    "name": message['id'],
                                    "text": self.strip_urls(message['text']),
                                    "media_url": url
                                }

                                content = Content(**kwargs)
                                content.upload.save(file_name, files.File(lf))


                        else:
                            print(message)
                            print('found new url type, in above message')


                    elif not message['attachments'] and len(message['favorited_by']) >= 1:
                        try:
                            member = Member.objects.get(groupme_id=message['user_id'])
                        except Member.DoesNotExist:
                            member = Member.objects.create(
                                groupme_id=message['user_id'],
                                name=message['name'],
                                avatar_url=message['avatar_url']
                            )

                        if not member.avatar_url and message['avatar_url']:
                            member.avatar_url = message['avatar_url']
                            member.save()

                        Nickname.objects.get_or_create(
                            nickname=message['name'],
                            member=member
                        )

                        kwargs = {
                            "avatar_url": message['avatar_url'],
                            "creator": member,
                            "creator_nickname": message['name'],
                            "create_date": datetime.datetime.fromtimestamp(message['created_at']),
                            "kind": 'TEXT',
                            "likes": len(message['favorited_by']),
                            "name": message['id'],
                            "text": self.strip_urls(message['text'])
                        }
                        Content.objects.create(**kwargs)

                except Exception as e:
                    print(e)

                finally:
                    try:
                        message_list[message_list.index(message) + 1]
                    except IndexError:
                        starting_message_id = message['id']
                        print(f'new starting message id: {starting_message_id}')
示例#17
0
 def test_duplicates_raise_exception(self):
     c = Content.objects.create(text="First")
     with self.assertRaises(ValidationError):
         c2 = Content(text="First")
         c2.save()
         c2.full_clean()