static void Main(string[] args) { string API_ADDR, API_NAME, API_PASS; if (!QuickSettings.Has("API-ADDR") || !QuickSettings.Has("API-NAME") || !QuickSettings.Has("API-PASS")) { Console.WriteLine("API settings missing"); Console.Write("Host: (IP:Port): "); API_ADDR = Console.ReadLine(); Console.Write("Username : "******"Password : "******"API-ADDR", API_ADDR); QuickSettings.Set("API-NAME", API_NAME); QuickSettings.Set("API-PASS", API_PASS); } BA = (BitAPI)XmlRpcProxyGen.Create(typeof(BitAPI)); BA.Url = string.Format("http://{0}/", QuickSettings.Get("API-ADDR")); BA.Headers.Add("Authorization", "Basic " + JsonConverter.B64enc(string.Format("{0}:{1}", QuickSettings.Get("API-NAME"), QuickSettings.Get("API-PASS")))); MsgListener = new Thread(new ThreadStart(msgListen)); MsgListener.IsBackground = true; MsgListener.Start(); Console.WriteLine("Ready"); while (!Console.KeyAvailable) { Thread.Sleep(500); } Console.WriteLine("Shutting down..."); cont = false; MsgListener.Join(); }
public static bool init(BitSettings BS) { BA = (BitAPI)CookComputing.XmlRpc.XmlRpcProxyGen.Create(typeof(BitAPI)); BA.Url = string.Format("http://{0}:{1}/",BS.IP,BS.Port); BA.Headers.Add("Authorization", "Basic " + Bitmessage.B64enc(string.Format("{0}:{1}",BS.UName,BS.UPass))); return true; }
/// <summary> /// List of all Bitmessage Messages in Inbox /// </summary> /// <param name="BA">BitAPI object</param> /// <returns>Array of Bitmessage Messages</returns> public static BitMsg[] getMessages(BitAPI BA) { BitMsgs MSG; try { MSG = JsonConvert.DeserializeObject <BitMsgs>(BA.getAllInboxMessages()); } catch { return(null); } if (MSG.inboxMessages != null) { for (int i = 0; i < MSG.inboxMessages.Length; i++) { //Decode Base64 MSG.inboxMessages[i].message = B64dec(MSG.inboxMessages[i].message.Trim()).Trim(); MSG.inboxMessages[i].subject = B64dec(MSG.inboxMessages[i].subject.Trim()).Trim(); //Convert line endings MSG.inboxMessages[i].message = MSG.inboxMessages[i].message .Replace("\r\n", "\n") .Replace("\r", "") .Replace("\n", "\r\n"); } } else { //Empty array MSG.inboxMessages = new BitMsg[0]; } return(MSG.inboxMessages); }
public static bool init(BitSettings BS) { BA = (BitAPI)CookComputing.XmlRpc.XmlRpcProxyGen.Create(typeof(BitAPI)); BA.Url = string.Format("http://{0}:{1}/", BS.IP, BS.Port); BA.Headers.Add("Authorization", "Basic " + Bitmessage.B64enc(string.Format("{0}:{1}", BS.UName, BS.UPass))); return(true); }
public BitmessageServer() { GenericMessageReceived += new GenericMessageReceivedHandler(BitmessageServer_GenericMessageReceived); GenericServerLog += new GenericServerLogHandler(BitmessageServer_GenericServerLog); BA = null; Addr = null; T = null; GenericServerLog(this, GenericLogType.Info, false, "Bitmessage Server created"); }
/// <summary> /// Generates a deterministic BitMessage Address /// </summary> /// <param name="BA">API</param> /// <param name="passphrase">Passphrase</param> /// <param name="label">Address label</param> /// <returns>Bitmessage Address</returns> public static string generateAddress(BitAPI BA, string passphrase, string label) { if (string.IsNullOrEmpty(label)) { var dt = DateTime.Now; label = "GENADDR-" + dt.ToShortDateString() + ";" + dt.ToShortTimeString(); } return(BA.createDeterministicAddresses(B64enc(passphrase), 1, 3, 1, false)); }
/// <summary> /// Generates a BitMessage Address /// </summary> /// <param name="BA">API</param> /// <param name="label">Address label</param> /// <returns>Bitmessage Address</returns> public static string generateAddress(BitAPI BA, string label) { if (string.IsNullOrEmpty(label)) { var dt = DateTime.Now; label = "GENADDR-" + dt.ToShortDateString() + ";" + dt.ToShortTimeString(); } return(BA.createRandomAddress(B64enc(label), false)); }
/// <summary> /// Returns a list of all Addresses /// </summary> /// <param name="BA">Bitmessage API</param> /// <returns>Array of addresses</returns> public static BitAddr[] getAddresses(BitAPI BA) { var ADDR = JsonConvert.DeserializeObject <BitAddrs>(BA.listAddresses()); if (ADDR.addresses == null) { ADDR.addresses = new BitAddr[] { }; } return(ADDR.addresses); }
/// <summary> /// Sends a bitmessage /// </summary> /// <param name="API">Bitmessage API</param> /// <param name="From">Sender</param> /// <param name="To">Receiver (broadcast allowed)</param> /// <param name="Subject">Message Subject</param> /// <param name="Message">Message Body</param> public static void Send(BitAPI API, string From, string To, string Subject, string Message) { if (To == BROADCAST) { API.sendBroadcast(From, B64enc(Subject), B64enc(Message)); } else { API.sendMessage(To, From, B64enc(Subject), B64enc(Message)); } }
static void Main(string[] args) { string API_ADDR, API_NAME, API_PASS; if (!QuickSettings.Has("API-ADDR") || !QuickSettings.Has("API-NAME") || !QuickSettings.Has("API-PASS")) { Console.WriteLine("API settings missing"); Console.Write("Host: (IP:Port): "); API_ADDR = Console.ReadLine(); Console.Write("Username : "******"Password : "******"API-ADDR", API_ADDR); QuickSettings.Set("API-NAME", API_NAME); QuickSettings.Set("API-PASS", API_PASS); } BA = (BitAPI)XmlRpcProxyGen.Create(typeof(BitAPI)); BA.Url = string.Format("http://{0}/", QuickSettings.Get("API-ADDR")); BA.Headers.Add("Authorization", "Basic " + JsonConverter.B64enc(string.Format("{0}:{1}", QuickSettings.Get("API-NAME"), QuickSettings.Get("API-PASS")))); DNS = JsonConverter.getAddrBook(BA.listAddressBookEntries()); cc = new List <HTTPConnection>(); Req = new Dictionary <string, HTTPConnection>(); MsgListener = new Thread(new ThreadStart(msgListen)); MsgListener.IsBackground = true; MsgListener.Start(); s = new HTTPServer(); s.NewConnection += new NewConnectionHandler(s_NewConnection); s.Start(); Console.WriteLine("Ready"); while (!Console.KeyAvailable) { Thread.Sleep(500); } Console.WriteLine("Shutting down..."); s.Stop(); s = null; MsgListener.Join(); }
public static Subscription[] getSubscriptions(BitAPI BA) { string s = BA.listSubscriptions(); Subs SUBS; try { SUBS = JsonConvert.DeserializeObject <Subs>(s); } catch { SUBS = new Subs(); } if (SUBS.Sub == null) { return(new Subscription[] { }); } return(SUBS.Sub); }
public void Start() { if (T != null) { Stop(); } GenericServerLog(this, GenericLogType.Info, false, "Starting Bitmessage server"); //Check if API has been set if (!QuickSettings.Has("API-ADDR") || !QuickSettings.Has("API-NAME") || !QuickSettings.Has("API-PASS") || !QuickSettings.Has("BM-ADDR")) { if (!AskAPI()) { GenericServerLog(this, GenericLogType.Fatal, true, "API Settings for Bitmessage have not been made. Please configure Bitmessage Plugin"); throw new Exception("API Settings for Bitmessage have not been made. Please configure Bitmessage Plugin"); } } Addr = QuickSettings.Get("BM-ADDR"); BA = (BitAPI)XmlRpcProxyGen.Create(typeof(BitAPI)); BA.Url = string.Format("http://{0}/", QuickSettings.Get("API-ADDR")); BA.Headers.Add("Authorization", "Basic " + JsonConverter.B64enc(string.Format("{0}:{1}", QuickSettings.Get("API-NAME"), QuickSettings.Get("API-PASS")))); try { if (BA.helloWorld("A", "B") != "A-B") { GenericServerLog(this, GenericLogType.Error, true, "API Settings for Bitmessage are wrong. The API seems to answer, but the answer is incorrect. Please check settings"); throw new Exception("API Settings for Bitmessage are wrong. The API seems to answer, but the answer is incorrect. Please check settings"); } } catch { GenericServerLog(this, GenericLogType.Error, true, "Cannot contact Bitmessage API. Verify the client is running, has the API enabled and the settings are correct"); throw new Exception("Cannot contact Bitmessage API. Verify the client is running, has the API enabled and the settings are correct"); } T = new Thread(run); T.IsBackground = true; T.Start(); }
/// <summary> /// Generates a BitMessage Address /// </summary> /// <param name="BA">API</param> /// <param name="label">Address label</param> /// <returns>Bitmessage Address</returns> public static string generateAddress(BitAPI BA,string label) { if(string.IsNullOrEmpty(label)) { var dt = DateTime.Now; label = "GENADDR-" + dt.ToShortDateString()+";"+dt.ToShortTimeString(); } return BA.createRandomAddress(B64enc(label), false); }
/// <summary> /// Sends a bitmessage /// </summary> /// <param name="API">Bitmessage API</param> /// <param name="From">Sender</param> /// <param name="To">Receiver (broadcast allowed)</param> /// <param name="Subject">Message Subject</param> /// <param name="Message">Message Body</param> public static void Send(BitAPI API, string From,string To,string Subject,string Message) { if (To == BROADCAST) { API.sendBroadcast(From, B64enc(Subject), B64enc(Message)); } else { API.sendMessage(To, From, B64enc(Subject), B64enc(Message)); } }
/// <summary> /// List of all Bitmessage Messages in Inbox /// </summary> /// <param name="BA">BitAPI object</param> /// <returns>Array of Bitmessage Messages</returns> public static BitMsg[] getMessages(BitAPI BA) { BitMsgs MSG; try { MSG = JsonConvert.DeserializeObject<BitMsgs>(BA.getAllInboxMessages()); } catch { return null; } if (MSG.inboxMessages != null) { for (int i = 0; i < MSG.inboxMessages.Length; i++) { //Decode Base64 MSG.inboxMessages[i].message = B64dec(MSG.inboxMessages[i].message.Trim()).Trim(); MSG.inboxMessages[i].subject = B64dec(MSG.inboxMessages[i].subject.Trim()).Trim(); //Convert line endings MSG.inboxMessages[i].message = MSG.inboxMessages[i].message .Replace("\r\n", "\n") .Replace("\r", "") .Replace("\n", "\r\n"); } } else { //Empty array MSG.inboxMessages = new BitMsg[0]; } return MSG.inboxMessages; }
/// <summary> /// Returns a list of all Addresses /// </summary> /// <param name="BA">Bitmessage API</param> /// <returns>Array of addresses</returns> public static BitAddr[] getAddresses(BitAPI BA) { var ADDR = JsonConvert.DeserializeObject<BitAddrs>(BA.listAddresses()); if (ADDR.addresses == null) { ADDR.addresses = new BitAddr[] { }; } return ADDR.addresses; }
/// <summary> /// Generates a deterministic BitMessage Address /// </summary> /// <param name="BA">API</param> /// <param name="passphrase">Passphrase</param> /// <param name="label">Address label</param> /// <returns>Bitmessage Address</returns> public static string generateAddress(BitAPI BA,string passphrase, string label) { if (string.IsNullOrEmpty(label)) { var dt = DateTime.Now; label = "GENADDR-" + dt.ToShortDateString() + ";" + dt.ToShortTimeString(); } return BA.createDeterministicAddresses(B64enc(passphrase), 1, 3, 1, false); }
public static Subscription[] getSubscriptions(BitAPI BA) { string s = BA.listSubscriptions(); Subs SUBS; try { SUBS = JsonConvert.DeserializeObject<Subs>(s); } catch { SUBS = new Subs(); } if (SUBS.Sub == null) { return new Subscription[] { }; } return SUBS.Sub; }