async def edit_comm_post(request): if not user_has_permission(request, 'des:obj', 'add_com'): return {"result": "fail", "error": "no comment"} if not user_is_logged_in(request): return response_json(request, { "result": "fail", "error": "no comment" }) data = await request.post() comm_id = data.get('comm_id') body = data.get('body') user = data.get('user') if user == get_current_user(request) or is_admin(request): if 'child' in get_doc(request, comm_id) and not is_admin(request): return response_json(request, { "result": "fail", "error": "comment already answered" }) doc = request.db.doc.update( {'_id': comm_id}, {"$set": { "doc.body." + cur_lang(request): body }}) from core.union import invalidate_cache invalidate_cache('single_page') return response_json(request, {"result": "ok", "id": comm_id}) else: return response_json(request, { "result": "fail", "error": "access denied" })
async def edit_comm_post(request): if not user_has_permission(request, 'des:obj', 'add_com'): return {"result":"fail", "error":"no comment"} if not user_is_logged_in(request): return response_json(request, {"result":"fail", "error":"no comment"}) data = await request.post() comm_id = data.get('comm_id') body = data.get('body') user = data.get('user') if user == get_current_user(request) or is_admin(request): if 'child' in get_doc(request, comm_id) and not is_admin(request): return response_json(request, {"result":"fail", "error":"comment already answered"}) doc = request.db.doc.update({'_id': comm_id}, {"$set": {"doc.body." + cur_lang(request): body}}) from core.union import invalidate_cache invalidate_cache('single_page') return response_json(request, {"result":"ok", "id":comm_id}) else: return response_json(request, {"result":"fail", "error":"access denied"})
async def add_comm_post(request): # return json.dumps(current_id, title, link, proc_id) """current_id это id ветки""" # ip = request.environ.get('REMOTE_ADDR') data = await request.post(); ip = None print('data->', data) #get ip address client peername = request.transport.get_extra_info('peername'); host=None if peername is not None: host, port = peername ip = host # print ('host, port->', host, port) user = get_current_user(request, True) if check_ban(request, host, user): return response_json(request, {"result":"fail", "error":"Ваш ip или аккаунт забанен на этом сайте, свяжитесь с администрацией"}) else: title = data.get('title') if not user_has_permission(request, 'des:obj', 'add_com') and not user_has_permission(request, 'des:obj', 'add_com_pre'): return response_json(request, {"result":"fail", "error":"no comment"}) if not check_user_rate(request, user): return response_json(request, {"result":"fail", "error":"Вы не можете оставлять сообщения слишком часто, из-за отрицательной кармы"}) doc_id = data.get('comm_id') id = data.get('id') if user_is_logged_in(request): title = get_current_user(request) # tle = get_doc(request, doc_id ) # print( doc_id ) # print( tle ) # tle = get_doc(request, doc_id )['doc']['title'] title_ = ct(request, title ) title = no_script( title ) if title else 'Аноним' parent = data.get('parent', "_") descr = data.get( 'descr') descr = no_script( descr ) descr = descr.replace('\n', '<br/>') # ретурн если нет и того и другого а если нет только одного то как раз проверим pre = 'true' if not user_has_permission(request, 'des:obj', 'add_com') else 'false' date = str( time.strftime("%Y-%m-%d %H:%M:%S") ) user_ = get_current_user_name(request, title ) or title our = "true" if user_is_logged_in(request) else "false" body = re.sub(r'(http?://([a-z0-9-]+([.][a-z0-9-]+)+)+(/([0-9a-z._%?#]+)+)*/?)', r'<a href="\1">\1</a>', descr) # добавление родителю ребенка request.db.doc.update({ "_id": parent }, { "$addToSet": { "child": doc_id } } ) # занесение коментов в справочник коментов doc_id_comm, updated = create_empty_row_(request, 'des:comments', parent, '', { "user":'******'+title }) data = {"id":doc_id_comm, "title":title_, "date":date, "body":body, "parent":parent, "owner":id, 'ip':ip, 'name':user_, "our":our, 'pre':pre } update_row_(request, 'des:comments', doc_id_comm, data, parent) if 'notify_user' in dir(settings) and settings.notify_user: # if 'notify_user' in settings and settings.notify_user: # link = make_link('show_object', {'doc_id':doc_id }, True)+'#comm_'+ str( id ) link = settings.domain+'/news/'+doc_id+'#comm_'+ str( id ) subject = 'User {} add comment'.format( title ) sub('user:'******'id1', id) id = get_doc(request, id)['_id'] print('id2', id) invalidate_cache('single_page', id=id) # rev = get_doc(request, doc_id)['doc']['rev'] # reset_cache(type="doc", doc_id=rev) # добавление подсчета коментариев в отдельном документе request.db.doc.update({ "_id": doc_id }, { "$inc": { "count_branch":1 } } ) # return json.dumps({"result":"ok", "content":data.update({"title":title}), "hash":""}) return response_json(request, {"result":"ok", "content":data, "hash":""})
async def add_comm_post(request): # return json.dumps(current_id, title, link, proc_id) """current_id это id ветки""" # ip = request.environ.get('REMOTE_ADDR') data = await request.post() ip = None print('data->', data) #get ip address client peername = request.transport.get_extra_info('peername') host = None if peername is not None: host, port = peername ip = host # print ('host, port->', host, port) user = get_current_user(request, True) if check_ban(request, host, user): return response_json( request, { "result": "fail", "error": "Ваш ip или аккаунт забанен на этом сайте, свяжитесь с администрацией" }) else: title = data.get('title') if not user_has_permission(request, 'des:obj', 'add_com') and not user_has_permission( request, 'des:obj', 'add_com_pre'): return response_json(request, { "result": "fail", "error": "no comment" }) if not check_user_rate(request, user): return response_json( request, { "result": "fail", "error": "Вы не можете оставлять сообщения слишком часто, из-за отрицательной кармы" }) doc_id = data.get('comm_id') id = data.get('id') if user_is_logged_in(request): title = get_current_user(request) # tle = get_doc(request, doc_id ) # print( doc_id ) # print( tle ) # tle = get_doc(request, doc_id )['doc']['title'] title_ = ct(request, title) title = no_script(title) if title else 'Аноним' parent = data.get('parent', "_") descr = data.get('descr') descr = no_script(descr) descr = descr.replace('\n', '<br/>') # ретурн если нет и того и другого а если нет только одного то как раз проверим pre = 'true' if not user_has_permission(request, 'des:obj', 'add_com') else 'false' date = str(time.strftime("%Y-%m-%d %H:%M:%S")) user_ = get_current_user_name(request, title) or title our = "true" if user_is_logged_in(request) else "false" body = re.sub( r'(http?://([a-z0-9-]+([.][a-z0-9-]+)+)+(/([0-9a-z._%?#]+)+)*/?)', r'<a href="\1">\1</a>', descr) # добавление родителю ребенка request.db.doc.update({"_id": parent}, {"$addToSet": {"child": doc_id}}) # занесение коментов в справочник коментов doc_id_comm, updated = create_empty_row_(request, 'des:comments', parent, '', {"user": '******' + title}) data = { "id": doc_id_comm, "title": title_, "date": date, "body": body, "parent": parent, "owner": id, 'ip': ip, 'name': user_, "our": our, 'pre': pre } update_row_(request, 'des:comments', doc_id_comm, data, parent) if 'notify_user' in dir(settings) and settings.notify_user: # if 'notify_user' in settings and settings.notify_user: # link = make_link('show_object', {'doc_id':doc_id }, True)+'#comm_'+ str( id ) link = settings.domain + '/news/' + doc_id + '#comm_' + str(id) subject = 'User {} add comment'.format(title) sub('user:'******'id1', id) id = get_doc(request, id)['_id'] print('id2', id) invalidate_cache('single_page', id=id) # rev = get_doc(request, doc_id)['doc']['rev'] # reset_cache(type="doc", doc_id=rev) # добавление подсчета коментариев в отдельном документе request.db.doc.update({"_id": doc_id}, {"$inc": {"count_branch": 1}}) # return json.dumps({"result":"ok", "content":data.update({"title":title}), "hash":""}) return response_json(request, { "result": "ok", "content": data, "hash": "" })