1 module app; 2 3 import std.stdio; 4 import vibe.vibe; 5 import handlers; 6 import collector; 7 import std.socket; 8 9 string _version = "v0.0.1"; 10 string sourceCodeLink = "http://github.com/deavmi/almeida"; 11 string moneroAddress = "86reDCjk99VJ8QCo73WwM1AtfweD2fp8RPPWzNK56cdS1fAfxWCwixic9QrXkHyoJSe3gMZkAkb8aW5oU4cLEFucMLX4wqP"; 12 public Collector d; 13 14 void main() 15 { 16 writeln("Starting almeida..."); 17 18 /* Create a router */ 19 URLRouter router = new URLRouter(); 20 21 /* Setup handlers */ 22 setupHandlers(router); 23 24 /* Set listener information */ 25 HTTPServerSettings serverSettings = new HTTPServerSettings(); 26 27 /* TODO Make configurable from command-line */ 28 serverSettings.port = 9091; 29 serverSettings.bindAddresses = ["::"]; 30 serverSettings.errorPageHandler = toDelegate(&error); 31 32 /* Bind the settings and the router toghether */ 33 listenHTTP(serverSettings, router); 34 35 /* Setup data collection */ 36 Address yggdrasilControlNode = parseAddress("201:6c56:f9d5:b7a5:8f42:b1ab:9e0e:5169", 9090); 37 setupDataCollector(yggdrasilControlNode); 38 39 /* Start the webs erver loop */ 40 runApplication(); 41 } 42 43 void setupHandlers(URLRouter router) 44 { 45 /* TODO: Setup handlers here */ 46 router.get("/", &home); 47 router.get("/peerdb", &peerlist); 48 router.get("/peerinfo", &peerinfo); 49 router.get("/buildinfo", &buildinfo); 50 router.get("/builddb", &builddb); 51 router.get("/salazar", &buildinfo); 52 router.get("/about", &about); 53 router.get("/raw/kaka.js", serveStaticFile("source/kaka.js")); 54 router.get("/raw/peerinfo.js", serveStaticFile("source/peerinfo.js")); 55 //router.get("/raw/peerinfo.js", serveStaticFile("source/peerinfo.js")); 56 57 router.get("/raw/global.css", serveStaticFile("source/global.css")); 58 router.get("/api/", &apiHandler); 59 60 router.get("/api/builddb", &getbuilddb); 61 router.get("/api/peerinfo", &getpeerinfo); 62 } 63 64 void setupDataCollector(Address nodeAddress) 65 { 66 d = new Collector(nodeAddress); 67 d.start(); 68 }