예제 #1
0
 def SetSelectIp(self):
     index = int(self.buttonGroup.checkedButton().objectName().replace(
         "selectIp", "")) - 1
     if index == 0:
         User().address = ""
     else:
         User().address = User().addresss[index - 1]
예제 #2
0
 def test_user_credentials_are_invalid_if_incorrect_password_is_supplied(
         self, mock_bcrypt):
     hashed_password = '******'
     mock_bcrypt.hashpw.return_value = "not-the-same-hash"
     user = User(email="*****@*****.**", password=hashed_password)
     valid_credentials = user.checkCredentials(plain_text_password="******")
     self.assertEqual(valid_credentials, False)
예제 #3
0
    def Login(self):
        self.SetSelectIp()
        userId = self.userIdEdit.text()
        passwd = self.passwdEdit.text()
        User().SetUserInfo(userId, passwd)
        QtTask().AddHttpTask(lambda x: User().Login(x), self.LoginBack)

        self.owner().loadingForm.show()
예제 #4
0
def is_user_connected():
    user_id = session.get("USER")
    if user_id and User.does_id_exist(mongo.db.users, user_id):
        return True
    elif user_id:
        session.clear()
    return False
예제 #5
0
    def Register(self):
        if not self.buttonGroup.checkedButton():
            # QtWidgets.QMessageBox.information(self, '错误', "不能为空", QtWidgets.QMessageBox.Yes)
            QtBubbleLabel.ShowErrorEx(self, "不能为空")
            return
        if len(self.passwdEdit.text()) < 8:
            # QtWidgets.QMessageBox.information(self, '错误', "密码太短", QtWidgets.QMessageBox.Yes)
            QtBubbleLabel.ShowErrorEx(self, "密码太短")
            return
        data = {
            "email": self.userEdit.text(),
            "password": self.passwdEdit.text(),
            "name": self.nameEdit.text(),
            "birthday": self.birthdayEdit.text().replace("/", "-"),
            "gender": self.buttonGroup.checkedButton().objectName().replace("gender_", ""),  # m, f, bot
            "answer1": self.answer1Edit.text(),
            "answer2": self.answer2Edit.text(),
            "answer3": self.answer3Edit.text(),
            "question1": self.question1Edit.text(),
            "question2": self.question2Edit.text(),
            "question3": self.question3Edit.text()
        }
        for v in data.values():
            if not v:
                # QtWidgets.QMessageBox.information(self, '错误', "不能为空", QtWidgets.QMessageBox.Yes)
                QtBubbleLabel.ShowErrorEx(self, "不能为空")
                return

        self.loadingForm.show()
        self.owner().qtTask.AddHttpTask(lambda x: User().Register(data, x), self.RegisterBack)
        return
예제 #6
0
    def DelAndFavorites(self, bookIds):
        self.owner().loadingForm.show()

        self.dealCount = len(bookIds)
        for bookId in bookIds:
            self.owner().qtTask.AddHttpTask(lambda x: User().AddAndDelFavorites(bookId, x), self.DelAndFavoritesBack)
        pass
예제 #7
0
 def UpdatePagesBack(self, st):
     self.owner().loadingForm.close()
     self.bookList.UpdateState()
     if st == Status.Ok:
         pageNums = User().pages
         page = User().page
         self.nums.setText("收藏数:{}".format(str(User().total)))
         self.pages.setText("页:{}/{}".format(str(page), str(pageNums)))
         self.bookList.UpdatePage(page, pageNums)
         self.lineEdit.setValidator(QtIntLimit(1, pageNums, self))
         for index, info in enumerate(User().category.get(self.bookList.page)):
             url = info.thumb.get("fileServer")
             path = info.thumb.get("path")
             originalName = info.thumb.get("originalName")
             data = "完本," if info.finished else ""
             data += "{}E/{}P".format(str(info.epsCount), str(info.pagesCount))
             self.bookList.AddBookItem(info.id, info.title, data, url, path, originalName)
예제 #8
0
 def _create_records(players):
     records = []
     for player_record_data in players:
         name = player_record_data.pop('name')
         player_key = User.query(User.name == name).get(keys_only=True)
         player_record_data['player_key'] = player_key
         record = PoolPlayerRecord(**player_record_data)
         records.append(record)
     ndb.put_multi(records)
     return records
