Пример #1
0
    def updateGroupList(self, group_list):
        self.groupList = []
        self.groupListBox.delete(0, END)

        for group in group_list:
            groupInfo = load_group_info(group[0])
            self.groupList.append(groupInfo.name)
            self.groupListBox.insert(END, groupInfo.name)
Пример #2
0
 def updateAllLists(self):
     self.currentUser = userDB.load_user_info(None, self.currentUser.id,
                                              'user_id')
     self.currentGroup = userDB.load_group_info(self.currentGroup.id)
     self.page.initGroupList(self.currentUser.groups)
     self.page.initFriendList(self.currentUser)
     self.page.updateGroupList(self.currentUser.groups)
     self.page.updateFriendList(self.currentUser)
     self.ChangeGroupChat(self.currentGroup.id, updateName=True)
Пример #3
0
    def ChangeGroupChat(self,
                        group_id=None,
                        by_groupName=False,
                        updateName=False,
                        login=False):
        if (updateName == False):
            self.page.msgList.configure(state=NORMAL)
            self.page.msgList.delete("1.0", "end")
            self.page.msgList.configure(state=DISABLED)

        if (login == True):
            print("Logging in user...")
            self.currentGroup = userDB.load_group_info(group_id)
            Client.loginUser(self, self, self.currentUser,
                             self.currentGroup.id)
            self.page.groupLabel.config(text="Current Group Chat: " +
                                        self.currentGroup.name)
            print("Done log in")
        elif (group_id != None and group_id != ""):
            self.currentGroup = userDB.load_group_info(group_id)
            Client.changeGroup(self, self, self.currentUser,
                               self.currentGroup.id)
            self.page.groupLabel.config(text="Current Group Chat: " +
                                        self.currentGroup.name)
        # Change group chats, only if the selected group is different from the current.
        elif self.page.groupListBox.get(ACTIVE) != self.currentGroup.name:
            self.currentGroup = userDB.load_group_info(
                None, self.page.groupListBox.get(ACTIVE), self.currentUser.id,
                'group_name')
            Client.changeGroup(
                self,
                self,
                self.currentUser,
                self.currentGroup.id,
            )
            self.page.groupLabel.config(text="Current Group Chat: " +
                                        self.currentGroup.name)
        elif (group_id == ""):
            self.currentGroup = userDB.load_group_info('00000000')
            Client.changeGroup(self, self, self.currentUser,
                               self.currentGroup.id)
            self.page.groupLabel.config(text="Current Group Chat: " +
                                        self.currentGroup.name)
Пример #4
0
    def updateFriendList(self, currentUser):
        self.friendList = []
        self.friendListBox.delete(0, END)
        #print("Update FriendList")

        for friend in currentUser.friends:
            #print(friend)
            friendGroupInfo = load_group_info(None, friend[0], currentUser.id,
                                              'friend_chat')
            self.friendList.append(friendGroupInfo.name)
            self.friendListBox.insert(END, friendGroupInfo.name)
Пример #5
0
 def leaveCurrentGroup(self):
     if (self.currentGroup.id == '00000000'):
         print("You cannot leave General group!")
         return
     else:
         print("Leaving current group...")
         userDB.leave_group(self.currentGroup.id, self.currentUser.id)
         self.currentUser = userDB.load_user_info(None, self.currentUser.id,
                                                  'user_id')
         self.page.updateGroupList(self.currentUser.groups)
         self.currentGroup = userDB.load_group_info('00000000')
         self.ChangeGroupChat(self.currentGroup.id)
Пример #6
0
    def initGroupList(self, group_list):
        self.groupsIDConverted = []
        self.groupListBox = Listbox(self.userGroupListFrame,
                                    height=24,
                                    width=19)

        if (len(group_list) > 0):
            for group in group_list:
                groupInfo = load_group_info(group[0])
                self.groupsIDConverted.append(groupInfo.name)

            for group in self.groupsIDConverted:
                self.groupListBox.insert(END, group)

        self.groupListBox.grid(row=0, column=0, sticky=N + W, padx=10)
Пример #7
0
    def initFriendList(self, currentUser):
        friend_list = currentUser.friends
        self.friendListBox = Listbox(self.userFriendsListFrame,
                                     height=26,
                                     width=19)

        if (len(friend_list) > 0):
            for friend in friend_list:
                #print("This is your friend %s: " % friend[0])
                friendGroupInfo = load_group_info(None, friend[0],
                                                  currentUser.id,
                                                  'friend_chat')
                #print(friendGroupInfo.name)
                self.friendListBox.insert(END, friendGroupInfo.name)

        self.friendListBox.grid(row=0, column=0, sticky=N + W, padx=10)
