本文整理汇总了Python中warara.warara_middleware.get_server函数的典型用法代码示例。如果您正苦于以下问题:Python get_server函数的具体用法?Python get_server怎么用?Python get_server使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了get_server函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: login
def login(request):
if request.method != 'POST':
return HttpResponseRedirect('/')
if request.POST.get('precheck', 0):
return login_precheck(request)
# 가끔 username / password 를 아예 안 넣는 경우가 있다.
username = request.POST.get('username', None)
password = request.POST.get('password', None)
if username == None or password == None:
# XXX 2010.07.02. 사실 합당한 에러를 만들어야 하는데 ...
raise NotLoggedIn()
# 로그인 요청을 수행한 url 을 current_page 로 설정한다
# 해당되는 url 이 없을 경우 /main/ 을 기본값으로 설정한다
current_page = request.POST.get('current_page_url', '/main/')
client_ip = request.META['REMOTE_ADDR']
server = warara_middleware.get_server()
try:
session_key = server.login_manager.login(username, password, client_ip)
except InvalidOperation, e:
#XXX: (pipoket) Ugly hack for showing nickname while not logged in.
# print e.why
splited = e.why.splitlines()
if splited[0] == 'not activated':
username = splited[1]
nickname = splited[2]
rendered = render_to_string('account/mail_confirm.html', {
'username': username, 'nickname': nickname})
return HttpResponse(rendered)
else:
return HttpResponse('<script>alert("Login failed!"); history.back()</script>');
示例2: index
def index(request):
server = warara_middleware.get_server()
sess, r = warara.check_logged_in(request)
category_list = server.board_manager.get_category_list()
r['category_list'] = category_list + [{'category_name':'None'}]
board_list = server.board_manager.get_board_list()
for board in board_list:
for category in category_list:
if board.category_id == category.id:
board.category_name = category.category_name
r['board_list'] = board_list
bbs_managers_list = []
for board in board_list:
bbs_managers = server.board_manager.get_bbs_managers(board.board_name)
bbs_managers_list.append({'board': board, 'managers': bbs_managers})
r['bbs_managers_list'] = bbs_managers_list
# TODO: 배너를 단순히 나열하기보다는 배너의 날짜 등을 함께 표시하는 것이 어떨까?
banner_list = server.notice_manager.list_banner(sess)
r['banner_list'] = banner_list
rendered = render_to_string('sysop/index.html', r)
return HttpResponse(rendered)
示例3: write_
def write_(request, board_name):
server = warara_middleware.get_server()
sess, r = warara.check_logged_in(request)
article_dic = {}
r['url'] = ''.join(['/board/', board_name, '/'])
article_dic['content'] = request.POST.get('text', '')
use_signature = request.POST.get('signature_check', None)
if use_signature:
article_dic['content'] += '\n\n' + request.POST.get('signature', '')
article_dic['title'] = request.POST.get('title', '')
article_dic['heading'] = request.POST.get('heading', '') # Heading !!!
if request.POST.get('write_type', 0) == 'modify':
article_no = request.POST.get('article_no', 0)
article_id = server.article_manager.modify_article(sess, board_name, int(article_no), WrittenArticle(**article_dic))
delete_file = request.POST.get('delete_file', 0) #delete_file
if delete_file:
delete_file = delete_file[1:]
delete_file = delete_file.split('&')
for file_id in delete_file:
file = server.file_manager.delete_file(sess, int(article_no), int(file_id))
os.remove("%s/%s/%s" % (FILE_DIR, file.file_path, file.saved_filename))
else:
article_id = server.article_manager.write_article(sess, board_name, WrittenArticle(**article_dic))
#upload file
if request.FILES:
_upload_file(server, sess, article_id, request.FILES)
if request.POST.get('write_type', 0) == 'modify':
return HttpResponseRedirect('/board/%s/%s#%s' % (board_name, request.POST.get('root_id', article_id), article_id))
else:
return HttpResponseRedirect('/board/%s/%s' % (board_name, str(article_id)))
示例4: rss
def rss(request, board_name):
'''
주어진 게시판에 대한 RSS 파일을 제공한다.
@type request: Django Request
@param request: Request
@type board_name: string
@param board_name: 검색하려는 글이 있는 board name
'''
from django.utils import feedgenerator
server = warara_middleware.get_server()
sess, r = warara.check_logged_in(request)
feed = feedgenerator.Atom1Feed(title = u'ARA/%s' % board_name, link = u'/board/%s/rss/' % board_name, description = u'A RSS of all articles in %s board' % board_name)
page_no = 1
page_length = 20
article_list = server.article_manager.article_list(sess, board_name, None, page_no, page_length, True).hit
fake_author(article_list, False)
for article in article_list:
if article.heading:
article_title = u'[%s] %s' % (article.heading, article.title)
else:
article_title = u'%s' % article.title
feed.add_item(title=article_title,
link=u'/board/%s/%d/' % (board_name, article.id),
author_name=article.author_nickname,
pubdate=datetime.datetime.fromtimestamp(article.date),
description=u'author : %s date : %s' % (article.author_nickname, datetime.datetime.fromtimestamp(article.date)))
return HttpResponse(feed.writeString('utf-8'), mimetype=feedgenerator.Atom1Feed.mime_type)
示例5: read
def read(request, message_list_type, message_id):
server = warara_middleware.get_server()
sess, _ = warara.check_logged_in(request)
r = {}
r["logged_in"] = True
r["page_length"] = request.GET.get("page_length", 10)
r["page_no"] = request.GET.get("page_no", 1)
message_id = int(message_id)
if message_list_type == "inbox":
r["message"] = server.messaging_manager.read_received_message(sess, message_id)
elif message_list_type == "outbox":
r["message"] = server.messaging_manager.read_sent_message(sess, message_id)
r["message"].sent_time = datetime.datetime.fromtimestamp(r["message"].sent_time)
r["message_id"] = message_id
r["message_list_type"] = message_list_type
if message_list_type == "inbox":
r["person_type"] = "sender"
r["person"] = r["message"].from_
elif message_list_type == "outbox":
r["person_type"] = "receiver"
r["person"] = r["message"].to
rendered = render_to_string("message/read.html", r)
return HttpResponse(rendered)
示例6: password_recovery
def password_recovery(request, username, token_code):
sess, r = warara.check_logged_in(request)
server = warara_middleware.get_server()
if r['logged_in'] == True:
raise InvalidOperation("Already logged in!")
if request.method == 'POST':
new_password = request.POST.get('password', '')
new_password_check = request.POST.get('re_password', '')
error_msg = ''
if new_password != new_password_check:
error_msg = 'Passwords are not agree.'
if new_password == '':
error_msg = 'Password cannot be empty.'
if error_msg:
return HttpResponse('<script>alert("%s"); history.back(); </script>' % error_msg)
user_password_dic = {'username':username, 'current_password':u'', 'new_password':new_password}
try:
server.member_manager.modify_password_with_token(UserPasswordInfo(**user_password_dic), token_code)
except InvalidOperation, e:
return HttpResponse('<script>alert("%s"); history.back(); </script>' % e.why)
return HttpResponseRedirect("/")
示例7: refresh_weather
def refresh_weather(request):
server = warara_middleware.get_server()
sess, r = warara.check_logged_in(request)
server.bot_manager.refresh_weather_info()
return HttpResponseRedirect('/sysop/')
示例8: render
def render(self, ctx):
server = warara_middleware.get_server()
# XXX(hodduc) : wairara.check_logged_in을 거쳤음에도 불구하고 Context를 따로 만들어서 쓰는 view가 너무 많다.
# 하나로 통일하는 것이 깔끔해 보인다
if not 'arara_session' in ctx:
return ''
sess = ctx['arara_session']
# Get Weather info
if warara_settings.USE_WEATHER_FORECAST:
ctx['weather_info'] = server.bot_manager.get_weather_info(sess)
if ctx['weather_info'].city == None:
ctx['has_weather'] = False
else:
if ctx['weather_info'].city.lower() == 'daejeon':
ctx['weather_info'].city = u'대전'
elif ctx['weather_info'].city.lower() == 'seoul':
ctx['weather_info'].city = u'서울'
ctx['weather_info'].current_icon_url = weather_icon_replace(ctx['weather_info'].current_icon_url)
ctx['weather_info'].tomorrow_icon_url = weather_icon_replace(ctx['weather_info'].tomorrow_icon_url)
ctx['weather_info'].day_after_tomorrow_icon_url = weather_icon_replace(ctx['weather_info'].day_after_tomorrow_icon_url)
ctx['has_weather'] = True
else:
ctx['has_weather'] = False
return ""
示例9: read_root
def read_root(request, board_name, article_id):
'''
주어진 게시판의 주어진 글이 답글인 경우 root글의 주소로 읽어온다.
@type request: Django Request
@param request: Request
@type board_name: string
@param board_name: 읽고자 하는 글이 있는 Board Name
@type article_id: string (int)
@param article_id: 읽고자 하는 글의 번호
'''
server = warara_middleware.get_server() #
sess, r = warara.check_logged_in(request) #
r['mode'] = 'board'
article_list = server.article_manager.read_article(sess, board_name, int(article_id))
root_article_id = article_list[0].root_id
# 글의 정보를 r 에 저장
_read(request, r, sess, board_name, root_article_id)
# 화면 하단의 글목록의 정보를 r 에 저장
get_article_list(request, r, 'read')
fake_author(r['article_read_list'])
fake_author(r['article_list'], False)
rendered = render_to_string('board/read.html', r)
return HttpResponse(rendered)
示例10: _reply
def _reply(request, board_name, article_id):
'''
주어진 게시판의 주어진 글에 실제로 reply 를 단다.
@type request: Django Request
@param request: Request
@type board_name: string
@param board_name: reply를 달고자 하는 글이 있는 board name
@type article_id: string (int)
@param article_id: reply를 달고자 하는 글의 번호
@rtype: int
@return: reply 가 달리는 글의 root id
'''
server = warara_middleware.get_server()
sess, r = warara.check_logged_in(request)
reply_dic = {}
reply_dic['content'] = request.POST.get('content', '')
reply_dic['title'] = request.POST.get('title', '')
reply_dic['heading'] = request.POST.get('heading', '') # TODO: HEADING !!
root_id = request.POST.get('root_id', '')
use_signature = request.POST.get('signature_check', None)
if use_signature:
reply_dic['content'] += '\n\n' + request.POST.get('signature', '')
article_id = server.article_manager.write_reply(sess, board_name, int(article_id), WrittenArticle(**reply_dic))
#upload file
if request.FILES:
_upload_file(server, sess, article_id, request.FILES)
return root_id
示例11: _relay_fiction_reply
def _relay_fiction_reply(request, board_name, article_id):
'''
이벤트용 임시 답글 함수.
@type request: Django Request
@param request: Request
@type board_name: string
@param board_name: reply를 달고자 하는 글이 있는 board name
@type article_id: string (int)
@param article_id: reply를 달고자 하는 글의 번호
@rtype: int
@return: reply 가 달리는 글의 root id
'''
server = warara_middleware.get_server()
sess, r = warara.check_logged_in(request)
reply_dic = {}
color = request.POST.get('color', '#000000')
reply_dic['content'] = '<font color=\"' + color + '\">' + request.POST.get('content', '') + '</font>'
reply_dic['title'] = request.POST.get('title', '')
reply_dic['heading'] = request.POST.get('heading', '') # TODO: HEADING !!
root_id = request.POST.get('root_id', '')
use_signature = request.POST.get('signature_check', None)
if use_signature:
reply_dic['content'] += '\n\n' + request.POST.get('signature', '')
article_id = server.article_manager.write_reply(sess, board_name, int(article_id), WrittenArticle(**reply_dic))
return root_id
示例12: check_logged_in
def check_logged_in(request):
r = {}
if "arara_session_key" in request.session:
sess = request.session['arara_session_key']
username = request.session['arara_username']
checksum = hashlib.sha1(sess+"@"+username).hexdigest()
if request.COOKIES.get('arara_checksum', '') != checksum:
from warara import warara_middleware
server = warara_middleware.get_server()
User_Info = server.member_manager.get_info(sess)
server.login_manager.debug__check_session(sess, username, request.META['REMOTE_ADDR'], User_Info)
request.session.flush()
sess = ""
r['logged_in'] = False
r['username'] = ""
request.session['django_language']="en"
else:
r['arara_session'] = sess
r['logged_in'] = True
r['username'] = request.session.get('arara_username', 0);
else:
sess = ""
r['logged_in'] = False
r['username'] = ""
request.session['django_language']="en"
return sess, r
示例13: send_password_recovery_email
def send_password_recovery_email(request):
sess, r = warara.check_logged_in(request)
server = warara_middleware.get_server()
if r['logged_in'] == True:
raise InvalidOperation("Already logged in!")
if request.method == 'POST':
username = request.POST.get('username_field', '')
email = request.POST.get('email_field', '')
error_msg = ''
if not username:
error_msg = 'Username field is empty.'
if not email:
error_msg = 'Email field is empty.'
if error_msg:
return HttpResponse('<script>alert("%s"); history.back(); </script>' % error_msg)
try:
server.member_manager.send_password_recovery_email(username, email)
resp = "We sent e-mail to your e-mail address. Please check your inbox."
except InvalidOperation, e:
resp = e.why
return HttpResponse('<script>alert("%s"); history.back(); </script>' % resp)
示例14: update
def update(request):
server = warara_middleware.get_server()
sess, r = warara.check_logged_in(request)
blacklist = server.blacklist_manager.get_blacklist(sess)
bl_submit_chooser = request.POST['bl_submit_chooser']
if bl_submit_chooser == "update":
for b in blacklist:
article_bl_key = 'blacklist_article_%s' % b.blacklisted_user_username
if article_bl_key in request.POST:
b.block_article = True
else:
b.block_article = False
message_bl_key = 'blacklist_message_%s' % b.blacklisted_user_username
if message_bl_key in request.POST:
b.block_message = True
else:
b.block_message = False
server.blacklist_manager.modify_blacklist(sess, BlacklistRequest(
blacklisted_user_username = b.blacklisted_user_username,
block_article = b.block_article,
block_message = b.block_message))
if bl_submit_chooser == "delete":
for b in blacklist:
delete_user = request.POST.get('bl_%s_delete' % b.blacklisted_user_username, "")
if delete_user != "":
server.blacklist_manager.delete_blacklist(sess, delete_user)
return HttpResponseRedirect("/blacklist/")
示例15: delete
def delete(request):
if request.method == 'POST':
username = request.POST['username']
server = warara_middleware.get_server()
sess, r = warara.check_logged_in(request)
server.blacklist_manager.delete_blacklist(sess, username)
return HttpResponseRedirect("/blacklist/")