diff --git a/onionshare/__init__.py b/onionshare/__init__.py
index 4c996225..4340b506 100644
--- a/onionshare/__init__.py
+++ b/onionshare/__init__.py
@@ -18,71 +18,11 @@ You should have received a copy of the GNU General Public License
along with this program. If not, see .
"""
-import os, sys, time, argparse, shutil, socket, threading
+import os, sys, time, argparse, threading
from . import strings, helpers, web
from .onion import *
-
-class OnionShare(object):
- """
- OnionShare is the main application class. Pass in options and run
- start_onion_service and it will do the magic.
- """
- def __init__(self, onion, debug=False, local_only=False, stay_open=False):
- # The Onion object
- self.onion = onion
-
- self.hidserv_dir = None
- self.onion_host = None
- self.stealth = None
-
- # files and dirs to delete on shutdown
- self.cleanup_filenames = []
-
- # debug mode
- if debug:
- web.debug_mode()
-
- # do not use tor -- for development
- self.local_only = local_only
-
- # automatically close when download is finished
- self.stay_open = stay_open
-
- def set_stealth(self, stealth):
- self.stealth = stealth
- self.onion.stealth = stealth
-
- def start_onion_service(self):
- """
- Start the onionshare onion service.
- """
- self.port = helpers.get_available_port(17600, 17650)
-
- if self.local_only:
- self.onion_host = '127.0.0.1:{0:d}'.format(self.port)
- return
-
- self.onion_host = self.onion.start_onion_service(self.port)
-
- if self.stealth:
- self.auth_string = self.onion.auth_string
-
- def cleanup(self):
- """
- Shut everything down and clean up temporary files, etc.
- """
- # cleanup files
- for filename in self.cleanup_filenames:
- if os.path.isfile(filename):
- os.remove(filename)
- elif os.path.isdir(filename):
- shutil.rmtree(filename)
- self.cleanup_filenames = []
-
- # cleanup the onion
- if self.onion:
- self.onion.cleanup()
+from .onionshare import OnionShare
def main(cwd=None):
@@ -144,6 +84,10 @@ def main(cwd=None):
print("")
sys.exit()
+ # Debug mode?
+ if debug:
+ web.debug_mode()
+
# Prepare files to share
print(strings._("preparing_files"))
web.set_file_info(filenames)
diff --git a/onionshare/onionshare.py b/onionshare/onionshare.py
new file mode 100644
index 00000000..71189fe9
--- /dev/null
+++ b/onionshare/onionshare.py
@@ -0,0 +1,80 @@
+# -*- coding: utf-8 -*-
+"""
+OnionShare | https://onionshare.org/
+
+Copyright (C) 2017 Micah Lee
+
+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 3 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 .
+"""
+
+import os, shutil
+
+from . import helpers
+
+class OnionShare(object):
+ """
+ OnionShare is the main application class. Pass in options and run
+ start_onion_service and it will do the magic.
+ """
+ def __init__(self, onion, debug=False, local_only=False, stay_open=False):
+ # The Onion object
+ self.onion = onion
+
+ self.hidserv_dir = None
+ self.onion_host = None
+ self.stealth = None
+
+ # files and dirs to delete on shutdown
+ self.cleanup_filenames = []
+
+ # do not use tor -- for development
+ self.local_only = local_only
+
+ # automatically close when download is finished
+ self.stay_open = stay_open
+
+ def set_stealth(self, stealth):
+ self.stealth = stealth
+ self.onion.stealth = stealth
+
+ def start_onion_service(self):
+ """
+ Start the onionshare onion service.
+ """
+ self.port = helpers.get_available_port(17600, 17650)
+
+ if self.local_only:
+ self.onion_host = '127.0.0.1:{0:d}'.format(self.port)
+ return
+
+ self.onion_host = self.onion.start_onion_service(self.port)
+
+ if self.stealth:
+ self.auth_string = self.onion.auth_string
+
+ def cleanup(self):
+ """
+ Shut everything down and clean up temporary files, etc.
+ """
+ # cleanup files
+ for filename in self.cleanup_filenames:
+ if os.path.isfile(filename):
+ os.remove(filename)
+ elif os.path.isdir(filename):
+ shutil.rmtree(filename)
+ self.cleanup_filenames = []
+
+ # cleanup the onion
+ if self.onion:
+ self.onion.cleanup()