def new_timeline(self, *args, **kwargs): b = self.get_current_buffer() if not hasattr(b, "get_users"): b = self.search("home_timeline") d = [] for i in self.session.db["users"]: d.append((i, self.session.get_user_name(i, "nom"))) for i in self.session.db["groups"]: d.append((-i, self.session.get_user_name(-i))) a = timeline.timelineDialog([i[1] for i in d]) if a.get_response() == widgetUtils.OK: user = a.get_user() buffertype = a.get_buffer_type() user_id = "" for i in d: if i[1] == user: user_id = i[0] if user_id == None: commonMessages.no_user_exist() return print user_id if buffertype == "audio": buffer = buffers.audioBuffer(parent=self.window.tb, name="{0}_audio".format(user_id,), composefunc="compose_audio", session=self.session, endpoint="get", parent_endpoint="audio", full_list=True, count=self.session.settings["buffers"]["count_for_audio_buffers"], owner_id=user_id) # Translators: {0} will be replaced with an user. name_ = _(u"{0}'s audios").format(self.session.get_user_name(user_id, "gen"),) elif buffertype == "wall": buffer = buffers.feedBuffer(parent=self.window.tb, name="{0}_feed".format(user_id,), composefunc="compose_status", session=self.session, endpoint="get", parent_endpoint="wall", extended=1, count=self.session.settings["buffers"]["count_for_wall_buffers"], owner_id=user_id) # Translators: {0} will be replaced with an user. name_ = _(u"{0}'s wall posts").format(self.session.get_user_name(user_id, "gen"),) elif buffertype == "friends": buffer = buffers.peopleBuffer(parent=self.window.tb, name="friends_{0}".format(user_id,), composefunc="compose_person", session=self.session, endpoint="get", parent_endpoint="friends", count=5000, fields="uid, first_name, last_name, last_seen", user_id=user_id) # Translators: {0} will be replaced with an user. name_ = _(u"{0}'s friends").format(self.session.get_user_name(user_id, "friends"),) self.buffers.append(buffer) call_threaded(self.complete_buffer_creation, buffer=buffer, name_=name_, position=self.window.search("timelines"))
def setup(): log.debug("Starting " + application.name + " %s" % (application.version, )) config.setup() fixes.setup() log.debug("Using %s %s" % (platform.system(), platform.architecture()[0])) log.debug("Application path is %s" % (paths.app_path(), )) log.debug("config path is %s" % (paths.config_path(), )) sound.setup() output.setup() languageHandler.setLanguage(config.app["app-settings"]["language"]) keys.setup() from controller import mainController from sessionmanager import sessionManager app = widgetUtils.mainLoopObject() if system == "Windows": if config.app["app-settings"]["donation_dialog_displayed"] == False: donation() updater.do_update() sm = sessionManager.sessionManagerController() sm.fill_list() if len(sm.sessions) == 0: sm.show() else: sm.do_ok() if hasattr(sm.view, "destroy"): sm.view.destroy() del sm r = mainController.Controller() r.view.show() r.do_work() r.check_invisible_at_startup() if system == "Windows": call_threaded(r.start) elif system == "Linux": GLib.idle_add(r.start) app.run()
def onResponse(self, ev): if self.name_buffer == "sent": return dlg = gui.dialogs.message.reply( _(u"Reply to %s") % (self.db.settings[self.name_buffer][ self.list.get_selected()]["user"]["screen_name"]), _(u"Reply"), u"@%s " % (self.db.settings[self.name_buffer][ self.list.get_selected()]["user"]["screen_name"]), self) if dlg.ShowModal() == wx.ID_OK: if dlg.image == None: call_threaded(self.twitter.api_call, call_name="update_status", _sound="reply_send.ogg", in_reply_to_status_id=dlg.in_reply_to, status=dlg.text.GetValue()) else: call_threaded(self.twitter.api_call, call_name="update_status_with_media", _sound="reply_send.ogg", in_reply_to_status_id=dlg.in_reply_to, status=dlg.text.GetValue(), media=dlg.file) # dlg.Destroy() if ev != None: self.list.list.SetFocus()
def post_status(self, ev=None): text = gui.dialogs.message.tweet(_(u"Write the tweet here"), _(u"Tweet"), "", self) if text.ShowModal() == wx.ID_OK: if text.image == None: call_threaded(self.twitter.api_call, call_name="update_status", _sound="tweet_send.ogg", status=text.text.GetValue()) else: call_threaded(self.twitter.api_call, call_name="update_status_with_media", _sound="tweet_send.ogg", status=text.text.GetValue(), media=text.file) if ev != None: self.list.list.SetFocus()
def fill_information(self): if self.post.has_key("artist"): self.dialog.set("artist", self.post["artist"]) if self.post.has_key("title"): self.dialog.set("title", self.post["title"]) if self.post.has_key("duration"): self.dialog.set("duration", utils.seconds_to_string(self.post["duration"])) self.dialog.set_title(u"{0} - {1}".format(self.post["title"], self.post["artist"])) call_threaded(self.get_lyrics)
def __init__(self, window): super(autocompletionSettings, self).__init__() self.window = window self.dialog = wx_settings.autocompletionSettingsDialog() self.dialog.friends_buffer.SetValue(config.main["mysc"]["save_friends_in_autocompletion_db"]) self.dialog.followers_buffer.SetValue(config.main["mysc"]["save_followers_in_autocompletion_db"]) self.dialog.viewList.Bind(wx.EVT_BUTTON, self.view_list) if self.dialog.ShowModal() == wx.ID_OK: call_threaded(self.add_users_to_database)
def onResponse(self, ev): dlg = gui.dialogs.message.reply(_(u"Mention to %s") % (self.db.settings[self.name_buffer][self.list.get_selected()]["screen_name"]), _(u"Mention"), u"@%s " % (self.db.settings[self.name_buffer][self.list.get_selected()]["screen_name"]), self) if dlg.ShowModal() == wx.ID_OK: if dlg.image == None: call_threaded(self.twitter.api_call, call_name="update_status", _sound="reply_send.ogg", in_reply_to_status_id=dlg.in_reply_to, status=dlg.text.GetValue()) else: call_threaded(self.twitter.api_call, call_name="update_status_with_media", _sound="reply_send.ogg", in_reply_to_status_id=dlg.in_reply_to, status=dlg.text.GetValue(), media=dlg.file) # dlg.Destroy() if ev != None: self.list.list.SetFocus()
def reply(self, *args, **kwargs): tweet = self.get_right_tweet() screen_name = tweet["screen_name"] message = messages.reply(self.session, _(u"Mention"), _(u"Mention to %s") % (screen_name,), "@%s " % (screen_name,), [screen_name,]) if message.message.get_response() == widgetUtils.OK: if message.image == None: call_threaded(self.session.api_call, call_name="update_status", _sound="reply_send.ogg", status=message.message.get_text()) else: call_threaded(self.session.api_call, call_name="update_status_with_media", _sound="reply_send.ogg", status=message.message.get_text(), media=message.file) if hasattr(message.message, "destroy"): message.message.destroy()
def add_new_item(self, item): tweet = self.compose_function(item, self.session.db, self.session.settings["general"]["relative_times"]) if self.session.settings["general"]["reverse_timelines"] == False: self.buffer.list.insert_item(False, *tweet) else: self.buffer.list.insert_item(True, *tweet) if self.name in self.session.settings["other_buffers"]["autoread_buffers"] and self.name not in self.session.settings["other_buffers"]["muted_buffers"] and self.session.settings["sound"]["session_mute"] == False: output.speak(" ".join(tweet[:2])) #Improve performance on Windows if platform.system() == "Windows": call_threaded(utils.is_audio,item)
def __init__(self, window): super(autocompletionSettings, self).__init__() self.window = window self.dialog = wx_settings.autocompletionSettingsDialog() self.dialog.friends_buffer.SetValue( config.main["mysc"]["save_friends_in_autocompletion_db"]) self.dialog.followers_buffer.SetValue( config.main["mysc"]["save_followers_in_autocompletion_db"]) self.dialog.viewList.Bind(wx.EVT_BUTTON, self.view_list) if self.dialog.ShowModal() == wx.ID_OK: call_threaded(self.add_users_to_database)
def __init__(self, config, buffer, window): super(autocompletionSettings, self).__init__() self.config = config self.buffer = buffer self.window = window self.dialog = wx_settings.autocompletionSettingsDialog() self.dialog.set("friends_buffer", self.config["mysc"]["save_friends_in_autocompletion_db"]) self.dialog.set("followers_buffer", self.config["mysc"]["save_followers_in_autocompletion_db"]) widgetUtils.connect_event(self.dialog.viewList, widgetUtils.BUTTON_PRESSED, self.view_list) if self.dialog.get_response() == widgetUtils.OK: call_threaded(self.add_users_to_database)
def onDm(self, ev): if self.name_buffer == "sent": return if self.name_buffer == "direct_messages": self.onResponse(ev) else: user = self.db.settings[self.name_buffer][self.list.get_selected()]["user"]["screen_name"] dlg = gui.dialogs.message.dm(_("Direct message to %s") % (user,), _(u"New direct message"), "", self) if dlg.ShowModal() == wx.ID_OK: call_threaded(self.twitter.api_call, call_name="send_direct_message", _sound="dm_sent.ogg", text=dlg.text.GetValue(), screen_name=dlg.cb.GetValue()) # dlg.Destroy() if ev != None: self.list.list.SetFocus()
def __init__(self): super(Controller, self).__init__() log.debug("Starting main controller...") self.buffers = [] player.setup() self.window = mainWindow.mainWindow() log.debug("Main window created") self.window.change_status(_(u"Ready")) self.session = session.sessions[session.sessions.keys()[0]] self.create_controls() self.window.Show() self.connect_events() call_threaded(updater.do_update)
def onResponse(self, ev): dlg = gui.dialogs.message.dm( _("Direct message to %s") % (self.db.settings[self.name_buffer][ self.list.get_selected()]["sender"]["screen_name"]), _(u"New direct message"), "", self) if dlg.ShowModal() == wx.ID_OK: call_threaded(self.twitter.api_call, call_name="send_direct_message", _sound="dm_sent.ogg", text=dlg.text.GetValue(), screen_name=dlg.cb.GetValue()) if ev != None: self.list.list.SetFocus()
def __init__(self, session, comment_object): super(comment, self).__init__() self.session = session self.comment = comment_object self.dialog = postDialogs.comment() from_ = self.comment["from"]["name"] message = self.comment["message"] original_date = arrow.get(self.comment["created_time"], "YYYY-MM-DTHH:m:sZ", locale="en") created_at = original_date.humanize(locale=languageHandler.getLanguage()) self.dialog.set_post(message) self.dialog.set_title(_(u"Comment from {0}").format(from_,)) widgetUtils.connect_event(self.dialog.like, widgetUtils.BUTTON_PRESSED, self.post_like) call_threaded(self.get_likes)
def search_audios(self, *args, **kwargs): dlg = searchDialogs.searchAudioDialog() if dlg.get_response() == widgetUtils.OK: q = dlg.get("term").encode("utf-8") count = 300 auto_complete = dlg.get_checkable("auto_complete") lyrics = dlg.get_checkable("lyrics") performer_only = dlg.get_checkable("artist_only") sort = dlg.get_sort_order() newbuff = buffers.audioBuffer(parent=self.window.tb, name=u"{0}_audiosearch".format(q.decode("utf-8"),), session=self.session, composefunc="compose_audio", parent_endpoint="audio", endpoint="search", q=q, count=count, auto_complete=auto_complete, lyrics=lyrics, performer_only=performer_only, sort=sort) self.buffers.append(newbuff) call_threaded(newbuff.get_items) # Translators: {0} will be replaced with the search term. self.window.insert_buffer(newbuff.tab, _(u"Search for {0}").format(q.decode("utf-8"),), self.window.search("audios"))
def direct_message(self, *args, **kwargs): tweet = self.get_right_tweet() if self.type == "dm": screen_name = tweet["sender"]["screen_name"] users = utils.get_all_users(tweet, self.session.db) elif self.type == "people": screen_name = tweet["screen_name"] users = [screen_name] else: screen_name = tweet["user"]["screen_name"] users = utils.get_all_users(tweet, self.session.db) dm = messages.dm(self.session, _(u"Direct message to %s") % (screen_name,), _(u"New direct message"), users) if dm.message.get_response() == widgetUtils.OK: call_threaded(self.session.api_call, call_name="send_direct_message", text=dm.message.get_text(), screen_name=dm.message.get("cb")) if hasattr(dm.message, "destroy"): dm.message.destroy()
def play(self, url=None, volume=1.0, stream=None,announce=True): if announce: output.speak(_(u"Playing...")) log.debug("Attempting to play an URL...") if url != None: self.prepare(url) elif stream != None: self.stream=stream if self.prepared == True: self.stream = sound_lib.stream.URLStream(url=self.url) if hasattr(self,'stream'): self.stream.volume = float(volume) self.stream.play() log.debug("played") call_threaded(self.delete_when_done)
def fill_information(self, index): post = self.post[index] if post.has_key("artist"): self.dialog.set("artist", post["artist"]) if post.has_key("title"): self.dialog.set("title", post["title"]) if post.has_key("duration"): self.dialog.set("duration", utils.seconds_to_string(post["duration"])) self.dialog.set_title(u"{0} - {1}".format(post["title"], post["artist"])) call_threaded(self.get_lyrics) if post["owner_id"] == self.session.user_id or self.added_audios.has_key(post["id"]) == True: self.dialog.change_state("remove", True) self.dialog.change_state("add", False) else: self.dialog.change_state("add", True) self.dialog.change_state("remove", False)
def __init__(self, config, buffer, window): super(autocompletionSettings, self).__init__() self.config = config self.buffer = buffer self.window = window self.dialog = wx_settings.autocompletionSettingsDialog() self.dialog.set( "friends_buffer", self.config["mysc"]["save_friends_in_autocompletion_db"]) self.dialog.set( "followers_buffer", self.config["mysc"]["save_followers_in_autocompletion_db"]) widgetUtils.connect_event(self.dialog.viewList, widgetUtils.BUTTON_PRESSED, self.view_list) if self.dialog.get_response() == widgetUtils.OK: call_threaded(self.add_users_to_database)
def search_videos(self, *args, **kwargs): dlg = searchDialogs.searchVideoDialog() if dlg.get_response() == widgetUtils.OK: params = {} params["q"] = dlg.get("term").encode("utf-8") params["count"] = 200 hd = dlg.get_checkable("hd") if hd != 0: params["hd"] = 1 params["adult"] = dlg.get_checkable("safe_search") params["sort"] = dlg.get_sort_order() params["filters"] = "youtube, vimeo, short, long" newbuff = buffers.videoBuffer(parent=self.window.tb, name=u"{0}_videosearch".format(params["q"].decode("utf-8"),), session=self.session, composefunc="compose_video", parent_endpoint="video", endpoint="search", **params) self.buffers.append(newbuff) call_threaded(newbuff.get_items) # Translators: {0} will be replaced with the search term. self.window.insert_buffer(newbuff.tab, _(u"Search for {0}").format(params["q"].decode("utf-8"),), self.window.search("videos"))
def setup(): log.debug("Starting " + application.name + " %s" % (application.version,)) config.setup() log.debug("Using %s %s" % (platform.system(), platform.architecture()[0])) log.debug("Application path is %s" % (paths.app_path(),)) log.debug("config path is %s" % (paths.config_path(),)) sound.setup() output.setup() languageHandler.setLanguage(config.app["app-settings"]["language"]) message(message=_(u"Loading files and configuration, please wait...")) fixes.setup() keys.setup() from controller import mainController from sessionmanager import sessionManager app = widgetUtils.mainLoopObject() gplwarning() if system == "Windows": if config.app["app-settings"]["donation_dialog_displayed"] == False: donation() if config.app["app-settings"]["check_updates"] == True: updater.do_update() else: message(message=_(u"Set to ignore updates at startup. To change this preference, go to global config")) sm = sessionManager.sessionManagerController() sm.fill_list() if len(sm.sessions) == 0: sm.show() else: sm.do_ok() if hasattr(sm.view, "destroy"): sm.view.destroy() del sm r = mainController.Controller() r.view.show() r.do_work() r.check_invisible_at_startup() if system == "Windows": call_threaded(r.start) elif system == "Linux": GLib.idle_add(r.start) message( message=_(u"Welcome to %s. Main application's window will appears shortly. Happy tweeting!") % application.name ) app.run()
def post_tweet(self, *args, **kwargs): title = _(u"Tweet") caption = _(u"Write the tweet here") tweet = messages.tweet(self.session, title, caption, "", twishort_enabled=self.session.settings["mysc"]["twishort_enabled"]) if tweet.message.get_response() == widgetUtils.OK: self.session.settings["mysc"]["twishort_enabled"] = tweet.message.long_tweet.GetValue() text = tweet.message.get_text() if len(text) > 140 and tweet.message.get("long_tweet") == True: if tweet.image == None: text = twishort.create_tweet(self.session.settings["twitter"]["user_key"], self.session.settings["twitter"]["user_secret"], text) else: text = twishort.create_tweet(self.session.settings["twitter"]["user_key"], self.session.settings["twitter"]["user_secret"], text, 1) if tweet.image == None: call_threaded(self.session.api_call, call_name="update_status", status=text) else: call_threaded(self.session.api_call, call_name="update_status_with_media", status=text, media=tweet.image) if hasattr(tweet.message, "destroy"): tweet.message.destroy()
def onDm(self, ev): if self.name_buffer == "sent": return if self.name_buffer == "direct_messages": self.onResponse(ev) else: user = self.db.settings[self.name_buffer][ self.list.get_selected()]["screen_name"] dlg = gui.dialogs.message.dm( _("Direct message to %s") % (user, ), _(u"New direct message"), "", self) if dlg.ShowModal() == wx.ID_OK: call_threaded(self.twitter.api_call, call_name="send_direct_message", _sound="dm_sent.ogg", text=dlg.text.GetValue(), screen_name=dlg.cb.GetValue()) # dlg.Destroy() if ev != None: self.list.list.SetFocus()
def reply(self, *args, **kwargs): tweet = self.get_right_tweet() screen_name = tweet["user"]["screen_name"] id = tweet["id"] users = utils.get_all_mentioned(tweet, self.session.db) message = messages.reply(self.session, _(u"Reply"), _(u"Reply to %s") % (screen_name,), "@%s " % (screen_name,), twishort_enabled=self.session.settings["mysc"]["twishort_enabled"], users=users) if message.message.get_response() == widgetUtils.OK: self.session.settings["mysc"]["twishort_enabled"] = message.message.long_tweet.GetValue() text = message.message.get_text() if len(text) > 140 and message.message.get("long_tweet") == True: if message.image == None: text = twishort.create_tweet(self.session.settings["twitter"]["user_key"], self.session.settings["twitter"]["user_secret"], text) else: text = twishort.create_tweet(self.session.settings["twitter"]["user_key"], self.session.settings["twitter"]["user_secret"], text, 1) if message.image == None: call_threaded(self.session.api_call, call_name="update_status", _sound="reply_send.ogg", in_reply_to_status_id=id, status=text) else: call_threaded(self.session.api_call, call_name="update_status_with_media", _sound="reply_send.ogg", in_reply_to_status_id=id, status=text, media=message.file) if hasattr(message.message, "destroy"): message.message.destroy()
def setup(): log.debug("Starting Socializer %s" % (application.version,)) config.setup() log.debug("Using %s %s" % (platform.system(), platform.architecture()[0])) log.debug("Application path is %s" % (paths.app_path(),)) log.debug("config path is %s" % (paths.config_path(),)) output.setup() languageHandler.setLanguage(config.app["app-settings"]["language"]) log.debug("Language set to %s" % (languageHandler.getLanguage())) keys.setup() from controller import mainController from sessionmanager import sessionManager app = widgetUtils.mainLoopObject() log.debug("Created Application mainloop object") sm = sessionManager.sessionManagerController() del sm r = mainController.Controller() call_threaded(r.login) app.run()
def _retweet_with_comment(self, tweet, id, comment=''): retweet = messages.tweet(self.session, _(u"Retweet"), _(u"Add your comment to the tweet"), u"“@%s: %s ”" % (tweet["user"]["screen_name"], tweet["text"]), max=116, messageType="retweet", twishort_enabled=self.session.settings["mysc"]["twishort_enabled"]) if comment != '': retweet.message.set_text(comment) if retweet.message.get_response() == widgetUtils.OK: text = retweet.message.get_text() comments=text if len(text+ u"“@%s: %s ”" % (tweet["user"]["screen_name"], tweet["text"])) < 140: text = text+u"“@%s: %s ”" % (tweet["user"]["screen_name"], tweet["text"]) else: answer = commonMessageDialogs.retweet_as_link(self.buffer) if answer == widgetUtils.YES: text = text+" https://twitter.com/{0}/status/{1}".format(tweet["user"]["screen_name"], id) else: return self._retweet_with_comment(tweet, id, comment=comments) if retweet.image == None: call_threaded(self.session.api_call, call_name="update_status", _sound="retweet_send.ogg", status=text, in_reply_to_status_id=id) else: call_threaded(self.session.api_call, call_name="update_status", _sound="retweet_send.ogg", status=text, media=retweet.image) if hasattr(retweet.message, "destroy"): retweet.message.destroy()
def onRetweet(self, ev): if self.name_buffer != "direct_messages": id=self.db.settings[self.name_buffer][self.list.get_selected()]["id"] ask = wx.MessageDialog(self.parent, _(u"Would you like to add a comment to this tweet?"), _("Retweet"), wx.YES_NO|wx.CANCEL|wx.ICON_QUESTION) response = ask.ShowModal() if response == wx.ID_YES: dlg = gui.dialogs.message.retweet(_(u"Add your comment to the tweet"), _(u"Retweet"), u"“@%s: %s ”" % (self.db.settings[self.name_buffer][self.list.get_selected()]["user"]["screen_name"], self.db.settings[self.name_buffer][self.list.get_selected()]["text"]), self) if dlg.ShowModal() == wx.ID_OK: if dlg.image == None: call_threaded(self.twitter.api_call, call_name="update_status", _sound="retweet_send.ogg", status=dlg.text.GetValue(), in_reply_to_status_id=dlg.in_reply_to) else: call_threaded(self.twitter.call_api, call_name="update_status_with_media", _sound="retweet_send.ogg", status=dlg.text.GetValue(), in_reply_to_status_id=text.in_reply_to, media=dlg.file) # dlg.Destroy() if ev != None: self.list.list.SetFocus() elif response == wx.ID_NO: call_threaded(self.twitter.api_call, call_name="retweet", _sound="retweet_send.ogg", id=id) if ev != None: self.list.list.SetFocus() ask.Destroy()
def onRetweet(self, ev): if self.name_buffer != "direct_messages": id = self.db.settings[self.name_buffer][ self.list.get_selected()]["id"] ask = wx.MessageDialog( self.parent, _(u"Would you like to add a comment to this tweet?"), _("Retweet"), wx.YES_NO | wx.CANCEL | wx.ICON_QUESTION) response = ask.ShowModal() if response == wx.ID_YES: dlg = gui.dialogs.message.retweet( _(u"Add your comment to the tweet"), _(u"Retweet"), u"“@%s: %s ”" % (self.db.settings[self.name_buffer][self.list.get_selected( )]["user"]["screen_name"], self.db.settings[ self.name_buffer][self.list.get_selected()]["text"]), self) if dlg.ShowModal() == wx.ID_OK: if dlg.image == None: call_threaded(self.twitter.api_call, call_name="update_status", _sound="retweet_send.ogg", status=dlg.text.GetValue(), in_reply_to_status_id=dlg.in_reply_to) else: call_threaded(self.twitter.call_api, call_name="update_status_with_media", _sound="retweet_send.ogg", status=dlg.text.GetValue(), in_reply_to_status_id=text.in_reply_to, media=dlg.file) # dlg.Destroy() if ev != None: self.list.list.SetFocus() elif response == wx.ID_NO: call_threaded(self.twitter.api_call, call_name="retweet", _sound="retweet_send.ogg", id=id) if ev != None: self.list.list.SetFocus() ask.Destroy()
def _direct_retweet(self, id): call_threaded(self.session.api_call, call_name="retweet", _sound="retweet_send.ogg", id=id)
def on_play(self, *args, **kwargs): if not self.playing: call_threaded(self._play) else: self._stop()
def post(self, *args, **kwargs): p = messages.post(session=self.session, title=_(u"Write your post"), caption="", text="") if p.message.get_response() == widgetUtils.OK: call_threaded(self.do_last, p=p)
def send_chat_to_user(self, *args, **kwargs): text = self.tab.text.GetValue() if text == "": return call_threaded(self._send_message, text=text)
def onResponse(self, ev): dlg = gui.dialogs.message.dm(_("Direct message to %s") % (self.db.settings[self.name_buffer][self.list.get_selected()]["sender"]["screen_name"]), _(u"New direct message"), "", self) if dlg.ShowModal() == wx.ID_OK: call_threaded(self.twitter.api_call, call_name="send_direct_message", _sound="dm_sent.ogg", text=dlg.text.GetValue(), screen_name=dlg.cb.GetValue()) if ev != None: self.list.list.SetFocus()
def download(self, url, filename): log.debug(u"downloading %s URL to %s filename" % (url, filename,)) call_threaded(utils.download_file, url, filename, self.window)
def onPlay(self, evt): evt.Skip() if not self.playing: call_threaded(self._play) else: self._stop()
def play_audio(self, audio_object): call_threaded(player.player.play, audio_object)