Exemple #1
0
        private void GetByPlatformAccountId(HydraRequest request)
        {
            IHydraItem item = HydraItemDeserializer.Deserialize(request.PostData);

            HydraHashMap    map = item as HydraHashMap;
            HydraUtf8String platformAccountIdString = map.Items["value"] as HydraUtf8String;
            ulong           platformAccountId       = ulong.Parse(platformAccountIdString.Value);

            HydraHashMap result = new HydraHashMap(new Dictionary <string, IHydraItem>()
            {
                { "getUsersByProperty", new HydraHashMap(new Dictionary <string, IHydraItem>()
                    {
                        { "result", new HydraHashMap(new Dictionary <string, IHydraItem>()
                            {
                                { "items", new HydraHashMap(new Dictionary <string, IHydraItem>()
                                    {
                                        { "item", new HydraUtf8String("1") }
                                    }) }
                            }) }
                    }) }
            });

            HydraResponse response = new HydraResponse(Connection, result);

            response.Send();
        }
        /*
         * Parameters:
         * 0: channel id
         * 1: page number
         * 2: page size
         * 3: include non-published? 1 or 0
         */
        private void GetItemsByChannel(HydraRequest request)
        {
            int channelId = int.Parse(request.Parameters[0]);

            Channel channel = Channel.ChannelGetById(channelId);
            List <ChannelMessage> messages = ChannelMessage.GetMessagesForChannel(channel);

            HydraArray array = new HydraArray();

            foreach (ChannelMessage message in messages)
            {
                HydraHashMap map = new HydraHashMap();

                foreach (var str in message.Strings)
                {
                    map.Items.Add(str.Key, new HydraUtf8String(str.Value));
                }

                array.Items.Add(new HydraHashMap(new Dictionary <string, IHydraItem>()
                {
                    { "input", map }
                }));
            }

            HydraResponse response = new HydraResponse(Connection, array);

            response.Send();
        }
Exemple #3
0
        public Screenshot(Game game, HydraInt64 profileId, HydraHashMap metadata, HydraBinary imageData)
        {
            byte[] random = new byte[8];
            using (var rng = System.Security.Cryptography.RandomNumberGenerator.Create())
            {
                rng.GetBytes(random);
            }

            long newGuid = BitConverter.ToInt64(random, 0);

            Data = new HydraHashMap(new Dictionary <string, IHydraItem>()
            {
                { "emu", new HydraBool(true) },
                { "rating", new HydraInt32(0) },
                { "tags", new HydraArray() },
                { "url", new HydraUtf8String("") },
                { "created_at", new HydraDateTime(DateTime.Now) },
                {
                    "rating_history",
                    new HydraHashMap(new Dictionary <string, IHydraItem>()
                    {
                        {
                            "monthly",
                            new HydraHashMap(new Dictionary <string, IHydraItem>()
                            {
                                { "count", new HydraInt32(0) },
                                { "sum", new HydraInt32(0) },
                                { "average", new HydraInt32(0) },
                            })
                        },
                        {
                            "daily",
                            new HydraHashMap(new Dictionary <string, IHydraItem>()
                            {
                                { "count", new HydraInt32(0) },
                                { "sum", new HydraInt32(0) },
                                { "average", new HydraInt32(0) },
                            })
                        },
                        {
                            "weekly",
                            new HydraHashMap(new Dictionary <string, IHydraItem>()
                            {
                                { "count", new HydraInt32(0) },
                                { "sum", new HydraInt32(0) },
                                { "average", new HydraInt32(0) },
                            })
                        }
                    })
                },
                { "meta_data", metadata },
                { "guid", new HydraInt64(newGuid) },
                { "owner_guid", new HydraInt64(1) },
                { "size", new HydraInt32(imageData.Value.Length) }
            });

            ImageData = imageData.Value;
        }
Exemple #4
0
 private static Character LoadCharacterFile(string characterFile)
 {
     using (Stream s = File.OpenRead(characterFile))
     {
         HydraHashMap map = new HydraHashMap();
         map.Deserialize(s);
         Character character = new Character(map);
         return(character);
     }
 }
        private void Update(HydraRequest request)
        {
            List <IHydraItem> items = HydraItemDeserializer.DeserializeAll(request.PostData);

            HydraInt64   profileId = items[0] as HydraInt64;
            HydraHashMap map       = items[1] as HydraHashMap;

            HydraResponse response = new HydraResponse(Connection, new HydraNone());

            response.Send();
        }
Exemple #6
0
        public Character(Game game, HydraInt64 profileId, HydraHashMap metadata, HydraBinary imageData)
        {
            metadata.Items["Avatar Version"] = new HydraUtf8String(((HydraInt32)metadata.Items["Avatar Version"]).Value.ToString());

            Data = new HydraHashMap(new Dictionary <string, IHydraItem>()
            {
                { "emu", new HydraBool(true) },
                { "rating", new HydraInt32(0) },
                { "tags", new HydraArray() },
                { "url", new HydraUtf8String("") },
                { "created_at", new HydraDateTime(DateTime.Now) },
                {
                    "rating_history",
                    new HydraHashMap(new Dictionary <string, IHydraItem>()
                    {
                        {
                            "monthly",
                            new HydraHashMap(new Dictionary <string, IHydraItem>()
                            {
                                { "count", new HydraInt32(0) },
                                { "sum", new HydraInt32(0) },
                                { "average", new HydraInt32(0) },
                            })
                        },
                        {
                            "daily",
                            new HydraHashMap(new Dictionary <string, IHydraItem>()
                            {
                                { "count", new HydraInt32(0) },
                                { "sum", new HydraInt32(0) },
                                { "average", new HydraInt32(0) },
                            })
                        },
                        {
                            "weekly",
                            new HydraHashMap(new Dictionary <string, IHydraItem>()
                            {
                                { "count", new HydraInt32(0) },
                                { "sum", new HydraInt32(0) },
                                { "average", new HydraInt32(0) },
                            })
                        }
                    })
                },
                { "queue_count", new HydraInt32(0) },
                { "meta_data", metadata },
                { "guid", GenerateGuid() },
                { "owner_guid", new HydraInt64(1) },
                { "size", new HydraInt32(imageData.Value.Length) }
            });

            ImageData = imageData.Value;
        }
        private void CloseFile()
        {
            if (CurrentStream != null)
            {
                CurrentStream.Close();
            }
            CurrentFile = null;
            SaveMap     = null;
            MetadataMap = null;

            SaveButton.Enabled         = false;
            CurrentCharacterLabel.Text = String.Format("Current character:");
            CharacterNameField.Enabled = false;
            CharacterNameField.Text    = "";
        }
Exemple #8
0
        private void DisplayUser(HydraRequest request)
        {
            IHydraItem item = HydraItemDeserializer.Deserialize(request.PostData);

            HydraHashMap map    = item as HydraHashMap;
            HydraInt32   userId = map.Items["user_id"] as HydraInt32;

            HydraHashMap result = new HydraHashMap(new Dictionary <string, IHydraItem>()
            {
                { "username", new HydraUtf8StringAsBinary("user") }
            });
            HydraResponse response = new HydraResponse(Connection, result);

            response.Send();
        }
Exemple #9
0
        private void GetByName(HydraRequest request)
        {
            IHydraItem item = HydraItemDeserializer.Deserialize(request.PostData);

            HydraHashMap    map      = item as HydraHashMap;
            HydraUtf8String username = map.Items["username"] as HydraUtf8String;


            int userId = 1;

            HydraInt32    result   = new HydraInt32(userId);
            HydraResponse response = new HydraResponse(Connection, result);

            response.Send();
        }
Exemple #10
0
        private void LoginWithAuthUserSession(HydraRequest request)
        {
            IHydraItem   item     = HydraItemDeserializer.Deserialize(request.PostData);
            HydraHashMap map      = item as HydraHashMap;
            string       username = (map.Items["username"] as HydraUtf8String).Value;
            string       password = (map.Items["password"] as HydraUtf8String).Value;

            HydraHashMap result = new HydraHashMap(new Dictionary <string, IHydraItem>()
            {
                { "auth_user_return", new HydraUtf8StringAsBinary("success") },
                { "user_id", new HydraInt32(1) }
            });

            HydraResponse response = new HydraResponse(Connection, result);

            response.Send();
        }
        /*
         * Parameters:
         * 0: Steam ID (this is a SteamID3 - it is the same as a Steamworks AccountID)
         */
        private void GetByPlatformAccountId(HydraRequest request)
        {
            ulong steamId = ulong.Parse(request.Parameters[0]);

            HydraHashMap map = new HydraHashMap(new Dictionary <string, IHydraItem>()
            {
                { "guid", new HydraInt64(1) },
                { "vip_code", new HydraHashMap(new Dictionary <string, IHydraItem>()
                    {
                        { "code", new HydraUtf8String("1234567890") },
                        { "accepted", new HydraBool(true) },
                        { "accepted_at", new HydraDateTime(DateTime.Now) }
                    }) }
            });

            HydraResponse response = new HydraResponse(Connection, map);

            response.Send();
        }
        private void OpenFile(string path)
        {
            if (CurrentStream != null)
            {
                CurrentStream.Close();
            }

            CurrentFile   = path;
            CurrentStream = File.Open(path, FileMode.Open, FileAccess.ReadWrite, FileShare.None);

            SaveMap = new HydraHashMap();
            SaveMap.Deserialize(CurrentStream);

            MetadataMap = (HydraHashMap)SaveMap.Items["meta_data"];

            SaveButton.Enabled         = true;
            CurrentCharacterLabel.Text = String.Format("Current character: {0}", Path.GetFileName(CurrentFile));
            CharacterNameField.Enabled = true;
            CharacterNameField.Text    = ((HydraUtf8String)MetadataMap.Items["Name"]).Value;
        }
