diff options
Diffstat (limited to 'desktop/onionshare/onionshare.py')
-rw-r--r-- | desktop/onionshare/onionshare.py | 111 |
1 files changed, 0 insertions, 111 deletions
diff --git a/desktop/onionshare/onionshare.py b/desktop/onionshare/onionshare.py deleted file mode 100644 index 25c8ad90..00000000 --- a/desktop/onionshare/onionshare.py +++ /dev/null @@ -1,111 +0,0 @@ -# -*- coding: utf-8 -*- -""" -OnionShare | https://onionshare.org/ - -Copyright (C) 2014-2020 Micah Lee, et al. <micah@micahflee.com> - -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 <http://www.gnu.org/licenses/>. -""" - -import os, shutil - -from . import common, strings -from .onion import TorTooOld, TorErrorProtocolError -from .common import AutoStopTimer - - -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, common, onion, local_only=False, autostop_timer=0): - self.common = common - - self.common.log("OnionShare", "__init__") - - # The Onion object - self.onion = onion - - self.hidserv_dir = None - self.onion_host = None - self.port = None - - # files and dirs to delete on shutdown - self.cleanup_filenames = [] - - # do not use tor -- for development - self.local_only = local_only - - # optionally shut down after N hours - self.autostop_timer = autostop_timer - # init auto-stop timer thread - self.autostop_timer_thread = None - - def choose_port(self): - """ - Choose a random port. - """ - try: - self.port = self.common.get_available_port(17600, 17650) - except: - raise OSError(strings._("no_available_port")) - - def start_onion_service(self, mode_settings, await_publication=True): - """ - Start the onionshare onion service. - """ - self.common.log("OnionShare", "start_onion_service") - - if not self.port: - self.choose_port() - - if self.autostop_timer > 0: - self.autostop_timer_thread = AutoStopTimer(self.common, self.autostop_timer) - - if self.local_only: - self.onion_host = f"127.0.0.1:{self.port}" - return - - self.onion_host = self.onion.start_onion_service( - mode_settings, self.port, await_publication - ) - - if mode_settings.get("general", "client_auth"): - self.auth_string = self.onion.auth_string - - def stop_onion_service(self, mode_settings): - """ - Stop the onion service - """ - self.onion.stop_onion_service(mode_settings) - - def cleanup(self): - """ - Shut everything down and clean up temporary files, etc. - """ - self.common.log("OnionShare", "cleanup") - - # Cleanup files - try: - for filename in self.cleanup_filenames: - if os.path.isfile(filename): - os.remove(filename) - elif os.path.isdir(filename): - shutil.rmtree(filename) - except: - # Don't crash if file is still in use - pass - self.cleanup_filenames = [] |