예제 #1
0
파일: user.py 프로젝트: xiaocao/anwen.in
 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('用户已经存在,请重新注册或直接登录')
예제 #2
0
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
예제 #3
0
파일: user.py 프로젝트: excelgco/anwen.in
 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")
예제 #4
0
파일: user.py 프로젝트: xiaocao/anwen.in
 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')
예제 #5
0
파일: share.py 프로젝트: xiaocao/anwen.in
 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))
예제 #6
0
파일: share.py 프로젝트: xiaocao/anwen.in
 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)
예제 #7
0
파일: user.py 프로젝트: xiaocao/anwen.in
 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("/")
예제 #8
0
파일: user.py 프로젝트: xiaocao/anwen.in
 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)
예제 #9
0
파일: index.py 프로젝트: xiaocao/anwen.in
 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)
예제 #10
0
파일: user.py 프로젝트: xiaocao/anwen.in
 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)
예제 #11
0
파일: index.py 프로젝트: xiaocao/anwen.in
 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')
예제 #12
0
파일: index.py 프로젝트: excelgco/anwen.in
 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)
예제 #13
0
    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
예제 #14
0
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"Логин не соответствует паролю")
예제 #15
0
파일: user.py 프로젝트: xiaocao/anwen.in
 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", "/"))
예제 #16
0
    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)
예제 #17
0
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())
예제 #18
0
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
예제 #19
0
파일: main.py 프로젝트: Softdesk/Python
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 = '*****@*****.**'
예제 #20
0
파일: user.py 프로젝트: xiaocao/anwen.in
 def get(self):
     members = User.select()
     self.render("member.html", members = members)
예제 #21
0
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
예제 #22
0
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)
예제 #23
0
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)
예제 #24
0
파일: main.py 프로젝트: fraoustin/jlat
def view():
    return render_template('synth.html',
                           books=Book.all(sortby=Book.idext),
                           users=User.all(sortby=User.name))
예제 #25
0
def addUser(name, username):
    user = User()
    user.name = name
    user.username = username
    user.save()
    return {'user_id': user.pk, 'success':True}
예제 #26
0
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!')
예제 #27
0
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
예제 #28
0
        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 --------------------
예제 #29
0
파일: index.py 프로젝트: excelgco/anwen.in
 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)
예제 #30
0
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()