mirror of
https://github.com/MCV-Software/TWBlue.git
synced 2025-03-14 09:28:03 -06:00
Prepare for py3 port.
This commit is contained in:
parent
6d33f310ab
commit
4bdc2b2a6a
@ -1,14 +1,15 @@
|
|||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
from __future__ import absolute_import
|
||||||
import time
|
import time
|
||||||
import platform
|
import platform
|
||||||
if platform.system() == "Windows":
|
if platform.system() == "Windows":
|
||||||
import wx
|
import wx
|
||||||
from wxUI import buffers, dialogs, commonMessageDialogs, menus
|
from wxUI import buffers, dialogs, commonMessageDialogs, menus
|
||||||
import user
|
from . import user
|
||||||
elif platform.system() == "Linux":
|
elif platform.system() == "Linux":
|
||||||
from gi.repository import Gtk
|
from gi.repository import Gtk
|
||||||
from gtkUI import buffers, dialogs, commonMessageDialogs
|
from gtkUI import buffers, dialogs, commonMessageDialogs
|
||||||
import messages
|
from . import messages
|
||||||
import widgetUtils
|
import widgetUtils
|
||||||
import arrow
|
import arrow
|
||||||
import webbrowser
|
import webbrowser
|
||||||
@ -269,7 +270,7 @@ class baseBufferController(bufferController):
|
|||||||
tweetsList = []
|
tweetsList = []
|
||||||
tweet_id = tweet["id"]
|
tweet_id = tweet["id"]
|
||||||
message = None
|
message = None
|
||||||
if tweet.has_key("message"):
|
if "message" in tweet:
|
||||||
message = tweet["message"]
|
message = tweet["message"]
|
||||||
try:
|
try:
|
||||||
tweet = self.session.twitter.twitter.show_status(id=tweet_id, include_ext_alt_text=True, tweet_mode="extended")
|
tweet = self.session.twitter.twitter.show_status(id=tweet_id, include_ext_alt_text=True, tweet_mode="extended")
|
||||||
@ -363,7 +364,7 @@ class baseBufferController(bufferController):
|
|||||||
if self.name[:-9] in self.session.settings["other_buffers"]["timelines"]:
|
if self.name[:-9] in self.session.settings["other_buffers"]["timelines"]:
|
||||||
self.session.settings["other_buffers"]["timelines"].remove(self.name[:-9])
|
self.session.settings["other_buffers"]["timelines"].remove(self.name[:-9])
|
||||||
self.session.settings.write()
|
self.session.settings.write()
|
||||||
if self.session.db.has_key(self.name):
|
if self.name in self.session.db:
|
||||||
self.session.db.pop(self.name)
|
self.session.db.pop(self.name)
|
||||||
return True
|
return True
|
||||||
elif dlg == widgetUtils.NO:
|
elif dlg == widgetUtils.NO:
|
||||||
@ -376,7 +377,7 @@ class baseBufferController(bufferController):
|
|||||||
if dlg == widgetUtils.YES:
|
if dlg == widgetUtils.YES:
|
||||||
if self.name[:-9] in self.session.settings["other_buffers"]["favourites_timelines"]:
|
if self.name[:-9] in self.session.settings["other_buffers"]["favourites_timelines"]:
|
||||||
self.session.settings["other_buffers"]["favourites_timelines"].remove(self.name[:-9])
|
self.session.settings["other_buffers"]["favourites_timelines"].remove(self.name[:-9])
|
||||||
if self.session.db.has_key(self.name):
|
if self.name in self.session.db:
|
||||||
self.session.db.pop(self.name)
|
self.session.db.pop(self.name)
|
||||||
self.session.settings.write()
|
self.session.settings.write()
|
||||||
return True
|
return True
|
||||||
@ -494,7 +495,7 @@ class baseBufferController(bufferController):
|
|||||||
self.show_menu(widgetUtils.MENU, pos=self.buffer.list.list.GetPosition())
|
self.show_menu(widgetUtils.MENU, pos=self.buffer.list.list.GetPosition())
|
||||||
|
|
||||||
def get_tweet(self):
|
def get_tweet(self):
|
||||||
if self.session.db[self.name][self.buffer.list.get_selected()].has_key("retweeted_status"):
|
if "retweeted_status" in self.session.db[self.name][self.buffer.list.get_selected()]:
|
||||||
tweet = self.session.db[self.name][self.buffer.list.get_selected()]["retweeted_status"]
|
tweet = self.session.db[self.name][self.buffer.list.get_selected()]["retweeted_status"]
|
||||||
else:
|
else:
|
||||||
tweet = self.session.db[self.name][self.buffer.list.get_selected()]
|
tweet = self.session.db[self.name][self.buffer.list.get_selected()]
|
||||||
@ -509,7 +510,7 @@ class baseBufferController(bufferController):
|
|||||||
tweet = self.get_right_tweet()
|
tweet = self.get_right_tweet()
|
||||||
screen_name = tweet["user"]["screen_name"]
|
screen_name = tweet["user"]["screen_name"]
|
||||||
id = tweet["id"]
|
id = tweet["id"]
|
||||||
twishort_enabled = tweet.has_key("twishort")
|
twishort_enabled = "twishort" in tweet
|
||||||
users = utils.get_all_mentioned(tweet, self.session.db, field="screen_name")
|
users = utils.get_all_mentioned(tweet, self.session.db, field="screen_name")
|
||||||
ids = utils.get_all_mentioned(tweet, self.session.db, field="id_str")
|
ids = utils.get_all_mentioned(tweet, self.session.db, field="id_str")
|
||||||
message = messages.reply(self.session, _(u"Reply"), _(u"Reply to %s") % (screen_name,), "", twishort_enabled=self.session.settings["mysc"]["twishort_enabled"], users=users, ids=ids)
|
message = messages.reply(self.session, _(u"Reply"), _(u"Reply to %s") % (screen_name,), "", twishort_enabled=self.session.settings["mysc"]["twishort_enabled"], users=users, ids=ids)
|
||||||
@ -580,7 +581,7 @@ class baseBufferController(bufferController):
|
|||||||
self._retweet_with_comment(tweet, id)
|
self._retweet_with_comment(tweet, id)
|
||||||
|
|
||||||
def _retweet_with_comment(self, tweet, id, comment=''):
|
def _retweet_with_comment(self, tweet, id, comment=''):
|
||||||
if tweet.has_key("full_text"):
|
if "full_text" in tweet:
|
||||||
comments = tweet["full_text"]
|
comments = tweet["full_text"]
|
||||||
else:
|
else:
|
||||||
comments = tweet["text"]
|
comments = tweet["text"]
|
||||||
@ -737,7 +738,7 @@ class listBufferController(baseBufferController):
|
|||||||
if dlg == widgetUtils.YES:
|
if dlg == widgetUtils.YES:
|
||||||
if self.name[:-5] in self.session.settings["other_buffers"]["lists"]:
|
if self.name[:-5] in self.session.settings["other_buffers"]["lists"]:
|
||||||
self.session.settings["other_buffers"]["lists"].remove(self.name[:-5])
|
self.session.settings["other_buffers"]["lists"].remove(self.name[:-5])
|
||||||
if self.session.db.has_key(self.name):
|
if self.name in self.session.db:
|
||||||
self.session.db.pop(self.name)
|
self.session.db.pop(self.name)
|
||||||
self.session.settings.write()
|
self.session.settings.write()
|
||||||
return True
|
return True
|
||||||
@ -824,7 +825,7 @@ class peopleBufferController(baseBufferController):
|
|||||||
if dlg == widgetUtils.YES:
|
if dlg == widgetUtils.YES:
|
||||||
if self.name[:-10] in self.session.settings["other_buffers"]["followers_timelines"]:
|
if self.name[:-10] in self.session.settings["other_buffers"]["followers_timelines"]:
|
||||||
self.session.settings["other_buffers"]["followers_timelines"].remove(self.name[:-10])
|
self.session.settings["other_buffers"]["followers_timelines"].remove(self.name[:-10])
|
||||||
if self.session.db.has_key(self.name):
|
if self.name in self.session.db:
|
||||||
self.session.db.pop(self.name)
|
self.session.db.pop(self.name)
|
||||||
self.session.settings.write()
|
self.session.settings.write()
|
||||||
return True
|
return True
|
||||||
@ -838,7 +839,7 @@ class peopleBufferController(baseBufferController):
|
|||||||
if dlg == widgetUtils.YES:
|
if dlg == widgetUtils.YES:
|
||||||
if self.name[:-8] in self.session.settings["other_buffers"]["friends_timelines"]:
|
if self.name[:-8] in self.session.settings["other_buffers"]["friends_timelines"]:
|
||||||
self.session.settings["other_buffers"]["friends_timelines"].remove(self.name[:-8])
|
self.session.settings["other_buffers"]["friends_timelines"].remove(self.name[:-8])
|
||||||
if self.session.db.has_key(self.name):
|
if self.name in self.session.db:
|
||||||
self.session.db.pop(self.name)
|
self.session.db.pop(self.name)
|
||||||
self.session.settings.write()
|
self.session.settings.write()
|
||||||
return True
|
return True
|
||||||
@ -996,7 +997,7 @@ class searchBufferController(baseBufferController):
|
|||||||
if self.name[:-11] in self.session.settings["other_buffers"]["tweet_searches"]:
|
if self.name[:-11] in self.session.settings["other_buffers"]["tweet_searches"]:
|
||||||
self.session.settings["other_buffers"]["tweet_searches"].remove(self.name[:-11])
|
self.session.settings["other_buffers"]["tweet_searches"].remove(self.name[:-11])
|
||||||
self.session.settings.write()
|
self.session.settings.write()
|
||||||
if self.session.db.has_key(self.name):
|
if self.name in self.session.db:
|
||||||
self.session.db.pop(self.name)
|
self.session.db.pop(self.name)
|
||||||
return True
|
return True
|
||||||
elif dlg == widgetUtils.NO:
|
elif dlg == widgetUtils.NO:
|
||||||
@ -1045,7 +1046,7 @@ class searchPeopleBufferController(peopleBufferController):
|
|||||||
self.args = args
|
self.args = args
|
||||||
self.kwargs = kwargs
|
self.kwargs = kwargs
|
||||||
self.function = function
|
self.function = function
|
||||||
if self.kwargs.has_key("page") == False:
|
if ("page" in self.kwargs) == False:
|
||||||
self.kwargs["page"] = 1
|
self.kwargs["page"] = 1
|
||||||
|
|
||||||
def start_stream(self, mandatory=False):
|
def start_stream(self, mandatory=False):
|
||||||
@ -1105,7 +1106,7 @@ class searchPeopleBufferController(peopleBufferController):
|
|||||||
if self.name[:-11] in self.session.settings["other_buffers"]["tweet_searches"]:
|
if self.name[:-11] in self.session.settings["other_buffers"]["tweet_searches"]:
|
||||||
self.session.settings["other_buffers"]["tweet_searches"].remove(self.name[:-11])
|
self.session.settings["other_buffers"]["tweet_searches"].remove(self.name[:-11])
|
||||||
self.session.settings.write()
|
self.session.settings.write()
|
||||||
if self.session.db.has_key(self.name):
|
if self.name in self.session.db:
|
||||||
self.session.db.pop(self.name)
|
self.session.db.pop(self.name)
|
||||||
return True
|
return True
|
||||||
elif dlg == widgetUtils.NO:
|
elif dlg == widgetUtils.NO:
|
||||||
@ -1177,7 +1178,7 @@ class trendsBufferController(bufferController):
|
|||||||
if self.name[:-3] in self.session.settings["other_buffers"]["trending_topic_buffers"]:
|
if self.name[:-3] in self.session.settings["other_buffers"]["trending_topic_buffers"]:
|
||||||
self.session.settings["other_buffers"]["trending_topic_buffers"].remove(self.name[:-3])
|
self.session.settings["other_buffers"]["trending_topic_buffers"].remove(self.name[:-3])
|
||||||
self.session.settings.write()
|
self.session.settings.write()
|
||||||
if self.session.db.has_key(self.name):
|
if self.name in self.session.db:
|
||||||
self.session.db.pop(self.name)
|
self.session.db.pop(self.name)
|
||||||
return True
|
return True
|
||||||
elif dlg == widgetUtils.NO:
|
elif dlg == widgetUtils.NO:
|
||||||
@ -1275,7 +1276,7 @@ class conversationBufferController(searchBufferController):
|
|||||||
else:
|
else:
|
||||||
dlg = widgetUtils.YES
|
dlg = widgetUtils.YES
|
||||||
if dlg == widgetUtils.YES:
|
if dlg == widgetUtils.YES:
|
||||||
if self.session.db.has_key(self.name):
|
if self.name in self.session.db:
|
||||||
self.session.db.pop(self.name)
|
self.session.db.pop(self.name)
|
||||||
return True
|
return True
|
||||||
elif dlg == widgetUtils.NO:
|
elif dlg == widgetUtils.NO:
|
||||||
|
@ -1,26 +1,27 @@
|
|||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
from __future__ import absolute_import
|
||||||
import platform
|
import platform
|
||||||
system = platform.system()
|
system = platform.system()
|
||||||
import application
|
import application
|
||||||
if system == "Windows":
|
if system == "Windows":
|
||||||
from update import updater
|
from update import updater
|
||||||
from wxUI import (view, dialogs, commonMessageDialogs, sysTrayIcon)
|
from wxUI import (view, dialogs, commonMessageDialogs, sysTrayIcon)
|
||||||
import settings
|
from . import settings
|
||||||
from extra import SoundsTutorial, ocr
|
from extra import SoundsTutorial, ocr
|
||||||
import keystrokeEditor
|
import keystrokeEditor
|
||||||
from keyboard_handler.wx_handler import WXKeyboardHandler
|
from keyboard_handler.wx_handler import WXKeyboardHandler
|
||||||
import userActionsController
|
from . import userActionsController
|
||||||
import trendingTopics
|
from . import trendingTopics
|
||||||
import user
|
from . import user
|
||||||
import listsController
|
from . import listsController
|
||||||
# from issueReporter import issueReporter
|
# from issueReporter import issueReporter
|
||||||
elif system == "Linux":
|
elif system == "Linux":
|
||||||
from gtkUI import (view, commonMessageDialogs)
|
from gtkUI import (view, commonMessageDialogs)
|
||||||
from twitter import utils, compose
|
from twitter import utils, compose
|
||||||
from sessionmanager import manager, sessionManager
|
from sessionmanager import manager, sessionManager
|
||||||
|
|
||||||
import buffersController
|
from . import buffersController
|
||||||
import messages
|
from . import messages
|
||||||
from sessionmanager import session as session_
|
from sessionmanager import session as session_
|
||||||
from pubsub import pub
|
from pubsub import pub
|
||||||
import sound
|
import sound
|
||||||
@ -403,7 +404,7 @@ class Controller(object):
|
|||||||
def set_buffer_positions(self, session):
|
def set_buffer_positions(self, session):
|
||||||
"Sets positions for buffers if values exist in the database."
|
"Sets positions for buffers if values exist in the database."
|
||||||
for i in self.buffers:
|
for i in self.buffers:
|
||||||
if i.account == session.db["user_name"] and session.db.has_key(i.name+"_pos") and hasattr(i.buffer,'list'):
|
if i.account == session.db["user_name"] and i.name+"_pos" in session.db and hasattr(i.buffer,'list'):
|
||||||
i.buffer.list.select_item(session.db[str(i.name+"_pos")])
|
i.buffer.list.select_item(session.db[str(i.name+"_pos")])
|
||||||
|
|
||||||
def logout_account(self, session_id):
|
def logout_account(self, session_id):
|
||||||
@ -1590,7 +1591,7 @@ class Controller(object):
|
|||||||
output.speak(_(u"Invalid buffer"))
|
output.speak(_(u"Invalid buffer"))
|
||||||
return
|
return
|
||||||
tweet = buffer.get_tweet()
|
tweet = buffer.get_tweet()
|
||||||
if tweet.has_key("entities") == False or tweet["entities"].has_key("media") == False:
|
if ("entities" in tweet) == False or ("media" in tweet["entities"]) == False:
|
||||||
output.speak(_(u"This tweet doesn't contain images"))
|
output.speak(_(u"This tweet doesn't contain images"))
|
||||||
return
|
return
|
||||||
if len(tweet["entities"]["media"]) > 1:
|
if len(tweet["entities"]["media"]) > 1:
|
||||||
|
@ -1,7 +1,8 @@
|
|||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
from __future__ import absolute_import
|
||||||
import re
|
import re
|
||||||
import platform
|
import platform
|
||||||
import attach
|
from . import attach
|
||||||
system = platform.system()
|
system = platform.system()
|
||||||
import widgetUtils
|
import widgetUtils
|
||||||
import output
|
import output
|
||||||
@ -204,25 +205,25 @@ class viewTweet(basicTweet):
|
|||||||
text = ""
|
text = ""
|
||||||
for i in xrange(0, len(tweetList)):
|
for i in xrange(0, len(tweetList)):
|
||||||
# tweets with message keys are longer tweets, the message value is the full messaje taken from twishort.
|
# tweets with message keys are longer tweets, the message value is the full messaje taken from twishort.
|
||||||
if tweetList[i].has_key("message") and tweetList[i]["is_quote_status"] == False:
|
if "message" in tweetList[i] and tweetList[i]["is_quote_status"] == False:
|
||||||
value = "message"
|
value = "message"
|
||||||
else:
|
else:
|
||||||
value = "full_text"
|
value = "full_text"
|
||||||
if tweetList[i].has_key("retweeted_status") and tweetList[i]["is_quote_status"] == False:
|
if "retweeted_status" in tweetList[i] and tweetList[i]["is_quote_status"] == False:
|
||||||
if tweetList[i].has_key("message") == False:
|
if ("message" in tweetList[i]) == False:
|
||||||
text = text + "rt @%s: %s\n" % (tweetList[i]["retweeted_status"]["user"]["screen_name"], tweetList[i]["retweeted_status"]["full_text"])
|
text = text + "rt @%s: %s\n" % (tweetList[i]["retweeted_status"]["user"]["screen_name"], tweetList[i]["retweeted_status"]["full_text"])
|
||||||
else:
|
else:
|
||||||
text = text + "rt @%s: %s\n" % (tweetList[i]["retweeted_status"]["user"]["screen_name"], tweetList[i][value])
|
text = text + "rt @%s: %s\n" % (tweetList[i]["retweeted_status"]["user"]["screen_name"], tweetList[i][value])
|
||||||
else:
|
else:
|
||||||
text = text + " @%s: %s\n" % (tweetList[i]["user"]["screen_name"], tweetList[i][value])
|
text = text + " @%s: %s\n" % (tweetList[i]["user"]["screen_name"], tweetList[i][value])
|
||||||
# tweets with extended_entities could include image descriptions.
|
# tweets with extended_entities could include image descriptions.
|
||||||
if tweetList[i].has_key("extended_entities") and tweetList[i]["extended_entities"].has_key("media"):
|
if "extended_entities" in tweetList[i] and "media" in tweetList[i]["extended_entities"]:
|
||||||
for z in tweetList[i]["extended_entities"]["media"]:
|
for z in tweetList[i]["extended_entities"]["media"]:
|
||||||
if z.has_key("ext_alt_text") and z["ext_alt_text"] != None:
|
if "ext_alt_text" in z and z["ext_alt_text"] != None:
|
||||||
image_description.append(z["ext_alt_text"])
|
image_description.append(z["ext_alt_text"])
|
||||||
if tweetList[i].has_key("retweeted_status") and tweetList[i]["retweeted_status"].has_key("extended_entities") and tweetList[i]["retweeted_status"]["extended_entities"].has_key("media"):
|
if "retweeted_status" in tweetList[i] and "extended_entities" in tweetList[i]["retweeted_status"] and "media" in tweetList[i]["retweeted_status"]["extended_entities"]:
|
||||||
for z in tweetList[i]["retweeted_status"]["extended_entities"]["media"]:
|
for z in tweetList[i]["retweeted_status"]["extended_entities"]["media"]:
|
||||||
if z.has_key("ext_alt_text") and z["ext_alt_text"] != None:
|
if "ext_alt_text" in z and z["ext_alt_text"] != None:
|
||||||
image_description.append(z["ext_alt_text"])
|
image_description.append(z["ext_alt_text"])
|
||||||
# set rt and likes counters.
|
# set rt and likes counters.
|
||||||
rt_count = str(tweet["retweet_count"])
|
rt_count = str(tweet["retweet_count"])
|
||||||
@ -230,25 +231,25 @@ class viewTweet(basicTweet):
|
|||||||
# Gets the client from where this tweet was made.
|
# Gets the client from where this tweet was made.
|
||||||
source = str(re.sub(r"(?s)<.*?>", "", tweet["source"].encode("utf-8")))
|
source = str(re.sub(r"(?s)<.*?>", "", tweet["source"].encode("utf-8")))
|
||||||
if text == "":
|
if text == "":
|
||||||
if tweet.has_key("message"):
|
if "message" in tweet:
|
||||||
value = "message"
|
value = "message"
|
||||||
else:
|
else:
|
||||||
value = "full_text"
|
value = "full_text"
|
||||||
if tweet.has_key("retweeted_status"):
|
if "retweeted_status" in tweet:
|
||||||
if tweet.has_key("message") == False:
|
if ("message" in tweet) == False:
|
||||||
text = "rt @%s: %s" % (tweet["retweeted_status"]["user"]["screen_name"], tweet["retweeted_status"]["full_text"])
|
text = "rt @%s: %s" % (tweet["retweeted_status"]["user"]["screen_name"], tweet["retweeted_status"]["full_text"])
|
||||||
else:
|
else:
|
||||||
text = "rt @%s: %s" % (tweet["retweeted_status"]["user"]["screen_name"], tweet[value])
|
text = "rt @%s: %s" % (tweet["retweeted_status"]["user"]["screen_name"], tweet[value])
|
||||||
else:
|
else:
|
||||||
text = tweet[value]
|
text = tweet[value]
|
||||||
text = self.clear_text(text)
|
text = self.clear_text(text)
|
||||||
if tweet.has_key("extended_entities") and tweet["extended_entities"].has_key("media"):
|
if "extended_entities" in tweet and "media" in tweet["extended_entities"]:
|
||||||
for z in tweet["extended_entities"]["media"]:
|
for z in tweet["extended_entities"]["media"]:
|
||||||
if z.has_key("ext_alt_text") and z["ext_alt_text"] != None:
|
if "ext_alt_text" in z and z["ext_alt_text"] != None:
|
||||||
image_description.append(z["ext_alt_text"])
|
image_description.append(z["ext_alt_text"])
|
||||||
if tweet.has_key("retweeted_status") and tweet["retweeted_status"].has_key("extended_entities") and tweet["retweeted_status"]["extended_entities"].has_key("media"):
|
if "retweeted_status" in tweet and "extended_entities" in tweet["retweeted_status"] and "media" in tweet["retweeted_status"]["extended_entities"]:
|
||||||
for z in tweet["retweeted_status"]["extended_entities"]["media"]:
|
for z in tweet["retweeted_status"]["extended_entities"]["media"]:
|
||||||
if z.has_key("ext_alt_text") and z["ext_alt_text"] != None:
|
if "ext_alt_text" in z and z["ext_alt_text"] != None:
|
||||||
image_description.append(z["ext_alt_text"])
|
image_description.append(z["ext_alt_text"])
|
||||||
self.message = message.viewTweet(text, rt_count, favs_count, source.decode("utf-8"))
|
self.message = message.viewTweet(text, rt_count, favs_count, source.decode("utf-8"))
|
||||||
self.message.set_title(len(text))
|
self.message.set_title(len(text))
|
||||||
|
@ -71,7 +71,7 @@ class userActionsController(object):
|
|||||||
|
|
||||||
def ignore_client(self, user):
|
def ignore_client(self, user):
|
||||||
tweet = self.buffer.get_right_tweet()
|
tweet = self.buffer.get_right_tweet()
|
||||||
if tweet.has_key("sender"):
|
if "sender" in tweet:
|
||||||
output.speak(_(u"You can't ignore direct messages"))
|
output.speak(_(u"You can't ignore direct messages"))
|
||||||
return
|
return
|
||||||
client = re.sub(r"(?s)<.*?>", "", tweet["source"])
|
client = re.sub(r"(?s)<.*?>", "", tweet["source"])
|
||||||
|
@ -16,10 +16,11 @@
|
|||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
#
|
#
|
||||||
############################################################
|
############################################################
|
||||||
|
from __future__ import absolute_import
|
||||||
import widgetUtils
|
import widgetUtils
|
||||||
import wx_ui
|
from . import wx_ui
|
||||||
import wx_transfer_dialogs
|
from . import wx_transfer_dialogs
|
||||||
import transfer
|
from . import transfer
|
||||||
import output
|
import output
|
||||||
import tempfile
|
import tempfile
|
||||||
import sound
|
import sound
|
||||||
|
@ -1,9 +1,10 @@
|
|||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
from __future__ import absolute_import
|
||||||
import sys
|
import sys
|
||||||
import threading
|
import threading
|
||||||
import time
|
import time
|
||||||
import logging
|
import logging
|
||||||
from utils import convert_bytes
|
from .utils import convert_bytes
|
||||||
from pubsub import pub
|
from pubsub import pub
|
||||||
log = logging.getLogger("extra.AudioUploader.transfer")
|
log = logging.getLogger("extra.AudioUploader.transfer")
|
||||||
from requests_toolbelt.multipart.encoder import MultipartEncoder, MultipartEncoderMonitor
|
from requests_toolbelt.multipart.encoder import MultipartEncoder, MultipartEncoderMonitor
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
from __future__ import absolute_import
|
||||||
import wx
|
import wx
|
||||||
from utils import *
|
from .utils import *
|
||||||
import widgetUtils
|
import widgetUtils
|
||||||
|
|
||||||
class UploadDialog(widgetUtils.BaseDialog):
|
class UploadDialog(widgetUtils.BaseDialog):
|
||||||
|
@ -1 +1,2 @@
|
|||||||
from soundsTutorial import soundsTutorial
|
from __future__ import absolute_import
|
||||||
|
from .soundsTutorial import soundsTutorial
|
||||||
|
@ -1,15 +1,16 @@
|
|||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
from __future__ import absolute_import
|
||||||
import platform
|
import platform
|
||||||
import widgetUtils
|
import widgetUtils
|
||||||
import os
|
import os
|
||||||
import paths
|
import paths
|
||||||
import logging
|
import logging
|
||||||
log = logging.getLogger("extra.SoundsTutorial.soundsTutorial")
|
log = logging.getLogger("extra.SoundsTutorial.soundsTutorial")
|
||||||
import soundsTutorial_constants
|
from . import soundsTutorial_constants
|
||||||
if platform.system() == "Windows":
|
if platform.system() == "Windows":
|
||||||
import wx_ui as UI
|
from . import wx_ui as UI
|
||||||
elif platform.system() == "Linux":
|
elif platform.system() == "Linux":
|
||||||
import gtk_ui as UI
|
from . import gtk_ui as UI
|
||||||
|
|
||||||
class soundsTutorial(object):
|
class soundsTutorial(object):
|
||||||
def __init__(self, sessionObject):
|
def __init__(self, sessionObject):
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
#-*- coding: utf-8 -*-
|
#-*- coding: utf-8 -*-
|
||||||
import reverse_sort
|
from __future__ import absolute_import
|
||||||
|
#-*- coding: utf-8 -*-
|
||||||
|
from . import reverse_sort
|
||||||
import application
|
import application
|
||||||
actions = reverse_sort.reverse_sort([ ("audio", _(u"Audio tweet.")),
|
actions = reverse_sort.reverse_sort([ ("audio", _(u"Audio tweet.")),
|
||||||
("create_timeline", _(u"User timeline buffer created.")),
|
("create_timeline", _(u"User timeline buffer created.")),
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
import spellchecker
|
from __future__ import absolute_import
|
||||||
|
from . import spellchecker
|
||||||
import platform
|
import platform
|
||||||
if platform.system() == "Windows":
|
if platform.system() == "Windows":
|
||||||
from wx_ui import *
|
from .wx_ui import *
|
@ -1,7 +1,8 @@
|
|||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
from __future__ import absolute_import
|
||||||
import logging
|
import logging
|
||||||
log = logging.getLogger("extra.SpellChecker.spellChecker")
|
log = logging.getLogger("extra.SpellChecker.spellChecker")
|
||||||
import wx_ui
|
from . import wx_ui
|
||||||
import widgetUtils
|
import widgetUtils
|
||||||
import output
|
import output
|
||||||
import config
|
import config
|
||||||
@ -9,7 +10,7 @@ import languageHandler
|
|||||||
from enchant.checker import SpellChecker
|
from enchant.checker import SpellChecker
|
||||||
from enchant.errors import DictNotFoundError
|
from enchant.errors import DictNotFoundError
|
||||||
from enchant import tokenize
|
from enchant import tokenize
|
||||||
import twitterFilter
|
from . import twitterFilter
|
||||||
|
|
||||||
class spellChecker(object):
|
class spellChecker(object):
|
||||||
def __init__(self, text, dictionary):
|
def __init__(self, text, dictionary):
|
||||||
@ -41,7 +42,7 @@ class spellChecker(object):
|
|||||||
|
|
||||||
def check(self):
|
def check(self):
|
||||||
try:
|
try:
|
||||||
self.checker.next()
|
next(self.checker)
|
||||||
textToSay = _(u"Misspelled word: %s") % (self.checker.word,)
|
textToSay = _(u"Misspelled word: %s") % (self.checker.word,)
|
||||||
context = u"... %s %s %s" % (self.checker.leading_context(10), self.checker.word, self.checker.trailing_context(10))
|
context = u"... %s %s %s" % (self.checker.leading_context(10), self.checker.word, self.checker.trailing_context(10))
|
||||||
self.dialog.set_title(textToSay)
|
self.dialog.set_title(textToSay)
|
||||||
|
@ -1,2 +1,4 @@
|
|||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
import completion, settings
|
from __future__ import absolute_import
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
from . import completion, settings
|
@ -1,7 +1,8 @@
|
|||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
from __future__ import absolute_import
|
||||||
import output
|
import output
|
||||||
import storage
|
from . import storage
|
||||||
import wx_menu
|
from . import wx_menu
|
||||||
|
|
||||||
class autocompletionUsers(object):
|
class autocompletionUsers(object):
|
||||||
def __init__(self, window, session_id):
|
def __init__(self, window, session_id):
|
||||||
|
@ -1,7 +1,9 @@
|
|||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
import storage
|
from __future__ import absolute_import
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
from . import storage
|
||||||
import widgetUtils
|
import widgetUtils
|
||||||
import wx_manage
|
from . import wx_manage
|
||||||
from wxUI import commonMessageDialogs
|
from wxUI import commonMessageDialogs
|
||||||
|
|
||||||
class autocompletionManage(object):
|
class autocompletionManage(object):
|
||||||
|
@ -1,8 +1,10 @@
|
|||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
import storage
|
from __future__ import absolute_import
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
from . import storage
|
||||||
import widgetUtils
|
import widgetUtils
|
||||||
import wx_settings
|
from . import wx_settings
|
||||||
import manage
|
from . import manage
|
||||||
import output
|
import output
|
||||||
from mysc.thread_utils import call_threaded
|
from mysc.thread_utils import call_threaded
|
||||||
|
|
||||||
|
@ -1,2 +1,4 @@
|
|||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
import OCRSpace
|
from __future__ import absolute_import
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
from . import OCRSpace
|
@ -1,6 +1,7 @@
|
|||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
import translator
|
from __future__ import absolute_import
|
||||||
|
from . import translator
|
||||||
import platform
|
import platform
|
||||||
if platform.system() == "Windows":
|
if platform.system() == "Windows":
|
||||||
import wx_ui as gui
|
from . import wx_ui as gui
|
||||||
|
|
@ -16,7 +16,26 @@
|
|||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
#
|
#
|
||||||
############################################################
|
############################################################
|
||||||
import translator
|
from __future__ import absolute_import
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
############################################################
|
||||||
|
# Copyright (c) 2013, 2014 Manuel Eduardo Cortéz Vallejo <manuel@manuelcortez.net>
|
||||||
|
#
|
||||||
|
# This program is free software: you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation, either version 2 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
############################################################
|
||||||
|
from . import translator
|
||||||
import wx
|
import wx
|
||||||
from wxUI.dialogs import baseDialog
|
from wxUI.dialogs import baseDialog
|
||||||
|
|
||||||
|
@ -1,10 +1,11 @@
|
|||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
""" This module contains some bugfixes for packages used in TWBlue."""
|
""" This module contains some bugfixes for packages used in TWBlue."""
|
||||||
|
from __future__ import absolute_import
|
||||||
import sys
|
import sys
|
||||||
import fix_arrow # A few new locales for Three languages in arrow.
|
from . import fix_arrow # A few new locales for Three languages in arrow.
|
||||||
import fix_urllib3_warnings # Avoiding some SSL warnings related to Twython.
|
from . import fix_urllib3_warnings # Avoiding some SSL warnings related to Twython.
|
||||||
import fix_win32com
|
from . import fix_win32com
|
||||||
import fix_requests #fix cacert.pem location for TWBlue binary copies
|
from . import fix_requests #fix cacert.pem location for TWBlue binary copies
|
||||||
def setup():
|
def setup():
|
||||||
fix_arrow.fix()
|
fix_arrow.fix()
|
||||||
if hasattr(sys, "frozen"):
|
if hasattr(sys, "frozen"):
|
||||||
|
@ -16,13 +16,14 @@
|
|||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
#
|
#
|
||||||
############################################################
|
############################################################
|
||||||
|
from __future__ import absolute_import
|
||||||
import keys
|
import keys
|
||||||
import wx
|
import wx
|
||||||
import wx_ui
|
from . import wx_ui
|
||||||
import widgetUtils
|
import widgetUtils
|
||||||
import application
|
import application
|
||||||
from suds.client import Client
|
from suds.client import Client
|
||||||
import constants
|
from . import constants
|
||||||
|
|
||||||
class reportBug(object):
|
class reportBug(object):
|
||||||
def __init__(self, user_name):
|
def __init__(self, user_name):
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
from main import KeyboardHandler, KeyboardHandlerError
|
from __future__ import absolute_import
|
||||||
|
from .main import KeyboardHandler, KeyboardHandlerError
|
||||||
#from wx_handler import WXKeyboardHandler
|
#from wx_handler import WXKeyboardHandler
|
||||||
__all__ = ["KeyboardHandler", "KeyboardHandlerError", "WXKeyboardHandler", "WXPanelKeyboardHandler"]
|
__all__ = ["KeyboardHandler", "KeyboardHandlerError", "WXKeyboardHandler", "WXPanelKeyboardHandler"]
|
||||||
|
@ -1,7 +1,8 @@
|
|||||||
|
from __future__ import absolute_import
|
||||||
import platform
|
import platform
|
||||||
if platform.system() == 'Linux':
|
if platform.system() == 'Linux':
|
||||||
from linux import LinuxKeyboardHandler as GlobalKeyboardHandler
|
from .linux import LinuxKeyboardHandler as GlobalKeyboardHandler
|
||||||
elif platform.system() == 'Windows':
|
elif platform.system() == 'Windows':
|
||||||
from wx_handler import WXKeyboardHandler as GlobalKeyboardHandler
|
from .wx_handler import WXKeyboardHandler as GlobalKeyboardHandler
|
||||||
elif platform.system() == 'Darwin':
|
elif platform.system() == 'Darwin':
|
||||||
from osx import OSXKeyboardHandler as GlobalKeyboardHandler
|
from .osx import OSXKeyboardHandler as GlobalKeyboardHandler
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
from main import KeyboardHandler
|
from __future__ import absolute_import
|
||||||
|
from .main import KeyboardHandler
|
||||||
import threading
|
import threading
|
||||||
import thread
|
import thread
|
||||||
import pyatspi
|
import pyatspi
|
||||||
@ -21,7 +22,7 @@ Unknown modifiers will return ValueError."""
|
|||||||
lst.remove(item)
|
lst.remove(item)
|
||||||
#end if
|
#end if
|
||||||
if len(lst) > 1: #more than one key, parse error
|
if len(lst) > 1: #more than one key, parse error
|
||||||
raise ValueError, 'unknown modifier %s' % lst[0]
|
raise ValueError('unknown modifier %s' % lst[0])
|
||||||
return (m, lst[0].lower())
|
return (m, lst[0].lower())
|
||||||
class AtspiThread(threading.Thread):
|
class AtspiThread(threading.Thread):
|
||||||
def run(self):
|
def run(self):
|
||||||
|
@ -18,17 +18,17 @@ class KeyboardHandler(object):
|
|||||||
|
|
||||||
def register_key (self, key, function):
|
def register_key (self, key, function):
|
||||||
if key in self.active_keys:
|
if key in self.active_keys:
|
||||||
raise KeyboardHandlerError, "Key %s is already registered to a function" % key
|
raise KeyboardHandlerError("Key %s is already registered to a function" % key)
|
||||||
if not callable(function):
|
if not callable(function):
|
||||||
raise TypeError, "Must provide a callable to be invoked upon keypress"
|
raise TypeError("Must provide a callable to be invoked upon keypress")
|
||||||
self.active_keys[key] = function
|
self.active_keys[key] = function
|
||||||
|
|
||||||
def unregister_key (self, key, function):
|
def unregister_key (self, key, function):
|
||||||
try:
|
try:
|
||||||
if self.active_keys[key] != function:
|
if self.active_keys[key] != function:
|
||||||
raise KeyboardHandlerError, "key %s is not registered to that function" % key
|
raise KeyboardHandlerError("key %s is not registered to that function" % key)
|
||||||
except KeyError:
|
except KeyError:
|
||||||
raise KeyboardHandlerError, "Key %s not currently registered"
|
raise KeyboardHandlerError("Key %s not currently registered")
|
||||||
del(self.active_keys[key])
|
del(self.active_keys[key])
|
||||||
|
|
||||||
def unregister_all_keys(self):
|
def unregister_all_keys(self):
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
|
from __future__ import absolute_import
|
||||||
from AppKit import *
|
from AppKit import *
|
||||||
from PyObjCTools import AppHelper
|
from PyObjCTools import AppHelper
|
||||||
from Carbon.CarbonEvt import RegisterEventHotKey, GetApplicationEventTarget
|
from Carbon.CarbonEvt import RegisterEventHotKey, GetApplicationEventTarget
|
||||||
@ -5,7 +6,7 @@ from Carbon.Events import cmdKey, controlKey
|
|||||||
import struct
|
import struct
|
||||||
from threading import Thread
|
from threading import Thread
|
||||||
|
|
||||||
from main import KeyboardHandler
|
from .main import KeyboardHandler
|
||||||
|
|
||||||
kEventHotKeyPressedSubtype = 6
|
kEventHotKeyPressedSubtype = 6
|
||||||
kEventHotKeyReleasedSubtype = 9
|
kEventHotKeyReleasedSubtype = 9
|
||||||
@ -35,9 +36,9 @@ class OSXKeyboardHandler(KeyboardHandler):
|
|||||||
#replacements
|
#replacements
|
||||||
#Modifier keys:
|
#Modifier keys:
|
||||||
for index, item in enumerate(key[0:-1]):
|
for index, item in enumerate(key[0:-1]):
|
||||||
if self.replacement_mods.has_key(item):
|
if item in self.replacement_mods:
|
||||||
key[index] = self.replacement_mods[item]
|
key[index] = self.replacement_mods[item]
|
||||||
if self.replacement_keys.has_key(key[-1]):
|
if key[-1] in self.replacement_keys:
|
||||||
key[-1] = self.replacement_keys[key[-1]]
|
key[-1] = self.replacement_keys[key[-1]]
|
||||||
elif len(key[-1])==1:
|
elif len(key[-1])==1:
|
||||||
key[-1] = ord(str(key[-1]))-36
|
key[-1] = ord(str(key[-1]))-36
|
||||||
|
@ -1,7 +1,8 @@
|
|||||||
|
from __future__ import absolute_import
|
||||||
import win32api
|
import win32api
|
||||||
import win32con
|
import win32con
|
||||||
|
|
||||||
from main import KeyboardHandler
|
from .main import KeyboardHandler
|
||||||
|
|
||||||
class WindowsKeyboardHandler(KeyboardHandler):
|
class WindowsKeyboardHandler(KeyboardHandler):
|
||||||
|
|
||||||
|
@ -1,7 +1,9 @@
|
|||||||
|
from __future__ import print_function
|
||||||
|
from __future__ import absolute_import
|
||||||
import functools
|
import functools
|
||||||
import wx
|
import wx
|
||||||
import platform
|
import platform
|
||||||
from main import KeyboardHandler
|
from .main import KeyboardHandler
|
||||||
|
|
||||||
__all__ = ['WXKeyboardHandler', 'WXControlKeyboardHandler']
|
__all__ = ['WXKeyboardHandler', 'WXControlKeyboardHandler']
|
||||||
|
|
||||||
@ -42,18 +44,18 @@ class BaseWXKeyboardHandler(KeyboardHandler):
|
|||||||
result -= 277
|
result -= 277
|
||||||
elif len(key) == 1:
|
elif len(key) == 1:
|
||||||
result = ord(key.upper())
|
result = ord(key.upper())
|
||||||
print "result: ", result
|
print("result: ", result)
|
||||||
return result
|
return result
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#try:
|
#try:
|
||||||
if platform.system() == "Windows":
|
if platform.system() == "Windows":
|
||||||
from windows import WindowsKeyboardHandler as keyboard_handler
|
from .windows import WindowsKeyboardHandler as keyboard_handler
|
||||||
elif platform.system() == "Linux":
|
elif platform.system() == "Linux":
|
||||||
from linux import LinuxKeyboardHandler as keyboard_handler
|
from .linux import LinuxKeyboardHandler as keyboard_handler
|
||||||
elif platform.system() == "Darwin":
|
elif platform.system() == "Darwin":
|
||||||
from osx import OSXKeyboardHandler as keyboard_handler
|
from .osx import OSXKeyboardHandler as keyboard_handler
|
||||||
|
|
||||||
class WXKeyboardHandler(keyboard_handler):
|
class WXKeyboardHandler(keyboard_handler):
|
||||||
def __init__ (self, parent, *args, **kwargs):
|
def __init__ (self, parent, *args, **kwargs):
|
||||||
|
@ -1 +1,2 @@
|
|||||||
from keystrokeEditor import KeystrokeEditor
|
from __future__ import absolute_import
|
||||||
|
from .keystrokeEditor import KeystrokeEditor
|
@ -1,8 +1,9 @@
|
|||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
from __future__ import absolute_import
|
||||||
import widgetUtils
|
import widgetUtils
|
||||||
import config
|
import config
|
||||||
import wx_ui
|
from . import wx_ui
|
||||||
import constants
|
from . import constants
|
||||||
from pubsub import pub
|
from pubsub import pub
|
||||||
|
|
||||||
class KeystrokeEditor(object):
|
class KeystrokeEditor(object):
|
||||||
|
@ -32,7 +32,7 @@ class keystrokeEditorDialog(baseDialog.BaseWXDialog):
|
|||||||
selection = self.keys.get_selected()
|
selection = self.keys.get_selected()
|
||||||
self.keys.clear()
|
self.keys.clear()
|
||||||
for i in keystrokes:
|
for i in keystrokes:
|
||||||
if actions.has_key(i) == False:
|
if (i in actions) == False:
|
||||||
continue
|
continue
|
||||||
action = actions[i]
|
action = actions[i]
|
||||||
self.actions.append(i)
|
self.actions.append(i)
|
||||||
|
@ -19,12 +19,12 @@
|
|||||||
from twitter import utils
|
from twitter import utils
|
||||||
|
|
||||||
def is_long(tweet):
|
def is_long(tweet):
|
||||||
if tweet.has_key("is_quote_status") and tweet["is_quote_status"] == True and tweet.has_key("quoted_status"):
|
if "is_quote_status" in tweet and tweet["is_quote_status"] == True and "quoted_status" in tweet:
|
||||||
return tweet["quoted_status_id"]
|
return tweet["quoted_status_id"]
|
||||||
return False
|
return False
|
||||||
|
|
||||||
def clear_url(tweet):
|
def clear_url(tweet):
|
||||||
if tweet.has_key("full_text"):
|
if "full_text" in tweet:
|
||||||
value = "full_text"
|
value = "full_text"
|
||||||
else:
|
else:
|
||||||
value = "text"
|
value = "text"
|
||||||
|
@ -16,6 +16,7 @@
|
|||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
#
|
#
|
||||||
############################################################
|
############################################################
|
||||||
|
from __future__ import print_function
|
||||||
import requests
|
import requests
|
||||||
import keys
|
import keys
|
||||||
import logging
|
import logging
|
||||||
@ -41,7 +42,7 @@ def is_long(tweet):
|
|||||||
# see https://github.com/manuelcortez/TWBlue/issues/103
|
# see https://github.com/manuelcortez/TWBlue/issues/103
|
||||||
except TypeError:
|
except TypeError:
|
||||||
pass
|
pass
|
||||||
if long == False and tweet.has_key("retweeted_status"):
|
if long == False and "retweeted_status" in tweet:
|
||||||
for url in range(0, len(tweet["retweeted_status"]["entities"]["urls"])):
|
for url in range(0, len(tweet["retweeted_status"]["entities"]["urls"])):
|
||||||
try:
|
try:
|
||||||
if tweet["retweeted_status"]["entities"]["urls"][url] != None and "twishort.com" in tweet["retweeted_status"]["entities"]["urls"][url]["expanded_url"]:
|
if tweet["retweeted_status"]["entities"]["urls"][url] != None and "twishort.com" in tweet["retweeted_status"]["entities"]["urls"][url]["expanded_url"]:
|
||||||
@ -83,5 +84,5 @@ def create_tweet(user_token, user_secret, text, media=0):
|
|||||||
try:
|
try:
|
||||||
return response.json()["text_to_tweet"]
|
return response.json()["text_to_tweet"]
|
||||||
except:
|
except:
|
||||||
print "There was a problem creating a long tweet"
|
print("There was a problem creating a long tweet")
|
||||||
return 0
|
return 0
|
||||||
|
@ -1 +1,2 @@
|
|||||||
import widgets
|
from __future__ import absolute_import
|
||||||
|
from . import widgets
|
@ -1,6 +1,7 @@
|
|||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
""" A cross platform notification system.
|
""" A cross platform notification system.
|
||||||
Under Linux, the wx.NotificationMessage does not show a notification on the taskbar, so we decided to use dbus for showing notifications for linux and wx for Windows."""
|
Under Linux, the wx.NotificationMessage does not show a notification on the taskbar, so we decided to use dbus for showing notifications for linux and wx for Windows."""
|
||||||
|
from __future__ import absolute_import
|
||||||
import platform
|
import platform
|
||||||
|
|
||||||
notify = None
|
notify = None
|
||||||
@ -8,10 +9,10 @@ notify = None
|
|||||||
def setup():
|
def setup():
|
||||||
global notify
|
global notify
|
||||||
if platform.system() == "Windows":
|
if platform.system() == "Windows":
|
||||||
import windows
|
from . import windows
|
||||||
notify = windows.notification()
|
notify = windows.notification()
|
||||||
elif platform.system() == "Linux":
|
elif platform.system() == "Linux":
|
||||||
import linux
|
from . import linux
|
||||||
notify = linux.notification()
|
notify = linux.notification()
|
||||||
|
|
||||||
def send(title, text):
|
def send(title, text):
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
|
from __future__ import print_function
|
||||||
import _winreg
|
import _winreg
|
||||||
import os
|
import os
|
||||||
import sys
|
import sys
|
||||||
@ -31,7 +32,7 @@ def getAutoStart(app_name):
|
|||||||
|
|
||||||
def setAutoStart(app_name, enable=True):
|
def setAutoStart(app_name, enable=True):
|
||||||
"""Configures automatic startup for the application, if the enable argument is set to True. If set to False, deletes the application AutoStart value."""
|
"""Configures automatic startup for the application, if the enable argument is set to True. If set to False, deletes the application AutoStart value."""
|
||||||
print paths.get_executable()
|
print(paths.get_executable())
|
||||||
if getAutoStart(app_name) == enable:
|
if getAutoStart(app_name) == enable:
|
||||||
return
|
return
|
||||||
key = _winreg.OpenKey(_winreg.HKEY_CURRENT_USER, RUN_REGKEY, 0, _winreg.KEY_WRITE)
|
key = _winreg.OpenKey(_winreg.HKEY_CURRENT_USER, RUN_REGKEY, 0, _winreg.KEY_WRITE)
|
||||||
|
@ -1,11 +1,12 @@
|
|||||||
# -*- coding: cp1252 -*-
|
# -*- coding: cp1252 -*-
|
||||||
#from config_utils import Configuration, ConfigurationResetException
|
#from config_utils import Configuration, ConfigurationResetException
|
||||||
|
from __future__ import absolute_import
|
||||||
import config
|
import config
|
||||||
import paths
|
import paths
|
||||||
import os
|
import os
|
||||||
import logging
|
import logging
|
||||||
log = logging.getLogger("sessionmanager.manager")
|
log = logging.getLogger("sessionmanager.manager")
|
||||||
import session_exceptions
|
from . import session_exceptions
|
||||||
|
|
||||||
manager = None
|
manager = None
|
||||||
def setup():
|
def setup():
|
||||||
|
@ -1,10 +1,11 @@
|
|||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
""" The main session object. Here are the twitter functions to interact with the "model" of TWBlue."""
|
""" The main session object. Here are the twitter functions to interact with the "model" of TWBlue."""
|
||||||
|
from __future__ import absolute_import
|
||||||
import urllib2
|
import urllib2
|
||||||
import config
|
import config
|
||||||
import twitter
|
import twitter
|
||||||
from keys import keyring
|
from keys import keyring
|
||||||
import session_exceptions as Exceptions
|
from . import session_exceptions as Exceptions
|
||||||
import paths
|
import paths
|
||||||
import output
|
import output
|
||||||
import time
|
import time
|
||||||
@ -60,7 +61,7 @@ class Session(object):
|
|||||||
|
|
||||||
num = 0
|
num = 0
|
||||||
last_id = None
|
last_id = None
|
||||||
if self.db.has_key(name) == False:
|
if (name in self.db) == False:
|
||||||
self.db[name] = []
|
self.db[name] = []
|
||||||
if ignore_older and len(self.db[name]) > 0:
|
if ignore_older and len(self.db[name]) > 0:
|
||||||
if self.settings["general"]["reverse_timelines"] == False:
|
if self.settings["general"]["reverse_timelines"] == False:
|
||||||
@ -90,7 +91,7 @@ class Session(object):
|
|||||||
returns the number of items that have been added in this execution"""
|
returns the number of items that have been added in this execution"""
|
||||||
|
|
||||||
num = 0
|
num = 0
|
||||||
if self.db.has_key(name) == False:
|
if (name in self.db) == False:
|
||||||
self.db[name] = {}
|
self.db[name] = {}
|
||||||
self.db[name]["items"] = []
|
self.db[name]["items"] = []
|
||||||
# if len(self.db[name]["items"]) > 0:
|
# if len(self.db[name]["items"]) > 0:
|
||||||
@ -172,7 +173,7 @@ class Session(object):
|
|||||||
results = []
|
results = []
|
||||||
data = getattr(self.twitter.twitter, update_function)(*args, **kwargs)
|
data = getattr(self.twitter.twitter, update_function)(*args, **kwargs)
|
||||||
if users == True:
|
if users == True:
|
||||||
if type(data) == dict and data.has_key("cursor"):
|
if type(data) == dict and "cursor" in data:
|
||||||
self.db[name]["cursor"] = data["next_cursor"]
|
self.db[name]["cursor"] = data["next_cursor"]
|
||||||
for i in data["users"]: results.append(i)
|
for i in data["users"]: results.append(i)
|
||||||
elif type(data) == list:
|
elif type(data) == list:
|
||||||
@ -288,7 +289,7 @@ class Session(object):
|
|||||||
function str: A function to get the items."""
|
function str: A function to get the items."""
|
||||||
|
|
||||||
last_id = -1
|
last_id = -1
|
||||||
if self.db.has_key(name):
|
if name in self.db:
|
||||||
try:
|
try:
|
||||||
if self.db[name][0]["id"] > self.db[name][-1]["id"]:
|
if self.db[name][0]["id"] > self.db[name][-1]["id"]:
|
||||||
last_id = self.db[name][0]["id"]
|
last_id = self.db[name][0]["id"]
|
||||||
@ -309,7 +310,7 @@ class Session(object):
|
|||||||
|
|
||||||
items_ = []
|
items_ = []
|
||||||
try:
|
try:
|
||||||
if self.db[name].has_key("cursor") and get_previous:
|
if "cursor" in self.db[name] and get_previous:
|
||||||
cursor = self.db[name]["cursor"]
|
cursor = self.db[name]["cursor"]
|
||||||
else:
|
else:
|
||||||
cursor = -1
|
cursor = -1
|
||||||
@ -450,7 +451,7 @@ class Session(object):
|
|||||||
|
|
||||||
def get_quoted_tweet(self, tweet):
|
def get_quoted_tweet(self, tweet):
|
||||||
quoted_tweet = tweet
|
quoted_tweet = tweet
|
||||||
if tweet.has_key("full_text"):
|
if "full_text" in tweet:
|
||||||
value = "full_text"
|
value = "full_text"
|
||||||
else:
|
else:
|
||||||
value = "text"
|
value = "text"
|
||||||
@ -476,7 +477,7 @@ class Session(object):
|
|||||||
tweet["twishort"] = True
|
tweet["twishort"] = True
|
||||||
for i in tweet["entities"]["user_mentions"]:
|
for i in tweet["entities"]["user_mentions"]:
|
||||||
if "@%s" % (i["screen_name"]) not in tweet["message"] and i["screen_name"] != tweet["user"]["screen_name"]:
|
if "@%s" % (i["screen_name"]) not in tweet["message"] and i["screen_name"] != tweet["user"]["screen_name"]:
|
||||||
if tweet.has_key("retweeted_status") and tweet["retweeted_status"]["user"]["screen_name"] == i["screen_name"]:
|
if "retweeted_status" in tweet and tweet["retweeted_status"]["user"]["screen_name"] == i["screen_name"]:
|
||||||
continue
|
continue
|
||||||
tweet["message"] = u"@%s %s" % (i["screen_name"], tweet["message"])
|
tweet["message"] = u"@%s %s" % (i["screen_name"], tweet["message"])
|
||||||
return tweet
|
return tweet
|
@ -1,19 +1,20 @@
|
|||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
from __future__ import absolute_import
|
||||||
import shutil
|
import shutil
|
||||||
import widgetUtils
|
import widgetUtils
|
||||||
import platform
|
import platform
|
||||||
import output
|
import output
|
||||||
if platform.system() == "Windows":
|
if platform.system() == "Windows":
|
||||||
import wxUI as view
|
from . import wxUI as view
|
||||||
from controller import settings
|
from controller import settings
|
||||||
elif platform.system() == "Linux":
|
elif platform.system() == "Linux":
|
||||||
import gtkUI as view
|
from . import gtkUI as view
|
||||||
import paths
|
import paths
|
||||||
import time
|
import time
|
||||||
import os
|
import os
|
||||||
import logging
|
import logging
|
||||||
import session
|
from . import session
|
||||||
import manager
|
from . import manager
|
||||||
import config_utils
|
import config_utils
|
||||||
import config
|
import config
|
||||||
|
|
||||||
@ -75,7 +76,7 @@ class sessionManagerController(object):
|
|||||||
def do_ok(self):
|
def do_ok(self):
|
||||||
log.debug("Starting sessions...")
|
log.debug("Starting sessions...")
|
||||||
for i in self.sessions:
|
for i in self.sessions:
|
||||||
if session.sessions.has_key(i) == True: continue
|
if (i in session.sessions) == True: continue
|
||||||
s = session.Session(i)
|
s = session.Session(i)
|
||||||
s.get_configuration()
|
s.get_configuration()
|
||||||
if i not in config.app["sessions"]["ignored_sessions"]:
|
if i not in config.app["sessions"]["ignored_sessions"]:
|
||||||
|
@ -1 +1,2 @@
|
|||||||
import buffers, utils, compose, twitter
|
from __future__ import absolute_import
|
||||||
|
from . import buffers, utils, compose, twitter
|
||||||
|
@ -1 +1,2 @@
|
|||||||
import stream, indibidual
|
from __future__ import absolute_import
|
||||||
|
from . import stream, indibidual
|
@ -41,7 +41,7 @@ class timelinesStreamer(TwythonStreamer):
|
|||||||
try:
|
try:
|
||||||
i.users.index(data["user"]["id"])
|
i.users.index(data["user"]["id"])
|
||||||
usr = data["in_reply_to_user_id"]
|
usr = data["in_reply_to_user_id"]
|
||||||
if (usr != None and usr in self.friends) or data.has_key("retweeted_status"):
|
if (usr != None and usr in self.friends) or "retweeted_status" in data:
|
||||||
data = self.session.check_quoted_status(data)
|
data = self.session.check_quoted_status(data)
|
||||||
data = self.session.check_long_tweet(data)
|
data = self.session.check_long_tweet(data)
|
||||||
if self.session.settings["general"]["reverse_timelines"] == False: self.session.db["%s" % (i.name,)].append(data)
|
if self.session.settings["general"]["reverse_timelines"] == False: self.session.db["%s" % (i.name,)].append(data)
|
||||||
@ -62,7 +62,7 @@ class timelinesStreamer(TwythonStreamer):
|
|||||||
def on_success(self, data):
|
def on_success(self, data):
|
||||||
# try:
|
# try:
|
||||||
if "text" in data and utils.is_allowed(data, self.session.settings["twitter"]["ignored_clients"]) == True:
|
if "text" in data and utils.is_allowed(data, self.session.settings["twitter"]["ignored_clients"]) == True:
|
||||||
if data.has_key("extended_tweet"):
|
if "extended_tweet" in data:
|
||||||
data["full_text"] = data["extended_tweet"]["full_text"]
|
data["full_text"] = data["extended_tweet"]["full_text"]
|
||||||
# data["entities"] = data["extended_tweet"]["entities"]
|
# data["entities"] = data["extended_tweet"]["entities"]
|
||||||
# log.error(data["extended_entities"])
|
# log.error(data["extended_entities"])
|
||||||
|
@ -26,7 +26,7 @@ class streamer(TwythonStreamer):
|
|||||||
return self.session.db["user_name"]
|
return self.session.db["user_name"]
|
||||||
|
|
||||||
def put_data(self, place, data):
|
def put_data(self, place, data):
|
||||||
if self.session.db.has_key(place):
|
if place in self.session.db:
|
||||||
if utils.find_item(data["id"], self.session.db[place]) != None:
|
if utils.find_item(data["id"], self.session.db[place]) != None:
|
||||||
log.error("duplicated tweet. Ignoring it...")
|
log.error("duplicated tweet. Ignoring it...")
|
||||||
return False
|
return False
|
||||||
@ -129,7 +129,7 @@ class streamer(TwythonStreamer):
|
|||||||
self.friends = data["friends"]
|
self.friends = data["friends"]
|
||||||
pub.sendMessage("friends-receibed")
|
pub.sendMessage("friends-receibed")
|
||||||
elif "text" in data and utils.is_allowed(data, self.session.settings["twitter"]["ignored_clients"]) == True:
|
elif "text" in data and utils.is_allowed(data, self.session.settings["twitter"]["ignored_clients"]) == True:
|
||||||
if data.has_key("extended_tweet"):
|
if "extended_tweet" in data:
|
||||||
data["full_text"] = data["extended_tweet"]["full_text"]
|
data["full_text"] = data["extended_tweet"]["full_text"]
|
||||||
data["entities"] = data["extended_tweet"]["entities"]
|
data["entities"] = data["extended_tweet"]["entities"]
|
||||||
# log.error(data["extended_tweet"])
|
# log.error(data["extended_tweet"])
|
||||||
@ -141,7 +141,7 @@ class streamer(TwythonStreamer):
|
|||||||
d = self.put_data("home_timeline", data)
|
d = self.put_data("home_timeline", data)
|
||||||
if d != False:
|
if d != False:
|
||||||
pub.sendMessage("item-in-home", data=data, user=self.get_user())
|
pub.sendMessage("item-in-home", data=data, user=self.get_user())
|
||||||
elif data.has_key("event"):
|
elif "event" in data:
|
||||||
if "favorite" == data["event"] and "favorites" in self.session.settings["general"]["buffer_order"]:
|
if "favorite" == data["event"] and "favorites" in self.session.settings["general"]["buffer_order"]:
|
||||||
self.check_favs(data)
|
self.check_favs(data)
|
||||||
elif "unfavorite" == data["event"] and "favorites" in self.session.settings["general"]["buffer_order"]:
|
elif "unfavorite" == data["event"] and "favorites" in self.session.settings["general"]["buffer_order"]:
|
||||||
|
@ -1,7 +1,8 @@
|
|||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
from __future__ import absolute_import
|
||||||
import platform
|
import platform
|
||||||
system = platform.system()
|
system = platform.system()
|
||||||
import utils
|
from . import utils
|
||||||
import re
|
import re
|
||||||
import htmlentitydefs
|
import htmlentitydefs
|
||||||
import time
|
import time
|
||||||
@ -38,9 +39,9 @@ def compose_tweet(tweet, db, relative_times, show_screen_names=False):
|
|||||||
ts = original_date.replace(seconds=db["utc_offset"]).format(_(u"dddd, MMMM D, YYYY H:m:s"), locale=languageHandler.getLanguage())
|
ts = original_date.replace(seconds=db["utc_offset"]).format(_(u"dddd, MMMM D, YYYY H:m:s"), locale=languageHandler.getLanguage())
|
||||||
else:
|
else:
|
||||||
ts = tweet["created_at"]
|
ts = tweet["created_at"]
|
||||||
if tweet.has_key("message"):
|
if "message" in tweet:
|
||||||
value = "message"
|
value = "message"
|
||||||
elif tweet.has_key("full_text"):
|
elif "full_text" in tweet:
|
||||||
value = "full_text"
|
value = "full_text"
|
||||||
else:
|
else:
|
||||||
value = "text"
|
value = "text"
|
||||||
@ -51,15 +52,15 @@ def compose_tweet(tweet, db, relative_times, show_screen_names=False):
|
|||||||
else:
|
else:
|
||||||
user = tweet["user"]["name"]
|
user = tweet["user"]["name"]
|
||||||
source = re.sub(r"(?s)<.*?>", "", tweet["source"])
|
source = re.sub(r"(?s)<.*?>", "", tweet["source"])
|
||||||
if tweet.has_key("retweeted_status"):
|
if "retweeted_status" in tweet:
|
||||||
if tweet.has_key("message") == False and tweet["retweeted_status"]["is_quote_status"] == False:
|
if ("message" in tweet) == False and tweet["retweeted_status"]["is_quote_status"] == False:
|
||||||
text = "RT @%s: %s" % (tweet["retweeted_status"]["user"]["screen_name"], StripChars(tweet["retweeted_status"][value]))
|
text = "RT @%s: %s" % (tweet["retweeted_status"]["user"]["screen_name"], StripChars(tweet["retweeted_status"][value]))
|
||||||
elif tweet["retweeted_status"]["is_quote_status"]:
|
elif tweet["retweeted_status"]["is_quote_status"]:
|
||||||
text = "%s" % (StripChars(tweet[value]))
|
text = "%s" % (StripChars(tweet[value]))
|
||||||
else:
|
else:
|
||||||
text = "RT @%s: %s" % (tweet["retweeted_status"]["user"]["screen_name"], StripChars(tweet[value]))
|
text = "RT @%s: %s" % (tweet["retweeted_status"]["user"]["screen_name"], StripChars(tweet[value]))
|
||||||
# if text[-1] in chars: text=text+"."
|
# if text[-1] in chars: text=text+"."
|
||||||
if tweet.has_key("message") == False:
|
if ("message" in tweet) == False:
|
||||||
urls = utils.find_urls_in_text(text)
|
urls = utils.find_urls_in_text(text)
|
||||||
for url in range(0, len(urls)):
|
for url in range(0, len(urls)):
|
||||||
try:
|
try:
|
||||||
@ -100,7 +101,7 @@ def compose_dm(tweet, db, relative_times, show_screen_names=False):
|
|||||||
|
|
||||||
def compose_quoted_tweet(quoted_tweet, original_tweet, show_screen_names=False):
|
def compose_quoted_tweet(quoted_tweet, original_tweet, show_screen_names=False):
|
||||||
""" It receives a tweet and returns a list with the user, text for the tweet or message, date and the client where user is."""
|
""" It receives a tweet and returns a list with the user, text for the tweet or message, date and the client where user is."""
|
||||||
if quoted_tweet.has_key("full_text"):
|
if "full_text" in quoted_tweet:
|
||||||
value = "full_text"
|
value = "full_text"
|
||||||
else:
|
else:
|
||||||
value = "text"
|
value = "text"
|
||||||
@ -114,9 +115,9 @@ def compose_quoted_tweet(quoted_tweet, original_tweet, show_screen_names=False):
|
|||||||
except KeyError: text = "%s" % (StripChars(quoted_tweet[value]))
|
except KeyError: text = "%s" % (StripChars(quoted_tweet[value]))
|
||||||
if text[-1] in chars: text=text+"."
|
if text[-1] in chars: text=text+"."
|
||||||
original_user = original_tweet["user"]["screen_name"]
|
original_user = original_tweet["user"]["screen_name"]
|
||||||
if original_tweet.has_key("message"):
|
if "message" in original_tweet:
|
||||||
original_text = StripChars(original_tweet["message"])
|
original_text = StripChars(original_tweet["message"])
|
||||||
elif original_tweet.has_key("full_text"):
|
elif "full_text" in original_tweet:
|
||||||
original_text = StripChars(original_tweet["full_text"])
|
original_text = StripChars(original_tweet["full_text"])
|
||||||
else:
|
else:
|
||||||
original_text = StripChars(original_tweet["text"])
|
original_text = StripChars(original_tweet["text"])
|
||||||
@ -133,7 +134,7 @@ def compose_followers_list(tweet, db, relative_times=True, show_screen_names=Fal
|
|||||||
ts = original_date.replace(seconds=db["utc_offset"]).format(_(u"dddd, MMMM D, YYYY H:m:s"), locale=languageHandler.getLanguage())
|
ts = original_date.replace(seconds=db["utc_offset"]).format(_(u"dddd, MMMM D, YYYY H:m:s"), locale=languageHandler.getLanguage())
|
||||||
else:
|
else:
|
||||||
ts = tweet["created_at"]
|
ts = tweet["created_at"]
|
||||||
if tweet.has_key("status"):
|
if "status" in tweet:
|
||||||
if len(tweet["status"]) > 4 and system == "Windows":
|
if len(tweet["status"]) > 4 and system == "Windows":
|
||||||
original_date2 = arrow.get(tweet["status"]["created_at"], "ddd MMM D H:m:s Z YYYY", locale="en")
|
original_date2 = arrow.get(tweet["status"]["created_at"], "ddd MMM D H:m:s Z YYYY", locale="en")
|
||||||
if relative_times:
|
if relative_times:
|
||||||
|
@ -1,11 +1,12 @@
|
|||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
from __future__ import absolute_import
|
||||||
import config
|
import config
|
||||||
import random
|
import random
|
||||||
import BaseHTTPServer
|
import BaseHTTPServer
|
||||||
import webbrowser
|
import webbrowser
|
||||||
from twython import Twython, TwythonError
|
from twython import Twython, TwythonError
|
||||||
from keys import keyring
|
from keys import keyring
|
||||||
import authorisationHandler
|
from . import authorisationHandler
|
||||||
from requests import certs
|
from requests import certs
|
||||||
import logging
|
import logging
|
||||||
log = logging.getLogger("sessionTwitter")
|
log = logging.getLogger("sessionTwitter")
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
from __future__ import print_function
|
||||||
import url_shortener, re
|
import url_shortener, re
|
||||||
import output
|
import output
|
||||||
from twython import TwythonError
|
from twython import TwythonError
|
||||||
@ -23,9 +24,9 @@ def find_urls_in_text(text):
|
|||||||
|
|
||||||
def find_urls (tweet):
|
def find_urls (tweet):
|
||||||
urls = []
|
urls = []
|
||||||
if tweet.has_key("message"):
|
if "message" in tweet:
|
||||||
i = "message"
|
i = "message"
|
||||||
elif tweet.has_key("full_text"):
|
elif "full_text" in tweet:
|
||||||
i = "full_text"
|
i = "full_text"
|
||||||
else:
|
else:
|
||||||
i = "text"
|
i = "text"
|
||||||
@ -59,18 +60,18 @@ def is_audio(tweet):
|
|||||||
if i["text"] == "audio":
|
if i["text"] == "audio":
|
||||||
return True
|
return True
|
||||||
except:
|
except:
|
||||||
print tweet["entities"]["hashtags"]
|
print(tweet["entities"]["hashtags"])
|
||||||
log.exception("Exception while executing is_audio hashtag algorithm")
|
log.exception("Exception while executing is_audio hashtag algorithm")
|
||||||
|
|
||||||
def is_geocoded(tweet):
|
def is_geocoded(tweet):
|
||||||
if tweet.has_key("coordinates") and tweet["coordinates"] != None:
|
if "coordinates" in tweet and tweet["coordinates"] != None:
|
||||||
return True
|
return True
|
||||||
|
|
||||||
def is_media(tweet):
|
def is_media(tweet):
|
||||||
if tweet["entities"].has_key("media") == False:
|
if ("media" in tweet["entities"]) == False:
|
||||||
return False
|
return False
|
||||||
for i in tweet["entities"]["media"]:
|
for i in tweet["entities"]["media"]:
|
||||||
if i.has_key("type") and i["type"] == "photo":
|
if "type" in i and i["type"] == "photo":
|
||||||
return True
|
return True
|
||||||
return False
|
return False
|
||||||
|
|
||||||
@ -85,10 +86,10 @@ def get_all_mentioned(tweet, conf, field="screen_name"):
|
|||||||
|
|
||||||
def get_all_users(tweet, conf):
|
def get_all_users(tweet, conf):
|
||||||
string = []
|
string = []
|
||||||
if tweet.has_key("retweeted_status"):
|
if "retweeted_status" in tweet:
|
||||||
string.append(tweet["user"]["screen_name"])
|
string.append(tweet["user"]["screen_name"])
|
||||||
tweet = tweet["retweeted_status"]
|
tweet = tweet["retweeted_status"]
|
||||||
if tweet.has_key("sender"):
|
if "sender" in tweet:
|
||||||
string.append(tweet["sender"]["screen_name"])
|
string.append(tweet["sender"]["screen_name"])
|
||||||
else:
|
else:
|
||||||
if tweet["user"]["screen_name"] != conf["user_name"]:
|
if tweet["user"]["screen_name"] != conf["user_name"]:
|
||||||
@ -124,9 +125,9 @@ def api_call(parent=None, call_name=None, preexec_message="", success="", succes
|
|||||||
return val
|
return val
|
||||||
|
|
||||||
def is_allowed(tweet, clients):
|
def is_allowed(tweet, clients):
|
||||||
if tweet.has_key("sender"): return True
|
if "sender" in tweet: return True
|
||||||
allowed = True
|
allowed = True
|
||||||
if tweet.has_key("retweeted_status"): tweet = tweet["retweeted_status"]
|
if "retweeted_status" in tweet: tweet = tweet["retweeted_status"]
|
||||||
source = re.sub(r"(?s)<.*?>", "", tweet["source"])
|
source = re.sub(r"(?s)<.*?>", "", tweet["source"])
|
||||||
for i in clients:
|
for i in clients:
|
||||||
if i.lower() == source.lower():
|
if i.lower() == source.lower():
|
||||||
|
@ -1,11 +1,12 @@
|
|||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
from __future__ import absolute_import
|
||||||
import application
|
import application
|
||||||
import update
|
from . import update
|
||||||
import platform
|
import platform
|
||||||
import logging
|
import logging
|
||||||
import output
|
import output
|
||||||
from requests.exceptions import ConnectionError
|
from requests.exceptions import ConnectionError
|
||||||
from wxUpdater import *
|
from .wxUpdater import *
|
||||||
logger = logging.getLogger("updater")
|
logger = logging.getLogger("updater")
|
||||||
|
|
||||||
def do_update(endpoint=application.update_url):
|
def do_update(endpoint=application.update_url):
|
||||||
|
@ -1,7 +1,8 @@
|
|||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
from __future__ import absolute_import
|
||||||
import wx
|
import wx
|
||||||
import application
|
import application
|
||||||
import utils
|
from . import utils
|
||||||
|
|
||||||
progress_dialog = None
|
progress_dialog = None
|
||||||
|
|
||||||
|
@ -1,2 +1,3 @@
|
|||||||
import shorteners
|
from __future__ import absolute_import
|
||||||
from __main__ import *
|
from . import shorteners
|
||||||
|
from .__main__ import *
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
|
from __future__ import absolute_import
|
||||||
from functools import wraps
|
from functools import wraps
|
||||||
import shorteners
|
from . import shorteners
|
||||||
|
|
||||||
|
|
||||||
def service_selecter (func):
|
def service_selecter (func):
|
||||||
|
@ -1,9 +1,10 @@
|
|||||||
from url_shortener import URLShortener
|
from __future__ import absolute_import
|
||||||
from hkcim import HKCShortener
|
from .url_shortener import URLShortener
|
||||||
from isgd import IsgdShortener
|
from .hkcim import HKCShortener
|
||||||
from onjme import OnjmeShortener
|
from .isgd import IsgdShortener
|
||||||
from tinyarrows import TinyArrowsShortener
|
from .onjme import OnjmeShortener
|
||||||
from tinyurl import TinyurlShortener
|
from .tinyarrows import TinyArrowsShortener
|
||||||
from xedcc import XedccShortener
|
from .tinyurl import TinyurlShortener
|
||||||
from clckru import ClckruShortener
|
from .xedcc import XedccShortener
|
||||||
|
from .clckru import ClckruShortener
|
||||||
__all__ = ["HKCShortener", "IsgdShortener", "OnjmeShortener", "TinyArrowsShortener", "TinyurlShortener", "XedccShortener", "ClckruShortener"]
|
__all__ = ["HKCShortener", "IsgdShortener", "OnjmeShortener", "TinyArrowsShortener", "TinyurlShortener", "XedccShortener", "ClckruShortener"]
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
|
from __future__ import absolute_import
|
||||||
import urllib
|
import urllib
|
||||||
|
|
||||||
from url_shortener import URLShortener
|
from .url_shortener import URLShortener
|
||||||
|
|
||||||
|
|
||||||
class ClckruShortener (URLShortener):
|
class ClckruShortener (URLShortener):
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
|
from __future__ import absolute_import
|
||||||
import urllib
|
import urllib
|
||||||
|
|
||||||
from url_shortener import URLShortener
|
from .url_shortener import URLShortener
|
||||||
|
|
||||||
class HKCShortener (URLShortener):
|
class HKCShortener (URLShortener):
|
||||||
def __init__ (self, *args, **kwargs):
|
def __init__ (self, *args, **kwargs):
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
|
from __future__ import absolute_import
|
||||||
import urllib
|
import urllib
|
||||||
|
|
||||||
from url_shortener import URLShortener
|
from .url_shortener import URLShortener
|
||||||
|
|
||||||
|
|
||||||
class IsgdShortener (URLShortener):
|
class IsgdShortener (URLShortener):
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
|
from __future__ import absolute_import
|
||||||
import urllib
|
import urllib
|
||||||
|
|
||||||
from url_shortener import URLShortener
|
from .url_shortener import URLShortener
|
||||||
|
|
||||||
class OnjmeShortener (URLShortener):
|
class OnjmeShortener (URLShortener):
|
||||||
def __init__ (self, *args, **kwargs):
|
def __init__ (self, *args, **kwargs):
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
|
from __future__ import absolute_import
|
||||||
import urllib
|
import urllib
|
||||||
|
|
||||||
from url_shortener import URLShortener
|
from .url_shortener import URLShortener
|
||||||
|
|
||||||
class TinyArrowsShortener (URLShortener):
|
class TinyArrowsShortener (URLShortener):
|
||||||
def __init__ (self, *args, **kwargs):
|
def __init__ (self, *args, **kwargs):
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
from url_shortener import URLShortener
|
from __future__ import absolute_import
|
||||||
|
from .url_shortener import URLShortener
|
||||||
import urllib
|
import urllib
|
||||||
class TinyurlShortener (URLShortener):
|
class TinyurlShortener (URLShortener):
|
||||||
def __init__(self, *args, **kwargs):
|
def __init__(self, *args, **kwargs):
|
||||||
|
@ -24,7 +24,7 @@ class URLShortener (object):
|
|||||||
def unshorten(self, url):
|
def unshorten(self, url):
|
||||||
working = urlparse(url)
|
working = urlparse(url)
|
||||||
if not working.netloc:
|
if not working.netloc:
|
||||||
raise TypeError, "Unable to parse URL."
|
raise TypeError("Unable to parse URL.")
|
||||||
con = HTTPConnection(working.netloc)
|
con = HTTPConnection(working.netloc)
|
||||||
con.connect()
|
con.connect()
|
||||||
con.request('GET', working.path)
|
con.request('GET', working.path)
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
|
from __future__ import absolute_import
|
||||||
import urllib
|
import urllib
|
||||||
|
|
||||||
from url_shortener import URLShortener
|
from .url_shortener import URLShortener
|
||||||
|
|
||||||
class XedccShortener (URLShortener):
|
class XedccShortener (URLShortener):
|
||||||
def __init__ (self, *args, **kwargs):
|
def __init__ (self, *args, **kwargs):
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
|
from __future__ import absolute_import
|
||||||
import platform
|
import platform
|
||||||
if platform.system() == "Windows":
|
if platform.system() == "Windows":
|
||||||
from wxUtils import *
|
from .wxUtils import *
|
||||||
#elif platform.system() == "Linux":
|
#elif platform.system() == "Linux":
|
||||||
# from gtkUtils import *
|
# from gtkUtils import *
|
||||||
|
@ -1,11 +1,12 @@
|
|||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
from base import basePanel
|
from __future__ import absolute_import
|
||||||
from dm import dmPanel
|
from .base import basePanel
|
||||||
from events import eventsPanel
|
from .dm import dmPanel
|
||||||
from favourites import favsPanel
|
from .events import eventsPanel
|
||||||
from lists import listPanel
|
from .favourites import favsPanel
|
||||||
from panels import accountPanel, emptyPanel
|
from .lists import listPanel
|
||||||
from people import peoplePanel
|
from .panels import accountPanel, emptyPanel
|
||||||
from trends import trendsPanel
|
from .people import peoplePanel
|
||||||
from tweet_searches import searchPanel
|
from .trends import trendsPanel
|
||||||
from user_searches import searchUsersPanel
|
from .tweet_searches import searchPanel
|
||||||
|
from .user_searches import searchUsersPanel
|
@ -1,6 +1,7 @@
|
|||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
from __future__ import absolute_import
|
||||||
import wx
|
import wx
|
||||||
from base import basePanel
|
from .base import basePanel
|
||||||
|
|
||||||
class dmPanel(basePanel):
|
class dmPanel(basePanel):
|
||||||
def __init__(self, parent, name):
|
def __init__(self, parent, name):
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
from __future__ import absolute_import
|
||||||
import wx
|
import wx
|
||||||
from base import basePanel
|
from .base import basePanel
|
||||||
|
|
||||||
class favsPanel(basePanel):
|
class favsPanel(basePanel):
|
||||||
def __init__(self, parent, name):
|
def __init__(self, parent, name):
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
from __future__ import absolute_import
|
||||||
import wx
|
import wx
|
||||||
from base import basePanel
|
from .base import basePanel
|
||||||
|
|
||||||
class listPanel(basePanel):
|
class listPanel(basePanel):
|
||||||
def __init__(self, parent, name):
|
def __init__(self, parent, name):
|
||||||
|
@ -1,7 +1,8 @@
|
|||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
from __future__ import absolute_import
|
||||||
import wx
|
import wx
|
||||||
from multiplatform_widgets import widgets
|
from multiplatform_widgets import widgets
|
||||||
from base import basePanel
|
from .base import basePanel
|
||||||
|
|
||||||
class peoplePanel(basePanel):
|
class peoplePanel(basePanel):
|
||||||
""" Buffer used to show people."""
|
""" Buffer used to show people."""
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
from __future__ import absolute_import
|
||||||
import wx
|
import wx
|
||||||
from base import basePanel
|
from .base import basePanel
|
||||||
|
|
||||||
class searchPanel(basePanel):
|
class searchPanel(basePanel):
|
||||||
def __init__(self, parent, name):
|
def __init__(self, parent, name):
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
from __future__ import absolute_import
|
||||||
import wx
|
import wx
|
||||||
from tweet_searches import searchPanel
|
from .tweet_searches import searchPanel
|
||||||
from multiplatform_widgets import widgets
|
from multiplatform_widgets import widgets
|
||||||
|
|
||||||
class searchUsersPanel(searchPanel):
|
class searchUsersPanel(searchPanel):
|
||||||
|
@ -1 +1,2 @@
|
|||||||
import baseDialog, trends, configuration, lists, message, search, find, show_user, update_profile, urlList, userSelection, utils
|
from __future__ import absolute_import
|
||||||
|
from . import baseDialog, trends, configuration, lists, message, search, find, show_user, update_profile, urlList, userSelection, utils
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
import baseDialog
|
from __future__ import absolute_import
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
from . import baseDialog
|
||||||
import wx
|
import wx
|
||||||
import logging as original_logger
|
import logging as original_logger
|
||||||
import application
|
import application
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
import baseDialog
|
from __future__ import absolute_import
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
from . import baseDialog
|
||||||
import wx
|
import wx
|
||||||
|
|
||||||
class findDialog(baseDialog.BaseWXDialog):
|
class findDialog(baseDialog.BaseWXDialog):
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
from __future__ import absolute_import
|
||||||
import widgetUtils
|
import widgetUtils
|
||||||
import baseDialog
|
from . import baseDialog
|
||||||
import wx
|
import wx
|
||||||
from extra import translator
|
from extra import translator
|
||||||
|
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
from __future__ import absolute_import
|
||||||
import wx
|
import wx
|
||||||
import baseDialog
|
from . import baseDialog
|
||||||
|
|
||||||
class showUserProfile(baseDialog.BaseWXDialog):
|
class showUserProfile(baseDialog.BaseWXDialog):
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
import baseDialog
|
from __future__ import absolute_import
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
from . import baseDialog
|
||||||
import wx
|
import wx
|
||||||
|
|
||||||
class trendingTopicsDialog(baseDialog.BaseWXDialog):
|
class trendingTopicsDialog(baseDialog.BaseWXDialog):
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
from __future__ import absolute_import
|
||||||
import wx
|
import wx
|
||||||
import baseDialog
|
from . import baseDialog
|
||||||
|
|
||||||
class updateProfileDialog(baseDialog.BaseWXDialog):
|
class updateProfileDialog(baseDialog.BaseWXDialog):
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
|
@ -16,8 +16,9 @@
|
|||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
#
|
#
|
||||||
############################################################
|
############################################################
|
||||||
|
from __future__ import absolute_import
|
||||||
import wx
|
import wx
|
||||||
import baseDialog
|
from . import baseDialog
|
||||||
|
|
||||||
class selectUserDialog(baseDialog.BaseWXDialog):
|
class selectUserDialog(baseDialog.BaseWXDialog):
|
||||||
def __init__(self, title, users):
|
def __init__(self, title, users):
|
||||||
|
Loading…
x
Reference in New Issue
Block a user