Ejemplo n.º 1
0
    def on_upload_directory_to(self, widget, recurse=0):

        folder = self.selected_folder

        if folder is None:
            return

        users = []
        for entry in self.frame.np.config.sections["server"]["userlist"]:
            users.append(entry[0])

        users.sort()
        user = combo_box_dialog(
            parent=self.frame.MainWindow,
            title=_("Upload Folder's Contents"),
            message=_('Enter the User you wish to upload to:'),
            droplist=users
        )

        if user is None or user == "":
            return

        self.frame.np.send_message_to_peer(user, slskmessages.UploadQueueNotification(None))

        self.upload_directory_to(user, folder, recurse)
Ejemplo n.º 2
0
    def on_upload_files(self, widget, prefix=""):

        if not self.frame.np.transfers:
            return

        folder = self.selected_folder
        realpath = self.frame.np.shares.virtual2real(folder)

        users = []

        for entry in self.frame.np.config.sections["server"]["userlist"]:
            users.append(entry[0])

        users.sort()
        user = combo_box_dialog(
            parent=self.frame.MainWindow,
            title=_('Upload File(s)'),
            message=_('Enter the User you wish to upload to:'),
            droplist=users
        )

        if user is None or user == "":
            return

        self.frame.np.send_message_to_peer(user, slskmessages.UploadQueueNotification(None))

        for fn in self.selected_files:
            self.frame.np.transfers.push_file(user, "\\".join([folder, fn]), "\\".join([realpath, fn]), prefix)
            self.frame.np.transfers.check_upload_queue()
Ejemplo n.º 3
0
 def on_get_a_users_shares(self, widget, prefix=""):
     users = []
     for entry in self.frame.np.config.sections["server"]["userlist"]:
         users.append(entry[0])
     users.sort()
     user = combo_box_dialog(
         parent=self.frame.MainWindow,
         title="Nicotine+" + ": " + _("Get A User's Shares List"),
         message=_('Enter the User whose Shares List you wish to receive:'),
         droplist=users)
     if user is not None:
         self.frame.browse_user(user)
Ejemplo n.º 4
0
    def on_get_a_users_ip(self, widget, prefix=""):
        users = []
        for entry in self.frame.np.config.sections["server"]["userlist"]:
            users.append(entry[0])
        users.sort()
        user = combo_box_dialog(
            parent=self.frame.MainWindow,
            title="Nicotine+" + ": " + _("Get A User's IP"),
            message=_('Enter the User whose IP Address you wish to receive:'),
            droplist=users)
        if user is not None:
            if user not in self.frame.np.ip_requested:
                self.frame.np.ip_requested.append(user)

            self.frame.np.queue.put(slskmessages.GetPeerAddress(user))
Ejemplo n.º 5
0
    def on_get_a_users_info(self, widget, prefix=""):

        # popup
        users = []
        for entry in self.frame.np.config.sections["server"]["userlist"]:
            users.append(entry[0])

        users.sort()
        user = combo_box_dialog(
            parent=self.frame.MainWindow,
            title="Nicotine+" + ": " + _("Get User Info"),
            message=_('Enter the User whose User Info you wish to receive:'),
            droplist=users)

        if user is not None:
            self.frame.local_user_info_request(user)
Ejemplo n.º 6
0
    def on_open_private_chat(self, widget, prefix=""):

        # popup
        users = []
        for entry in self.frame.np.config.sections["server"]["userlist"]:
            users.append(entry[0])

        users.sort()
        user = combo_box_dialog(
            parent=self.frame.MainWindow,
            title=GLib.get_application_name() + ": " + _("Start Messaging"),
            message=_('Enter the User who you wish to send a private message:'),
            droplist=users
        )

        if user:
            self.frame.privatechats.send_message(user, show_user=True)
            self.frame.change_main_page("private")
            self.show_window()
