diff --git a/plugins/Sidebar/SidebarPlugin.py b/plugins/Sidebar/SidebarPlugin.py
index 76effe84..7479c64e 100644
--- a/plugins/Sidebar/SidebarPlugin.py
+++ b/plugins/Sidebar/SidebarPlugin.py
@@ -62,13 +62,15 @@ class UiWebsocketPlugin(object):
connected = len([peer for peer in site.peers.values() if peer.connection and peer.connection.connected])
connectable = len([peer_id for peer_id in site.peers.keys() if not peer_id.endswith(":0")])
onion = len([peer_id for peer_id in site.peers.keys() if ".onion" in peer_id])
+ i2p = len([peer_id for peer_id in site.peers.keys() if ".i2p" in peer_id])
peers_total = len(site.peers)
if peers_total:
percent_connected = float(connected) / peers_total
percent_connectable = float(connectable) / peers_total
percent_onion = float(onion) / peers_total
+ percent_i2p = float(i2p) / peers_total
else:
- percent_connectable = percent_connected = percent_onion = 0
+ percent_connectable = percent_connected = percent_onion = percent_i2p = 0
body.append("""
@@ -76,12 +78,14 @@ class UiWebsocketPlugin(object):
+
connected:{connected}
Connectable:{connectable}
Onion:{onion}
+
I2P:{i2p}
Total:{peers_total}
diff --git a/plugins/Stats/StatsPlugin.py b/plugins/Stats/StatsPlugin.py
index d21b2b80..a601e4b2 100644
--- a/plugins/Stats/StatsPlugin.py
+++ b/plugins/Stats/StatsPlugin.py
@@ -126,6 +126,11 @@ class UiRequestPlugin(object):
for site_address, onion in main.file_server.tor_manager.site_onions.items():
yield "- %-34s: %s " % (site_address, onion)
+ # I2P Destinations
+ yield "
I2P Destinations (status: %s): " % main.file_server.i2p_manager.status
+ for site_address, dest in main.file_server.i2p_manager.site_dests.items():
+ yield "- %-34s: %s " % (site_address, dest.base32())
+
# Db
yield "
Db: "
for db in sys.modules["Db.Db"].opened_dbs:
diff --git a/src/Ui/UiWebsocket.py b/src/Ui/UiWebsocket.py
index 857b9e57..28c48f61 100644
--- a/src/Ui/UiWebsocket.py
+++ b/src/Ui/UiWebsocket.py
@@ -39,7 +39,8 @@ class UiWebsocket(object):
# Add open fileserver port message or closed port error to homepage at first request after start
self.site.page_requested = True # Dont add connection notification anymore
file_server = sys.modules["main"].file_server
- if file_server.port_opened is None or file_server.tor_manager.start_onions is None:
+ if file_server.port_opened is None or file_server.tor_manager.start_onions is None or \
+ file_server.i2p_manager.start_dests is None:
self.site.page_requested = False # Not ready yet, check next time
elif file_server.port_opened is True:
self.site.notifications.append([
@@ -66,15 +67,43 @@ class UiWebsocket(object):
""",
0
])
- elif file_server.port_opened is False and file_server.tor_manager.start_onions:
+ elif config.i2p == "always" and file_server.i2p_manager.start_dests:
self.site.notifications.append([
"done",
"""
- Successfully started Tor onion hidden services.
- For faster connections open %s port on your router.
- """ % config.fileserver_port,
+ I2P mode active, every connection using I2P route.
+ Successfully started I2P Destinations.
+ """,
10000
])
+ elif config.i2p == "always" and file_server.i2p_manager.start_dests is not False:
+ self.site.notifications.append([
+ "error",
+ """
+ I2P mode active, every connection using I2P route.
+ Unable to start I2P Destinations, please check your config.
+ """,
+ 0
+ ])
+ elif file_server.port_opened is False:
+ if file_server.tor_manager.start_onions:
+ self.site.notifications.append([
+ "done",
+ """
+ Successfully started Tor onion hidden services.
+ For faster connections open %s port on your router.
+ """ % config.fileserver_port,
+ 10000
+ ])
+ if file_server.i2p_manager.start_dests:
+ self.site.notifications.append([
+ "done",
+ """
+ Successfully started I2P Destinations.
+ For faster connections open %s port on your router.
+ """ % config.fileserver_port,
+ 10000
+ ])
else:
self.site.notifications.append([
"error",
@@ -231,6 +260,8 @@ class UiWebsocket(object):
"fileserver_port": config.fileserver_port,
"tor_enabled": sys.modules["main"].file_server.tor_manager.enabled,
"tor_status": sys.modules["main"].file_server.tor_manager.status,
+ "i2p_enabled": sys.modules["main"].file_server.i2p_manager.enabled,
+ "i2p_status": sys.modules["main"].file_server.i2p_manager.status,
"ui_ip": config.ui_ip,
"ui_port": config.ui_port,
"version": config.version,
@@ -364,7 +395,8 @@ class UiWebsocket(object):
self.response(to, "ok")
else:
if len(site.peers) == 0:
- if sys.modules["main"].file_server.port_opened or sys.modules["main"].file_server.tor_manager.start_onions:
+ if sys.modules["main"].file_server.port_opened or sys.modules["main"].file_server.tor_manager.start_onions or \
+ sys.modules["main"].file_server.i2p_manager.start_dests:
if notification:
self.cmd("notification", ["info", "No peers found, but your content is ready to access.", 5000])
if callback: