def get(self, name): name = name.lower() m_obj = Member.get_by_key_name(name) if m_obj: self.echo( 'member.html', { 'title': m_obj.name, 'm_obj': m_obj, 'mi_obj': MemberInfo.get_by_key_name(name), 'newest_node': Node.get_newest(), #'recent_node': Node.get_recent_node(), 'hot_node': Node.get_hot_node(), 'recent_topic_objs': KeyStrValue.get_topic_key_title('recent-topic-home'), 'reply_topic_objs': KeyStrValue.get_topic_key_title('recent-reply-topic'), }, layout='_layout.html') else: self.error(404) self.echo( 'error.html', { 'page': '404', 'title': "Can't find out this URL", 'h2': 'Oh, my god!', 'msg': 'Something seems to be lost...' }) return
def cur_user(self): if self.request.user: from model import Member, GoogleUser req_user = self.request.user gu_obj = GoogleUser.get_or_insert(req_user.email()) if gu_obj.name: return Member.get_by_key_name(gu_obj.name) return None else: return None
def cur_user(self): if self.request.user: from model import Member, GoogleUser req_user = self.request.user gu_obj = GoogleUser.get_or_insert(req_user.user_id()) if gu_obj.name: return Member.get_by_key_name(gu_obj.name) return None else: return None
def set_mentions(topic_key, allmember): for m in allmember.split(','): m_obj = Member.get_by_key_name(m) if m_obj: if m_obj.notic: t_list = m_obj.notic.split(',') if topic_key not in t_list: t_list.insert(0, topic_key) m_obj.notic = ','.join(t_list[:NOTIFY_NUM]) m_obj.put() else: m_obj.notic = topic_key m_obj.put()
def set_mentions(topic_key,allmember): for m in allmember.split(','): m_obj = Member.get_by_key_name(m) if m_obj: if m_obj.notic: t_list = m_obj.notic.split(',') if topic_key not in t_list: t_list.insert(0, topic_key) m_obj.notic = ','.join(t_list[:NOTIFY_NUM]) m_obj.put() else: m_obj.notic = topic_key m_obj.put()
def get(self): if self.cur_user and self.cur_user.flag==99: m_name = self.request.get('name') m_obj = None if m_name: m_obj = Member.get_by_key_name(m_name) self.echo('setuserflag.html', { 'title': "设置用户权限", 'm_name': m_name, 'm_obj':m_obj, }, layout='_layout.html') else: self.error(403) self.write('403:forbidden')
def post(self): if self.cur_user and self.cur_user.flag == 99: m_name = self.request.get('name') flag = self.request.get('flag') m_obj = None if m_name and flag: m_obj = Member.get_by_key_name(m_name) if m_obj: m_obj.flag = int(flag) m_obj.put() else: self.redirect('/set-user-flag') return self.redirect('/set-user-flag?name=%s' % str(m_name)) else: self.error(403) self.write('403:forbidden')
def post(self): if self.cur_user and self.cur_user.flag==99: m_name = self.request.get('name') flag = self.request.get('flag') m_obj = None if m_name and flag: m_obj = Member.get_by_key_name(m_name) if m_obj: m_obj.flag = int(flag) m_obj.put() else: self.redirect('/set-user-flag') return self.redirect('/set-user-flag?name=%s'%str(m_name)) else: self.error(403) self.write('403:forbidden')
def post(self): if self.cur_user: file_content = self.request.get('myfile', '') errors = [] if file_content: imgobj = images.Image(file_content) if imgobj.width <= 73 and imgobj.height <= 73: img_large = file_content else: imgobj.resize(73, 73) imgobj.im_feeling_lucky() img_large = imgobj.execute_transforms( output_encoding=images.JPEG, quality=95) u = UpYun(DOMAIN_NAME_AVATAR, UPYUN_USER, UPYUN_PW) file_path_name = '/avatar/%s.jpg' % self.cur_user.name avatar = u.writeFile(file_path_name, img_large, True) if avatar: m_obj = Member.get_by_key_name(self.cur_user.name) if m_obj: if m_obj.flag == 1: if m_obj.id == 1: m_obj.flag = 99 else: m_obj.flag = 2 db.run_in_transaction( obj_runput, m_obj, ['cur_user:'******'/setavatar') return else: errors.append('服务器出现意外错误,请稍后再试') else: self.echo('setavatar.html', { 'title': "设置头像", 'errors': errors, 'newest_node': Node.get_newest(), }, layout='_layout.html') else: self.redirect('/')
def post(self): req_user = self.request.user gu_obj = GoogleUser.get_or_insert(req_user.user_id()) if gu_obj.name: self.redirect('/') return errors = [] name = self.POST['name'].strip().lower() if name: if len(name)<20: if re.search('^[a-zA-Z0-9]+$', name): check_obj = Member.get_by_key_name(str(name)) if check_obj: errors.append('该用户名已被注册,请换一个吧') else: #get member id mid_obj = Counter.get_or_insert('member_auto_increment',name = 'member_auto_increment', value = 1) nuser_obj = Member(key_name=name, id = mid_obj.value, flag = 1, add = int(time())) nuser_obj.put() if nuser_obj.is_saved(): #set google user gu_obj.name = name db.run_in_transaction(obj_runput,gu_obj) #all member num +1 mid_obj.value += 1 db.run_in_transaction(obj_runput,mid_obj) self.redirect('/setavatar') return else: errors.append('服务器出现意外错误,请稍后再试') else: errors.append('用户名只能包含字母和数字') else: errors.append('用户名太长了') else: errors.append('用户名必填') self.echo('setname.html', { 'title': "设置名字", 'errors':errors, 'name':name, 'newest_node': Node.get_newest(), }, layout='_layout.html')
def post(self): if self.cur_user: file_content = self.request.get('myfile','') errors = [] if file_content: imgobj = images.Image(file_content) if imgobj.width <= 73 and imgobj.height <= 73: img_large = file_content else: imgobj.resize(73, 73) imgobj.im_feeling_lucky() img_large = imgobj.execute_transforms(output_encoding=images.JPEG, quality=95) av_obj = Avatar.get_or_insert(self.cur_user.name) av_obj.content = img_large av_obj.put() if av_obj.is_saved(): m_obj = Member.get_by_key_name(self.cur_user.name) if m_obj: if m_obj.flag ==1: if m_obj.id == 1: m_obj.flag = 99 else: m_obj.flag = 2 db.run_in_transaction(obj_runput,m_obj, ['cur_user:'******'/setavatar') return else: errors.append('服务器出现意外错误,请稍后再试') else: self.echo('setavatar.html', { 'title': "设置头像", 'errors':errors, 'newest_node': Node.get_newest(), }, layout='_layout.html') else: self.redirect('/')
def get(self, name): name = name.lower() m_obj = Member.get_by_key_name(name) if m_obj: self.echo('member.html', { 'title': m_obj.name, 'm_obj': m_obj, 'mi_obj': MemberInfo.get_by_key_name(name), 'newest_node': Node.get_newest(), 'recent_node': Node.get_recent_node(), 'hot_node': Node.get_hot_node(), 'recent_topic_objs': KeyStrValue.get_topic_key_title('recent-topic-home'), 'reply_topic_objs': KeyStrValue.get_topic_key_title('recent-reply-topic'), }, layout='_layout.html') else: self.error(404) self.echo('error.html', { 'page': '404', 'title': "Can't find out this URL", 'h2': 'Oh, my god!', 'msg': 'Something seems to be lost...' }) return
def post(self): req_user = self.request.user gu_obj = GoogleUser.get_or_insert(req_user.email()) if gu_obj.name: self.redirect('/') return errors = [] name = self.POST['name'].strip().lower() if name: if len(name) < 20: if re.search('^[a-zA-Z0-9]+$', name): check_obj = Member.get_by_key_name(str(name)) if check_obj: errors.append('该用户名已被注册,请换一个吧') else: #get member id mid_obj = Counter.get_or_insert( 'member_auto_increment', name='member_auto_increment', value=1) nuser_obj = Member(key_name=name, id=mid_obj.value, flag=1, add=int(time())) nuser_obj.put() if nuser_obj.is_saved(): #set google user gu_obj.name = name db.run_in_transaction(obj_runput, gu_obj) #all member num +1 mid_obj.value += 1 db.run_in_transaction(obj_runput, mid_obj) #try to Fetch Google Plus Profile Picture try: img_url = 'https://profiles.google.com/s2/photos/profile/' + req_user.nickname( ) img_data = read_img(img_url) #self.header['Content-Type'] = "image/jpg" if img_data: pass else: img_url = 'https://www.gravatar.com/avatar/%s?s=73&d=monsterid' % md5( req_user.email()).hexdigest() img_data = read_img(img_url) if img_data: imgobj = images.Image(img_data) if imgobj.width <= 73 and imgobj.height <= 73: img_large = img_data else: imgobj.resize(73, 73) imgobj.im_feeling_lucky() img_large = imgobj.execute_transforms( output_encoding=images.JPEG, quality=95) u = UpYun(DOMAIN_NAME_AVATAR, UPYUN_USER, UPYUN_PW) file_path_name = '/avatar/%s.jpg' % self.cur_user.name avatar = u.writeFile( file_path_name, img_large, True) if avatar: m_obj = self.cur_user #Member.get_by_key_name(self.cur_user.name) if m_obj.flag == 1: if m_obj.id == 1: m_obj.flag = 99 else: m_obj.flag = 2 db.run_in_transaction( obj_runput, m_obj, [ 'cur_user:'******'Fetch Google Plus Profile Picture Failure: ' + req_user.email()) # self.redirect('/setavatar') return else: errors.append('服务器出现意外错误,请稍后再试') else: errors.append('用户名只能包含字母和数字') else: errors.append('用户名太长了') else: errors.append('用户名必填') self.echo('setname.html', { 'title': "设置名字", 'errors': errors, 'name': name, 'newest_node': Node.get_newest(), }, layout='_layout.html')