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)
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)
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)
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)
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)
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)
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)
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!")
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!")
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")
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)