Merge branch 'master' of http://github.com/fuzzgun/PyBitmessage into fuzzgun-master
This commit is contained in:
commit
52fd21733f
53
Makefile
53
Makefile
|
@ -1,5 +1,7 @@
|
|||
APP=pybitmessage
|
||||
VERSION=0.3.0
|
||||
DEST_SHARE=/usr/share
|
||||
DEST_APP=$(DEST_SHARE)/$(APP)
|
||||
|
||||
all:
|
||||
|
||||
|
@ -9,33 +11,36 @@ source:
|
|||
tar -cvzf ../$(APP)_$(VERSION).orig.tar.gz ../$(APP)-$(VERSION) --exclude=.git
|
||||
|
||||
install:
|
||||
mkdir -m 755 -p /usr/share/applications
|
||||
mkdir -m 755 -p /usr/share/applications/$(APP)
|
||||
mkdir -m 755 -p /usr/share/applications/$(APP)/images
|
||||
mkdir -m 755 -p /usr/share/applications/$(APP)/pyelliptic
|
||||
mkdir -m 755 -p /usr/share/applications/$(APP)/socks
|
||||
mkdir -m 755 -p /usr/share/pixmaps
|
||||
mkdir -m 755 -p /usr/share/icons
|
||||
mkdir -m 755 -p /usr/share/icons/hicolor
|
||||
mkdir -m 755 -p /usr/share/icons/hicolor/scalable
|
||||
mkdir -m 755 -p /usr/share/icons/hicolor/scalable/apps
|
||||
mkdir -m 755 -p /usr/share/icons/hicolor/24x24
|
||||
mkdir -m 755 -p /usr/share/icons/hicolor/24x24/apps
|
||||
mkdir -m 755 -p $(DEST_APP)
|
||||
mkdir -m 755 -p $(DEST_SHARE)/applications
|
||||
mkdir -m 755 -p $(DEST_SHARE)/applications/$(APP)
|
||||
mkdir -m 755 -p $(DEST_APP)/images
|
||||
mkdir -m 755 -p $(DEST_APP)/pyelliptic
|
||||
mkdir -m 755 -p $(DEST_APP)/socks
|
||||
mkdir -m 755 -p $(DEST_APP)/bitmessageqt
|
||||
mkdir -m 755 -p $(DEST_SHARE)/pixmaps
|
||||
mkdir -m 755 -p $(DEST_SHARE)/icons
|
||||
mkdir -m 755 -p $(DEST_SHARE)/icons/hicolor
|
||||
mkdir -m 755 -p $(DEST_SHARE)/icons/hicolor/scalable
|
||||
mkdir -m 755 -p $(DEST_SHARE)/icons/hicolor/scalable/apps
|
||||
mkdir -m 755 -p $(DEST_SHARE)/icons/hicolor/24x24
|
||||
mkdir -m 755 -p $(DEST_SHARE)/icons/hicolor/24x24/apps
|
||||
|
||||
install -m 644 src/*.ui /usr/share/applications/$(APP)
|
||||
install -m 644 src/*.py /usr/share/applications/$(APP)
|
||||
install -m 644 src/*.qrc /usr/share/applications/$(APP)
|
||||
install -m 644 src/*.ui $(DEST_APP)
|
||||
install -m 644 src/*.py $(DEST_APP)
|
||||
install -m 644 src/*.qrc $(DEST_APP)
|
||||
|
||||
install -m 644 src/images/*.png /usr/share/applications/$(APP)/images
|
||||
install -m 644 src/images/*.ico /usr/share/applications/$(APP)/images
|
||||
install -m 644 src/pyelliptic/*.py /usr/share/applications/$(APP)/pyelliptic
|
||||
install -m 644 src/socks/*.py /usr/share/applications/$(APP)/socks
|
||||
install -m 755 debian/pybm /usr/bin
|
||||
install -m 644 src/images/*.png $(DEST_APP)/images
|
||||
install -m 644 src/images/*.ico $(DEST_APP)/images
|
||||
install -m 644 src/pyelliptic/*.py $(DEST_APP)/pyelliptic
|
||||
install -m 644 src/socks/*.py $(DEST_APP)/socks
|
||||
install -m 644 src/bitmessageqt/*.py $(DEST_APP)/bitmessageqt
|
||||
install -m 755 debian/pybm /usr/bin/pybitmessage
|
||||
|
||||
install -m 644 desktop/$(APP).desktop /usr/share/applications/$(APP)/$(APP).desktop
|
||||
install -m 644 src/images/can-icon-24px.png /usr/share/icons/hicolor/24x24/apps/$(APP).png
|
||||
install -m 644 desktop/can-icon.svg /usr/share/icons/hicolor/scalable/apps/$(APP).svg
|
||||
install -m 644 desktop/can-icon.svg /usr/share/pixmaps/$(APP).svg
|
||||
install -m 644 desktop/$(APP).desktop $(DEST_SHARE)/applications/$(APP)/$(APP).desktop
|
||||
install -m 644 src/images/can-icon-24px.png $(DEST_SHARE)/icons/hicolor/24x24/apps/$(APP).png
|
||||
install -m 644 desktop/can-icon.svg $(DEST_SHARE)/icons/hicolor/scalable/apps/$(APP).svg
|
||||
install -m 644 desktop/can-icon.svg $(DEST_SHARE)/pixmaps/$(APP).svg
|
||||
|
||||
clean:
|
||||
rm -rf debian/$(APP)
|
||||
|
|
60
debian/changelog
vendored
60
debian/changelog
vendored
|
@ -1,3 +1,63 @@
|
|||
pybitmessage (0.3.0-1) unstable; urgency=low
|
||||
|
||||
* Added new API function: getStatus
|
||||
|
||||
* Added error-handling around all sock.sendall() functions
|
||||
in the receiveData thread so that if there is a problem
|
||||
sending data, the threads will close gracefully
|
||||
|
||||
* Abandoned and removed the connectionsCount data structure;
|
||||
use the connectedHostsList instead because it has proved to be
|
||||
more accurate than trying to maintain the connectionsCount
|
||||
|
||||
* Added daemon mode. All UI code moved into a module and many
|
||||
shared objects moved into shared.py
|
||||
|
||||
* Truncate display of very long messages to avoid freezing the UI
|
||||
|
||||
* Added encrypted broadcasts for v3 addresses or v2 addresses
|
||||
after 2013-05-28 10:00 UTC
|
||||
|
||||
* No longer self.sock.close() from within receiveDataThreads,
|
||||
let the sendDataThreads do it
|
||||
|
||||
* Swapped out the v2 announcements subscription address for a v3
|
||||
announcements subscription address
|
||||
|
||||
* Vacuum the messages.dat file once a month: will greatly reduce the file size
|
||||
|
||||
* Added a settings table in message.dat
|
||||
|
||||
* Implemented v3 addresses:
|
||||
pubkey messages must now include two var_ints: nonce_trials_per_byte
|
||||
and extra_bytes, and also be signed. When sending a message to a v3
|
||||
address, the sender must use these values in calculating its POW or
|
||||
else the message will not be accepted by the receiver.
|
||||
|
||||
* Display a privacy warning when selecting 'Send Broadcast from this address'
|
||||
|
||||
* Added gitignore file
|
||||
|
||||
* Added code in preparation for a switch from 32-bit time to 64-bit time.
|
||||
Nodes will now advertise themselves as using protocol version 2.
|
||||
|
||||
* Don't necessarily delete entries from the inventory after 2.5 days;
|
||||
leave pubkeys there for 28 days so that we don't process the same ones
|
||||
many times throughout a month. This was causing the 'pubkeys processed'
|
||||
indicator on the 'Network Status' tab to not accurately reflect the
|
||||
number of truly new addresses on the network.
|
||||
|
||||
* Use 32 threads for outgoing connections in order to connect quickly
|
||||
|
||||
* Fix typo when calling os.environ in the sys.platform=='darwin' case
|
||||
|
||||
* Allow the cancelling of a message which is in the process of being
|
||||
sent by trashing it then restarting Bitmessage
|
||||
|
||||
* Bug fix: can't delete address from address book
|
||||
|
||||
-- Bob Mottram (4096 bits) <bob@sluggish.dyndns.org> Tue, 6 May 2013 12:06:00 +0100
|
||||
|
||||
pybitmessage (0.2.8-1) unstable; urgency=low
|
||||
|
||||
* Fixed Ubuntu & OS X issue:
|
||||
|
|
4
debian/control
vendored
4
debian/control
vendored
|
@ -2,7 +2,7 @@ Source: pybitmessage
|
|||
Section: contrib/comm
|
||||
Priority: extra
|
||||
Maintainer: Jonathan Warren <jonathan@bitmessage.org>
|
||||
Build-Depends: debhelper (>= 8.0.0), python, openssl, python-qt4, libqt4-dev, python-qt4-dev, sqlite3, libsqlite3-dev
|
||||
Build-Depends: debhelper (>= 8.0.0), python (>= 2.7.0), openssl, python-qt4, libqt4-dev (>= 4.8.0), python-qt4-dev, sqlite3, libsqlite3-dev
|
||||
Standards-Version: 3.9.2
|
||||
Homepage: https://bitmessage.org/
|
||||
Vcs-Browser: https://github.com/Bitmessage/PyBitmessage
|
||||
|
@ -10,7 +10,7 @@ Vcs-Git: https://github.com/Bitmessage/PyBitmessage.git
|
|||
|
||||
Package: pybitmessage
|
||||
Architecture: all
|
||||
Depends: ${misc:Depends}, python, openssl, python-qt4, libqt4-dev, python-qt4-dev, sqlite3, libsqlite3-dev
|
||||
Depends: ${misc:Depends}, python (>= 2.7.0), openssl, python-qt4, libqt4-dev (>= 4.8.0), python-qt4-dev, sqlite3, libsqlite3-dev
|
||||
Description: Send encrypted messages to another person or to many subscribers
|
||||
Bitmessage is a P2P communications protocol used to send encrypted messages
|
||||
to another person or to many subscribers. It is decentralized and trustless,
|
||||
|
|
2
debian/pybm
vendored
2
debian/pybm
vendored
|
@ -1,4 +1,4 @@
|
|||
#!/bin/bash
|
||||
cd /usr/share/applications/pybitmessage
|
||||
cd /usr/share/pybitmessage
|
||||
python bitmessagemain.py
|
||||
|
||||
|
|
30
debian/rules
vendored
30
debian/rules
vendored
|
@ -1,8 +1,9 @@
|
|||
#!/usr/bin/make -f
|
||||
APP=pybitmessage
|
||||
|
||||
DEST_MAIN = $(CURDIR)/debian/$(APP)/usr/bin
|
||||
DEST_SHARE = $(CURDIR)/debian/$(APP)/usr/share
|
||||
DEST_MAIN=$(CURDIR)/debian/$(APP)/usr/bin
|
||||
DEST_SHARE=$(CURDIR)/debian/$(APP)/usr/share
|
||||
DEST_APP=$(DEST_SHARE)/$(APP)
|
||||
|
||||
build: build-stamp
|
||||
make
|
||||
|
@ -21,11 +22,13 @@ install: build clean
|
|||
dh_installdirs
|
||||
mkdir -m 755 -p $(CURDIR)/debian/$(APP)/usr
|
||||
mkdir -m 755 -p $(CURDIR)/debian/$(APP)/usr/bin
|
||||
mkdir -m 755 -p $(DEST_APP)
|
||||
mkdir -m 755 -p $(DEST_SHARE)/applications
|
||||
mkdir -m 755 -p $(DEST_SHARE)/applications/$(APP)
|
||||
mkdir -m 755 -p $(DEST_SHARE)/applications/$(APP)/images
|
||||
mkdir -m 755 -p $(DEST_SHARE)/applications/$(APP)/pyelliptic
|
||||
mkdir -m 755 -p $(DEST_SHARE)/applications/$(APP)/socks
|
||||
mkdir -m 755 -p $(DEST_APP)/images
|
||||
mkdir -m 755 -p $(DEST_APP)/pyelliptic
|
||||
mkdir -m 755 -p $(DEST_APP)/socks
|
||||
mkdir -m 755 -p $(DEST_APP)/bitmessageqt
|
||||
mkdir -m 755 -p $(DEST_SHARE)/pixmaps
|
||||
mkdir -m 755 -p $(DEST_SHARE)/icons
|
||||
mkdir -m 755 -p $(DEST_SHARE)/icons/hicolor
|
||||
|
@ -34,15 +37,16 @@ install: build clean
|
|||
mkdir -m 755 -p $(DEST_SHARE)/icons/hicolor/24x24
|
||||
mkdir -m 755 -p $(DEST_SHARE)/icons/hicolor/24x24/apps
|
||||
|
||||
install -m 644 $(CURDIR)/src/*.ui $(DEST_SHARE)/applications/$(APP)
|
||||
install -m 644 $(CURDIR)/src/*.py $(DEST_SHARE)/applications/$(APP)
|
||||
install -m 644 $(CURDIR)/src/*.qrc $(DEST_SHARE)/applications/$(APP)
|
||||
install -m 644 $(CURDIR)/src/*.ui $(DEST_APP)
|
||||
install -m 644 $(CURDIR)/src/*.py $(DEST_APP)
|
||||
install -m 644 $(CURDIR)/src/*.qrc $(DEST_APP)
|
||||
|
||||
install -m 644 $(CURDIR)/src/images/*.png $(DEST_SHARE)/applications/$(APP)/images
|
||||
install -m 644 $(CURDIR)/src/images/*.ico $(DEST_SHARE)/applications/$(APP)/images
|
||||
install -m 644 $(CURDIR)/src/pyelliptic/*.py $(DEST_SHARE)/applications/$(APP)/pyelliptic
|
||||
install -m 644 $(CURDIR)/src/socks/*.py $(DEST_SHARE)/applications/$(APP)/socks
|
||||
install -m 755 $(CURDIR)/debian/pybm $(DEST_MAIN)
|
||||
install -m 644 $(CURDIR)/src/images/*.png $(DEST_APP)/images
|
||||
install -m 644 $(CURDIR)/src/images/*.ico $(DEST_APP)/images
|
||||
install -m 644 $(CURDIR)/src/pyelliptic/*.py $(DEST_APP)/pyelliptic
|
||||
install -m 644 $(CURDIR)/src/socks/*.py $(DEST_APP)/socks
|
||||
install -m 644 $(CURDIR)/src/bitmessageqt/*.py $(DEST_APP)/bitmessageqt
|
||||
install -m 755 $(CURDIR)/debian/pybm $(DEST_MAIN)/pybitmessage
|
||||
|
||||
install -m 644 $(CURDIR)/desktop/$(APP).desktop $(DEST_SHARE)/applications/$(APP)/$(APP).desktop
|
||||
install -m 644 $(CURDIR)/src/images/can-icon-24px.png $(DEST_SHARE)/icons/hicolor/24x24/apps/$(APP).png
|
||||
|
|
|
@ -3,7 +3,7 @@ Type=Application
|
|||
Name=PyBitmessage
|
||||
GenericName=PyBitmessage
|
||||
Comment=Send encrypted messages to another person or to many subscribers
|
||||
Exec=pybm %U
|
||||
Exec=pybitmessage %U
|
||||
Icon=pybitmessage
|
||||
Terminal=false
|
||||
Categories=Network
|
||||
|
|
|
@ -460,6 +460,90 @@ class MyForm(QtGui.QMainWindow):
|
|||
#QtCore.QObject.connect(self.workerThread, QtCore.SIGNAL("updateSentItemStatusByAckdata(PyQt_PyObject,PyQt_PyObject)"), self.updateSentItemStatusByAckdata)
|
||||
#QtCore.QObject.connect(self.workerThread, QtCore.SIGNAL("updateStatusBar(PyQt_PyObject)"), self.updateStatusBar)
|
||||
|
||||
# an appindicator action which indicates the connection status
|
||||
actionStatus = None
|
||||
|
||||
# an appindicator action which shows of hides the program window
|
||||
actionShow = None
|
||||
|
||||
# show the application window
|
||||
def appIndicatorShow(self):
|
||||
if self.actionShow == None:
|
||||
return
|
||||
self.actionShow.setChecked(True)
|
||||
self.show()
|
||||
self.setWindowState(self.windowState() & QtCore.Qt.WindowMaximized)
|
||||
|
||||
# application indicator show or hide
|
||||
def appIndicatorShowBitmessage(self):
|
||||
if self.actionShow == None:
|
||||
return
|
||||
if not self.actionShow.isChecked():
|
||||
self.hide()
|
||||
self.setWindowState(self.windowState() & QtCore.Qt.WindowMinimized)
|
||||
else:
|
||||
self.show()
|
||||
self.setWindowState(self.windowState() & QtCore.Qt.WindowMaximized)
|
||||
|
||||
# Show the program window and select send tab
|
||||
def appIndicatorSend(self):
|
||||
self.appIndicatorShow()
|
||||
self.ui.tabWidget.setCurrentIndex(1)
|
||||
|
||||
# Show the program window and select subscriptions tab
|
||||
def appIndicatorSubscribe(self):
|
||||
self.appIndicatorShow()
|
||||
self.ui.tabWidget.setCurrentIndex(4)
|
||||
|
||||
# Show the program window and select the address book tab
|
||||
def appIndicatorAddressBook(self):
|
||||
self.appIndicatorShow()
|
||||
self.ui.tabWidget.setCurrentIndex(5)
|
||||
|
||||
# create application indicator
|
||||
def createAppIndicator(self,app):
|
||||
app.tray = QSystemTrayIcon(QtGui.QIcon("images/can-icon-24px.png"), app)
|
||||
m = QMenu()
|
||||
|
||||
self.actionStatus = QtGui.QAction('Not Connected',m,checkable=False)
|
||||
m.addAction(self.actionStatus)
|
||||
|
||||
# separator
|
||||
actionSeparator = QtGui.QAction('',m,checkable=False)
|
||||
actionSeparator.setSeparator(True)
|
||||
m.addAction(actionSeparator)
|
||||
|
||||
# show bitmessage
|
||||
self.actionShow = QtGui.QAction('Show Bitmessage',m,checkable=True)
|
||||
self.actionShow.setChecked(True)
|
||||
self.actionShow.triggered.connect(self.appIndicatorShowBitmessage)
|
||||
m.addAction(self.actionShow)
|
||||
|
||||
# Send
|
||||
actionSend = QtGui.QAction('Send',m,checkable=False)
|
||||
actionSend.triggered.connect(self.appIndicatorSend)
|
||||
m.addAction(actionSend)
|
||||
|
||||
# Subscribe
|
||||
actionSubscribe = QtGui.QAction('Subscribe',m,checkable=False)
|
||||
actionSubscribe.triggered.connect(self.appIndicatorSubscribe)
|
||||
m.addAction(actionSubscribe)
|
||||
|
||||
# Address book
|
||||
actionAddressBook = QtGui.QAction('Address Book',m,checkable=False)
|
||||
actionAddressBook.triggered.connect(self.appIndicatorAddressBook)
|
||||
m.addAction(actionAddressBook)
|
||||
|
||||
# separator
|
||||
actionSeparator = QtGui.QAction('',m,checkable=False)
|
||||
actionSeparator.setSeparator(True)
|
||||
m.addAction(actionSeparator)
|
||||
|
||||
# Quit
|
||||
m.addAction("Quit", self.close)
|
||||
app.tray.setContextMenu(m)
|
||||
app.tray.show()
|
||||
|
||||
def tableWidgetInboxKeyPressEvent(self,event):
|
||||
if event.key() == QtCore.Qt.Key_Delete:
|
||||
self.on_action_InboxTrash()
|
||||
|
@ -601,16 +685,22 @@ class MyForm(QtGui.QMainWindow):
|
|||
if color == 'red':
|
||||
self.ui.pushButtonStatusIcon.setIcon(QIcon(":/newPrefix/images/redicon.png"))
|
||||
shared.statusIconColor = 'red'
|
||||
if self.actionStatus != None:
|
||||
self.actionStatus.setText('Not Connected')
|
||||
if color == 'yellow':
|
||||
if self.statusBar().currentMessage() == 'Warning: You are currently not connected. Bitmessage will do the work necessary to send the message but it won\'t send until you connect.':
|
||||
self.statusBar().showMessage('')
|
||||
self.ui.pushButtonStatusIcon.setIcon(QIcon(":/newPrefix/images/yellowicon.png"))
|
||||
shared.statusIconColor = 'yellow'
|
||||
if self.actionStatus != None:
|
||||
self.actionStatus.setText('Connection Ok')
|
||||
if color == 'green':
|
||||
if self.statusBar().currentMessage() == 'Warning: You are currently not connected. Bitmessage will do the work necessary to send the message but it won\'t send until you connect.':
|
||||
self.statusBar().showMessage('')
|
||||
self.ui.pushButtonStatusIcon.setIcon(QIcon(":/newPrefix/images/greenicon.png"))
|
||||
shared.statusIconColor = 'green'
|
||||
if self.actionStatus != None:
|
||||
self.actionStatus.setText('Connection Good')
|
||||
|
||||
def updateSentItemStatusByHash(self,toRipe,textToDisplay):
|
||||
for i in range(self.ui.tableWidgetSent.rowCount()):
|
||||
|
@ -1946,6 +2036,8 @@ class UISignaler(QThread):
|
|||
else:
|
||||
sys.stderr.write('Command sent to UISignaler not recognized: %s\n' % command)
|
||||
|
||||
|
||||
|
||||
def run():
|
||||
app = QtGui.QApplication(sys.argv)
|
||||
app.setStyleSheet("QStatusBar::item { border: 0px solid black }")
|
||||
|
@ -1959,4 +2051,6 @@ def run():
|
|||
#self.hide()
|
||||
if 'win32' in sys.platform or 'win64' in sys.platform:
|
||||
myapp.setWindowFlags(Qt.ToolTip)
|
||||
sys.exit(app.exec_())
|
||||
myapp.createAppIndicator(app)
|
||||
|
||||
sys.exit(app.exec_())
|
||||
|
|
Reference in New Issue
Block a user