コード例 #1
0
ファイル: Blink1Server.cs プロジェクト: wcbarksdale/blink1
        //    /blink1/pattern/add -- Add color pattern to color pattern list
        static string Ublink1PatternAdd(HttpRequest request, Blink1Server blink1Server)
        {
            string pname      = request.Query.Get("pname");
            string patternstr = request.Query.Get("pattern");
            string statusstr  = "pattern add";

            Blink1Pattern pattern = null;

            if (pname != null && patternstr != null)
            {
                pattern = new Blink1Pattern(pname);
                Boolean goodpattern = pattern.parsePatternStr(patternstr);
                if (goodpattern)
                {
                    blink1Server.patterns[pname] = pattern; // NOTE: this replaces pattern if already exists
                }
                else
                {
                    statusstr = "error: pattern badly formatted";
                }
            }
            else
            {
                statusstr = "error: need 'pname' and 'pattern' (e.g. '2,#ff00ff,0.5,#00ff00,0.5') argument";
            }
            blink1Server.saveSettings();

            Dictionary <string, object> result = new Dictionary <string, object>();

            result.Add("status", statusstr);
            result.Add("pattern", pattern);
            return(JsonConvert.SerializeObject(result, Formatting.Indented, jsonSerializerSettings));
        }
コード例 #2
0
ファイル: Blink1Server.cs プロジェクト: wcbarksdale/blink1
        //    /blink1/pattern/delall -- Remove all color patterns from color pattern list
        static string Ublink1PatternDelAll(HttpRequest request, Blink1Server blink1Server)
        {
            blink1Server.stopAllPatterns();
            blink1Server.patterns.Clear();
            blink1Server.saveSettings();

            Dictionary <string, object> result = new Dictionary <string, object>();

            result.Add("status", "all patterns removed");
            return(JsonConvert.SerializeObject(result, Formatting.Indented, jsonSerializerSettings));
        }
コード例 #3
0
ファイル: Blink1Server.cs プロジェクト: wcbarksdale/blink1
        //    /blink1/input/delall -- Remove all configured inputs
        static string Ublink1InputDelAll(HttpRequest request, Blink1Server blink1Server)
        {
            foreach (KeyValuePair <string, Blink1Input> kvp in blink1Server.inputs)
            {
                kvp.Value.stop();
            }
            blink1Server.inputs.Clear();
            blink1Server.saveSettings();

            Dictionary <string, object> result = new Dictionary <string, object>();

            result.Add("status", "all patterns removed");
            return(JsonConvert.SerializeObject(result, Formatting.Indented, jsonSerializerSettings));
        }
コード例 #4
0
        //    /blink1/logging -- Set logging level (or turn it off)
        static string Ublink1Logging(HttpRequest request, Blink1Server blink1Server)
        {
            string loglevelstr = request.Query.Get("loglevel");
            int    loglevel    = (logToScreen) ? 1 : 0;

            if (loglevelstr != null)
            {
                loglevel    = int.Parse(loglevelstr, CultureInfo.InvariantCulture);
                logToScreen = (loglevel >= 1);
                blink1Server.saveSettings();
            }
            Log("loglevel: " + loglevel);

            Dictionary <string, object> result = new Dictionary <string, object>();

            result.Add("status", "logging");
            result.Add("loglevel", loglevel);
            return(JsonConvert.SerializeObject(result, Formatting.Indented, jsonSerializerSettings));
        }
コード例 #5
0
ファイル: Blink1Server.cs プロジェクト: wcbarksdale/blink1
        //    /blink1/pattern/del -- Remove color pattern from color pattern list
        static string Ublink1PatternDel(HttpRequest request, Blink1Server blink1Server)
        {
            string        pname     = request.Query.Get("pname");
            string        statusstr = "no pattern by that name";
            Blink1Pattern patt      = null;

            if (pname != null)
            {
                patt = blink1Server.patterns[pname];
                patt.stop();
                blink1Server.patterns.Remove(pname);
                statusstr = "pattern '" + pname + "' removed";
            }
            blink1Server.saveSettings();

            Dictionary <string, object> result = new Dictionary <string, object>();

            result.Add("status", statusstr);
            return(JsonConvert.SerializeObject(result, Formatting.Indented, jsonSerializerSettings));
        }