예제 #9
0
 def SendMsg(self):
     msg = self.lineEdit.text()
     if not msg:
         return
     info = dict(User().userInfo)
     if User().avatar:
         info[
             'avatar'] = "https://storage.wikawika.xyz" + "/static/" + User(
             ).avatar.get("path")
     info['at'] = ""
     info['audio'] = ""
     info['message'] = msg
     info['reply'] = ""
     info['reply_name'] = ""
     info['image'] = ""
     info['block_user_id'] = ""
     data = "42" + json.dumps(["send_message", info])
     self.socket.Send(data)
     self._RecvBroadcastMsg(info)
예제 #10
0
 def _create_records(players):
     records = []
     for player_record_data in players:
         name = player_record_data.pop('name')
         player_key = User.query(User.name == name).get(keys_only=True)
         player_record_data['player_key'] = player_key
         record = PoolPlayerRecord(**player_record_data)
         records.append(record)
     ndb.put_multi(records)
     return records
예제 #11
0
 def SignBack(self, msg):
     self.owner().loadingForm.close()
     if msg == Status.Ok:
         self.signButton.setEnabled(False)
         self.signButton.setText("已签到")
         self.owner().qtTask.AddHttpTask(
             lambda x: User().UpdateUserInfo(x),
             self.owner().loginForm.UpdateUserBack)
         self.update()
     return
예제 #12
0
    def UpdateUserBack(self, msg):
        self.owner().userForm.UpdateLabel(User().name, User().level, User().exp, User().isPunched)
        if not User().avatar:
            return

        url = User().avatar.get("fileServer")
        path = User().avatar.get("path")
        if url and path and config.IsLoadingPicture:
            self.owner().qtTask.AddDownloadTask(url, path, None, self.ShowUserImg)
예제 #13
0
 def LoginBack(self, msg):
     self.owner().loadingForm.close()
     if msg == Status.Ok:
         # self.close()
         self.owner().stackedWidget.setCurrentIndex(1)
         self.owner().qtTask.AddHttpTask(lambda x: User().UpdateUserInfo(x), self.UpdateUserBack)
         self.owner().searchForm.InitKeyWord()
         self.owner().indexForm.Init()
     else:
         # QtWidgets.QMessageBox.information(self, '登陆失败', msg, QtWidgets.QMessageBox.Yes)
         self.owner().msgForm.ShowError("登陆失败, " + msg)
예제 #14
0
 def find(self, email):
     result = self._database.execute(
         'select * from persons join %s on id = person_id where email = "%s"'
         % (self._table, email))
     row = result.fetchone()
     if row is None:
         return None
     else:
         return User(firstName=row.firstname,
                     lastName=row.lastname,
                     email=row.email,
                     password=row.password)
예제 #15
0
 def SendMsg(self):
     msg = self.lineEdit.text()
     if not msg:
         return
     info = dict(User().userInfo)
     info['audio'] = ""
     info['message'] = msg
     info['reply'] = ""
     info['reply_name'] = ""
     info['image'] = ""
     data = "42" + json.dumps(["send_message", info])
     self.socket.Send(data)
     self._RecvBroadcastMsg(info)
예제 #16
0
 def InitBack(self, msg):
     self.owner().loadingForm.close()
     if msg == Status.Ok:
         for index, ip in enumerate(User().addresss, 2):
             selectIp = QtWidgets.QRadioButton(self)
             selectIp.setObjectName("selectIp" + str(index))
             self.horizontalLayout_4.addWidget(selectIp)
             self.buttonGroup.addButton(selectIp)
             selectIp.setText("分流" + str(index))
         self.update()
     else:
         # QtWidgets.QMessageBox.information(self, , QtWidgets.QMessageBox.Yes)
         self.owner().msgForm.ShowError("无法获取哔咔分流列表")
     pass
예제 #17
0
 def UpdateUserBack(self, msg):
     self.owner().userForm.UpdateLabel(User().name,
                                       User().level,
                                       User().exp,
                                       User().isPunched)
     url = User().avatar.get("fileServer")
     path = User().avatar.get("path")
     if url and path:
         self.owner().qtTask.AddDownloadTask(url, path, None,
                                             self.ShowUserImg)
예제 #18
0
    def SpeedTest(self):
        self.testSpeedButton.setEnabled(False)
        self.loginButton.setEnabled(False)
        self.registerButton.setEnabled(False)
        self.speedIndex = 0
        self.speedTest = []
        self.speedTest = [("", False), ("", True)]
        for address in User().addresss:
            self.speedTest.append((address, False))
            self.speedTest.append((address, True))
        for i in range(len(self.speedTest)):
            row = i // 2 + 1
            col = i % 2 + 1
            item = self.gridLayout_4.itemAtPosition(row, col)
            if item:
                item.widget().setText("")

        self.StartSpeedTest()