Ejemplo n.º 7
0
    def on_add_share(self, widget):

        selected = choose_dir(self.FastConfigureDialog.get_toplevel(),
                              title=_("Add a Shared Folder"))

        if selected:

            for directory in selected:

                virtual = combo_box_dialog(
                    parent=self.FastConfigureDialog,
                    title=_("Virtual Name"),
                    message=_("Enter virtual name for '%(dir)s':") %
                    {'dir': directory})

                # If the virtual name is empty
                if virtual == '' or virtual is None:

                    dlg = Gtk.MessageDialog(
                        transient_for=self.FastConfigureDialog,
                        flags=0,
                        type=Gtk.MessageType.WARNING,
                        buttons=Gtk.ButtonsType.OK,
                        text=_("Warning"))
                    dlg.format_secondary_text(
                        _("The chosen virtual name is empty"))
                    dlg.run()
                    dlg.destroy()

                else:
                    # Remove slashes from share name to avoid path conflicts
                    virtual = virtual.replace('/', '_').replace('\\', '_')

                    # We get the current defined shares from the treeview
                    model, paths = self.shareddirectoriestree.get_selection(
                    ).get_selected_rows()

                    iterator = model.get_iter_first()

                    while iterator is not None:

                        # We reject the share if the virtual share name is already used
                        if virtual == model.get_value(iterator, 0):

                            dlg = Gtk.MessageDialog(
                                transient_for=self.FastConfigureDialog,
                                flags=0,
                                type=Gtk.MessageType.WARNING,
                                buttons=Gtk.ButtonsType.OK,
                                text=_("Warning"))
                            dlg.format_secondary_text(
                                _("The chosen virtual name already exists"))
                            dlg.run()
                            dlg.destroy()
                            return

                        # We also reject the share if the directory is already used
                        elif directory == model.get_value(iterator, 1):

                            dlg = Gtk.MessageDialog(
                                transient_for=self.FastConfigureDialog,
                                flags=0,
                                type=Gtk.MessageType.WARNING,
                                buttons=Gtk.ButtonsType.OK,
                                text=_("Warning"))
                            dlg.format_secondary_text(
                                _("The chosen folder is already shared"))
                            dlg.run()
                            dlg.destroy()
                            return

                        else:
                            iterator = model.iter_next(iterator)

                    # The share is unique: we can add it
                    self.add_shared_folder((virtual, directory))
Ejemplo n.º 8
0
    def on_button_pressed(self, widget):

        if self.initphase:
            return

        name = Gtk.Buildable.get_name(widget)

        if name == "checkmyport":
            open_uri(
                '='.join([
                    'http://tools.slsknet.org/porttest.php?port',
                    str(self.frame.np.waitport)
                ]), self.window)

        if name == "addshare":

            selected = choose_dir(self.window.get_toplevel(),
                                  title=_("Add a shared directory"))

            if selected:

                for directory in selected:

                    virtual = combo_box_dialog(
                        parent=self.frame.MainWindow,
                        title=_("Virtual name"),
                        message=_("Enter virtual name for '%(dir)s':") %
                        {'dir': directory})

                    # If the virtual name is empty
                    if virtual == '' or virtual is None:

                        dlg = Gtk.MessageDialog(transient_for=self.window,
                                                flags=0,
                                                type=Gtk.MessageType.WARNING,
                                                buttons=Gtk.ButtonsType.OK,
                                                text=_("Warning"))
                        dlg.format_secondary_text(
                            _("The chosen virtual name is empty"))
                        dlg.run()
                        dlg.destroy()

                    else:
                        # We get the current defined shares from the treeview
                        model, paths = self.kids[
                            'shareddirectoriestree'].get_selection(
                            ).get_selected_rows()

                        iterator = model.get_iter_first()

                        while iterator is not None:

                            # We reject the share if the virtual share name is already used
                            if virtual == model.get_value(iterator, 0):

                                dlg = Gtk.MessageDialog(
                                    transient_for=self.window,
                                    flags=0,
                                    type=Gtk.MessageType.WARNING,
                                    buttons=Gtk.ButtonsType.OK,
                                    text=_("Warning"))
                                dlg.format_secondary_text(
                                    _("The chosen virtual name already exists")
                                )
                                dlg.run()
                                dlg.destroy()
                                return

                            # We also reject the share if the directory is already used
                            elif directory == model.get_value(iterator, 6):

                                dlg = Gtk.MessageDialog(
                                    transient_for=self.window,
                                    flags=0,
                                    type=Gtk.MessageType.WARNING,
                                    buttons=Gtk.ButtonsType.OK,
                                    text=_("Warning"))
                                dlg.format_secondary_text(
                                    _("The chosen directory is already shared")
                                )
                                dlg.run()
                                dlg.destroy()
                                return

                            else:
                                iterator = model.iter_next(iterator)

                        # The share is unique: we can add it
                        self.addshareddir((virtual, directory))

        if name == "removeshares":

            model, paths = self.kids['shareddirectoriestree'].get_selection(
            ).get_selected_rows()
            refs = [Gtk.TreeRowReference(model, x) for x in paths]

            for i in refs:
                self.sharelist.remove(self.sharelist.get_iter(i.get_path()))

        self.resetcompleteness()