Exemple #1
0
 def stop(self, bot, update):
     telegram_user = update.message.from_user
     User.update(is_active=False).where(
         User.telegram_id == telegram_user.id).execute()
     msg = "Стоп сообщениям"
     self.logger.debug('/stop command form user %s' % telegram_user)
     update.message.reply_text(msg)
Exemple #2
0
def login():

    # Logged in? Send to home screen
    if current_user.is_authenticated:
        return redirect('/')

    form = LoginForm()
    if form.validate_on_submit():

        # Check if we are logging in with email
        is_email = False
        email_reg = '^[a-z0-9]+[\._]?[a-z0-9]+[@]\w+[.]\w{2,3}$'
        if re.match(email_reg, form.username.data, re.IGNORECASE):
            is_email = True

        # Attempt to find user and validate credentials
        user = User.get_user(form.username.data, email=is_email)
        if user is None or not user.check_password(form.password.data):
            flash('Invalid username or password!')
            return redirect('/login')

        # Log in the user
        login_user(user, remember=form.remember_me.data)
        return redirect('/')

    return render_template('login.html', title='Sign In', form=form)
Exemple #3
0
 def start(self, bot, update):
     telegram_user = update.message.from_user
     user = User.get_or_none(telegram_id=telegram_user.id)
     if not user:
         User.create(telegram_id=telegram_user.id,
                     username=telegram_user.username,
                     firstname=telegram_user.first_name,
                     lastname=telegram_user.last_name)
         msg = 'Привет, этот бот поможет быстро получать информацию ' \
               'о новых проектах на fl.ru'
         update.message.reply_text(msg)
     elif not user.is_active:
         User.update(is_active=True).where(
             User.telegram_id == telegram_user.id).execute()
         msg = 'Сообщения теперь будут приходить'
         update.message.reply_text(msg)
     msg = 'Я готов отправлять сообщение, /help для помощи'
     self.logger.debug('/start command form user %s' % telegram_user)
     update.message.reply_text(msg)
Exemple #4
0
    def save_user(self):
        have_user = User.objects.filter(open_id=self.openid)
        if have_user.exists():
            # 已注册过
            return self.flush_session()

        sess = gen_hash()
        redis_session.set(sess, self.openid, ex=259200)
        user = User(open_id=self.openid)
        user.save()
        # 自动为用户生成Profile
        # Profile(open_id=user).save()

        # 注册成功,分配cookie
        return {
            'sess': sess,
            'code': ASEC.REG_SUCCESS,
            'message': ASEC.getMessage(ASEC.REG_SUCCESS)
        }
Exemple #5
0
def view_registration_page():
    if current_user.is_authenticated:
        return redirect('/')

    form = RegistrationForm()
    if form.validate_on_submit():
        user = User(form.username.data, form.email.data, pw=form.password.data)
        create_user(user)
        login_user(user)
        return redirect('/')
    return render_template("registration.html", title="Register", form=form)
Exemple #6
0
def user_edit(request, user_id):
    user = User.get_by_id(int(user_id))
    if user is None:
        raise Http404
    if request.method == 'POST':
        form = UserForm(request.POST, instance=user)
        if form.is_valid():
            logging.info('edit user before - id: %s key: %s data: %s' % (user.key().id() , user.key(), user))
            form.save(commit=False)
            logging.info('edit user after - id: %s key: %s data: %s' % (user.key().id() , user.key(), user))
            user.save()
            return redirect('/utils/users/')
    else:
        form = UserForm(instance=user)
    return render_to_response('utils/user_edit.html', RequestContext(request, { 'form': form }) ) 
Exemple #7
0
    def validate_username(self, username):
        name = username.data
        sanitized = re.sub(r'\W+', '*', name)

        # Sanitize username, ensure it is alphanumeric with underscore
        if name is not sanitized:
            self.username.errors.append('Invalid username.')
            return False

        # Check if username is already being used
        user = User.get_user(name)
        if user is not None:
            self.username.errors.append('Username already in use.')
            return False
        return True
