def PluginPreferences(self, parent): outer_vb = Gtk.VBox(spacing=12) vb = Gtk.VBox(spacing=12) # Playing hb = Gtk.HBox(spacing=6) entry = UndoEntry() entry.set_text(self.config_get(self.CFG_PAT_PLAYING, self.DEFAULT_PAT)) entry.connect('changed', self.config_entry_changed, self.CFG_PAT_PLAYING) lbl = Gtk.Label(label=_("Playing:")) entry.set_tooltip_markup(_("Status text when a song is started. " "Accepts QL Patterns e.g. %s") % util.monospace( util.escape("<~artist~title>"))) lbl.set_mnemonic_widget(entry) hb.pack_start(lbl, False, True, 0) hb.pack_start(entry, True, True, 0) vb.pack_start(hb, True, True, 0) # Paused hb = Gtk.HBox(spacing=6) entry = UndoEntry() entry.set_text(self.config_get(self.CFG_PAT_PAUSED, self.DEFAULT_PAT_PAUSED)) entry.connect('changed', self.config_entry_changed, self.CFG_PAT_PAUSED) lbl = Gtk.Label(label=_("Paused:")) entry.set_tooltip_markup(_("Status text when a song is paused. " "Accepts QL Patterns e.g. %s") % util.monospace( util.escape("<~artist~title>"))) lbl.set_mnemonic_widget(entry) hb.pack_start(lbl, False, True, 0) hb.pack_start(entry, True, True, 0) vb.pack_start(hb, True, True, 0) # No Song hb = Gtk.HBox(spacing=6) entry = UndoEntry() entry.set_text(self.config_get(self.CFG_STATUS_SONGLESS, "")) entry.connect('changed', self.config_entry_changed, self.CFG_STATUS_SONGLESS) entry.set_tooltip_text( _("Plain text for status when there is no current song")) lbl = Gtk.Label(label=_("No song:")) lbl.set_mnemonic_widget(entry) hb.pack_start(lbl, False, True, 0) hb.pack_start(entry, True, True, 0) vb.pack_start(hb, True, True, 0) # Frame frame = qltk.Frame(_("Status Patterns"), child=vb) outer_vb.pack_start(frame, False, True, 0) return outer_vb
def PluginPreferences(self, parent): outer_vb = Gtk.VBox(spacing=12) vb = Gtk.VBox(spacing=12) # Naming Pattern hb = Gtk.HBox(spacing=6) entry = UndoEntry() entry.set_text(self.config_get(self.CFG_PAT_PLAYING, self.DEFAULT_PAT)) entry.connect('changed', self.config_entry_changed, self.CFG_PAT_PLAYING) lbl = Gtk.Label(label=_("Naming pattern:")) entry.set_tooltip_markup(_("File path based off of tags " "to move a file after update. " "Accepts QL Patterns e.g. %s") % util.monospace(util.escape("<~artist" + "~title>"))) lbl.set_mnemonic_widget(entry) hb.pack_start(lbl, False, True, 0) hb.pack_start(entry, True, True, 0) vb.pack_start(hb, True, True, 0) # Frame frame = qltk.Frame(_("New File Location/Name"), child=vb) outer_vb.pack_start(frame, False, True, 0) return outer_vb
from quodlibet.qltk import Icons, ErrorMessage, Message EXPAND = Gtk.AttachOptions.EXPAND FILL = Gtk.AttachOptions.FILL class Config(object): STATUS_SONGLESS = 'no_song_text', "" PAT_PLAYING = 'playing_pattern', "♫ <~artist~title> ♫" PAT_PAUSED = 'paused_pattern', "<~artist~title> [%s]" % _("paused") HOST = 'host', "localhost" PORT = 'port', 1883 TOPIC = 'topic', 'quodlibet/now-playing' _ACCEPTS_PATTERNS = (_("Accepts QL Patterns e.g. %s") % monospace(escape('<~artist~title>'))) class MqttPublisherPlugin(EventPlugin, PluginConfigMixin): PLUGIN_ID = "MQTT Status" PLUGIN_NAME = _("MQTT Publisher") PLUGIN_DESC = _("Publishes status messages to an MQTT topic.") PLUGIN_ICON = Icons.FACE_SMILE def on_connect(self, client, userdata, flags, rc): """Callback for when the client receives a CONNACK response from the server.""" print_d("Connected to %s at %s:%d with result code %s" % (self.topic, self.host, self.port, rc)) def _subscribe(self, client, topic):
EXPAND = Gtk.AttachOptions.EXPAND FILL = Gtk.AttachOptions.FILL class Config(object): STATUS_SONGLESS = 'no_song_text', "" PAT_PLAYING = 'playing_pattern', "♫ <~artist~title> ♫" PAT_PAUSED = 'paused_pattern', "<~artist~title> [%s]" % _("paused") HOST = 'host', "localhost" PORT = 'port', 1883 TOPIC = 'topic', 'quodlibet/now-playing' _ACCEPTS_PATTERNS = (_("Accepts QL Patterns e.g. %s") % monospace(escape('<~artist~title>'))) class MqttPublisherPlugin(EventPlugin, PluginConfigMixin): PLUGIN_ID = "MQTT Status" PLUGIN_NAME = _("MQTT Publisher") PLUGIN_DESC = _("Publishes status messages to an MQTT topic.") PLUGIN_ICON = Icons.FACE_SMILE def on_connect(self, client, userdata, flags, rc): """Callback for when the client receives a CONNACK response from the server.""" print_d("Connected to %s at %s:%d with result code %s" % (self.topic, self.host, self.port, rc)) def _subscribe(self, client, topic):
def test_format(self): self.assertEqual(util.bold("foo"), "<b>foo</b>") self.assertEqual(util.italic("foo"), "<i>foo</i>") self.assertEqual(util.monospace("foo"), "<tt>foo</tt>")