Compare commits
10 Commits
v0.5.0-pre
...
travis
Author | SHA1 | Date | |
---|---|---|---|
cc37485fc0 | |||
028de8176b | |||
2e285a8400 | |||
cf912b137d | |||
5019535c0d | |||
1554d9e53a | |||
a984b624b5 | |||
2aea5df33c | |||
1fa13db4e4 | |||
3582722faa |
@ -12,12 +12,13 @@ before_install:
|
|||||||
- sudo apt-get install -y checkinstall build-essential
|
- sudo apt-get install -y checkinstall build-essential
|
||||||
- sudo apt-get install portaudio19-dev
|
- sudo apt-get install portaudio19-dev
|
||||||
- sudo apt-get install libsecret-1-dev
|
- sudo apt-get install libsecret-1-dev
|
||||||
|
|
||||||
- sudo apt-get install libconfig-dev libvpx-dev check -qq
|
- sudo apt-get install libconfig-dev libvpx-dev check -qq
|
||||||
install:
|
install:
|
||||||
- pip install sip
|
- pip3 install sip
|
||||||
- pip install pyqt5
|
- pip3 install pyaudio
|
||||||
- pip install pyaudio
|
- pip3 install pyqt5==5.14
|
||||||
- pip install opencv-python
|
- pip3 install opencv-python
|
||||||
before_script:
|
before_script:
|
||||||
# Opus
|
# Opus
|
||||||
- wget http://downloads.xiph.org/releases/opus/opus-1.0.3.tar.gz
|
- wget http://downloads.xiph.org/releases/opus/opus-1.0.3.tar.gz
|
||||||
|
@ -36,21 +36,6 @@ class TestProfileHelper:
|
|||||||
assert os.path.exists(path + 'avatars/')
|
assert os.path.exists(path + 'avatars/')
|
||||||
|
|
||||||
|
|
||||||
class TestDNS:
|
|
||||||
|
|
||||||
def test_dns(self):
|
|
||||||
Settings._instance = Settings.get_default_settings()
|
|
||||||
bot_id = '56A1ADE4B65B86BCD51CC73E2CD4E542179F47959FE3E0E21B4B0ACDADE51855D34D34D37CB5'
|
|
||||||
tox_id = tox_dns('groupbot@toxme.io')
|
|
||||||
assert tox_id == bot_id
|
|
||||||
|
|
||||||
def test_dns2(self):
|
|
||||||
Settings._instance = Settings.get_default_settings()
|
|
||||||
bot_id = '76518406F6A9F2217E8DC487CC783C25CC16A15EB36FF32E335A235342C48A39218F515C39A6'
|
|
||||||
tox_id = tox_dns('echobot@toxme.io')
|
|
||||||
assert tox_id == bot_id
|
|
||||||
|
|
||||||
|
|
||||||
class TestEncryption:
|
class TestEncryption:
|
||||||
|
|
||||||
def test_encr_decr(self):
|
def test_encr_decr(self):
|
||||||
|
@ -29,7 +29,7 @@ ALLOWED_FILES = ('toxygen_inline.png', 'utox-inline.png', 'sticker.png')
|
|||||||
|
|
||||||
|
|
||||||
def is_inline(file_name):
|
def is_inline(file_name):
|
||||||
return file_name in ALLOWED_FILES or file_name.startswith('qTox_Screenshot_')
|
return file_name in ALLOWED_FILES or file_name.startswith('qTox_Screenshot_') or file_name.startswith('qTox_Image_')
|
||||||
|
|
||||||
|
|
||||||
class StateSignal(QtCore.QObject):
|
class StateSignal(QtCore.QObject):
|
||||||
|
@ -618,7 +618,7 @@ class MainWindow(QtWidgets.QMainWindow, Singleton):
|
|||||||
for i in range(len(chats)):
|
for i in range(len(chats)):
|
||||||
name, number = chats[i]
|
name, number = chats[i]
|
||||||
item = invite_menu.addAction(name)
|
item = invite_menu.addAction(name)
|
||||||
item.triggered.connect(lambda: self.invite_friend_to_gc(num, number))
|
item.triggered.connect(lambda number=number: self.invite_friend_to_gc(num, number))
|
||||||
|
|
||||||
plugins_loader = plugin_support.PluginLoader.get_instance()
|
plugins_loader = plugin_support.PluginLoader.get_instance()
|
||||||
if plugins_loader is not None:
|
if plugins_loader is not None:
|
||||||
|
@ -73,8 +73,16 @@ class MessageArea(QtWidgets.QPlainTextEdit):
|
|||||||
if text.startswith('file://'):
|
if text.startswith('file://'):
|
||||||
file_name = self.parse_file_name(text)
|
file_name = self.parse_file_name(text)
|
||||||
self.parent.profile.send_file(file_name)
|
self.parent.profile.send_file(file_name)
|
||||||
else:
|
elif text:
|
||||||
self.insertPlainText(text)
|
self.insertPlainText(text)
|
||||||
|
else:
|
||||||
|
image = QtWidgets.QApplication.clipboard().image()
|
||||||
|
if image is not None:
|
||||||
|
byte_array = QtCore.QByteArray()
|
||||||
|
buffer = QtCore.QBuffer(byte_array)
|
||||||
|
buffer.open(QtCore.QIODevice.WriteOnly)
|
||||||
|
image.save(buffer, 'PNG')
|
||||||
|
self.parent.profile.send_screenshot(bytes(byte_array.data()))
|
||||||
|
|
||||||
def parse_file_name(self, file_name):
|
def parse_file_name(self, file_name):
|
||||||
import urllib
|
import urllib
|
||||||
|
@ -588,13 +588,16 @@ class Profile(basecontact.BaseContact, Singleton):
|
|||||||
print('Incoming not started transfer - no info found')
|
print('Incoming not started transfer - no info found')
|
||||||
elif message.get_type() == MESSAGE_TYPE['INLINE']: # inline image
|
elif message.get_type() == MESSAGE_TYPE['INLINE']: # inline image
|
||||||
self.create_inline_item(message.get_data(), False)
|
self.create_inline_item(message.get_data(), False)
|
||||||
else: # info message
|
elif message.get_type() < 5: # info message
|
||||||
data = message.get_data()
|
data = message.get_data()
|
||||||
self.create_message_item(data[0],
|
self.create_message_item(data[0],
|
||||||
data[2],
|
data[2],
|
||||||
'',
|
'',
|
||||||
data[3],
|
data[3],
|
||||||
False)
|
False)
|
||||||
|
else:
|
||||||
|
data = message.get_data()
|
||||||
|
self.create_gc_message_item(data[0], data[2], data[1], data[4], data[3], False)
|
||||||
self._load_history = True
|
self._load_history = True
|
||||||
|
|
||||||
def export_db(self, directory):
|
def export_db(self, directory):
|
||||||
@ -1096,10 +1099,11 @@ class Profile(basecontact.BaseContact, Singleton):
|
|||||||
file_name,
|
file_name,
|
||||||
friend.number,
|
friend.number,
|
||||||
st.get_file_number())
|
st.get_file_number())
|
||||||
item = self.create_file_transfer_item(tm)
|
|
||||||
friend.append_message(tm)
|
friend.append_message(tm)
|
||||||
st.set_state_changed_handler(item.update_transfer_state)
|
if friend_number == self.get_active_number():
|
||||||
self._messages.scrollToBottom()
|
item = self.create_file_transfer_item(tm)
|
||||||
|
st.set_state_changed_handler(item.update_transfer_state)
|
||||||
|
self._messages.scrollToBottom()
|
||||||
|
|
||||||
def send_file(self, path, number=None, is_resend=False, file_id=None):
|
def send_file(self, path, number=None, is_resend=False, file_id=None):
|
||||||
"""
|
"""
|
||||||
@ -1316,6 +1320,8 @@ class Profile(basecontact.BaseContact, Singleton):
|
|||||||
return list(groups)[0]
|
return list(groups)[0]
|
||||||
|
|
||||||
def add_gc(self, number):
|
def add_gc(self, number):
|
||||||
|
if number == -1:
|
||||||
|
return
|
||||||
widget = self.create_friend_item()
|
widget = self.create_friend_item()
|
||||||
gc = GroupChat('Group chat #' + str(number), '', widget, self._tox, number)
|
gc = GroupChat('Group chat #' + str(number), '', widget, self._tox, number)
|
||||||
self._contacts.append(gc)
|
self._contacts.append(gc)
|
||||||
|
@ -5,7 +5,7 @@ import sys
|
|||||||
import re
|
import re
|
||||||
|
|
||||||
|
|
||||||
program_version = '0.4.2'
|
program_version = '0.4.3'
|
||||||
|
|
||||||
|
|
||||||
def cached(func):
|
def cached(func):
|
||||||
|
Reference in New Issue
Block a user