Beispiel #1
0
def create_news(request):
    """
    view untuk pembuatan berita
    """
    if not request.user.has_perm('news.add_news'):
        messages.error(request, _("Unvalidated user can not create news"))
        return HttpResponseRedirect(reverse('validate'))
    if request.POST:
        form = CreateNewsForm(request.POST)
        if form.is_valid():
            news = News()
            news.user = request.user
            news.title = form.cleaned_data['title']
            news.content = form.cleaned_data['content']
            news.category = form.cleaned_data['category']
            news.enable_comment = form.cleaned_data['enable_comment']
            news.location = form.cleaned_data['location']
            news.save()
            news.images.add(*request.POST.getlist('images'))
            p = Point(news=news, user=request.user)
            p.save()
            messages.info(request, _('A news %s created') % news.title)
            return HttpResponseRedirect(reverse('user_news'))
    else:
        form = CreateNewsForm()
    return render_to_response('news/create_news.html',
            {'form': form},
            context_instance=RequestContext(request))
Beispiel #2
0
 def setUp(self):
     city = City.objects.get(name='Curitiba')
     news = News()
     news.title = 'Test news'
     news.content = 'Test content'
     news.city = city
     news.save()
     self.news = news
    def handle(self, *args, **options):
        path = args[0]

        if path.startswith('http'):
            content = json.load(urllib2.urlopen(path))
        else:
            content = json.load(open(path))

        for entry in content:
            try:
                news = News.objects.get(id=int(entry['id']))
            except News.DoesNotExist:
                news = News(id=int(entry['id']))

            if not 'html' in entry or entry['pub'] == '0':
                continue

            news.title = entry['name']
            news.caption = entry['announce']
            news.is_visible = entry['pub'] == '10'
            news.date_published = datetime.datetime.strptime(entry['time'], '%d.%m.%Y').date()
            news.content = entry['html']
            news.save()

            for url_hash in re.findall('src="/pic/(.*?)/"', news.content):
                url = 'http://tomat-podarky.ru/pic/%s/' % url_hash

                fp = ContentFile(requests.get(url).content)
                today = datetime.date.today()
                target_name = 'uploads/%(year)d/%(month)d/%(name)s%(ext)s' % {
                    'year': today.year,
                    'month': today.month,
                    'name': uuid.uuid4().hex,
                    'ext': '.jpg',
                }
                filepath = os.path.join(settings.MEDIA_ROOT, target_name)
                out = open(filepath, 'w')
                out.write(fp.read())
                out.close()

                news.content = news.content.replace('/pic/%s/' % url_hash, '/media/%s' % target_name)
            news.save()
Beispiel #4
0
def news_release():
    #进行页面渲染
    if request.method == "GET":
        try:
            categories = Category.query.all()
        except Exception as e:
            current_app.logger.error(e)
            return jsonify(errno=Code.DBERR, errmsg="获取分类失败")

        category_list = []
        for category in categories:
            category_list.append(category.to_dict())

        return render_template("news/user_news_release.html",
                               categories=category_list)

    # 数据提交
    title = request.form.get("title")
    category_id = request.form.get("category_id")
    digest = request.form.get("digest")
    index_image = request.files.get("index_image")
    content = request.form.get("content")

    if not all([title, category_id, digest, index_image, content]):
        return jsonify(errno=Code.PARAMERR, errmsg="参数不全")

    try:
        #读取图片为二进制数据,上传
        image_name = image_storage(index_image.read())
    except Exception as e:
        current_app.logger.error(e)
        return jsonify(errno=Code.THIRDERR, errmsg="七牛云异常")

    if not image_name:
        return jsonify(errno=Code.NODATA, errmsg="图片上传失败")

    news = News()
    news.title = title
    news.source = g.user.nick_name
    news.digest = digest
    news.content = content
    news.index_image_url = constants.QINIU_DOMIN_PREFIX + image_name
    news.category_id = category_id
    news.user_id = g.user.id
    news.status = 1  #表示审核中

    try:
        db.session.add(news)
        db.session.commit()
    except Exception as e:
        current_app.logger.error(e)
        return jsonify(errno=Code.DBERR, errmsg="新闻发布失败")
    # print("发布成功")
    return jsonify(errno=Code.OK, errmsg="发布成功")
Beispiel #5
0
 def process_item(self, item, spider):
     # print item['owner'], item['title'], item['time_way']
     if self.NAME not in getattr(spider, 'pipelines', []):
         return item
     news = News()
     news.content = item['content']
     # news.editor = item['editor']
     news.pub_time = item['pub_time']
     news.source = item['source']
     news.title = item['title']
     news.abstract = item['abstract']
     news.save()
     return item
Beispiel #6
0
def save(request):
    if isLoggedIn(request):
        req = request.POST
        id = req.get('id')
        title = req.get('title')
        content = req.get('content')
        mag = req.get('mag')
        signature = request.COOKIES.get('signature')
        if not int(id) == 0:
            news = News.objects.filter(id=id).first()
        else:
            news = News()
        if title and content and mag:
            news.title = title
            news.content = content
            news.mag = mag
            news.author = signature
            news.save()
            id = news.id
            news = News.objects.filter(id=id)
            return HttpResponse(serialize('json', news))
    return HttpResponse('0')