Exemple #8
0
    def setUp(self):
        self.eventprovince = EventProvince(province='测试省')
        self.eventprovince.save()
        self.eventtype = EventType(type="测试类型")
        self.eventtype.save()
        self.event = Events(name="测试赛事",
                            location='无',
                            event_date=datetime.now(),
                            event_province=self.eventprovince)
        self.event.save()
        self.eventtypedetail = EventTypeDetail(type=self.eventtype,
                                               lines="1",
                                               price="test",
                                               event=self.event)
        self.eventtypedetail.save()
        self.eventsdetail = EventsDetail(event=self.event,
                                         evnet_org="evnet_org",
                                         evnet_represent="evnet_represent",
                                         apply_count=1200,
                                         event_apply_begin_time=datetime.now(),
                                         event_apply_end_time=datetime.now(),
                                         event_about="无")
        self.eventsdetail.save()

        self.eventrules = EventRules(event=self.event)
        self.eventrules.save()
        self.eventtraffic = EventTraffic(event=self.event)
        self.eventtraffic.save()
        self.eventsc = EventSc(event=self.event)
        self.eventsc.save()
        self.event_id = self.event.id
        self.events_type_id = self.eventtypedetail.id

        self.user = User.reg_user(email='*****@*****.**',
                                  username='******',
                                  password='******')
        self.c = Client()
        self.user.is_email_check = 2
        self.user.save()
        res = self.c.post('/api/auth/login', {
            'email': '*****@*****.**',
            'password': '******'
        })
        self.token = res.json()['access_token']
Exemple #9
0
def register_view():
    if request.method == 'GET':
        return render_template('register.html')
    else:
        # 获取数据
        uname = request.values.get("uname")
        # 从数据库查询用户
        user = User.query.filter_by(name=uname).first()
        if not user:
            pwd = request.values.get("pwd")
            # 对密码进行MD5加密
            pwd = data_to_md5(pwd)
            # 储存用户信息到数据库
            user = User(name=uname, password=pwd, regis_date=datetime.now())
            db.session.add(user)
            db.session.commit()
            return jsonify({"info": 'ok'})

        else:
            return jsonify({"info": "用户名已存在"})
Exemple #10
0
def register_info():
    if request.method == 'POST':
        image_code = session.get('image_code')
        i_code = request.form.get('i_code')
        if image_code == i_code:
            mobile = request.form.get('mobile')
            password = request.form.get('password')
            user = User.query.filter(User.phone == mobile).first()
            if user:
                return jsonify({'code': USER_REGISTER_NOT_PHONE})
            if not re.match(r'(13\d|14[5|7]|15\d|166|17[3|6|7]|18\d)\d{8}$',
                            mobile):
                return jsonify({'code': USER_REGISTER_PHONE_RE})
            new_user = User()
            new_user.phone = mobile
            new_user.password = password
            new_user.add_update()
            return jsonify({'code': OK})
        else:
            return jsonify({'code': USER_REGISTER_IMAGE_CODE})
Exemple #11
0
def user_show(request,user_id):
    user = User.get_by_id(int(user_id))
    if user is None:
        raise Http404
    return render_to_response('utils/user_show.html', RequestContext(request, { 'user': user }))
Exemple #12
0
def load_user(username):
    return User.get_user(username)
Exemple #13
0
 def validate_email(self, email):
     user = User.get_user(email.data, email=True)
     if user is None:
         self.email.errors.append('Could not find account.')
         return False
     return True
Exemple #14
0
 def validate_email(self, email):
     user = User.get_user(email.data, email=True)
     if user is not None:
         self.email.errors.append('Email already in use.')
         return False
     return True
