Example #1
0
    def send_message(self, user, text=None, show_user=False, bytestring=False):

        if user not in self.users:
            tab = PrivateChat(self, user)
            self.users[user] = tab

            if user not in self.frame.np.config.sections["privatechat"]["users"]:
                self.frame.np.config.sections["privatechat"]["users"].append(user)

            try:
                status = self.frame.np.users[user].status
            except Exception:
                # Offline
                status = 0

            if user not in self.frame.np.watchedusers:
                self.frame.np.queue.put(slskmessages.AddUser(user))

            self.append_page(tab.Main, user, tab.on_close, status=status)

        if show_user:
            if self.get_current_page() != self.page_num(self.users[user].Main):
                self.set_current_page(self.page_num(self.users[user].Main))

        if text is not None:
            self.users[user].send_message(text, bytestring=bytestring)
    def AddToList(self, user):

        if user in [i[0] for i in self.userlist]:
            return

        row = [
            self.frame.GetStatusImage(0), None, user, "0", "0", False, False,
            False,
            _("Never seen"), "", 0, 0, 0, 0, ""
        ]
        iter = self.usersmodel.append(row)

        self.userlist.append(
            [user, "",
             _("Never seen"), iter,
             self.frame.GetUserFlag(user)])
        self.SaveUserList()
        self.frame.np.queue.put(slskmessages.AddUser(user))
        self.frame.np.queue.put(slskmessages.GetPeerAddress(user))

        for widget in self.frame.BuddiesComboEntries:
            gobject.idle_add(widget.Append, user)

        if self.frame.np.config.sections["words"]["buddies"]:
            gobject.idle_add(self.frame.chatrooms.roomsctrl.UpdateCompletions)
            gobject.idle_add(self.frame.privatechats.UpdateCompletions)
    def send_message(self, user, text=None, show_user=False, bytestring=False):

        if user not in self.users:
            tab = PrivateChat(self, user)
            self.users[user] = tab

            if user not in self.frame.np.config.sections["privatechat"][
                    "users"]:
                self.frame.np.config.sections["privatechat"]["users"].append(
                    user)

            if not self.frame.np.config.sections["ui"]["tab_status_icons"]:
                userlabel = "%s (%s)" % (user[:15], _("Offline"))
            else:
                userlabel = user

            self.append_page(tab.Main, userlabel, tab.on_close)
            self.frame.np.queue.put(slskmessages.AddUser(user))

        if show_user:
            if self.get_current_page() != self.page_num(self.users[user].Main):
                self.set_current_page(self.page_num(self.users[user].Main))

        if text is not None:
            self.users[user].send_message(text, bytestring=bytestring)
Example #4
0
    def add_to_list(self, user):

        if user in (i[2] for i in self.usersmodel):
            return

        empty_int = 0
        empty_str = ""

        self.usersmodel.insert_with_valuesv(-1, self.column_numbers, [
            GObject.Value(GObject.TYPE_OBJECT, self.frame.get_status_image(0)),
            GObject.Value(GObject.TYPE_OBJECT, None), user, empty_str,
            empty_str, False, False, False,
            _("Never seen"), empty_str, empty_int, empty_int, empty_int,
            empty_int, empty_str
        ])

        self.save_user_list()
        self.frame.np.queue.put(slskmessages.AddUser(user))

        # Request user's IP address, so we can get the country
        self.frame.np.queue.put(slskmessages.GetPeerAddress(user))

        for widget in self.buddies_combo_entries:
            widget.append_text(user)

        if self.frame.np.config.sections["words"]["buddies"]:
            GLib.idle_add(self.frame.chatrooms.update_completions)
            GLib.idle_add(self.frame.privatechats.update_completions)
    def similar_users(self, msg):
        self.recommendation_users_model.clear()
        self.recommendation_users = {}

        for user in msg.users:
            iterator = self.recommendation_users_model.append([self.frame.images["offline"], user, "0", "0", 0, 0, 0])
            self.recommendation_users[user] = iterator
            self.np.queue.put(slskmessages.AddUser(user))
