示例#1
0
        public static byte[] Handle(Params p, MySqlCtx ctx)
        {
            string SQL = "INSERT INTO scores (scoreid, mapmd5, username, score, performance, maxcombo, hit300, hit100, hit50, hit0, hitGeki, hitKatu, perfect, mods, passed, ranked) VALUES (@scoreid, @mapmd5, @username, @score, @performance, @maxcombo, @hit300, @hit100, @hit50, @hit0, @hitGeki, @hitKatu, @perfect, @mods, @passed, @ranked) ";

            NameValueCollection bindings = new NameValueCollection();

            string[] ParsedScore = p.GetGetParams()["score"].Split(':');

            string MapMD5     = ParsedScore[0];
            string Username   = ParsedScore[1];
            string SubmitHash = ParsedScore[2];
            string Hit300     = ParsedScore[3];
            string Hit100     = ParsedScore[4];
            string Hit50      = ParsedScore[5];
            string HitGeki    = ParsedScore[6];
            string HitKatu    = ParsedScore[7];
            string Hit0       = ParsedScore[8];
            string Score      = ParsedScore[9];
            string MaxCombo   = ParsedScore[10];
            string Perfect    = ParsedScore[11];
            string Grade      = ParsedScore[12];
            string Mods       = ParsedScore[13];
            string Passed     = ParsedScore[14];
            string ScoreID;

            {
                string GetScoreIDSQL    = "SELECT * FROM scores";
                NameValueCollection[] z = MySqlCommandHandler.Select(ctx, GetScoreIDSQL);
                int ScoreIDInt          = z.Length + 1;
                ScoreID = ScoreIDInt.ToString();
            }

            bindings.Add("@scoreid", ScoreID);
            bindings.Add("@mapmd5", MapMD5);
            bindings.Add("@username", Username);
            bindings.Add("@score", Score);
            bindings.Add("@performance", 0.0.ToString());
            bindings.Add("@maxcombo", MaxCombo);
            bindings.Add("@hit300", Hit300);
            bindings.Add("@hit100", Hit100);
            bindings.Add("@hit50", Hit50);
            bindings.Add("@hit0", Hit0);
            bindings.Add("@hitGeki", HitGeki);
            bindings.Add("@hitKatu", HitKatu);
            bindings.Add("@perfect", Perfect);
            bindings.Add("@mods", Mods);
            bindings.Add("@passed", Passed);
            bindings.Add("@ranked", "True");

            MySqlCommandHandler.Insert(ctx, SQL, bindings);

            byte[] PostReplay        = p.GetPostParams();
            byte[] OffsetFixedReplay = new byte[PostReplay.Length - 136 - 29];
            Array.Copy(PostReplay, 136, OffsetFixedReplay, 0, PostReplay.Length - 136 - 29);

            File.WriteAllBytes("replays/" + ScoreID + ".osr", OffsetFixedReplay);

            return(new byte[1]);
        }
        public NenecchiHttpServer(string location, MySqlCtx mysql_connectiondata, bool autorun)
        {
            this.ServerLocation       = location;
            this.ServerLocationNoPort = "http://" + UrlParseUtils.ParseUntil(ServerLocation.Replace("http://", ""), ':');
            this.MySqlConnectionData  = mysql_connectiondata;

            Listener = new HttpListener();
            Listener.Prefixes.Add(ServerLocation);
            Listener.Start();

            RouteList.Init();

            if (autorun)
            {
                MonitorThread = new Thread(Monitor.MonitorStats.Monitoring);
                ListenForConnections();
            }
        }
示例#3
0
        public static byte[] Handler(Params p, MySqlCtx ctx)
        {
            string SQL = "SELECT * FROM users WHERE username=@user AND password=@pass";

            NameValueCollection bindings = new NameValueCollection();

            bindings.Add("@user", p.GetGetParams()["username"]);
            bindings.Add("@pass", p.GetGetParams()["password"]);

            NameValueCollection[] z = MySqlCommandHandler.Select(ctx, SQL, bindings);
            if (z.Length == 1)
            {
                return(Encoding.UTF8.GetBytes("1"));
            }
            else
            {
                return(Encoding.UTF8.GetBytes("0"));
            }
        }
示例#4
0
        public static byte[] Handle(Params p, MySqlCtx ctx)
        {
            string SQL = "SELECT * FROM scores WHERE mapmd5=@md5 ORDER BY score DESC";

            NameValueCollection bindings = new NameValueCollection();

            bindings.Add("@md5", p.GetGetParams()["c"]);

            NameValueCollection[] z = MySqlCommandHandler.Select(ctx, SQL, bindings);
            string ret = "";

            foreach (NameValueCollection c in z)
            {
                ret += String.Format("{0}:{1}:{2}:{3}:{4}:{5}:{6}:{7}:{8}:{9}:{10}:{11}\n",
                                     c["scoreid"], c["username"], c["score"], c["maxcombo"],
                                     c["hit50"], c["hit100"], c["hit300"], c["hit0"], c["hitKatu"],
                                     c["hitGeki"], c["perfect"], c["mods"]
                                     );
            }

            return(Encoding.UTF8.GetBytes(ret));
        }
示例#5
0
 public static byte[] Handle(Params p, MySqlCtx ctx)
 {
     return(File.ReadAllBytes("testoffset.bin"));
 }
示例#6
0
 public byte[] Handle(Params p, MySqlCtx ctx)
 {
     return(HandleFunction(p, ctx));
 }
示例#7
0
 public static byte[] Handle(Params p, MySqlCtx ctx)
 {
     return(Encoding.UTF8.GetBytes("Frontend Test"));
 }
示例#8
0
 public static byte[] Handle(Params p, MySqlCtx ctx)
 {
     return(new byte[1]);
 }