1 package net.pterodactylus.sone.main
3 import com.google.inject.*
4 import freenet.client.*
5 import freenet.clients.http.*
7 import freenet.pluginmanager.*
8 import javax.inject.Provider
9 import javax.inject.Singleton
12 * Guice [Module] that supplies some objects that are in fact supplied by the Freenet node.
14 class FreenetModule(private val pluginRespirator: PluginRespirator) : Module {
16 override fun configure(binder: Binder): Unit = binder.run {
17 bind(PluginRespirator::class.java).toProvider(Provider<PluginRespirator> { pluginRespirator })
18 pluginRespirator.node!!.let { node -> bind(Node::class.java).toProvider(Provider<Node> { node }) }
19 bind(HighLevelSimpleClient::class.java).toProvider(Provider<HighLevelSimpleClient> { pluginRespirator.hlSimpleClient!! })
20 bind(ToadletContainer::class.java).toProvider(Provider<ToadletContainer> { pluginRespirator.toadletContainer })
21 bind(PageMaker::class.java).toProvider(Provider<PageMaker> { pluginRespirator.pageMaker })
26 fun getSessionManager() = pluginRespirator.getSessionManager("Sone")!!