Example #6
0
    def InitWindow(self, user, conn):

        if user in self.users:
            self.users[user].conn = conn
        else:
            w = self.subwindow(self, user, conn)
            self.append_page(w.Main, user[:15], w.OnClose)
            self.users[user] = w
            self.frame.np.queue.put(slskmessages.AddUser(user))
	def AddResult(self, msg, user, country):

		if user in self.users:
			return

		if user not in self.Searches.users:

			if user in self.frame.np.users and self.frame.np.users[user].status is not None:
				self.Searches.users[user] = self.frame.np.users[user].status
			else:
				self.Searches.users[user] = 0
				self.frame.np.queue.put(slskmessages.AddUser(user))

			if user == self.frame.np.config.sections["server"]["login"]:
				self.Searches.users[user] = 1

		self.users.append(user)
		results = []

		if msg.freeulslots:
			imdl = "Y"
		else:
			imdl = "N"

		decode = self.frame.np.decode

		for result in msg.list:
			name = result[1].split('\\')[-1]
			dir = result[1][:-len(name)]
			bitrate = ""
			length = ""
			br = 0

			if result[3] != "" and len(result[4]) == 3:
				a = result[4]
				if a[2] == 1:
					bitrate = " (vbr)"
				bitrate = str(a[0]) + bitrate
				br = a[0]
				length = '%i:%02i' %(a[1] / 60, a[1] % 60)

			results.append([user, name, result[2], msg.ulspeed, msg.inqueue, imdl, bitrate, length, dir, br, result[1], country, self.Searches.users[user]])

		if results:

			self.new_results += results
			
			if self._more_results == 0 and len(self.resultsmodel) < self.frame.np.config.sections['searches']["max_displayed_results"]:
				self._more_results = 1
				if len(self.resultsmodel) < 25:  # Showing the first 25 results right away, buffering the rest
					gobject.timeout_add(0, self._realaddresults)
				else:
					gobject.timeout_add(self.WAIT_BEFORE_DISPLAYING, self._realaddresults)

			return len(results)
Example #8
0
    def init_window(self, user):

        w = self.users[user] = self.subwindow(self, user)

        if not self.frame.np.config.sections["ui"]["tab_status_icons"]:
            userlabel = "%s (%s)" % (user[:15], _("Offline"))
        else:
            userlabel = user

        self.append_page(w.Main, userlabel, w.on_close)
        self.frame.np.queue.put(slskmessages.AddUser(user))
Example #9
0
    def init_window(self, user):

        w = self.users[user] = self.subwindow(self, user)

        try:
            status = self.frame.np.users[user].status
        except Exception:
            # Offline
            status = 0

        if user not in self.frame.np.watchedusers:
            self.frame.np.queue.put(slskmessages.AddUser(user))

        self.append_page(w.Main, user, w.on_close, status=status)
Example #10
0
    def SendMessage(self, user, text=None, direction=None, bytestring=False):

        if user not in self.users:
            tab = PrivateChat(self, user)
            self.users[user] = tab
            self.append_page(tab.Main, user, tab.OnClose)
            self.frame.np.queue.put(slskmessages.AddUser(user))

        if direction:
            if self.get_current_page() != self.page_num(self.users[user].Main):
                self.set_current_page(self.page_num(self.users[user].Main))

        if text is not None:
            self.users[user].SendMessage(text, bytestring=bytestring)
Example #11
0
    def watch_user(self, user, force_update=False):
        """ Tell the server we want to be notified of status/stat updates
        for a user """

        if not isinstance(user, str):
            return

        if not force_update and user in self.watched_users:
            # Already being watched, and we don't need to re-fetch the status/stats
            return

        self.queue.append(slskmessages.AddUser(user))

        # Get privilege status
        self.queue.append(slskmessages.GetUserStatus(user))
Example #12
0
    def add_to_list(self, user):

        if user in (i[2] for i in self.usersmodel):
            return

        row = [self.frame.get_status_image(0), None, user, "", "", False, False, False, _("Never seen"), "", 0, 0, 0, 0, ""]
        self.usersmodel.append(row)

        self.save_user_list()
        self.frame.np.queue.put(slskmessages.AddUser(user))
        self.frame.np.queue.put(slskmessages.GetPeerAddress(user))

        for widget in self.buddies_combo_entries:
            widget.append_text(user)

        if self.frame.np.config.sections["words"]["buddies"]:
            GLib.idle_add(self.frame.chatrooms.update_completions)
            GLib.idle_add(self.frame.privatechats.update_completions)