def post(self): if not self.request.headers.get("Cookie"): self.render("require_enable_cookie.html") return name = self.get_argument("name",'') password = self.get_argument("password",'') password = hashlib.md5(password).hexdigest() email = self.get_argument("email",'') domain = self.get_argument("domain",'') try: user = User.get(user_email = email) except: u = User.create(user_name = name, user_pass = password, user_email = email, user_domain = domain, ) user = {'user_id':u.id, 'user_name':u.user_name, 'user_email':u.user_email, 'user_domain':u.user_domain} self.set_secure_cookie("user", tornado.escape.json_encode(user)) self.redirect(self.get_argument("next", "/")) else: self.write('用户已经存在,请重新注册或直接登录')
def get_enterprise_detail(user_id, html): user = User(user_id) user.follows_num = enterprise.get_friends(html) user.fans_num = enterprise.get_fans(html) user.wb_num = enterprise.get_status(html) user.description = enterprise.get_description(html).encode('gbk', 'ignore').decode('gbk') return user
def post(self): name = self.get_argument("name", None) city = self.get_argument("city", None) say = self.get_argument("say", None) User.update( user_name=name, user_city=city, user_say=say).where(id=self.current_user["user_id"]).execute() self.redirect("/setting")
def post(self): oldpass = self.get_argument("oldpass",'') newpass = self.get_argument("newpass",'') newpass = hashlib.md5(newpass).hexdigest() user = self.get_user_bycookie() if not user: self.write('User unfound.') else: if user.user_pass == hashlib.md5(oldpass).hexdigest(): User.update(user_pass = newpass).where(id=elf.current_user["user_id"]).execute() self.redirect("/setting") else: self.write('Wrong password')
def post(self): id = self.get_argument("id", None) title = self.get_argument("title") tag = self.get_argument("tag", None) markdown = self.get_argument("markdown") sharetype = self.get_argument("type") if id: try: share = Share.get(id=id) except: self.redirect("/404") share = Share.update(title=title, markdown=markdown, sharetype=sharetype, updated=datetime.datetime.now()).where( id=id).execute() else: share = Share.create(title=title, markdown=markdown, sharetype=sharetype, user_id=self.current_user["user_id"], ) user = User.update( user_leaf=F('user_leaf') + 10).where( id=self.current_user["user_id"]).execute() id = str(share.id) self.redirect("/share/" + str(id))
def post(self): share_id = self.get_argument("share_id", None) likenum = self.get_argument("likenum", 0) like_id = Like.create( user_id=self.current_user["user_id"], share_id=share_id) share = Share.get(id=share_id) like_share = Share.update( likenum=F('likenum') + 1).where(id=share_id).execute() user_leaf = User.update( user_leaf=F('user_leaf') + 4).where(id=share.user).execute() user_leaf = User.update( user_leaf=F('user_leaf') + 2).where( id=self.current_user["user_id"]).execute() likenum = int(likenum) + 1 newlikes = ':) ' + str(likenum) self.write(newlikes)
def get(self): if self.current_user: user = User.get(id=self.current_user["user_id"]) if not user: self.redirect("/") user.gravatar = get_avatar(user.user_email,100) self.render("changepass.html", user = user) else: self.redirect("/")
def get(self, name): try: user = User.get(user_domain = name) except: self.redirect("/404") user.user_say = markdown.markdown(user.user_say) likenum = Like.select().where(user_id=user.id).count() user.gravatar = get_avatar(user.user_email,100) self.render("userhome.html", user = user,likenum = likenum)
def get(self, node): page = self.get_argument("page", "1") realpage = int(page) shares = Share.select().where( sharetype=node).order_by('id').paginate(realpage, 10) sharesum = shares.count() pagesum = (sharesum + 9) / 10 for share in shares: user = User.get(id=share.user_id) share.name = user.user_name share.domain = user.user_domain share.markdown = filter_tags(share.markdown)[:100] share.gravatar = get_avatar(user.user_email, 16) members = User.select().order_by('id').paginate(1, 20) for member in members: user = User.get(id=member.id) member.gravatar = get_avatar(user.user_email, 35) self.render( "node.html", shares=shares, members=members, pagesum=pagesum, page=page, node=node)
def get(self, name): try: user = User.get(user_domain=name) except: self.redirect("/404") likes = Like.select().where(user_id=user.id).order_by(('id','desc')) likenum = likes.count() for like in likes: share = Share.get(id=like.share_id) like.title = share.title like.id = share.id like.type = share.sharetype user.gravatar = get_avatar(user.user_email,100) self.render("userlike.html", user = user,likenum = likenum,likes = likes)
def get(self): page = self.get_argument("page", "1") realpage = int(page) shares = Share.select().order_by(('id', 'desc')).paginate(realpage, 10) sharesum = shares.count() pagesum = (sharesum + 9) / 10 for share in shares: user = User.get(id=share.user_id) share.name = user.user_name share.domain = user.user_domain share.markdown = markdown.markdown(share.markdown) share.markdown = filter_tags(share.markdown)[:100] share.gravatar = get_avatar(user.user_email, 16) members = User.select().order_by('id').paginate(1, 20) for member in members: user = User.get(id=member.id) member.gravatar = get_avatar(user.user_email, 35) print(type(shares)) suggests = Share.select().order_by( ('status', 'desc'), ('id', 'desc')).limit(5) self.render( "index.html", shares=shares, members=members, pagesum=pagesum, page=page, node='home')
def get(self): page = self.get_argument("page", "1") realpage = int(page) shares = Share.select().order_by(('id', 'desc')).paginate(realpage, 10) sharesum = shares.count() pagesum = (sharesum + 9) / 10 for share in shares: user = User.get(id=share.user_id) share.name = user.user_name share.domain = user.user_domain share.markdown = filter_tags( markdown.markdown(share.markdown))[:100] share.gravatar = get_avatar(user.user_email, 16) members = User.select().order_by(('id', 'desc')).paginate(1, 20) for member in members: user = User.get(id=member.id) member.gravatar = get_avatar(user.user_email, 25) Share.select().order_by( ('status', 'desc'), ('id', 'desc')).limit(5) node = 'home' node_about = options.node_about[node] self.render( "node.html", shares=shares, members=members, pagesum=pagesum, page=page, node=node, node_about=node_about)
def find(id): from db.models import DiscuzMember, User from sqlalchemy.orm import joinedload s = current_session() try: uid = int(id) uid = uid if uid < 500000 else None except ValueError: uid = None q = s.query(DiscuzMember).options(joinedload('ucmember')) if uid: dz_member = q.filter(DiscuzMember.uid == uid).first() else: dz_member = q.filter(DiscuzMember.email == id).first() dz_member = dz_member or q.filter(DiscuzMember.username == id).first() if not dz_member: return None uid = dz_member.uid user = s.query(User).filter(User.id == uid).first() if not user: user = User() s.add(user) user.dz_member = dz_member # sync user.games = dz_member.member_count.games user.drops = dz_member.member_count.drops user.jiecao = dz_member.member_count.jiecao return user
def user_exist(login, password): """ Check if User exist in db. Raises AuthError exception if something goes wrong :param login: string :param password: string :return: User object :raise AuthError: """ try: user = User.get(User.login == login) except User.DoesNotExist: raise AuthError(u"Пользователь с логином {} не найден в базе данных".format(login)) if create_hash(login, password) == user.password: return user else: raise AuthError(u"Логин не соответствует паролю")
def post(self): if not self.request.headers.get("Cookie"): self.render("require_enable_cookie.html") return email = self.get_argument("email",'') password = self.get_argument("password",'') try: u = User.get( user_email=email, user_pass=hashlib.md5(password).hexdigest() ) except User.DoesNotExist: self.write('密码错误或用户不存在,请重新注册或登录') else: user = {'user_id':u.id, 'user_name':u.user_name, 'user_email':u.user_email, 'user_domain':u.user_domain} self.set_secure_cookie("user", tornado.escape.json_encode(user)) self.redirect(self.get_argument("next", "/"))
def authenticate(cls, username, password): from db.models import User try: uid = int(username) except: return None user = cls.find(username) if not user: s = current_session() user = User() user.id = uid user.username = str(username) user.email = str(username) user.credits = 998 user.games = 1 user.drops = 0 s.add(user) s.flush() return cls()._fill_account(user)
def add_row(equipment_id: int, source_id: int, destination_id: int): row = History.create(source=User.get(id=source_id), destination=User.get(id=destination_id), equipment=Equipment.get(equipment_id), date=datetime.now())
def get_detail(html, uid): user = User(uid) cont = public.get_right(html) if cont == '': return None soup = BeautifulSoup(cont, 'html.parser') basic_modules = soup.find_all(attrs={'class': 'WB_cardwrap S_bg2'}) basic_info = soup.find_all(attrs={'class': 'li_1 clearfix'}) for each_module in basic_modules: try: basic_str = each_module.find(attrs={'class': 'main_title W_fb W_f14'}).get_text() if '基本信息' in basic_str: for each in basic_info: each_str = each.get_text() if '昵称:' in each_str: user.name = each.find(attrs={'class': 'pt_detail'}).get_text() elif '所在地:' in each_str: user.location = each.find(attrs={'class': 'pt_detail'}).get_text() elif '性别:' in each_str: gender = each.find(attrs={'class': 'pt_detail'}).get_text() if gender == '男': user.gender = 1 elif gender == '女': user.gender = 2 else: user.gender = 0 elif '生日:' in each_str: user.birthday = each.find(attrs={'class': 'pt_detail'}).get_text() elif '简介:' in each_str: description = each.find(attrs={'class': 'pt_detail'}).get_text() user.description = description.encode('gbk', 'ignore').decode('gbk') elif '注册时间:' in each_str: user.register_time = each.find(attrs={'class': 'pt_detail'}).get_text().replace('\t', '').replace( '\r\n', '') if '标签信息' in basic_str: basic_info = each_module.find_all(attrs={'class': 'li_1 clearfix'}) for each in basic_info: if '标签:' in each.get_text(): user.tags = each.find(attrs={'class': 'pt_detail'}).get_text().replace('\t', '').replace( '\n\n\n', '') .strip().replace('\r\n', ';') if '教育信息' in basic_str: basic_info = each_module.find_all(attrs={'class': 'li_1 clearfix'}) for each in basic_info: if '大学:' in each.get_text(): user.education_info = each.find(attrs={'class': 'pt_detail'}).get_text().replace('\r\n', ',') \ .replace('\t', '').replace('\n', ';').lstrip(';').rstrip(';') if '工作信息' in basic_str: basic_info = each_module.find_all(attrs={'class': 'li_1 clearfix'}) jobs_info = [] for each in basic_info: if '公司:' in each.get_text(): jobs = each.find_all(attrs={'class': 'pt_detail'}) for job in jobs: jobs_info.append(job.get_text().replace('\r\n', '').replace('\t', '').replace('\n', '')) user.work_info = ';'.join(jobs_info) if '联系信息' in basic_str: basic_info = each_module.find_all(attrs={'class': 'li_1 clearfix'}) contact_info = [] for each in basic_info: if 'QQ:' in each.get_text(): contact_info.append( 'qq:' + each.find(attrs={'class': 'pt_detail'}).get_text().replace('\n', '')) if '邮箱:' in each.get_text(): contact_info.append('email:' + each.find(attrs={'class': 'pt_detail'}).get_text()) if 'MSN:' in each.get_text(): contact_info.append('msn:' + each.find(attrs={'class': 'pt_detail'}).get_text()) user.contact_info = ';'.join(contact_info) except Exception as why: print('解析出错,具体原因为{why}'.format(why=why)) return user
role_client.name = 'Client' role_client.status = 'Active' role_client.save() role_worker = Role() role_worker.name = 'Worker' role_worker.status = 'Active' role_worker.save() role_fake = Role() role_fake.name = 'Fake' role_fake.status = 'Inactive' role_fake.save() #Create User user = User() user.name = 'Jhon' user.last_name = 'Murillo' user.email = '*****@*****.**' user.id_role = role_admin user.save() user2 = User() user2.name = 'Jhon2' user2.id_role = role_client user2.save() user5 = User() user5.name = 'Alex' user5.last_name = 'Osorio' user5.email = '*****@*****.**'
def get(self): members = User.select() self.render("member.html", members = members)
def get_detail(user_name, html): user = User() user.name = user_name root = etree.HTML(html) headline_xpath = "//span[@class='ztext ProfileHeader-headline']/text()" avatar_xpath = "//img[@class='Avatar Avatar--large UserAvatar-inner']/@src" career_xpath = "//div[@class='ProfileHeader-infoItem'][1]/text()" education_xpath = "//div[@class='ProfileHeader-infoItem'][2]/text()" follow_xpath = "//strong[@class='NumberBoard-itemValue']" img_xpath = "//img[@class='Avatar Avatar--large UserAvatar-inner']/@src" try: headline_item = root.xpath(headline_xpath) if headline_item: user.headline = headline_item[0] avatar_item = root.xpath(avatar_xpath) if avatar_item: user.avatar = avatar_item[0] career_item = root.xpath(career_xpath) if career_item: user.career = career_item[0] user.education = " ".join(root.xpath(education_xpath)) follow_item = root.xpath(follow_xpath) if follow_item: user.follower = num_str_to_int(follow_item[0].text) user.following = num_str_to_int(follow_item[1].text) approve_item = re.search(r"获得 (\d+(?:,\d+)) 次赞同", html) if approve_item: user.approve = num_str_to_int(approve_item.group(1)) thanks_and_collect = re.search( r"获得 (\d+(?:,*\d+)) 次感谢,(\d+(?:,*\d+)) 次收", html) if thanks_and_collect: thanks_str, collect_str = thanks_and_collect.groups() user.thanks = num_str_to_int(thanks_str) user.collect = num_str_to_int(collect_str) else: user.thanks, user.collect = -1, -1 img_item = root.xpath(img_xpath) if img_item: user.image_url = img_item[0] except Exception: crawler.exception(f"error!user_name = {user_name}") return user
def login(): """ Login a user --- get: summary: Login endpoint. description: Login a user with email. parameters: - in: formData name: email description: an email of the user required: true type: string - in: formData name: password required: true description: a password of the user type: string responses: 400: description: Parameters are not correct 404: description: User was not found 401: description: Credentials provided are incorrect 200: description: User was logged in """ try: data = flask.request.json if flask.request.json else flask.request.form email: str = data.get(EMAIL_KEY) password: str = data.get(PASSWORD_KEY) if not (email and password): return make_response( jsonify({MESSAGE_KEY: 'Not enough data provided'}), HTTPStatus.BAD_REQUEST) existing_user = User.objects(email=email.lower()).first() existing_user = existing_user if existing_user else User.objects( email=email).first() if not existing_user: return make_response(jsonify({MESSAGE_KEY: 'User not found'}), HTTPStatus.NOT_FOUND) if _check_password(password, existing_user.password): login_user(existing_user) response = make_response( jsonify({ MESSAGE_KEY: 'Success!', TOKEN_KEY: encode_auth_token(str(existing_user.id)).decode(), PUBLIC_KEY: existing_user.public_key, PRIVATE_KEY_H: existing_user.private_key_h }), HTTPStatus.OK) response.set_cookie(PUBLIC_KEY, existing_user.public_key) response.set_cookie(PRIVATE_KEY_H, existing_user.private_key_h) return response return make_response(jsonify({MESSAGE_KEY: 'Failed to authenticate'}), HTTPStatus.UNAUTHORIZED) except Exception as e: logger.exception(f'Failed to login user. Error {e}') return make_response(jsonify({MESSAGE_KEY: 'Something bad happened'}), HTTPStatus.INTERNAL_SERVER_ERROR)
def user_register(): """ Register a user --- post: summary: User registration endpoint. description: Register a new user. parameters: - in: formData name: email description: an email of the user required: true type: string - in: formData name: name description: a name of the user required: true type: string - in: formData name: surname description: a surname of the user required: true type: string - in: formData name: password required: true description: a password of the user type: string responses: 400: description: Parameters are not correct 409: description: User with the email already exists 200: description: User was logged registered """ try: data = flask.request.json if flask.request.json else flask.request.form email: str = data.get(EMAIL_KEY) password: str = data.get(PASSWORD_KEY) name: str = data.get(NAME_KEY) surname: str = data.get(SURNAME_KEY) if not (email and password and name and surname): return make_response( jsonify({MESSAGE_KEY: 'Not enough data provided'}), HTTPStatus.BAD_REQUEST) existing_user = User.objects(email=email).first() existing_user = existing_user if existing_user else User.objects( email=email.lower()).first() email = email.lower() if existing_user: return make_response(jsonify({MESSAGE_KEY: 'User already exists'}), HTTPStatus.CONFLICT) user = User(email=email, password=_hash_password(password), name=name, surname=surname) key = RSA.generate(RSA_MODULO, Random.new().read) private_key, public_key = key, key.publickey() private_key_h = private_key.export_key(format="PEM", pkcs=8, passphrase=password) user.public_key = base64.b64encode( public_key.export_key()).decode('utf-8') user.private_key_h = private_key_h.decode("utf-8") if not user: return make_response( jsonify({MESSAGE_KEY: 'Failed to create user'}), HTTPStatus.INTERNAL_SERVER_ERROR) user.save() return make_response(jsonify({MESSAGE_KEY: 'Success'}), HTTPStatus.OK) except Exception as e: logger.exception(f'Failed to register user. Error {e}') return make_response(jsonify({MESSAGE_KEY: 'Something bad happened'}), HTTPStatus.INTERNAL_SERVER_ERROR)
def view(): return render_template('synth.html', books=Book.all(sortby=Book.idext), users=User.all(sortby=User.name))
def addUser(name, username): user = User() user.name = name user.username = username user.save() return {'user_id': user.pk, 'success':True}
async def init_users(): """ 初始化用户信息 :return: """ user = await User.find_one(dict(login_name='admin')) if user: await user.delete() user = User() user.code = common_utils.get_increase_code(KEY_INCREASE_USER) user.name = '超级管理员' user.email = '*****@*****.**' # 邮箱 user.mobile = '15106139173' # 手机 user.superuser = True # 是否为超管 user.login_name = 'admin' # 用户名 user.login_password = md5('123456') # 密码 user.status = STATUS_USER_ACTIVE # 状态 user.content = '超级管理员,无所不能' # 备注 user.permission_code_list = ALL_PERMISSION_TYPE_LIST oid = await user.save() if oid: print('Initialize user [', user.name, '] succeed!')
def get_detail(html): user = User() cont = public.get_right(html) if cont == '': return None soup = BeautifulSoup(cont, 'html.parser') basic_modules = soup.find_all(attrs={'class': 'WB_cardwrap S_bg2'}) basic_info = soup.find_all(attrs={'class': 'li_1 clearfix'}) for each_module in basic_modules: try: basic_str = each_module.find(attrs={'class': 'main_title W_fb W_f14'}).get_text() if '基本信息' in basic_str: for each in basic_info: each_str = each.get_text() if '昵称:' in each_str: user.name = each.find(attrs={'class': 'pt_detail'}).get_text() elif '所在地:' in each_str: user.location = each.find(attrs={'class': 'pt_detail'}).get_text() elif '性别:' in each_str: gender = each.find(attrs={'class': 'pt_detail'}).get_text() if gender == '男': user.gender = 1 elif gender == '女': user.gender = 2 else: user.gender = 0 elif '生日:' in each_str: user.birthday = each.find(attrs={'class': 'pt_detail'}).get_text() elif '简介:' in each_str: description = each.find(attrs={'class': 'pt_detail'}).get_text() user.description = description.encode('gbk', 'ignore').decode('gbk') elif '注册时间:' in each_str: user.register_time = each.find(attrs={'class': 'pt_detail'}).get_text().replace('\t', '').replace( '\r\n', '') if '标签信息' in basic_str: basic_info = each_module.find_all(attrs={'class': 'li_1 clearfix'}) for each in basic_info: if '标签:' in each.get_text(): user.tags = each.find(attrs={'class': 'pt_detail'}).get_text().replace('\t', '').replace( '\n\n\n', '') .strip().replace('\r\n', ';') if '教育信息' in basic_str: basic_info = each_module.find_all(attrs={'class': 'li_1 clearfix'}) for each in basic_info: if '大学:' in each.get_text(): user.education_info = each.find(attrs={'class': 'pt_detail'}).get_text().replace('\r\n', ',') \ .replace('\t', '').replace('\n', ';').lstrip(';').rstrip(';') if '工作信息' in basic_str: basic_info = each_module.find_all(attrs={'class': 'li_1 clearfix'}) jobs_info = [] for each in basic_info: if '公司:' in each.get_text(): jobs = each.find_all(attrs={'class': 'pt_detail'}) for job in jobs: jobs_info.append(job.get_text().replace('\r\n', '').replace('\t', '').replace('\n', '')) user.work_info = ';'.join(jobs_info) if '联系信息' in basic_str: basic_info = each_module.find_all(attrs={'class': 'li_1 clearfix'}) contact_info = [] for each in basic_info: if 'QQ:' in each.get_text(): contact_info.append( 'qq:' + each.find(attrs={'class': 'pt_detail'}).get_text().replace('\n', '')) if '邮箱:' in each.get_text(): contact_info.append('email:' + each.find(attrs={'class': 'pt_detail'}).get_text()) if 'MSN:' in each.get_text(): contact_info.append('msn:' + each.find(attrs={'class': 'pt_detail'}).get_text()) user.contact_info = ';'.join(contact_info) except Exception as why: print('解析出错,具体原因为{why}'.format(why=why)) return user
db_session.add(joc) db_session.commit() # -------------------- CREATE USERS -------------------- mylogger.info("Creating default users...") users = [] for i in range(0, 10): f = str(i) + "usfree" # noinspection PyArgumentList user_free = User(username=f, email=f + "@gmail.com", name=f, surname="free", birthday=datetime.datetime(rand.randint(1980, 2006), 1, 1), genere=GenereEnum.male, games=rand.sample(jocs, rand.randint(1, 3)), points=rand.randint(1, 50)) user_free.set_password(f + "pass") user_free.tokens.append( UserToken(token=''.join([ rand.choice(string.ascii_letters + string.digits) for n in range(50) ]))) db_session.add(user_free) users.append(user_free) db_session.commit() # -------------------- CREATE DEFAULT MATCHS --------------------
def get(self): realpath = self.request.path[1:] try: share = Share.get(slug=realpath) except: self.redirect("/404") share.markdown = markdown.markdown(share.markdown) if self.current_user: share.is_liking = Like.select().where( share_id=share.id, user_id=self.current_user["user_id"]).count() > 0 comments = Comment.select().where(share_id=share.id) for comment in comments: user = User.get(id=comment.user_id) comment.name = user.user_name comment.domain = user.user_domain comment.gravatar = get_avatar(user.user_email, 50) Share.update(hitnum=F('hitnum') + 1).where( id=share.id).execute() if self.current_user: is_hitted = Hit.select().where( share_id=share.id, user_id=self.current_user["user_id"]).count() > 0 Hit.create( hitnum=1, share_id=share.id, user_id=self.current_user["user_id"], ) else: is_hitted = self.get_cookie(share.id) if not is_hitted: self.set_cookie(str(share.id), "1") posts = Share.select() suggest = {} for post in posts: post.score = 100 + post.id - post.user_id + post.commentnum * 3 post.score += post.likenum * 4 + post.hitnum * 0.01 post.score += randint(1, 999) * 0.001 if post.sharetype == share.sharetype: post.score += 5 if self.current_user: is_hitted = Hit.select().where( share_id=post.id, user_id=self.current_user["user_id"]).count() > 0 else: is_hitted = self.get_cookie(share.id) if is_hitted: post.score -= 50 suggest[post.score] = post.id print(post.id) print(post.score) realsuggest = [] i = 1 for key in sorted(suggest.iterkeys(), reverse=True): post = Share.get(id=suggest[key]) share_post = {'id': post.id, 'title': post.title, } realsuggest.append(share_post) i = i + 1 if i > 3: break self.render( "sharee.html", share=share, comments=comments, realsuggest=realsuggest)
def create(): user1 = User(first_name='u1', last_name='u1') user2 = User(first_name='u2', last_name='u2') user3 = User(first_name='u3', last_name='u3') user1.save() user2.save() user3.save() blog1 = Blog(title='blog1', author=user1) blog2 = Blog(title='blog2', author=user1) blog1.subscribers.add(user1, user2) blog2.subscribers.add(user2) blog1.save() blog2.save() topic1 = Topic(title='topic1', blog=blog1, author=user1) topic2 = Topic(title='topic2_content', blog=blog1, author=user3, created=datetime.strptime('2017-01-01', 'yyyy-mm-dd')) topic2.save() topic1.likes.add(user1, user2, user3) topic1.save()