Exemple #13
0
        private void Create(HydraRequest request)
        {
            IHydraItem item = HydraItemDeserializer.Deserialize(request.PostData);

            HydraHashMap map = item as HydraHashMap;

            string username   = (map.Items["username"] as HydraUtf8String).Value;
            string password   = (map.Items["password"] as HydraUtf8String).Value;
            string email      = (map.Items["email"] as HydraUtf8String).Value;
            string firstname  = (map.Items["firstname"] as HydraUtf8String).Value;              // always contains "firstname"
            string lastname   = (map.Items["lastname"] as HydraUtf8String).Value;               // always contains "lastname"
            int    birthDay   = int.Parse((map.Items["birth_day"] as HydraUtf8String).Value);   // always 0
            int    birthMonth = int.Parse((map.Items["birth_month"] as HydraUtf8String).Value); // always 0
            int    birthYear  = int.Parse((map.Items["birth_year"] as HydraUtf8String).Value);  // always 2000

            int userId = 1;

            HydraInt32    result   = new HydraInt32(userId);
            HydraResponse response = new HydraResponse(Connection, result);

            response.Send();
        }
Exemple #14
0
        private void SetPlatformAccountId(HydraRequest request)
        {
            IHydraItem   item      = HydraItemDeserializer.Deserialize(request.PostData);
            HydraHashMap map       = item as HydraHashMap;
            int          userId    = int.Parse((map.Items["userID"] as HydraUtf8String).Value);
            ulong        accountId = ulong.Parse((map.Items["value"] as HydraUtf8String).Value);

            HydraHashMap result = new HydraHashMap(new Dictionary <string, IHydraItem>()
            {
                { "setProperty", new HydraHashMap(new Dictionary <string, IHydraItem>()
                    {
                        { "status", new HydraHashMap(new Dictionary <string, IHydraItem>()
                            {
                                { "code", new HydraUtf8String("1") }
                            }
                                                     ) }
                    }) }
            });

            HydraResponse response = new HydraResponse(Connection, result);

            response.Send();
        }
        private void Create(HydraRequest request)
        {
            List <IHydraItem> items = HydraItemDeserializer.DeserializeAll(request.PostData);

            HydraInt64   profileId   = items[0] as HydraInt64;
            HydraHashMap map         = items[1] as HydraHashMap;
            HydraBinary  imageBinary = items[2] as HydraBinary;

            Game game = Game.GetFromApiKey(request.ApiKey);

            string category = ((HydraUtf8String)map.Items["category"]).Value;

            if (category == "characters")
            {
                Character character = new Character(game, profileId, map, imageBinary);
                character.Save();

                Console.WriteLine("Saved new character. ID {0}", character.ID);

                HydraResponse response = new HydraResponse(Connection, new HydraInt64(character.ID));
                response.Send();
            }
            else if (category == "screenshots")
            {
                Screenshot screenshot = new Screenshot(game, profileId, map, imageBinary);
                screenshot.Save();

                Console.WriteLine("Saved new screenshot. ID {0}", screenshot.ID);

                HydraResponse response = new HydraResponse(Connection, new HydraInt64(screenshot.ID));
                response.Send();
            }
            else
            {
                throw new Exception("Unknown category? " + category);
            }
        }
        private void ListSelectedForOwner(HydraRequest request)
        {
            int    userId   = int.Parse(request.Parameters[0]);
            int    pageNo   = int.Parse(request.Parameters[1]);
            int    maxItems = int.Parse(request.Parameters[2]);
            string itemType = request.Parameters[3];

            var characters = Character.GetCharacters(pageNo, maxItems);

            Console.WriteLine("Sending characters to game (max {0}):", maxItems);

            HydraArray array = new HydraArray();

            foreach (Character character in characters)
            {
                Console.WriteLine("{0} - {1}", character.ID, character.Name);
                HydraHashMap map = new HydraHashMap(new Dictionary <string, IHydraItem>()
                {
                    { "meta_data", new HydraHashMap(new Dictionary <string, IHydraItem>()
                        {
                            { "Name", new HydraUtf8String(character.Name) },
                            { "Avatar", new HydraBinary(character.AvatarData) },
                            { "Avatar Version", new HydraInt32(character.AvatarVersion) }
                        }
                                                    ) }
                });

                array.Items.Add(map);
            }

            Console.WriteLine();

            HydraResponse response = new HydraResponse(Connection, array);

            response.Send();
        }
Exemple #17
0
 public Screenshot(HydraHashMap map)
 {
     Data = map;
 }
Exemple #18
0
 public Character(HydraHashMap map)
 {
     Data = map;
 }