def show(self): self.glade = gtk.glade.XML(get_resource("dialog_cookie.glade")) self.glade.signal_autoconnect({ "on_button_add_cookie_data_clicked": self.on_button_add_cookie_data_clicked, "on_button_remove_cookie_data_clicked": self.on_button_remove_cookie_data_clicked, "on_button_save_clicked": self.on_button_save_clicked, "on_button_cancel_clicked": self.on_button_cancel_clicked }) self.treeview = self.setup_cookie_list() self.values = [] # Add data if self.cookie_data: for v in self.cookie_data["value"]: self.values.append(v) self.glade.get_widget("text_site").set_text( self.cookie_data["site"]) # Update cookie data list self.update_cookie_values_list() cookie_list = self.glade.get_widget("viewport_list_cookie_values") cookie_list.add(self.treeview) cookie_list.show_all() self.dialog = self.glade.get_widget("dialog_cookie") self.dialog.set_transient_for(component.get("Preferences").pref_dialog) self.dialog.run()
def show(self): self.glade = gtk.glade.XML(get_resource("dialog_cookie.glade")) self.glade.signal_autoconnect({ "on_button_add_cookie_data_clicked": self.on_button_add_cookie_data_clicked, "on_button_remove_cookie_data_clicked": self.on_button_remove_cookie_data_clicked, "on_button_save_clicked": self.on_button_save_clicked, "on_button_cancel_clicked": self.on_button_cancel_clicked }) self.treeview = self.setup_cookie_list() self.values = [] # Add data if self.cookie_data: for v in self.cookie_data["value"]: self.values.append(v) self.glade.get_widget("text_site").set_text(self.cookie_data["site"]) # Update cookie data list self.update_cookie_values_list() cookie_list = self.glade.get_widget("viewport_list_cookie_values") cookie_list.add(self.treeview) cookie_list.show_all() self.dialog = self.glade.get_widget("dialog_cookie") self.dialog.set_transient_for(component.get("Preferences").pref_dialog) self.dialog.run()
def update_data_from_config(self, config): self.subscriptions = config.get('subscriptions', {}) self.rssfeeds = config.get('rssfeeds', {}) self.cookies = config.get('cookies', {}) self.email_messages = config.get('email_messages', {}) self.email_config = config.get('email_configurations', {}) # When connecting to a second host, the glade object returns None for all the fields, # so reload the glade file here to avoid this problem. if self.glade.get_widget("textview_default_message") is None: self.glade = gtk.glade.XML(get_resource("yarss_main.glade")) # Update GUI self.update_subscription_list(self.subscriptions_store) self.update_rssfeeds_list(self.rssfeeds_store) self.update_cookies_list(self.cookies_store) self.update_email_messages_list(self.email_messages_store) # Set selection for each treeview if self.selected_path_subscriptions and self.subscriptions_treeview.get_selection(): self.subscriptions_treeview.get_selection().select_path(self.selected_path_subscriptions) if self.selected_path_rssfeeds and self.rssfeeds_treeview.get_selection(): self.rssfeeds_treeview.get_selection().select_path(self.selected_path_rssfeeds) if self.selected_path_email_message and self.email_messages_treeview.get_selection(): self.email_messages_treeview.get_selection().select_path(self.selected_path_email_message) if self.selected_path_cookies and self.cookies_treeview.get_selection(): self.cookies_treeview.get_selection().select_path(self.selected_path_cookies) # Email configurations send_email_checkbox = self.glade.get_widget("checkbutton_send_email_on_torrent_events") from_addr = self.glade.get_widget("txt_email_from") smtp_server = self.glade.get_widget("txt_email_server") smtp_port = self.glade.get_widget("txt_email_port") smtp_username = self.glade.get_widget("txt_email_username") smtp_password = self.glade.get_widget("txt_email_password") enable_auth = self.glade.get_widget("checkbox_email_enable_authentication") default_to_address = self.glade.get_widget("txt_default_to_address") default_subject = self.glade.get_widget("txt_default_subject") default_message = self.glade.get_widget("textview_default_message") default_message = default_message.get_buffer() from_addr.set_text(self.email_config["from_address"]) smtp_server.set_text(self.email_config["smtp_server"]) smtp_port.set_text(self.email_config["smtp_port"]) enable_auth.set_active(self.email_config["smtp_authentication"]) smtp_username.set_text(self.email_config["smtp_username"]) smtp_password.set_text(self.email_config["smtp_password"]) default_to_address.set_text(self.email_config["default_email_to_address"]) default_subject.set_text(self.email_config["default_email_subject"]) default_message.set_text(self.email_config["default_email_message"]) # Must be last, since it will cause callback on # method on_checkbutton_send_email_on_torrent_events_toggled send_email_checkbox.set_active(self.email_config["send_email_on_torrent_events"])
def setup(self): self.glade = gtk.glade.XML(get_resource("dialog_subscription.glade")) self.glade.signal_autoconnect({ "on_txt_regex_include_changed": self.on_txt_regex_changed, "on_txt_regex_exclude_changed": self.on_txt_regex_changed, "on_button_cancel_clicked": self.on_button_cancel_clicked, "on_button_save_clicked": self.on_button_save_subscription_clicked, "on_button_add_notication_clicked": self.on_button_add_notication_clicked, "on_button_remove_notication_clicked": self.on_button_remove_notication_clicked, "on_rssfeed_selected": self.on_rssfeed_selected, "on_panel_matching_move_handle": self.on_panel_matching_move_handle, "on_button_fetch_clicked": self.on_rssfeed_selected, "on_button_last_matched_reset_clicked": self.on_button_last_matched_reset_clicked, "on_button_last_matched_now_clicked": self.on_button_last_matched_now_clicked, }) # This is to make testing of the GUI possible (tests/) self.method_perform_rssfeed_selection = self.perform_rssfeed_selection self.dialog = self.glade.get_widget("window_subscription") self.setup_rssfeed_combobox() self.setup_move_completed_combobox() self.setup_download_location_combobox() self.setup_messages_combobox() self.setup_messages_list() self.treeview = self.create_matching_tree() self.load_subscription_data()
def __init__(self, gtkUI, logger, subscription_data, rssfeeds, move_completed_list, download_location_list, email_messages, cookies): self.gtkUI = gtkUI self.rssfeeds = rssfeeds self.move_completed_list = move_completed_list self.download_location_list = download_location_list self.email_messages = email_messages self.rssfeeds_dict = {} self.matching_store = None self.icon_matching = gtk.gdk.pixbuf_new_from_file( get_resource("match.png")) self.icon_nonmatching = gtk.gdk.pixbuf_new_from_file( get_resource("no_match.png")) self.subscription_data = subscription_data self.cookies = cookies self.log = logger self.rssfeedhandler = RSSFeedHandler(self.log)
def createUI(self): self.glade = gtk.glade.XML(get_resource("yarss_main.glade")) self.glade.signal_autoconnect({ "on_button_add_subscription_clicked": self.on_button_add_subscription_clicked, "on_button_delete_subscription_clicked": self.on_button_delete_subscription_clicked, "on_button_edit_subscription_clicked" : self.on_button_edit_subscription_clicked, "on_button_add_rssfeed_clicked": self.on_button_add_rssfeed_clicked, "on_button_delete_rssfeed_clicked": self.on_button_delete_rssfeed_clicked, "on_button_edit_rssfeed_clicked" : self.on_button_edit_rssfeed_clicked, "on_button_add_cookie_clicked" : self.on_button_add_cookie_clicked, "on_button_edit_cookie_clicked" : self.on_button_edit_cookie_clicked, "on_button_delete_cookie_clicked": self.on_button_delete_cookie_clicked, "on_button_add_message_clicked" : self.on_button_add_message_clicked, "on_button_edit_message_clicked" : self.on_button_edit_message_clicked, "on_button_delete_message_clicked": self.on_button_delete_message_clicked, "on_checkbox_email_authentication_toggled": self.on_checkbox_email_authentication_toggled, "on_checkbutton_send_email_on_torrent_events_toggled": self.on_checkbutton_send_email_on_torrent_events_toggled }) component.get("Preferences").add_page("YaRSS2", self.glade.get_widget("notebook_main")) component.get("PluginManager").register_hook("on_apply_prefs", self.on_apply_prefs) component.get("PluginManager").register_hook("on_show_prefs", self.on_show_prefs) self.gtkui_log = GTKUI_logger(self.glade.get_widget('textview_log')) self.log = Logger(gtkui_logger=self.gtkui_log) self.torrent_handler = TorrentHandler(self.log) self.subscriptions = {} self.rssfeeds = {} self.selected_path_subscriptions = None self.selected_path_rssfeeds = None self.selected_path_email_message = None self.selected_path_cookies = None # key, enabled, name, site, download_location self.subscriptions_store = gtk.ListStore(str, bool, str, str, str, str, str) # key, active, name, site, Update interval, Last update, subscripions, URL self.rssfeeds_store = gtk.ListStore(str, bool, str, str, str, str, str, str) # key, active, site, value self.cookies_store = gtk.ListStore(str, bool, str, str) # key, active, name, to-address, subject, message-content self.email_messages_store = gtk.ListStore(str, bool, str, str, str, str) self.create_subscription_pane() self.create_rssfeeds_pane() self.create_cookies_pane() self.create_email_messages_pane()
def __init__(self, gtkUI, rssfeed): self.gtkUI = gtkUI self.rssfeed = rssfeed self.glade = gtk.glade.XML(get_resource("dialog_rssfeed.glade")) self.glade.signal_autoconnect({ "on_button_cancel_clicked":self.on_button_cancel_clicked, "on_button_save_clicked": self.on_button_save_clicked }) self.populate_data_fields()
def __init__(self, gtkUI, logger, subscription_data, rssfeeds, move_completed_list, download_location_list, email_messages, cookies): self.gtkUI = gtkUI self.rssfeeds = rssfeeds self.move_completed_list = move_completed_list self.download_location_list = download_location_list self.email_messages = email_messages self.rssfeeds_dict = {} self.matching_store = None self.icon_matching = gtk.gdk.pixbuf_new_from_file(get_resource("match.png")) self.icon_nonmatching = gtk.gdk.pixbuf_new_from_file(get_resource("no_match.png")) self.subscription_data = subscription_data self.cookies = cookies self.log = logger self.rssfeedhandler = RSSFeedHandler(self.log)
def __init__(self, gtkUI, rssfeed): self.gtkUI = gtkUI self.rssfeed = rssfeed self.glade = gtk.glade.XML(get_resource("dialog_rssfeed.glade")) self.glade.signal_autoconnect({ "on_button_cancel_clicked": self.on_button_cancel_clicked, "on_button_save_clicked": self.on_button_save_clicked }) self.populate_data_fields()
def show(self): self.glade = gtk.glade.XML(get_resource("dialog_email_message.glade")) self.glade.signal_autoconnect({ "on_button_save_clicked": self.on_button_save_clicked, "on_button_cancel_clicked": self.on_button_cancel_clicked }) # Add data if self.message_data is not None: self.set_initial_data(self.message_data) self.dialog = self.glade.get_widget("dialog_email_message") self.dialog.set_transient_for(component.get("Preferences").pref_dialog) self.dialog.run()
def test_feedparser_ampersant_in_url(self): """A bug in feedparser resulted in URL containing & when XML Parser was not available. This test disables XML Parser and verifies that the URL is correct """ from yarss2.lib import feedparser from yarss2 import common file_path = common.get_resource("rss_with_ampersand_link.rss", path="tests") # This is the link in rss_with_ampersand_link.rss url = "http://hostname.com/Fetch?hash=2f21d4e59&digest=865178f9bc" expected = "http://hostname.com/Fetch?hash=2f21d4e59&digest=865178f9bc" # Disable XML Parser feedparser._XML_AVAILABLE = 0 parsed_feeds = feedparser.parse(file_path) for item in parsed_feeds['items']: self.assertEquals(expected, item["link"]) break
def createUI(self): self.glade = gtk.glade.XML(get_resource("yarss_main.glade")) self.glade.signal_autoconnect({ "on_button_add_subscription_clicked": self.on_button_add_subscription_clicked, "on_button_delete_subscription_clicked": self.on_button_delete_subscription_clicked, "on_button_edit_subscription_clicked": self.on_button_edit_subscription_clicked, "on_button_add_rssfeed_clicked": self.on_button_add_rssfeed_clicked, "on_button_delete_rssfeed_clicked": self.on_button_delete_rssfeed_clicked, "on_button_edit_rssfeed_clicked": self.on_button_edit_rssfeed_clicked, "on_button_add_cookie_clicked": self.on_button_add_cookie_clicked, "on_button_edit_cookie_clicked": self.on_button_edit_cookie_clicked, "on_button_delete_cookie_clicked": self.on_button_delete_cookie_clicked, "on_button_add_message_clicked": self.on_button_add_message_clicked, "on_button_edit_message_clicked": self.on_button_edit_message_clicked, "on_button_delete_message_clicked": self.on_button_delete_message_clicked, "on_checkbox_email_authentication_toggled": self.on_checkbox_email_authentication_toggled, "on_checkbutton_send_email_on_torrent_events_toggled": self.on_checkbutton_send_email_on_torrent_events_toggled }) component.get("Preferences").add_page( "YaRSS2", self.glade.get_widget("notebook_main")) component.get("PluginManager").register_hook("on_apply_prefs", self.on_apply_prefs) component.get("PluginManager").register_hook("on_show_prefs", self.on_show_prefs) self.gtkui_log = GTKUI_logger(self.glade.get_widget('textview_log')) self.log = Logger(gtkui_logger=self.gtkui_log) self.torrent_handler = TorrentHandler(self.log) self.subscriptions = {} self.rssfeeds = {} self.selected_path_subscriptions = None self.selected_path_rssfeeds = None self.selected_path_email_message = None self.selected_path_cookies = None # key, enabled, name, site, download_location self.subscriptions_store = gtk.ListStore(str, bool, str, str, str, str, str) # key, active, name, site, Update interval, Last update, subscripions, URL self.rssfeeds_store = gtk.ListStore(str, bool, str, str, str, str, str, str) # key, active, site, value self.cookies_store = gtk.ListStore(str, bool, str, str) # key, active, name, to-address, subject, message-content self.email_messages_store = gtk.ListStore(str, bool, str, str, str, str) self.create_subscription_pane() self.create_rssfeeds_pane() self.create_cookies_pane() self.create_email_messages_pane()
def update_data_from_config(self, config): self.subscriptions = config.get('subscriptions', {}) self.rssfeeds = config.get('rssfeeds', {}) self.cookies = config.get('cookies', {}) self.email_messages = config.get('email_messages', {}) self.email_config = config.get('email_configurations', {}) # When connecting to a second host, the glade object returns None for all the fields, # so reload the glade file here to avoid this problem. if self.glade.get_widget("textview_default_message") is None: self.glade = gtk.glade.XML(get_resource("yarss_main.glade")) # Update GUI self.update_subscription_list(self.subscriptions_store) self.update_rssfeeds_list(self.rssfeeds_store) self.update_cookies_list(self.cookies_store) self.update_email_messages_list(self.email_messages_store) # Set selection for each treeview if self.selected_path_subscriptions and self.subscriptions_treeview.get_selection( ): self.subscriptions_treeview.get_selection().select_path( self.selected_path_subscriptions) if self.selected_path_rssfeeds and self.rssfeeds_treeview.get_selection( ): self.rssfeeds_treeview.get_selection().select_path( self.selected_path_rssfeeds) if self.selected_path_email_message and self.email_messages_treeview.get_selection( ): self.email_messages_treeview.get_selection().select_path( self.selected_path_email_message) if self.selected_path_cookies and self.cookies_treeview.get_selection( ): self.cookies_treeview.get_selection().select_path( self.selected_path_cookies) # Email configurations send_email_checkbox = self.glade.get_widget( "checkbutton_send_email_on_torrent_events") from_addr = self.glade.get_widget("txt_email_from") smtp_server = self.glade.get_widget("txt_email_server") smtp_port = self.glade.get_widget("txt_email_port") smtp_username = self.glade.get_widget("txt_email_username") smtp_password = self.glade.get_widget("txt_email_password") enable_auth = self.glade.get_widget( "checkbox_email_enable_authentication") default_to_address = self.glade.get_widget("txt_default_to_address") default_subject = self.glade.get_widget("txt_default_subject") default_message = self.glade.get_widget("textview_default_message") default_message = default_message.get_buffer() from_addr.set_text(self.email_config["from_address"]) smtp_server.set_text(self.email_config["smtp_server"]) smtp_port.set_text(self.email_config["smtp_port"]) enable_auth.set_active(self.email_config["smtp_authentication"]) smtp_username.set_text(self.email_config["smtp_username"]) smtp_password.set_text(self.email_config["smtp_password"]) default_to_address.set_text( self.email_config["default_email_to_address"]) default_subject.set_text(self.email_config["default_email_subject"]) default_message.set_text(self.email_config["default_email_message"]) # Must be last, since it will cause callback on # method on_checkbutton_send_email_on_torrent_events_toggled send_email_checkbox.set_active( self.email_config["send_email_on_torrent_events"])