コード例 #6
0
ファイル: Blink1Server.cs プロジェクト: wcbarksdale/blink1
        //    /blink1/input/ifttt -- Add and Start watching messages from IFTTT webservice
        static string Ublink1InputIfttt(HttpRequest request, Blink1Server blink1Server)
        {
            string pname    = request.Query.Get("pname");
            string iname    = request.Query.Get("iname");
            string rulename = request.Query.Get("arg1");
            string test     = request.Query.Get("test");

            if (pname == null)
            {
                pname = iname;
            }
            Boolean testmode = (test == null) ? false : (test.Equals("on") || test.Equals("true"));

            string statusstr = "must specifiy 'iname' and 'arg1' (rulename)";

            Blink1Input input = null;

            if (rulename != null && iname != null)
            {
                statusstr = "input ifttt";
                rulename  = rulename.Trim();
                input     = new Blink1Input(blink1Server, iname, pname, "ifttt", rulename);

                if (testmode)   // override periodic fetch for immediate fetch
                {
                    Blink1Input.getIftttResponse(false);
                }
                input.updateIftttInput();
                if (!testmode)
                {
                    blink1Server.inputs[iname] = input; // NOTE: this replaces input if already exists
                }
            }
            blink1Server.saveSettings();

            Dictionary <string, object> result = new Dictionary <string, object>();

            result.Add("status", statusstr);
            result.Add("input", input);
            return(JsonConvert.SerializeObject(result, Formatting.Indented, jsonSerializerSettings));
        }
コード例 #7
0
ファイル: Blink1Server.cs プロジェクト: wcbarksdale/blink1
        //    /blink1/input/del -- Remove a configured input
        static string Ublink1InputDel(HttpRequest request, Blink1Server blink1Server)
        {
            string      iname     = request.Query.Get("iname");
            string      statusstr = "no input by that name";
            Blink1Input input     = null;

            if (iname != null)
            {
                input = blink1Server.inputs[iname];
                input.stop();
                blink1Server.inputs.Remove(iname);
                statusstr = "input '" + iname + "' removed";
            }

            blink1Server.saveSettings();

            Dictionary <string, object> result = new Dictionary <string, object>();

            result.Add("status", statusstr);
            return(JsonConvert.SerializeObject(result, Formatting.Indented, jsonSerializerSettings));
        }
コード例 #8
0
ファイル: Blink1Server.cs プロジェクト: wcbarksdale/blink1
        //    /blink1/input/script -- Add and Start command-line script executer
        static string Ublink1InputScript(HttpRequest request, Blink1Server blink1Server)
        {
            string pname = request.Query.Get("pname");
            string iname = request.Query.Get("iname");
            string fpath = request.Query.Get("arg1").Trim();
            string test  = request.Query.Get("test");

            if (pname == null)
            {
                pname = iname;
            }
            Boolean testmode = (test == null) ? false : (test.Equals("on") || test.Equals("true"));

            string statusstr = "must specifiy 'iname' and 'arg1' (script filepath)";

            Blink1Input input = null;

            if (fpath != null && iname != null)
            {
                statusstr = "input script";
                input     = new Blink1Input(blink1Server, iname, pname, "script", fpath);

                input.updateScriptInput();
                if (!testmode)
                {
                    blink1Server.inputs[iname] = input; // NOTE: this replaces input if already exists
                }
            }
            blink1Server.saveSettings();

            Dictionary <string, object> result = new Dictionary <string, object>();

            result.Add("status", statusstr);
            result.Add("input", input);
            return(JsonConvert.SerializeObject(result, Formatting.Indented, jsonSerializerSettings));
        }
コード例 #9
0
ファイル: blink1ControlServer.cs プロジェクト: KiL89/blink1
        //    /blink1/input/url -- Add and Start URL watcher on given URL
        static string Ublink1InputUrl(HttpRequest request, Blink1Server blink1Server)
        {
            string pname = request.Query.Get("pname");
            string iname = request.Query.Get("iname");
            string url = request.Query.Get("arg1");
            string test = request.Query.Get("test");
            if (pname == null) pname = iname;
            Boolean testmode = (test == null) ? false : (test.Equals("on") || test.Equals("true"));

            string statusstr = "must specifiy 'iname' and 'arg1' (url)";

            Blink1Input input = null;
            if (url != null && iname != null) {
                statusstr = "input url";
                input = new Blink1Input(iname, "url", url, null, null);
                input.blink1Server = blink1Server;
                input.pname = pname;

                input.updateUrlInput();
                if (!testmode) {
                    blink1Server.inputs[iname] = input; // NOTE: this replaces input if already exists
                }
            }

            blink1Server.saveSettings();

            Dictionary<string, object> result = new Dictionary<string, object>();
            result.Add("status", statusstr);
            result.Add("input", input);
            return JsonConvert.SerializeObject(result, Formatting.Indented,jsonSerializerSettings);
        }
