starting to build onionshare functionality into GUI

This commit is contained in:
Micah Lee 2014-05-29 23:23:40 -04:00
parent 3deab0dc40
commit 9d7689f578
5 changed files with 36 additions and 14 deletions

View File

@ -76,6 +76,7 @@ def load_strings(default="en"):
lang = lc[:2]
if lang in translated:
strings = translated[lang]
return strings
def file_crunching(filename):
# calculate filehash, file size

View File

@ -9,7 +9,7 @@
<div id="give-this-url">Give this URL to the person you're sending the file to:</div>
<div id="url"></div>
</div>
<div id="output">...</div>
<div id="output"></div>
<script src="jquery-1.11.1.min.js"></script>
<script src="onionshare.js"></script>

View File

@ -3,11 +3,16 @@ function send(msg) {
document.title = msg;
}
function set_basename(basename) {
function init(basename, strings) {
$('#basename').html(basename);
}
function set_strings(strings) {
strings = JSON.parse(strings)
$('#give-this-url').html(strings['give_this_url'])
}
function set_url(url) {
$('#url').html(url);
$('#url-wrapper').slideDown(200);
}
function update(msg) {
$('#output').append($('<p></p>').html(msg))
}

View File

@ -2,7 +2,8 @@ body {
background-color: #222222;
color: #aaffaa;
font-family: monospace;
width: 400px;
width: 600px;
height: 500px;
margin: 0 auto;
padding: 0;
}
@ -33,10 +34,12 @@ h1 .skull {
}
#url {
word-wrap: break-word;
font-size: 30px;
font-size: 25px;
color: #000000;
}
#output {
padding: 10px;
word-wrap: break-word;
overflow: auto;
}

View File

@ -14,19 +14,32 @@ def main():
if not filename:
return
# initialize onionshare
onionshare.load_strings()
# open the window, launching webkit browser
webgui.start_gtk_thread()
browser, web_recv, web_send = webgui.sync_gtk_msg(webgui.launch_window)(
title="OnionShare | {0}".format(basename),
quit_function=Global.set_quit)
# send the browser initial data
# wait for window to render
time.sleep(0.1)
web_send("set_basename('{0}')".format(basename))
web_send("set_strings('{0}')".format(json.dumps(onionshare.strings)))
# initialize onionshare
strings = onionshare.load_strings()
web_send("init('{0}', {1});".format(basename, json.dumps(strings)))
web_send("update('{0}')".format(strings['calculating_sha1']))
filehash, filesize = onionshare.file_crunching(filename)
port = onionshare.choose_port()
web_send("update('{0}')".format(strings['connecting_ctrlport'].format(port)))
onion_host = onionshare.start_hidden_service(port)
# punch a hole in the firewall
onionshare.tails_open_port(port)
url = 'http://{0}/{1}'.format(onion_host, onionshare.slug)
web_send("update('{0}')".format('Secret URL is {0}'.format(url)))
web_send("set_url('{0}')".format(url));
# main loop
last_second = time.time()