コード例 #1
0
    def __init__(self):
        # Prepare stuff
        init_logging()
        set_logging_level(VERBOSE, DEBUG)
        log.info("Initializing...")
        # ready field is set to True while connection to Syncthing
        # daemon is maintained.
        self.ready = False
        try:
            self.daemon = Daemon()
        except Exception as e:
            # Syncthing is not configured, most likely never launched.
            log.error("%s", e)
            log.error("Failed to read Syncthing configuration.")
            return
        # List of known repos + their states
        self.repos = {}
        self.rid_to_path = {}
        self.path_to_rid = {}
        # Dict of known repos -> set of associated devices
        self.rid_to_dev = {}
        # Set of online devices
        self.online_nids = set()
        # Set of online repos (at least one associated device connected)
        self.onlide_rids = set()
        # List (cache) for folders that are known to be placed below
        # some syncthing repo
        self.subfolders = set()
        # List (cache) for files that plugin were asked about
        self.files = {}
        self.downloads = set()
        # List of all ignore patterns and paths
        self.ignore_patterns = {}
        self.ignore_paths = {}
        # Connect to Daemon object signals
        self.daemon.connect("connected", self.cb_connected)
        self.daemon.connect("connection-error", self.cb_syncthing_con_error)
        self.daemon.connect("disconnected", self.cb_syncthing_disconnected)
        self.daemon.connect("device-connected", self.cb_device_connected)
        self.daemon.connect("device-disconnected", self.cb_device_disconnected)
        self.daemon.connect("folder-added", self.cb_syncthing_folder_added)
        self.daemon.connect("folder-scan-started",
                            self.cb_syncthing_folder_scan_started)
        self.daemon.connect("folder-sync-started",
                            self.cb_syncthing_folder_state_changed,
                            STATE_SYNCING)
        self.daemon.connect("folder-sync-finished",
                            self.cb_syncthing_folder_state_changed, STATE_IDLE)
        self.daemon.connect("folder-stopped", self.cb_syncthing_folder_stopped)
        self.daemon.connect("item-started", self.cb_syncthing_item_started)
        self.daemon.connect("item-updated", self.cb_syncthing_item_updated)

        log.info("Initialized.")
        # Let Daemon object connect to Syncthing
        self.daemon.set_refresh_interval(20)
        self.daemon.reconnect()
コード例 #2
0
 def __init__(self):
     # Prepare stuff
     init_logging()
     set_logging_level(VERBOSE, DEBUG)
     log.info("Initializing...")
     # ready field is set to True while connection to Syncthing
     # daemon is maintained.
     self.ready = False
     try:
         self.daemon = Daemon()
     except Exception, e:
         # Syncthing is not configured, most likely never launched.
         log.error("%s", e)
         log.error("Failed to read Syncthing configuration.")
         return
コード例 #3
0
		def __init__(self):
			# Prepare stuff
			init_logging()
			set_logging_level(VERBOSE, DEBUG)
			log.info("Initializing...")
			# ready field is set to True while connection to Syncthing
			# daemon is maintained.
			self.ready = False
			try:
				self.daemon = Daemon()
			except Exception, e:
				# Syncthing is not configured, most likely never launched.
				log.error("%s", e)
				log.error("Failed to read Syncthing configuration.")
				return
コード例 #4
0
	def __init__(self):
		# Prepare stuff
		init_logging()
		set_logging_level(VERBOSE, DEBUG)
		log.info("Initializing...")
		# ready field is set to True while connection to Syncthing
		# daemon is maintained.
		self.ready = False
		try:
			self.daemon = Daemon()
		except Exception as e:
			# Syncthing is not configured, most likely never launched.
			log.error("%s", e)
			log.error("Failed to read Syncthing configuration.")
			return
		# List of known repos + their states
		self.repos = {}
		self.rid_to_path = {}
		self.path_to_rid = {}
		# Dict of known repos -> set of associated devices
		self.rid_to_dev = {}
		# Set of online devices
		self.online_nids = set()
		# Set of online repos (at least one associated device connected)
		self.onlide_rids = set()
		# List (cache) for folders that are known to be placed below
		# some syncthing repo
		self.subfolders = set()
		# List (cache) for files that plugin were asked about
		self.files = {}
		self.downloads = set()
		# Connect to Daemon object signals
		self.daemon.connect("connected", self.cb_connected)
		self.daemon.connect("connection-error", self.cb_syncthing_con_error)
		self.daemon.connect("disconnected", self.cb_syncthing_disconnected)
		self.daemon.connect("device-connected", self.cb_device_connected)
		self.daemon.connect("device-disconnected", self.cb_device_disconnected)
		self.daemon.connect("folder-added", self.cb_syncthing_folder_added)
		self.daemon.connect("folder-sync-started", self.cb_syncthing_folder_state_changed, STATE_SYNCING)
		self.daemon.connect("folder-sync-finished", self.cb_syncthing_folder_state_changed, STATE_IDLE)
		self.daemon.connect("folder-stopped", self.cb_syncthing_folder_stopped)
		self.daemon.connect("item-started", self.cb_syncthing_item_started)
		self.daemon.connect("item-updated", self.cb_syncthing_item_updated)
		
		log.info("Initialized.")
		# Let Daemon object connect to Syncthing
		self.daemon.reconnect()
コード例 #5
0
#!/usr/bin/env python2
import os, sys, signal

def sigint(*a):
	print("\n*break*")
	sys.exit(0)

if __name__ == "__main__":
	signal.signal(signal.SIGINT, sigint)
	
	from syncthing_gtk.tools import init_logging, IS_WINDOWS
	init_logging()
	if IS_WINDOWS:
		from syncthing_gtk import windows, Configuration
		config = Configuration()
		if config["force_dark_theme"]:
			os.environ["GTK_THEME"] = "Adwaita:dark"
		windows.fix_localized_system_error_messages()
		windows.dont_use_localization_in_gtk()
		windows.override_menu_borders()
		from gi.repository import Gtk
		Gtk.IconTheme.get_default().prepend_search_path(os.path.abspath(os.path.join(os.getcwd(), "icons", "32x32", "apps")))
		Gtk.IconTheme.get_default().prepend_search_path(os.path.abspath(os.path.join(os.getcwd(), "icons")))
	
	from gi.repository import Gtk
	Gtk.IconTheme.get_default().append_search_path(os.path.join(os.getcwd(), "icons"))
	
	from syncthing_gtk import App
	App(".", "./icons").run(sys.argv)
コード例 #6
0
import os, sys, signal, gi


def sigint(*a):
    print("\n*break*")
    sys.exit(0)


if __name__ == "__main__":
    signal.signal(signal.SIGINT, sigint)

    gi.require_version('Gtk', '3.0')
    gi.require_version('Rsvg', '2.0')

    from syncthing_gtk.tools import init_logging, init_locale, IS_WINDOWS
    init_logging()

    if IS_WINDOWS:
        from syncthing_gtk.windows import (enable_localization,
                                           fix_localized_system_error_messages,
                                           override_menu_borders)
        from syncthing_gtk.configuration import Configuration
        config = Configuration()
        if config["force_dark_theme"]:
            os.environ["GTK_THEME"] = "Adwaita:dark"
        if config["language"] not in ("", "None", None):
            os.environ["LANGUAGE"] = config["language"]

        enable_localization()

    init_locale("locale/")