mirror of
https://github.com/onionshare/onionshare.git
synced 2024-10-01 01:35:40 -04:00
Merge pull request #206 from lazlolazlolazlo/codestyle
Fix some small codestyle issues according to pep8.
This commit is contained in:
commit
2b1a3e927e
@ -40,6 +40,7 @@ if get_platform() == 'Darwin':
|
|||||||
else:
|
else:
|
||||||
osx_resources_dir = None
|
osx_resources_dir = None
|
||||||
|
|
||||||
|
|
||||||
def get_onionshare_dir():
|
def get_onionshare_dir():
|
||||||
if get_platform() == 'Darwin':
|
if get_platform() == 'Darwin':
|
||||||
onionshare_dir = os.path.dirname(__file__)
|
onionshare_dir = os.path.dirname(__file__)
|
||||||
@ -47,6 +48,7 @@ def get_onionshare_dir():
|
|||||||
onionshare_dir = os.path.dirname(os.path.abspath(inspect.getfile(inspect.currentframe())))
|
onionshare_dir = os.path.dirname(os.path.abspath(inspect.getfile(inspect.currentframe())))
|
||||||
return onionshare_dir
|
return onionshare_dir
|
||||||
|
|
||||||
|
|
||||||
def get_html_path(filename):
|
def get_html_path(filename):
|
||||||
p = platform.system()
|
p = platform.system()
|
||||||
if p == 'Darwin':
|
if p == 'Darwin':
|
||||||
|
@ -112,7 +112,7 @@ class OnionShare(object):
|
|||||||
args = ['/usr/bin/sudo', '--', '/usr/bin/onionshare']
|
args = ['/usr/bin/sudo', '--', '/usr/bin/onionshare']
|
||||||
print "Executing: {0:s}".format(args+[str(self.port)])
|
print "Executing: {0:s}".format(args+[str(self.port)])
|
||||||
p = subprocess.Popen(args+[str(self.port)], stderr=subprocess.PIPE, stdout=subprocess.PIPE)
|
p = subprocess.Popen(args+[str(self.port)], stderr=subprocess.PIPE, stdout=subprocess.PIPE)
|
||||||
stdout = p.stdout.read(22) # .onion URLs are 22 chars long
|
stdout = p.stdout.read(22) # .onion URLs are 22 chars long
|
||||||
|
|
||||||
if stdout:
|
if stdout:
|
||||||
self.onion_host = stdout
|
self.onion_host = stdout
|
||||||
@ -227,7 +227,7 @@ class OnionShare(object):
|
|||||||
except urllib2.HTTPError: # Tails error
|
except urllib2.HTTPError: # Tails error
|
||||||
sys.stdout.write('{0:s}\n'.format(strings._('wait_for_hs_nope')))
|
sys.stdout.write('{0:s}\n'.format(strings._('wait_for_hs_nope')))
|
||||||
sys.stdout.flush()
|
sys.stdout.flush()
|
||||||
except httplib.BadStatusLine: # Tails (with bridge) error
|
except httplib.BadStatusLine: # Tails (with bridge) error
|
||||||
sys.stdout.write('{0:s}\n'.format(strings._('wait_for_hs_nope')))
|
sys.stdout.write('{0:s}\n'.format(strings._('wait_for_hs_nope')))
|
||||||
sys.stdout.flush()
|
sys.stdout.flush()
|
||||||
except KeyboardInterrupt:
|
except KeyboardInterrupt:
|
||||||
|
@ -14,7 +14,7 @@ are permitted provided that the following conditions are met:
|
|||||||
3. Neither the name of Dan Haim nor the names of his contributors may be used
|
3. Neither the name of Dan Haim nor the names of his contributors may be used
|
||||||
to endorse or promote products derived from this software without specific
|
to endorse or promote products derived from this software without specific
|
||||||
prior written permission.
|
prior written permission.
|
||||||
|
|
||||||
THIS SOFTWARE IS PROVIDED BY DAN HAIM "AS IS" AND ANY EXPRESS OR IMPLIED
|
THIS SOFTWARE IS PROVIDED BY DAN HAIM "AS IS" AND ANY EXPRESS OR IMPLIED
|
||||||
WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||||
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
|
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
|
||||||
@ -40,7 +40,7 @@ mainly to merge bug fixes found in Sourceforge
|
|||||||
Modifications made by Anorov (https://github.com/Anorov)
|
Modifications made by Anorov (https://github.com/Anorov)
|
||||||
-Forked and renamed to PySocks
|
-Forked and renamed to PySocks
|
||||||
-Fixed issue with HTTP proxy failure checking (same bug that was in the old ___recvall() method)
|
-Fixed issue with HTTP proxy failure checking (same bug that was in the old ___recvall() method)
|
||||||
-Included SocksiPyHandler (sockshandler.py), to be used as a urllib2 handler,
|
-Included SocksiPyHandler (sockshandler.py), to be used as a urllib2 handler,
|
||||||
courtesy of e000 (https://github.com/e000): https://gist.github.com/869791#file_socksipyhandler.py
|
courtesy of e000 (https://github.com/e000): https://gist.github.com/869791#file_socksipyhandler.py
|
||||||
-Re-styled code to make it readable
|
-Re-styled code to make it readable
|
||||||
-Aliased PROXY_TYPE_SOCKS5 -> SOCKS5 etc.
|
-Aliased PROXY_TYPE_SOCKS5 -> SOCKS5 etc.
|
||||||
@ -136,7 +136,7 @@ def set_default_proxy(proxy_type=None, addr=None, port=None, rdns=True, username
|
|||||||
Sets a default proxy which all further socksocket objects will use,
|
Sets a default proxy which all further socksocket objects will use,
|
||||||
unless explicitly changed.
|
unless explicitly changed.
|
||||||
"""
|
"""
|
||||||
socksocket.default_proxy = (proxy_type, addr.encode(), port, rdns,
|
socksocket.default_proxy = (proxy_type, addr.encode(), port, rdns,
|
||||||
username.encode() if username else None,
|
username.encode() if username else None,
|
||||||
password.encode() if password else None)
|
password.encode() if password else None)
|
||||||
|
|
||||||
@ -200,7 +200,7 @@ class socksocket(socket.socket):
|
|||||||
|
|
||||||
def __init__(self, family=socket.AF_INET, type=socket.SOCK_STREAM, proto=0, _sock=None):
|
def __init__(self, family=socket.AF_INET, type=socket.SOCK_STREAM, proto=0, _sock=None):
|
||||||
_orig_socket.__init__(self, family, type, proto, _sock)
|
_orig_socket.__init__(self, family, type, proto, _sock)
|
||||||
|
|
||||||
if self.default_proxy:
|
if self.default_proxy:
|
||||||
self.proxy = self.default_proxy
|
self.proxy = self.default_proxy
|
||||||
else:
|
else:
|
||||||
@ -245,7 +245,7 @@ class socksocket(socket.socket):
|
|||||||
password - Password to authenticate with to the server.
|
password - Password to authenticate with to the server.
|
||||||
Only relevant when username is also provided.
|
Only relevant when username is also provided.
|
||||||
"""
|
"""
|
||||||
self.proxy = (proxy_type, addr.encode(), port, rdns,
|
self.proxy = (proxy_type, addr.encode(), port, rdns,
|
||||||
username.encode() if username else None,
|
username.encode() if username else None,
|
||||||
password.encode() if password else None)
|
password.encode() if password else None)
|
||||||
|
|
||||||
@ -292,18 +292,18 @@ class socksocket(socket.socket):
|
|||||||
# No username/password were entered, therefore we
|
# No username/password were entered, therefore we
|
||||||
# only support connections with no authentication.
|
# only support connections with no authentication.
|
||||||
self.sendall(b"\x05\x01\x00")
|
self.sendall(b"\x05\x01\x00")
|
||||||
|
|
||||||
# We'll receive the server's response to determine which
|
# We'll receive the server's response to determine which
|
||||||
# method was selected
|
# method was selected
|
||||||
chosen_auth = self._recvall(2)
|
chosen_auth = self._recvall(2)
|
||||||
|
|
||||||
if chosen_auth[0:1] != b"\x05":
|
if chosen_auth[0:1] != b"\x05":
|
||||||
# Note: string[i:i+1] is used because indexing of a bytestring
|
# Note: string[i:i+1] is used because indexing of a bytestring
|
||||||
# via bytestring[i] yields an integer in Python 3
|
# via bytestring[i] yields an integer in Python 3
|
||||||
raise GeneralProxyError("SOCKS5 proxy server sent invalid data")
|
raise GeneralProxyError("SOCKS5 proxy server sent invalid data")
|
||||||
|
|
||||||
# Check the chosen authentication method
|
# Check the chosen authentication method
|
||||||
|
|
||||||
if chosen_auth[1:2] == b"\x02":
|
if chosen_auth[1:2] == b"\x02":
|
||||||
# Okay, we need to perform a basic username/password
|
# Okay, we need to perform a basic username/password
|
||||||
# authentication.
|
# authentication.
|
||||||
@ -318,17 +318,17 @@ class socksocket(socket.socket):
|
|||||||
if auth_status[1:2] != b"\x00":
|
if auth_status[1:2] != b"\x00":
|
||||||
# Authentication failed
|
# Authentication failed
|
||||||
raise SOCKS5AuthError("SOCKS5 authentication failed")
|
raise SOCKS5AuthError("SOCKS5 authentication failed")
|
||||||
|
|
||||||
# Otherwise, authentication succeeded
|
# Otherwise, authentication succeeded
|
||||||
|
|
||||||
# No authentication is required if 0x00
|
# No authentication is required if 0x00
|
||||||
elif chosen_auth[1:2] != b"\x00":
|
elif chosen_auth[1:2] != b"\x00":
|
||||||
# Reaching here is always bad
|
# Reaching here is always bad
|
||||||
if chosen_auth[1:2] == b"\xFF":
|
if chosen_auth[1:2] == b"\xFF":
|
||||||
raise SOCKS5AuthError("All offered SOCKS5 authentication methods were rejected")
|
raise SOCKS5AuthError("All offered SOCKS5 authentication methods were rejected")
|
||||||
else:
|
else:
|
||||||
raise GeneralProxyError("SOCKS5 proxy server sent invalid data")
|
raise GeneralProxyError("SOCKS5 proxy server sent invalid data")
|
||||||
|
|
||||||
# Now we can request the actual connection
|
# Now we can request the actual connection
|
||||||
req = b"\x05\x01\x00"
|
req = b"\x05\x01\x00"
|
||||||
# If the given destination address is an IP address, we'll
|
# If the given destination address is an IP address, we'll
|
||||||
@ -349,7 +349,7 @@ class socksocket(socket.socket):
|
|||||||
|
|
||||||
req += struct.pack(">H", dest_port)
|
req += struct.pack(">H", dest_port)
|
||||||
self.sendall(req)
|
self.sendall(req)
|
||||||
|
|
||||||
# Get the response
|
# Get the response
|
||||||
resp = self._recvall(4)
|
resp = self._recvall(4)
|
||||||
if resp[0:1] != b"\x05":
|
if resp[0:1] != b"\x05":
|
||||||
@ -360,7 +360,7 @@ class socksocket(socket.socket):
|
|||||||
# Connection failed: server returned an error
|
# Connection failed: server returned an error
|
||||||
error = SOCKS5_ERRORS.get(status, "Unknown error")
|
error = SOCKS5_ERRORS.get(status, "Unknown error")
|
||||||
raise SOCKS5Error("{:#04x}: {}".format(status, error))
|
raise SOCKS5Error("{:#04x}: {}".format(status, error))
|
||||||
|
|
||||||
# Get the bound address/port
|
# Get the bound address/port
|
||||||
if resp[3:4] == b"\x01":
|
if resp[3:4] == b"\x01":
|
||||||
bound_addr = self._recvall(4)
|
bound_addr = self._recvall(4)
|
||||||
@ -369,7 +369,7 @@ class socksocket(socket.socket):
|
|||||||
bound_addr = self._recvall(ord(resp[4:5]))
|
bound_addr = self._recvall(ord(resp[4:5]))
|
||||||
else:
|
else:
|
||||||
raise GeneralProxyError("SOCKS5 proxy server sent invalid data")
|
raise GeneralProxyError("SOCKS5 proxy server sent invalid data")
|
||||||
|
|
||||||
bound_port = struct.unpack(">H", self._recvall(2))[0]
|
bound_port = struct.unpack(">H", self._recvall(2))[0]
|
||||||
self.proxy_sockname = bound_addr, bound_port
|
self.proxy_sockname = bound_addr, bound_port
|
||||||
if addr_bytes:
|
if addr_bytes:
|
||||||
@ -394,15 +394,15 @@ class socksocket(socket.socket):
|
|||||||
remote_resolve = True
|
remote_resolve = True
|
||||||
else:
|
else:
|
||||||
addr_bytes = socket.inet_aton(socket.gethostbyname(dest_addr))
|
addr_bytes = socket.inet_aton(socket.gethostbyname(dest_addr))
|
||||||
|
|
||||||
# Construct the request packet
|
# Construct the request packet
|
||||||
req = struct.pack(">BBH", 0x04, 0x01, dest_port) + addr_bytes
|
req = struct.pack(">BBH", 0x04, 0x01, dest_port) + addr_bytes
|
||||||
|
|
||||||
# The username parameter is considered userid for SOCKS4
|
# The username parameter is considered userid for SOCKS4
|
||||||
if username:
|
if username:
|
||||||
req += username
|
req += username
|
||||||
req += b"\x00"
|
req += b"\x00"
|
||||||
|
|
||||||
# DNS name if remote resolving is required
|
# DNS name if remote resolving is required
|
||||||
# NOTE: This is actually an extension to the SOCKS4 protocol
|
# NOTE: This is actually an extension to the SOCKS4 protocol
|
||||||
# called SOCKS4A and may not be supported in all cases.
|
# called SOCKS4A and may not be supported in all cases.
|
||||||
@ -439,25 +439,25 @@ class socksocket(socket.socket):
|
|||||||
# If we need to resolve locally, we do this now
|
# If we need to resolve locally, we do this now
|
||||||
addr = dest_addr if rdns else socket.gethostbyname(dest_addr)
|
addr = dest_addr if rdns else socket.gethostbyname(dest_addr)
|
||||||
|
|
||||||
self.sendall(b"CONNECT " + addr.encode() + b":" + str(dest_port).encode() +
|
self.sendall(b"CONNECT " + addr.encode() + b":" + str(dest_port).encode() +
|
||||||
b" HTTP/1.1\r\n" + b"Host: " + dest_addr.encode() + b"\r\n\r\n")
|
b" HTTP/1.1\r\n" + b"Host: " + dest_addr.encode() + b"\r\n\r\n")
|
||||||
|
|
||||||
# We just need the first line to check if the connection was successful
|
# We just need the first line to check if the connection was successful
|
||||||
fobj = self.makefile()
|
fobj = self.makefile()
|
||||||
status_line = fobj.readline()
|
status_line = fobj.readline()
|
||||||
fobj.close()
|
fobj.close()
|
||||||
|
|
||||||
if not status_line:
|
if not status_line:
|
||||||
raise GeneralProxyError("Connection closed unexpectedly")
|
raise GeneralProxyError("Connection closed unexpectedly")
|
||||||
|
|
||||||
try:
|
try:
|
||||||
proto, status_code, status_msg = status_line.split(" ", 2)
|
proto, status_code, status_msg = status_line.split(" ", 2)
|
||||||
except ValueError:
|
except ValueError:
|
||||||
raise GeneralProxyError("HTTP proxy server sent invalid response")
|
raise GeneralProxyError("HTTP proxy server sent invalid response")
|
||||||
|
|
||||||
if not proto.startswith("HTTP/"):
|
if not proto.startswith("HTTP/"):
|
||||||
raise GeneralProxyError("Proxy server does not appear to be an HTTP proxy")
|
raise GeneralProxyError("Proxy server does not appear to be an HTTP proxy")
|
||||||
|
|
||||||
try:
|
try:
|
||||||
status_code = int(status_code)
|
status_code = int(status_code)
|
||||||
except ValueError:
|
except ValueError:
|
||||||
@ -475,7 +475,7 @@ class socksocket(socket.socket):
|
|||||||
self.proxy_peername = addr, dest_port
|
self.proxy_peername = addr, dest_port
|
||||||
|
|
||||||
def connect(self, dest_pair):
|
def connect(self, dest_pair):
|
||||||
"""
|
"""
|
||||||
Connects to the specified destination through a proxy.
|
Connects to the specified destination through a proxy.
|
||||||
Uses the same API as socket's connect().
|
Uses the same API as socket's connect().
|
||||||
To select the proxy server, use set_proxy().
|
To select the proxy server, use set_proxy().
|
||||||
@ -500,7 +500,7 @@ class socksocket(socket.socket):
|
|||||||
proxy_port = proxy_port or DEFAULT_PORTS.get(proxy_type)
|
proxy_port = proxy_port or DEFAULT_PORTS.get(proxy_type)
|
||||||
if not proxy_port:
|
if not proxy_port:
|
||||||
raise GeneralProxyError("Invalid proxy type")
|
raise GeneralProxyError("Invalid proxy type")
|
||||||
|
|
||||||
try:
|
try:
|
||||||
# Initial connection to proxy server
|
# Initial connection to proxy server
|
||||||
_orig_socket.connect(self, (proxy_addr, proxy_port))
|
_orig_socket.connect(self, (proxy_addr, proxy_port))
|
||||||
|
@ -146,7 +146,7 @@ def download(slug_candidate):
|
|||||||
basename = os.path.basename(zip_filename)
|
basename = os.path.basename(zip_filename)
|
||||||
|
|
||||||
def generate():
|
def generate():
|
||||||
chunk_size = 102400 # 100kb
|
chunk_size = 102400 # 100kb
|
||||||
|
|
||||||
fp = open(zip_filename, 'rb')
|
fp = open(zip_filename, 'rb')
|
||||||
done = False
|
done = False
|
||||||
|
@ -20,6 +20,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
import os, sys, inspect, platform
|
import os, sys, inspect, platform
|
||||||
from onionshare import helpers
|
from onionshare import helpers
|
||||||
|
|
||||||
|
|
||||||
def get_onionshare_gui_dir():
|
def get_onionshare_gui_dir():
|
||||||
p = helpers.get_platform()
|
p = helpers.get_platform()
|
||||||
if p == 'Darwin':
|
if p == 'Darwin':
|
||||||
|
@ -26,7 +26,7 @@ import common
|
|||||||
try:
|
try:
|
||||||
import onionshare
|
import onionshare
|
||||||
except ImportError:
|
except ImportError:
|
||||||
sys.path.append(os.path.abspath(common.onionshare_gui_dir+"/.."))
|
sys.path.append(os.path.abspath(common.onionshare_gui_dir + "/.."))
|
||||||
import onionshare
|
import onionshare
|
||||||
from onionshare import strings, helpers, web
|
from onionshare import strings, helpers, web
|
||||||
|
|
||||||
|
@ -28,7 +28,7 @@ class Options(QtGui.QHBoxLayout):
|
|||||||
super(Options, self).__init__()
|
super(Options, self).__init__()
|
||||||
|
|
||||||
self.web = web
|
self.web = web
|
||||||
|
|
||||||
# close automatically
|
# close automatically
|
||||||
self.close_automatically = QtGui.QCheckBox()
|
self.close_automatically = QtGui.QCheckBox()
|
||||||
if self.web.stay_open:
|
if self.web.stay_open:
|
||||||
@ -46,4 +46,3 @@ class Options(QtGui.QHBoxLayout):
|
|||||||
self.web.set_stay_open(False)
|
self.web.set_stay_open(False)
|
||||||
else:
|
else:
|
||||||
self.web.set_stay_open(True)
|
self.web.set_stay_open(True)
|
||||||
|
|
||||||
|
@ -144,7 +144,7 @@ class ServerStatus(QtGui.QVBoxLayout):
|
|||||||
GMEM_DDESHARE = 0x2000
|
GMEM_DDESHARE = 0x2000
|
||||||
ctypes.windll.user32.OpenClipboard(None)
|
ctypes.windll.user32.OpenClipboard(None)
|
||||||
ctypes.windll.user32.EmptyClipboard()
|
ctypes.windll.user32.EmptyClipboard()
|
||||||
hcd = ctypes.windll.kernel32.GlobalAlloc(GMEM_DDESHARE, len(bytes(url))+1)
|
hcd = ctypes.windll.kernel32.GlobalAlloc(GMEM_DDESHARE, len(bytes(url)) + 1)
|
||||||
pch_data = ctypes.windll.kernel32.GlobalLock(hcd)
|
pch_data = ctypes.windll.kernel32.GlobalLock(hcd)
|
||||||
ctypes.cdll.msvcrt.strcpy(ctypes.c_char_p(pch_data), bytes(url))
|
ctypes.cdll.msvcrt.strcpy(ctypes.c_char_p(pch_data), bytes(url))
|
||||||
ctypes.windll.kernel32.GlobalUnlock(hcd)
|
ctypes.windll.kernel32.GlobalUnlock(hcd)
|
||||||
|
Loading…
Reference in New Issue
Block a user