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)
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()
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)
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))
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)
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()
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))
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()