Пример #8
0
    def logInClick(
            self):  # loads a user and their groups on a successful login
        if ((self.page.Name_entry.get() == "")
                or (self.page.Pass_entry.get() == "")
                or (self.page.Name_entry.get() == "Username")
                or (self.page.Pass_entry.get() == "Password")):
            self.page.elabel.config(text="Incomplete Sign In!")
        elif (userDB.login_user(self.page.Name_entry.get(),
                                self.page.Pass_entry.get()) == 0):
            self.page.elabel.config(
                text=
                "You are not currently registered!\n Please Register first.")
        elif (userDB.login_user(self.page.Name_entry.get(),
                                self.page.Pass_entry.get()) == 1):
            self.page.elabel.config(text="")
            self.currentUser = userDB.load_user_info(
                self.page.Name_entry.get())

            # unless the user checks 'Remember Me', delete text entries
            if (self.page.rememberUser.get() == 0):
                self.page.Name_entry.delete(0, 'end')
                self.page.Pass_entry.delete(0, 'end')

            self.switch_page(ChatPage)
            self.page.initGroupList(self.currentUser.groups)
            self.page.initFriendList(self.currentUser)
            self.changeColors(self.currentUser.theme)

            if self.newLog is 0:
                self.client = threading.Thread(target=Client,
                                               args=(
                                                   self,
                                                   self.currentUser,
                                                   self.userIP,
                                               ))
                self.client.daemon = True
                self.client.start()

            self.currentGroup = userDB.load_group_info('00000000')
            self.page.updateGroupList(self.currentUser.groups)
            self.page.updateFriendList(self.currentUser)
            self.ChangeGroupChat(self.currentGroup.id, login=True)

        elif (userDB.login_user(self.page.Name_entry.get(),
                                self.page.Pass_entry.get()) == 2):
            self.page.elabel.config(text="Login Information Invalid!")
Пример #9
0
    def enterP(self, event):  # Registers 'enter' as a way to sign in.
        self.page.sin.focus_set()
        if ((self.page.Name_entry.get() == "")
                or (self.page.Pass_entry.get() == "")
                or (self.page.Name_entry.get() == "Username")
                or (self.page.Pass_entry.get() == "Password")):
            self.page.elabel.config(text="Incomplete Sign In!")
        elif (userDB.login_user(self.page.Name_entry.get(),
                                self.page.Pass_entry.get()) == 0):
            self.page.elabel.config(
                text=
                "You are not currently registered!\n Please register first.")
        elif (userDB.login_user(self.page.Name_entry.get(),
                                self.page.Pass_entry.get()) == 1):
            self.page.elabel.config(text="")
            self.currentUser = userDB.load_user_info(
                self.page.Name_entry.get())

            if (self.page.rememberUser.get() == 0):
                self.page.Name_entry.delete(0, 'end')
                self.page.Pass_entry.delete(0, 'end')

            self.switch_page(ChatPage)
            self.page.initGroupList(self.currentUser.groups)
            self.page.initFriendList(self.currentUser)
            self.changeColors(self.currentUser.theme)

            if self.newLog is 0:
                self.client = threading.Thread(target=Client,
                                               args=(
                                                   self,
                                                   self.currentUser,
                                                   self.userIP,
                                               ))
                self.client.daemon = True
                self.client.start()

            self.currentGroup = userDB.load_group_info('00000000')
            self.page.updateGroupList(self.currentUser.groups)
            self.page.updateFriendList(self.currentUser)
            self.ChangeGroupChat(self.currentGroup.id, login=True)

        elif (userDB.login_user(self.page.Name_entry.get(),
                                self.page.Pass_entry.get()) == 2):
            self.page.elabel.config(text="Login Information Invalid!")
Пример #10
0
    def changeGroupInfo(self, GroupSettingsPopup):
        if (self.currentGroup.id == '00000000'):
            GroupSettingsPopup.errLabel.config(
                text="You cannot modify the general group!", foreground="red")
            return
        elif (GroupSettingsPopup.changeGroupNameInput.get() != ""):
            userDB.update_group_info(
                GroupSettingsPopup.changeGroupNameInput.get(), 'group_name',
                self.currentGroup.id)
            self.currentUser = userDB.load_user_info(None, self.currentUser.id,
                                                     'user_id')
            self.currentGroup = userDB.load_group_info(self.currentGroup.id)
            self.page.updateGroupList(self.currentUser.groups)
            self.ChangeGroupChat(self.currentGroup.id, updateName=True)

            ## UPDATE THE LISTS OF ALL LOGGED IN USERS IN THE LIST
            Client.updateAllGroupMembers(self, self,
                                         self.currentGroup.member_ids)

        else:
            GroupSettingsPopup.errLabel.config(
                text="Please enter a new group name!", foreground="red")
Пример #11
0
    def ChangeFriendChat(self, friend_id=None):
        # Change group chats, only if the selected group is different from the current.
        print("Friend ID: %s" % friend_id)

        if self.page.friendListBox.get(ACTIVE) != self.currentGroup.name:
            print("clicked" + self.page.friendListBox.get(ACTIVE))
            self.page.msgList.configure(state=NORMAL)
            self.page.msgList.delete("1.0", "end")
            self.page.msgList.configure(state=DISABLED)
            self.currentGroup = userDB.load_group_info(
                None, self.page.friendListBox.get(ACTIVE), self.currentUser.id,
                'friend_chat')
            print("THIS IS YOUR ID: %s" % self.currentGroup.id)

            Client.changeGroup(
                self,
                self,
                self.currentUser,
                self.currentGroup.id,
            )
            self.page.groupLabel.config(text="Direct Chat Room: " +
                                        self.currentGroup.name)