コード例 #10
0
ファイル: Blink1Server.cs プロジェクト: GotenXiao/blink1
        //    /blink1/input/script -- Add and Start command-line script executer
        static string Ublink1InputScript(HttpRequest request, Blink1Server blink1Server)
        {
            string pname = request.Query.Get("pname");
            string iname = request.Query.Get("iname");
            string fpath = request.Query.Get("arg1").Trim();
            string test = request.Query.Get("test");
            if (pname == null) pname = iname;
            Boolean testmode = (test == null) ? false : (test.Equals("on") || test.Equals("true"));

            string statusstr = "must specifiy 'iname' and 'arg1' (script filepath)";

            Blink1Input input = null;
            if (fpath != null && iname != null) {
                statusstr = "input script";
                input = new Blink1Input(blink1Server, iname, pname, "script", fpath);

                input.updateScriptInput();
                if (!testmode) {
                    blink1Server.inputs[iname] = input; // NOTE: this replaces input if already exists
                }
            }
            blink1Server.saveSettings();

            Dictionary<string, object> result = new Dictionary<string, object>();
            result.Add("status", statusstr);
            result.Add("input", input);
            return JsonConvert.SerializeObject(result, Formatting.Indented, jsonSerializerSettings);
        }
コード例 #11
0
ファイル: Blink1Server.cs プロジェクト: GotenXiao/blink1
        //    /blink1/input/delall -- Remove all configured inputs
        static string Ublink1InputDelAll(HttpRequest request, Blink1Server blink1Server)
        {
            foreach (KeyValuePair<string, Blink1Input> kvp in blink1Server.inputs) {
                kvp.Value.stop();
            }
            blink1Server.inputs.Clear();
            blink1Server.saveSettings();

            Dictionary<string, object> result = new Dictionary<string, object>();
            result.Add("status", "all patterns removed");
            return JsonConvert.SerializeObject(result, Formatting.Indented, jsonSerializerSettings);
        }
コード例 #12
0
ファイル: Blink1Server.cs プロジェクト: GotenXiao/blink1
        //    /blink1/input/del -- Remove a configured input
        static string Ublink1InputDel(HttpRequest request, Blink1Server blink1Server)
        {
            string iname = request.Query.Get("iname");
            string statusstr = "no input by that name";
            Blink1Input input = null;
            if (iname != null) {
                if (blink1Server.inputs.TryGetValue(iname, out input)) {
                    input.stop();
                    blink1Server.inputs.Remove(iname);
                    statusstr = "input '" + iname + "' removed";
                }
            }

            blink1Server.saveSettings();

            Dictionary<string, object> result = new Dictionary<string, object>();
            result.Add("status", statusstr);
            return JsonConvert.SerializeObject(result, Formatting.Indented, jsonSerializerSettings);
        }
コード例 #13
0
ファイル: Blink1Server.cs プロジェクト: GotenXiao/blink1
        //    /blink1/pattern/delall -- Remove all color patterns from color pattern list
        static string Ublink1PatternDelAll(HttpRequest request, Blink1Server blink1Server)
        {
            blink1Server.stopAllPatterns();
            blink1Server.patterns.Clear();
            blink1Server.saveSettings();

            Dictionary<string, object> result = new Dictionary<string, object>();
            result.Add("status", "all patterns removed");
            return JsonConvert.SerializeObject(result, Formatting.Indented, jsonSerializerSettings);
        }