Exemple #15
0
            "<PATH_TO_TESTING_SET> <USER_STATS_FILE> <BUSINESS_STATS_FILE> <OUTPUT_FILE>"
        )
        exit(1)

    start_time = time.time()

    training_set_file = sys.argv[1]
    testing_set_file = sys.argv[2]
    user_stats_file = sys.argv[3]
    business_stats_file = sys.argv[4]
    output_file = sys.argv[5]

    print('[ %04ds ] Program started' % (time.time() - start_time))

    training_set: List[Review] = Review.load_from_file(training_set_file)
    user_stats: Dict[str, User] = User.load_from_file(user_stats_file)
    business_stats: Dict[str, Business] = Business.load_from_file(
        business_stats_file)

    print('[ %04ds ] Files loaded' % (time.time() - start_time))

    all_user_features = ['NO_FEAT']
    all_business_features = Business.collect_business_features(business_stats)

    all_user_ids = User.extract_user_ids(user_stats)
    all_business_ids = Business.extract_business_ids(business_stats)

    dataset = Dataset()
    dataset.fit(all_user_ids,
                all_business_ids,
                user_features=all_user_features,
Exemple #16
0
        print(
            "Usage: python3 lightfm_with_features_experiment.py <PATH_TO_TRAINING_SET> "
            "<PATH_TO_TESTING_SET> <USER_STATS_FILE> <BUSINESS_STATS_FILE>")
        exit(1)

    start_time = time.time()

    training_set_file = sys.argv[1]
    testing_set_file = sys.argv[2]
    user_stats_file = sys.argv[3]
    business_stats_file = sys.argv[4]

    print('[ %04ds ] Program started' % (time.time() - start_time))

    training_set: List[Review] = Review.load_from_file(training_set_file)
    user_stats: Dict[str, User] = User.load_from_file(user_stats_file)
    business_stats: Dict[str, Business] = Business.load_from_file(
        business_stats_file)

    print('[ %04ds ] Files loaded' % (time.time() - start_time))

    all_user_features = ['NO_FEAT']
    all_business_features = Business.collect_business_features(business_stats)

    dataset = Dataset()
    dataset.fit(User.extract_user_ids(user_stats),
                Business.extract_business_ids(business_stats),
                user_features=all_user_features,
                item_features=all_business_features)

    user_features = dataset.build_user_features(
def register_insert(company_id, channel_id, gmt_create, mobile_platform):
    """
    @:param mobile_platform : 所属客户端0:ios, 1:android 2 api
    直接插库进行模拟用户注册
    """
    # 创建user
    # 查询渠道
    channel = convert.query(models.Channel, id=channel_id).one()
    user_cid = cid_generate()
    user_mobile = fakerInstance.phone_number()
    user_id = my_snow().get_next_id()
    user_name = create_name_by_cid(user_cid)
    user_password = hashlib.md5(
        str(user_mobile).encode('utf-8')).hexdigest()[3:19]
    user_detail_address = fakerInstance.address()
    user_channel_name = channel.name

    print("register_insert user_cid", user_cid)
    print("register_insert user_mobile", user_mobile)
    print("register_insert user_id", user_id)

    user = User()
    user.gmt_create = gmt_create
    user.gmt_modified = gmt_create
    user.is_deleted = 0
    user.id = user_id
    user.company_id = company_id
    user.cid = user_cid
    user.mobile = user_mobile
    user.name = user_name
    user.password = user_password
    user.register_channel = user_channel_name
    user.register_channel_id = channel_id
    user.mobile_md5 = hashlib.md5(
        str(user_mobile).encode('utf-8')).hexdigest()[3:19]
    convert.add_one(user)

    # 创建user_detail
    user_detail = UserDetail()
    user_detail.id = my_snow().get_next_id()
    user_detail.gmt_create = gmt_create
    user_detail.gmt_modified = gmt_create
    user_detail.is_deleted = 0
    user_detail.cert_item = None
    user_detail.user_id = user_id
    user_detail.company_id = company_id
    user_detail.cid = user_cid
    user_detail.mobile = user_mobile
    user_detail.name = user_name
    user_detail.password = user_password
    user_detail.channel_id = channel_id
    user_detail.channel_name = user_channel_name
    user_detail.province = split_address(user_detail_address).get("province")
    user_detail.city = split_address(user_detail_address).get("city")
    user_detail.address = user_detail_address
    user_detail.gender = check_sex(user_cid)
    user_detail.nationality = "汉"
    user_detail.birthday = create_birthday
    user_detail.marital_status = None
    user_detail.income_level = None
    user_detail.education_level = None
    user_detail.bank_account_id = None
    user_detail.category = None
    user_detail.mobile_platform = mobile_platform
    user_detail.operator_id = None
    user_detail.first_apply_time = gmt_create
    user_detail.first_deduct_time = None
    user_detail.loan_amount = None
    user_detail.raise_amount = None
    user_detail.emrg_contact_name_a = None
    user_detail.emrg_contact_name_b = None
    user_detail.emrg_contact_mobile_a = None
    user_detail.emrg_contact_mobile_b = None
    user_detail.idcard_front_img = None
    user_detail.idcard_back_img = None
    user_detail.thirdparty_data = None
    user_detail.raise_comment = None
    user_detail.update_count = None
    user_detail.name_mirror = None
    user_detail.raise_amount_sign = None
    convert.add_one(user_detail)

    # 模拟event_id
    now = time.time()
    _event_id = str(company_id) + "_" + str(channel_id) + "_" + str(
        int(now * 1000))
    print("register_insert _event_id", _event_id)

    # 模拟token 取手机号的md5加密截取部分
    _token = user_password
    print("register_insert _event_id", _token)

    return dict(mobile=user_mobile, event_id=_event_id, token=_token)