예제 #19
0
 def register(self, data, locator):
     degiro = Degiro()
     try:
         degiro.login(data["username"], data["password"],
                      data["code"] if len(data["code"]) > 0 else None)
     except ConnectionError as err:
         raise RegistrationException(err)
     now = datetime.now()
     user = DegiroUser(None, degiro.user["firstContact"]["firstName"],
                       degiro.user["firstContact"]["lastName"],
                       degiro.user["email"], now, now,
                       locator.get_geoip_data(), self.encryptor,
                       degiro.session_id, degiro.account_id)
     if User.does_email_exist(self.collection, user.email):
         raise RegistrationException(
             "Email already in database. Try signing in.")
     user.id = self.collection.insert_one(user.to_db_dict()).inserted_id
     return user
예제 #20
0
 def register(self, data, locator):
     now = datetime.now()
     data = {
         "pass": self.encryptor.encrypt(data["password"].encode()),
         "first_name": self.encryptor.encrypt(data["first_name"].encode()),
         "last_name": self.encryptor.encrypt(data["last_name"].encode()),
         "email": data["email"],
         "type": "email",
         "creation_date": now,
         "last_connection": now,
         "geolocation": locator.get_geoip_data()
     }
     user = self.collection.find_one({"email": data["email"]})
     if user is not None:
         raise RegistrationException(
             "Email already in database. Try signing in.")
     user_id = self.collection.insert_one(data)
     return User(user_id.inserted_id, data["first_name"], data["last_name"],
                 data["email"], now, now, data["geolocation"],
                 self.encryptor)
예제 #21
0
 def RefreshData(self):
     if not User().category.get(self.bookList.page):
         self.LoadPage(self.bookList.page)
     else:
         self.UpdatePagesBack(Status.Ok)
예제 #22
0
 def RefreshDataFocus(self):
     User().category.clear()
     self.bookList.UpdatePage(1, 1)
     self.bookList.UpdateState()
     self.bookList.clear()
     self.RefreshData()
예제 #23
0
 def LoginRoom(self):
     data = ["init", User().userInfo]
     msg = "42{}".format(json.dumps(data))
     self.socket.Send(msg)
예제 #24
0
 def test_user_credentials_are_invalid_if_incorrect_password_is_supplied(self, mock_bcrypt):
     hashed_password = '******'
     mock_bcrypt.hashpw.return_value = "not-the-same-hash"
     user = User(email = "*****@*****.**", password = hashed_password)
     valid_credentials = user.checkCredentials(plain_text_password = "******")
     self.assertEqual(valid_credentials, False)
예제 #25
0
 def __call__(self, backData):
     from src.user.user import User
     st, page = User().UpdateFavoritesBack(backData)
     time.sleep(0.1)
     if backData.bakParam:
         QtTask().taskBack.emit(backData.bakParam, st)
예제 #26
0
 def Init(self):
     self.owner().loadingForm.show()
     QtTask().AddHttpTask(lambda x: User().Init(x), self.InitBack)
     return
예제 #27
0
 def __call__(self, backData):
     from src.user.user import User
     st = User().InitImageServer(backData)
     if backData.bakParam:
         QtTask().taskBack.emit(backData.bakParam, st)
예제 #28
0
 def SwitchCurrent(self):
     if User().token:
         self.Init()
         if not self.bookList3.count():
             self.InitRandom()
     pass
예제 #29
0
 def LoadPage(self, page):
     sortKey = self.sortList[self.comboBox.currentIndex()]
     self.owner().qtTask.AddHttpTask(
         lambda x: User().UpdateFavorites(page, sortKey, x),
         self.UpdatePagesBack)
     self.owner().loadingForm.show()
예제 #30
0
 def __call__(self, backData):
     from src.user.user import User
     st = User().RegisterBack(backData)
     time.sleep(0.1)
     if backData.bakParam:
         QtTask().taskBack.emit(backData.bakParam, st)
예제 #31
0
 def get(self):
     users = User.query().fetch()
     names = [u.name for u in users]
     return json.dumps(names), 200
예제 #32
0
 def AddFavority(self):
     User().AddAndDelFavorites(self.bookId)
     QtBubbleLabel.ShowMsgEx(self, "添加收藏成功")
     self.favorites.setEnabled(False)
예제 #33
0
 def __call__(self, backData):
     from src.user.user import User
     st = User().PunchedBack(backData)
     if backData.bakParam:
         QtTask().taskBack.emit(backData.bakParam, st)