コード例 #14
0
ファイル: Blink1Server.cs プロジェクト: GotenXiao/blink1
        //    /blink1/pattern/del -- Remove color pattern from color pattern list
        static string Ublink1PatternDel(HttpRequest request, Blink1Server blink1Server)
        {
            string pname = request.Query.Get("pname");
            string statusstr = "no pattern by that name";
            Blink1Pattern patt = null;
            if (pname != null) {
                if( blink1Server.patterns.TryGetValue(pname, out patt) ) {
                    patt.stop();
                    blink1Server.patterns.Remove(pname);
                    statusstr = "pattern '" + pname + "' removed";
                }
            }
            blink1Server.saveSettings();

            Dictionary<string, object> result = new Dictionary<string, object>();
            result.Add("status", statusstr);
            return JsonConvert.SerializeObject(result, Formatting.Indented, jsonSerializerSettings);
        }
コード例 #15
0
ファイル: Blink1Server.cs プロジェクト: GotenXiao/blink1
        //    /blink1/pattern/add -- Add color pattern to color pattern list
        static string Ublink1PatternAdd(HttpRequest request, Blink1Server blink1Server)
        {
            string pname = request.Query.Get("pname");
            string patternstr = request.Query.Get("pattern");
            string statusstr = "pattern add";

            Blink1Pattern pattern = null;
            if (pname != null && patternstr != null) {
                pattern = new Blink1Pattern(pname);
                Boolean goodpattern = pattern.parsePatternStr(patternstr);
                if (goodpattern) {
                    blink1Server.patterns[pname] = pattern; // NOTE: this replaces pattern if already exists
                }
                else {
                    statusstr = "error: pattern badly formatted";
                }
            }
            else {
                statusstr = "error: need 'pname' and 'pattern' (e.g. '2,#ff00ff,0.5,#00ff00,0.5') argument";
            }
            blink1Server.saveSettings();

            Dictionary<string, object> result = new Dictionary<string, object>();
            result.Add("status", statusstr);
            result.Add("pattern", pattern);
            return JsonConvert.SerializeObject(result, Formatting.Indented, jsonSerializerSettings);
        }
コード例 #16
0
ファイル: Blink1Server.cs プロジェクト: GotenXiao/blink1
        //    /blink1/logging -- Set logging level (or turn it off)
        static string Ublink1Logging(HttpRequest request, Blink1Server blink1Server)
        {
            string loglevelstr = request.Query.Get("loglevel");
            int loglevel = (logToScreen) ? 1 : 0;
            if (loglevelstr != null) {
                loglevel = int.Parse(loglevelstr, CultureInfo.InvariantCulture);
                logToScreen = (loglevel >= 1);
                blink1Server.saveSettings();
            }
            Log("loglevel: " + loglevel);

            Dictionary<string, object> result = new Dictionary<string, object>();
            result.Add("status", "logging");
            result.Add("loglevel", loglevel);
            return JsonConvert.SerializeObject(result, Formatting.Indented, jsonSerializerSettings);
        }
コード例 #17
0
 private void stripMenuStartMinimized_Click(object sender, EventArgs e)
 {
     Blink1Server.startMinimized = stripMenuStartMinimized.Checked;
     mAllowVisible = !Blink1Server.startMinimized;
     blink1Server.saveSettings();
 }
コード例 #18
0
ファイル: Blink1Server.cs プロジェクト: GotenXiao/blink1
        //    /blink1/input/ifttt -- Add and Start watching messages from IFTTT webservice
        static string Ublink1InputIfttt(HttpRequest request, Blink1Server blink1Server)
        {
            string pname = request.Query.Get("pname");
            string iname = request.Query.Get("iname");
            string rulename = request.Query.Get("arg1");
            string test = request.Query.Get("test");
            if (pname == null) pname = iname;
            Boolean testmode = (test == null) ? false : (test.Equals("on") || test.Equals("true"));

            string statusstr = "must specifiy 'iname' and 'arg1' (rulename)";

            Blink1Input input = null;
            if (rulename != null && iname != null) {
                statusstr = "input ifttt";
                rulename = rulename.Trim();
                input = new Blink1Input(blink1Server, iname, pname, "ifttt", rulename);

                if (testmode) { // override periodic fetch for immediate fetch
                    Blink1Input.getIftttResponse(false);
                }
                input.updateIftttInput();
                if (!testmode) {
                    blink1Server.inputs[iname] = input; // NOTE: this replaces input if already exists
                }
            }
            blink1Server.saveSettings();

            Dictionary<string, object> result = new Dictionary<string, object>();
            result.Add("status", statusstr);
            result.Add("input", input);
            return JsonConvert.SerializeObject(result, Formatting.Indented, jsonSerializerSettings);
        }