internal override bool ParseNodeBodyElement(string id, VRMLParser parser)
 {
     if (id == "avatarSize")
     {
         if (wasAvatarSize)
         {
             AvatarSize.AddRange(parser.ParseSFFloatOrMFFloatValue());
         }
         else
         {
             AvatarSize = parser.ParseSFFloatOrMFFloatValue();
         }
         wasAvatarSize = true;
     }
     else if (id == "headlight")
     {
         Headlight = parser.ParseBoolValue();
     }
     else if (id == "speed")
     {
         Speed = parser.ParseDoubleValue();
     }
     else if (id == "transitionTime")
     {
         TransitionTime = parser.ParseDoubleValue();
     }
     else if (id == "transitionType")
     {
         if (wasTransitionType)
         {
             TransitionType.AddRange(parser.ParseSFStringOrMFStringValue());
         }
         else
         {
             TransitionType = parser.ParseSFStringOrMFStringValue();
         }
         wasTransitionType = true;
     }
     else if (id == "type")
     {
         if (wasType)
         {
             Type.AddRange(parser.ParseSFStringOrMFStringValue());
         }
         else
         {
             Type = parser.ParseSFStringOrMFStringValue();
         }
         wasType = true;
     }
     else if (id == "visibilityLimit")
     {
         VisibilityLimit = parser.ParseDoubleValue();
     }
     else
     {
         return(false);
     }
     return(true);
 }
Beispiel #2
0
        /// <summary>
        /// Try to get the avatar immediately. This should work for people on your friends list.
        /// </summary>
        public Image GetCachedAvatar(AvatarSize size, ulong steamid)
        {
            var imageid = 0;

            switch (size)
            {
            case AvatarSize.Small:
                imageid = client.native.friends.GetSmallFriendAvatar(steamid);
                break;

            case AvatarSize.Medium:
                imageid = client.native.friends.GetMediumFriendAvatar(steamid);
                break;

            case AvatarSize.Large:
                imageid = client.native.friends.GetLargeFriendAvatar(steamid);
                break;
            }

            var img = new Image()
            {
                Id = imageid
            };

            if (imageid != 0 && img.TryLoad(client.native.utils))
            {
                return(img);
            }

            return(null);
        }
Beispiel #3
0
        public static string GetAvatarUrl(string avatar, AvatarSize size, FromType fromType)
        {
            if (string.IsNullOrWhiteSpace(avatar) || avatar == "default.png")
            {
                return(null);
            }
            else
            {
                switch (fromType)
                {
                case FromType.User:
                {
                    string ext  = Path.GetExtension(avatar);
                    string name = Path.GetFileNameWithoutExtension(avatar);
                    return(DataSource.ApiUserMeData.Config.Box.AvatarUrl + name + "_" + (int)size + "x" + (int)size + ext);
                }

                case FromType.Service:
                case FromType.Addition:
                    return(DataSource.ApiUserMeData.Config.Box.ServiceUrl + avatar);

                default: throw new NotImplementedException();
                }
            }
        }
Beispiel #4
0
        /// <summary>
        /// Retrieve the avatar of the specified user in the specified format.
        /// </summary>
        /// <param name="user">User</param>
        /// <param name="size">Requested avatar size</param>
        /// <returns>The avatar as bitmap on success or null on failure.</returns>
        public Bitmap GetUserAvatar(User user, AvatarSize size = AvatarSize.Small)
        {
            if (user.avatarUrl.Length == 0)
            {
                return(null);
            }

            try {
                WebClient client = new WebClient();

                Stream stream;
                if (size == AvatarSize.Small)
                {
                    stream = client.OpenRead(user.avatarUrl + ".jpg");
                }
                else if (size == AvatarSize.Medium)
                {
                    stream = client.OpenRead(user.avatarUrl + "_medium.jpg");
                }
                else
                {
                    stream = client.OpenRead(user.avatarUrl + "_full.jpg");
                }

                Bitmap avatar = new Bitmap(stream);
                stream.Flush();
                stream.Close();

                return(avatar);
            } catch (Exception e) {
                return(null);
            }
        }
Beispiel #5
0
        /// <summary>
        /// Tries to get the steam avatar of the specified user.
        ///
        /// Only returns the image for users that the local user knows.
        /// </summary>
        /// <param name="steamId">The <see cref="CSteamID"/> of the steam user to get the image for</param>
        /// <param name="size">The <see cref="AvatarSize"/> to get</param>
        /// <returns></returns>
        public Texture2D GetAvatar(CSteamID steamId, AvatarSize size = AvatarSize.Medium)
        {
            SteamworksImage image;

            try
            {
                image = GetAvatarFromStreamApi(size, steamId);
            }
            catch (SystemException e)
            {
                // If there was an error getting the image from steam then return the fallback image.
                return(fallbackImage);
            }

            var texture = new Texture2D((int)image.Width, (int)image.Height);

            for (int x = 0; x < image.Width; x++)
            {
                for (int y = 0; y < image.Height; y++)
                {
                    var pixel = image.GetPixel(x, y);

                    texture.SetPixel(x, (int)image.Height - y, pixel);
                }
            }

            texture.Apply();

            return(texture);
        }
Beispiel #6
0
        /// <summary>
        /// 获取头像地址
        /// </summary>
        /// <param name="uid">用户Id</param>
        /// <param name="avatarSize">头像大小,1:大,2:中,3:小</param>
        /// <returns></returns>
        public static string GetAvatarUrl(string uid, AvatarSize avatarSize)
        {
            uid = FormatUid(uid);
            string size = "";

            switch (avatarSize)
            {
            case AvatarSize.Large:
                size = "large";
                break;

            case AvatarSize.Medium:
                size = "medium";
                break;

            case AvatarSize.Small:
                size = "small";
                break;
            }
            string physicsAvatarPath = string.Format(AVATAR_URL, uid.Substring(0, 3), uid.Substring(3, 2), uid.Substring(5, 2), uid.Substring(7, 2), size);

            //当支持FTP上传头像时,使用FTP上传远程头像
            if (FTPs.GetForumAvatarInfo.Allowupload == 1)
            {
                return(FTPs.GetForumAvatarInfo.Remoteurl.Trim('/') + "/avatars/" + physicsAvatarPath);
            }
            else
            {
                return(Utils.GetRootUrl(forumPath) + "avatars/" + physicsAvatarPath);
            }
        }
Beispiel #7
0
        /// <summary>
        /// Callback will be called when the avatar is ready. If we fail to get an
        /// avatar, might be called with a null Image.
        /// </summary>
        public void GetAvatar(AvatarSize size, ulong steamid, Action <Image> callback)
        {
            // Maybe we already have it downloaded?
            var image = GetCachedAvatar(size, steamid);

            if (image != null)
            {
                callback(image);
                return;
            }

            // Lets request it from Steam
            if (!client.native.friends.RequestUserInformation(steamid, false))
            {
                // Steam told us to get f****d
                callback(null);
                return;
            }

            PersonaCallbacks.Add(new PersonaCallback
            {
                SteamId  = steamid,
                Size     = size,
                Callback = callback,
                Time     = DateTime.Now
            });
        }
Beispiel #8
0
 /// <summary>
 /// 获取头像地址
 /// </summary>
 /// <param name="uid">用户Id</param>
 /// <param name="avatarSize">头像大小,1:大,2:中,3:小</param>
 /// <returns></returns>
 public static string GetAvatarUrl(string uid, AvatarSize avatarSize)
 {
     uid = FormatUid(uid);
     string size = "";
     switch (avatarSize)
     {
         case AvatarSize.Large:
             size = "large";
             break;
         case AvatarSize.Medium:
             size = "medium";
             break;
         case AvatarSize.Small:
             size = "small";
             break;
     }
     string physicsAvatarPath = string.Format(AVATAR_URL, uid.Substring(0, 3), uid.Substring(3, 2), uid.Substring(5, 2), uid.Substring(7, 2), size);
     return Utils.GetRootUrl(forumPath) + "avatars/" + physicsAvatarPath;
     //if (File.Exists(Utils.GetMapPath(forumPath + "avatars/" + physicsAvatarPath)))
     //{
     //    return Utils.GetRootUrl(forumPath) + "avatars/" + physicsAvatarPath;
     //}
     //else
     //    return GetDefaultAvatarUrl(avatarSize);
 }
Beispiel #9
0
        /// <summary>
        /// Retrieve the avatar of the specified group in the specified format.
        /// </summary>
        /// <param name="group">Group</param>
        /// <param name="size">Requested avatar size</param>
        /// <returns>The avatar as bitmap on success or null on failure.</returns>
        public Bitmap GetGroupAvatar(GroupInfo group, AvatarSize size = AvatarSize.Small)
        {
            User user = new User();

            user.avatarUrl = group.avatarUrl;
            return(GetUserAvatar(user, size));
        }
Beispiel #10
0
        private string GetFilename(TdApi.File file, long id, AvatarSize size)
        {
            var s    = (int)size;
            var name = file == null ? _colorMapper[id] : id.ToString();

            return($"avatar_{s}x{s}_{name}.jpg");
        }
Beispiel #11
0
        private async Task GetSteamImage(SteamId steamId, AvatarSize size)
        {
            Steamworks.Data.Image?image;
            switch (size)
            {
            case AvatarSize.Small:
                image = await SteamFriends.GetSmallAvatarAsync(steamId);

                break;

            case AvatarSize.Medium:
                image = await SteamFriends.GetMediumAvatarAsync(steamId);

                break;

            case AvatarSize.Large:
                image = await SteamFriends.GetLargeAvatarAsync(steamId);

                break;

            default:
                throw new ArgumentException("Unknown Steam Avatar size!");
            }
            if (image.HasValue)
            {
                LoadTextureFromImage(image.Value);
            }
        }
Beispiel #12
0
        /// <summary>
        /// 获取头像地址
        /// </summary>
        /// <param name="uid">用户id</param>
        /// <param name="avatarSize">图片尺寸</param>
        /// <returns>图片地址</returns>
        public static string GetAvatarUrl(int uid, AvatarSize avatarSize)
        {
            string size = "";

            switch (avatarSize)
            {
            case AvatarSize.Large:
                size = "large";
                break;

            case AvatarSize.Medium:
                size = "medium";
                break;

            case AvatarSize.Small:
                size = "small";
                break;
            }
            if (GeneralConfigs.GetConfig().AvatarMethod == 0)
            {
                return(string.Format("{0}tools/avatar.aspx?uid={1}&size={2}", Utils.GetRootUrl(Discuz.Config.BaseConfigs.GetForumPath), uid, size));
            }
            else
            {
                return(Avatars.GetAvatarUrl(uid.ToString(), avatarSize));
            }
        }
        /// <summary>
        /// Retrieve the avatar of the specified group in the specified format.
        /// </summary>
        /// <param name="group">Group</param>
        /// <param name="size">Requested avatar size</param>
        /// <returns>The avatar as bitmap on success or null on failure.</returns>
        public Bitmap GetGroupAvatar(GroupInfo group, AvatarSize size = AvatarSize.Small)
        {
            var user = new User {
                AvatarUrl = @group.AvatarUrl
            };

            return(GetUserAvatar(user, size));
        }
Beispiel #14
0
 public Avatar GetAvatar(AvatarKind kind, AvatarSize size)
 {
     return(new Avatar
     {
         Bitmap = null,
         Color = GetColor(kind),
         Label = GetLabel(kind)
     });
 }
Beispiel #15
0
        public async Task InsertOrUpdateAsync(int vkOwnerId, AvatarSize size, IEnumerable<IAvatar> avatars)
        {
            using (var context = new EFContext())
            {
                if (avatars == null)
                    throw new ArgumentNullException(nameof(avatars));

                var newAvatars = avatars
                    .Where(x => x.VkOwnerId == vkOwnerId
                                && x.Size == size)
                    .ToList();

                var duplicatedAvatar = newAvatars.FirstOrDefault(x => newAvatars
                    .Any(y => y.VkUserId == x.VkUserId
                              && x != y));

                if (duplicatedAvatar != null)
                    throw new EFClientException<DuplicatedVkIdExceptionArgs>(
                        new DuplicatedVkIdExceptionArgs(duplicatedAvatar.VkUserId),
                        "В списке avatars имеются записи, с дублирующимся VkUserId");

                var oldAvatars = await context.Avatars.Where(x => x.VkOwnerId == vkOwnerId
                                                                  && x.Size == size)
                    .ToListAsync();

                var oldAvatarIds = oldAvatars.Select(x => x.VkUserId).ToArray();

                var avatarsToCreate = (from avatarToCreate in newAvatars
                    where !oldAvatarIds.Contains(avatarToCreate.VkUserId)
                    select new Avatar
                    {
                        Id = Guid.NewGuid(),
                        VkOwnerId = vkOwnerId,
                        VkUserId = avatarToCreate.VkUserId,
                        Content = avatarToCreate.Content,
                        Url = avatarToCreate.Url
                    });

                var queryToUpdate = (from avatarToUpdate in oldAvatars
                    let newAvatar = newAvatars.FirstOrDefault(x => x.VkUserId == avatarToUpdate.VkUserId)
                    where newAvatar != null
                    select new {NewAvatar = newAvatar, AvatarToUpdate = avatarToUpdate});

                foreach (var item in queryToUpdate)
                {
                    var newAvatar = item.NewAvatar;
                    var oldAvatar = item.AvatarToUpdate;

                    oldAvatar.Url = newAvatar.Url;
                    oldAvatar.Content = newAvatar.Content;
                }

                context.Avatars.AddRange(avatarsToCreate);
                await context.SaveChangesAsync();
            }
        }
        public static CroppedBitmap GetAvatarFrameFromStatus(UserStatus status, AvatarSize size)
        {
            int avatarFrameWidth = 0;

            if (status == UserStatus.Offline & size == AvatarSize.Big)
            {
                avatarFrameWidth = Resource.Images.Attributes.AVATAR_FRAME_STATUS_OFFLINE;
            }

            if (status == UserStatus.Busy & size == AvatarSize.Big)
            {
                avatarFrameWidth = Resource.Images.Attributes.AVATAR_FRAME_STATUS_BUSY;
            }

            if (status == UserStatus.Away & size == AvatarSize.Big)
            {
                avatarFrameWidth = Resource.Images.Attributes.AVATAR_FRAME_STATUS_AWAY;
            }

            if (status == UserStatus.Available & size == AvatarSize.Big)
            {
                avatarFrameWidth = Resource.Images.Attributes.AVATAR_FRAME_STATUS_AVAILABLE;
            }

            if (status == UserStatus.Offline & size == AvatarSize.Small)
            {
                avatarFrameWidth = Resource.Images.Attributes.AVATAR_FRAME_SMALL_STATUS_OFFLINE;
            }

            if (status == UserStatus.Busy & size == AvatarSize.Small)
            {
                avatarFrameWidth = Resource.Images.Attributes.AVATAR_FRAME_SMALL_STATUS_BUSY;
            }

            if (status == UserStatus.Away & size == AvatarSize.Small)
            {
                avatarFrameWidth = Resource.Images.Attributes.AVATAR_FRAME_SMALL_STATUS_AWAY;
            }

            if (status == UserStatus.Available & size == AvatarSize.Small)
            {
                avatarFrameWidth = Resource.Images.Attributes.AVATAR_FRAME_SMALL_STATUS_AVAILABLE;
            }

            if (size == AvatarSize.Big)
            {
                return(new CroppedBitmap(Images.BITMAP_AVATAR_FRAME, new Int32Rect(avatarFrameWidth, 0, Resource.Images.Attributes.AVATAR_FRAME_WIDTH, Resource.Images.Attributes.AVATAR_FRAME_HEIGHT)));
            }

            if (size == AvatarSize.Small)
            {
                return(new CroppedBitmap(Images.BITMAP_AVATAR_FRAME, new Int32Rect(avatarFrameWidth, 0, Resource.Images.Attributes.AVATAR_FRAME_SMALL_WIDTH, Resource.Images.Attributes.AVATAR_FRAME_SMALL_HEIGHT)));
            }

            return(null);
        }
Beispiel #17
0
 public Avatar GetAvatar(TdApi.Chat chat, AvatarSize size, bool forceFallback = false)
 {
     return(new Avatar
     {
         Bitmap = forceFallback ? null : GetBitmap(chat.Photo?.Small, chat.Id, size),
         BrushFactory = GetBrushFactory(chat),
         Size = size,
         Label = GetLabel(chat)
     });
 }
Beispiel #18
0
 public Avatar GetAvatar(TdApi.User user, AvatarSize size, bool forceFallback = false)
 {
     return(new Avatar
     {
         Bitmap = forceFallback ? null : GetBitmap(user.ProfilePhoto?.Small, user.Id, size),
         BrushFactory = GetBrushFactory(user),
         Size = size,
         Label = GetLabel(user)
     });
 }
Beispiel #19
0
        public Avatar GetAvatar(TdApi.Chat chat, AvatarSize size)
        {
            int s = _platform.PixelDensity * (int)size;

            return(new Avatar
            {
                Bitmap = GetBitmap(chat.Photo?.Small, s),
                Color = GetColor(chat),
                Label = GetLabel(chat)
            });
        }
Beispiel #20
0
        public Avatar GetAvatar(TdApi.User user, AvatarSize size)
        {
            int s = _platform.PixelDensity * (int)size;

            return(new Avatar
            {
                Bitmap = GetBitmap(user.ProfilePhoto?.Small, s),
                Color = GetColor(user),
                Label = GetLabel(user)
            });
        }
Beispiel #21
0
        private IBitmap GetBitmap(TdApi.File file, long id, AvatarSize size)
        {
            var filename = GetFilename(file, id, size);

            if (_cache.TryGetValue(filename, out var bitmap))
            {
                return((IBitmap)bitmap);
            }

            return(null);
        }
Beispiel #22
0
 public IObservable <Avatar> LoadAvatar(TdApi.User user, AvatarSize size)
 {
     return(LoadBitmap(user.ProfilePhoto?.Small, user.Id, size)
            .Select(bitmap => new Avatar
     {
         Bitmap = bitmap,
         BrushFactory = GetBrushFactory(user),
         Size = size,
         Label = GetLabel(user)
     }));
 }
Beispiel #23
0
 public IObservable <Avatar> LoadAvatar(TdApi.Chat chat, AvatarSize size)
 {
     return(LoadBitmap(chat.Photo?.Small, chat.Id, size)
            .Select(bitmap => new Avatar
     {
         Bitmap = bitmap,
         BrushFactory = GetBrushFactory(chat),
         Size = size,
         Label = GetLabel(chat)
     }));
 }
Beispiel #24
0
        public IObservable <Avatar> LoadAvatar(TdApi.User user, AvatarSize size)
        {
            int s = _platform.PixelDensity * (int)size;

            return(LoadBitmap(user.ProfilePhoto?.Small, s)
                   .Select(bitmap => new Avatar
            {
                Bitmap = bitmap,
                Color = GetColor(user),
                Label = GetLabel(user)
            }));
        }
Beispiel #25
0
        public IObservable <Avatar> LoadAvatar(TdApi.Chat chat, AvatarSize size)
        {
            int s = _platform.PixelDensity * (int)size;

            return(LoadBitmap(chat.Photo?.Small, s)
                   .Select(bitmap => new Avatar
            {
                Bitmap = bitmap,
                Color = GetColor(chat),
                Label = GetLabel(chat)
            }));
        }
Beispiel #26
0
 public static TethysAvatar GetAvatar(MemberSession session, AvatarSize size)
 {
     return(new TethysAvatar
     {
         Id = session.Id,
         DisplayName = session.To.DisplayName,
         Background = AvatarHelper.GetColorBrush(session.To.DisplayName),
         DisplayNamePinyin = session.To.DisplayNamePinyin,
         Name = session.To.Name,
         Source = GetAvatarBitmap(session.To.Avatar, size, FromType.User)
     });
 }
Beispiel #27
0
 public static string ToAvatarUrl(this string avatarHash, AvatarSize size)
 {
     switch (size)
     {
         case AvatarSize.Portrait:
             return ToAvatarUrl(avatarHash, 170);
         case AvatarSize.Thumb:
             return ToAvatarUrl(avatarHash, 30);
         default:
             return ToAvatarUrl(avatarHash);
     }
 }
Beispiel #28
0
 public static TethysAvatar GetAvatar(Member member, AvatarSize size)
 {
     return(new TethysAvatar
     {
         Id = member.Uid,
         DisplayName = member.DisplayName,
         Background = GetColorBrush(member.DisplayName),
         Source = GetAvatarBitmap(member.Avatar, size, FromType.User),
         Name = member.Name,
         DisplayNamePinyin = member.DisplayNamePinyin
     });
 }
Beispiel #29
0
        /// <summary>
        /// 检查头像是否存在
        /// </summary>
        /// <param name="uid"></param>
        /// <param name="size"></param>
        /// <param name="type"></param>
        /// <returns></returns>
        public bool AvatarCheck(int uid, AvatarSize size = AvatarSize.Middle, AvatarType type = AvatarType.Virtual)
        {
            var args = new Dictionary <string, string>
            {
                { "uid", uid.ToString() },
                { "size", size.ToString().ToLower() },
                { "type", type.ToString().ToLower() },
                { "check_file_exists", "1" }
            };

            return(toBool(SendGet(UcConfig.UcApi + "avatar.php", args)));
        }
Beispiel #30
0
        public static BitmapImage GetAvatarBitmap(string avatar, AvatarSize size, FromType fromType)
        {
            string url = GetAvatarUrl(avatar, size, fromType);

            if (string.IsNullOrWhiteSpace(url))
            {
                return(null);
            }
            else
            {
                return(new BitmapImage(new Uri(url)));
            }
        }
Beispiel #31
0
        public static string ToAvatarUrl(this string avatarHash, AvatarSize size)
        {
            switch (size)
            {
            case AvatarSize.Portrait:
                return(ToAvatarUrl(avatarHash, 170));

            case AvatarSize.Thumb:
                return(ToAvatarUrl(avatarHash, 30));

            default:
                return(ToAvatarUrl(avatarHash));
            }
        }
Beispiel #32
0
        /// <summary>
        /// Get image data from the Steam Api
        /// </summary>
        /// <param name="size">The image size to get from Steam</param>
        /// <param name="steamId">The steam id of the user to get the image for</param>
        /// <returns></returns>
        /// <exception cref="ArgumentException"></exception>
        /// <exception cref="SystemException"></exception>
        public SteamworksImage GetAvatarFromStreamApi(AvatarSize size, CSteamID steamId)
        {
            int imageHandle;

            switch (size)
            {
            case AvatarSize.Small:
                imageHandle = SteamFriends.GetSmallFriendAvatar(steamId);
                break;

            case AvatarSize.Medium:
                imageHandle = SteamFriends.GetMediumFriendAvatar(steamId);
                break;

            case AvatarSize.Large:
                imageHandle = SteamFriends.GetLargeFriendAvatar(steamId);
                break;

            default:
                throw new ArgumentException("Unknown Steam Avatar size!");
            }

            if (imageHandle == -1 || imageHandle == 0)
            {
                throw new SystemException("Invalid Steamworks image handle");
            }

            var image = new SteamworksImage();


            if (!SteamUtils.GetImageSize(imageHandle, out image.Width, out image.Height))
            {
                throw new SystemException("Couldn't get image size from Steamworks api");
            }

            uint imageSize = image.Width * image.Height * 4;

            var buffer = new byte[imageSize];

            if (!SteamUtils.GetImageRGBA(imageHandle, buffer, (int)imageSize))
            {
                throw new SystemException("Couldn't get image data  from Steamworks api");
            }

            image.imageData = new byte[imageSize];
            Array.Copy(buffer, 0, image.imageData, 0, imageSize);

            return(image);
        }
Beispiel #33
0
        public static Avatar GetAvatar(string uid, AvatarSize size)
        {
            var member = DataSource.Team.Members.FirstOrDefault(m => m.Uid == uid);

            if (member == null)
            {
                return(null);
            }
            return(new Avatar
            {
                ProfilePicture = GetAvatarBitmap(member.Avatar, size, FromType.User),
                DisplayName = member.DisplayName,
                Initials = GetInitials(member.DisplayName)
            });
        }
Beispiel #34
0
 /// <summary>
 /// 获取头像地址
 /// </summary>
 /// <param name="uid">用户Id</param>
 /// <param name="avatarSize">头像大小,1:大,2:中,3:小</param>
 /// <returns></returns>
 public static string GetAvatarUrl(string uid, AvatarSize avatarSize)
 {
     uid = FormatUid(uid);
     string size = "";
     switch (avatarSize)
     {
         case AvatarSize.Large:
             size = "large";
             break;
         case AvatarSize.Medium:
             size = "medium";
             break;
         case AvatarSize.Small:
             size = "small";
             break;
     }
     string physicsAvatarPath = string.Format(AVATAR_URL, uid.Substring(0, 3), uid.Substring(3, 2), uid.Substring(5, 2), uid.Substring(7, 2), size);
     return Utils.GetRootUrl(forumPath) + "avatars/" + physicsAvatarPath;          
 }
Beispiel #35
0
 /// <summary>
 /// 获取头像地址
 /// </summary>
 /// <param name="uid">用户Id</param>
 /// <param name="avatarSize">头像大小,1:大,2:中,3:小</param>
 /// <returns></returns>
 public static string GetAvatarUrl(string uid, AvatarSize avatarSize)
 {
     uid = FormatUid(uid);
     string size = "";
     switch (avatarSize)
     {
         case AvatarSize.Large:
             size = "large";
             break;
         case AvatarSize.Medium:
             size = "medium";
             break;
         case AvatarSize.Small:
             size = "small";
             break;
     }
     string physicsAvatarPath = string.Format(AVATAR_URL, uid.Substring(0, 3), uid.Substring(3, 2), uid.Substring(5, 2), uid.Substring(7, 2), size);
     //当支持FTP上传头像时,使用FTP上传远程头像
     if (FTPs.GetForumAvatarInfo.Allowupload == 1)
         return FTPs.GetForumAvatarInfo.Remoteurl.Trim('/') + "/avatars/" + physicsAvatarPath;         
     else
         return Utils.GetRootUrl(forumPath) + "avatars/" + physicsAvatarPath;          
 }
Beispiel #36
0
 /// <summary>
 /// Retrieve the avatar of the specified group in the specified format.
 /// </summary>
 /// <param name="group">Group</param>
 /// <param name="size">Requested avatar size</param>
 /// <returns>The avatar as bitmap on success or null on failure.</returns>
 public Bitmap GetGroupAvatar(GroupInfo group, AvatarSize size = AvatarSize.Small)
 {
     User user = new User();
     user.avatarUrl = group.avatarUrl;
     return GetUserAvatar(user, size);
 }
Beispiel #37
0
        /// <summary>
        /// Retrieve the avatar of the specified user in the specified format.
        /// </summary>
        /// <param name="user">User</param>
        /// <param name="size">Requested avatar size</param>
        /// <returns>The avatar as bitmap on success or null on failure.</returns>
        public Bitmap GetUserAvatar(User user, AvatarSize size = AvatarSize.Small)
        {
            if (user.avatarUrl.Length == 0) return null;

            try
            {
                WebClient client = new WebClient();

                Stream stream;
                if (size == AvatarSize.Small)
                    stream = client.OpenRead(user.avatarUrl + ".jpg");
                else if (size == AvatarSize.Medium)
                    stream = client.OpenRead(user.avatarUrl + "_medium.jpg");
                else
                    stream = client.OpenRead(user.avatarUrl + "_full.jpg");

                Bitmap avatar = new Bitmap(stream);
                stream.Flush();
                stream.Close();

                return avatar;
            }
            catch
            {
                Debug.Print("SteamAPI::GetUserAvatar exception");
                return null;
            }
        }
Beispiel #38
0
 public async Task<IAvatar> GetAvatarAsync(int vkUserId, int vkOwnerId, AvatarSize size)
 {
     using (var context = new EFContext())
     {
         return await context.Avatars.FirstOrDefaultAsync(x => x.VkUserId == vkUserId
                                                               && x.VkOwnerId == vkOwnerId
                                                               && x.Size == size);
     }
 }
Beispiel #39
0
 /// <summary>
 /// 获取头像物理路径
 /// </summary>
 /// <param name="uid"></param>
 /// <param name="size"></param>
 /// <returns></returns>
 public static string GetPhysicsAvatarPath(string uid, AvatarSize size)
 {
     return Utils.GetMapPath(forumPath + "avatars/" +
         string.Format(AVATAR_URL, uid.Substring(0, 3), uid.Substring(3, 2), uid.Substring(5, 2), uid.Substring(7, 2), size.ToString().ToLower()));
 }
Beispiel #40
0
 /// <summary>
 /// 获取默认头像
 /// </summary>
 /// <param name="avatarSize"></param>
 /// <returns></returns>
 public static string GetDefaultAvatarUrl(AvatarSize avatarSize)
 {
     return Utils.GetRootUrl(forumPath) + "images/common/noavatar_" + avatarSize.ToString().ToLower() + ".gif";
 }
Beispiel #41
0
 /// <summary>
 /// 获取头像地址
 /// </summary>
 /// <param name="uid">用户id</param>
 /// <param name="avatarSize">图片尺寸</param>
 /// <returns>图片地址</returns>
 public static string GetAvatarUrl(int uid, AvatarSize avatarSize)
 {
     string size = "";
     switch (avatarSize)
     {
         case AvatarSize.Large:
             size = "large";
             break;
         case AvatarSize.Medium:
             size = "medium";
             break;
         case AvatarSize.Small:
             size = "small";
             break;
     }
     if (GeneralConfigs.GetConfig().AvatarMethod == 0)
         return string.Format("{0}tools/avatar.aspx?uid={1}&size={2}", Utils.GetRootUrl(Discuz.Config.BaseConfigs.GetForumPath), uid, size);
     else  
         return Avatars.GetAvatarUrl(uid.ToString(), avatarSize); 
 }
 /// <summary>
 /// Retrieve the avatar of the specified group in the specified format.
 /// </summary>
 /// <param name="group">Group</param>
 /// <param name="size">Requested avatar size</param>
 /// <returns>The avatar as bitmap on success or null on failure.</returns>
 public Bitmap GetGroupAvatar(GroupInfo group, AvatarSize size = AvatarSize.Small)
 {
     var user = new User {AvatarUrl = @group.AvatarUrl};
     return GetUserAvatar(user, size);
 }
        /// <summary>
        /// Retrieve the avatar of the specified user in the specified format.
        /// </summary>
        /// <param name="user">User</param>
        /// <param name="size">Requested avatar size</param>
        /// <returns>The avatar as bitmap on success or null on failure.</returns>
        public Bitmap GetUserAvatar(User user, AvatarSize size = AvatarSize.Small)
        {
            if (user.AvatarUrl.Length == 0) return null;

            try
            {
                var client = new WebClient();

                Stream stream;
                if (size == AvatarSize.Small)
                    stream = client.OpenRead(user.AvatarUrl + ".jpg");
                else if (size == AvatarSize.Medium)
                    stream = client.OpenRead(user.AvatarUrl + "_medium.jpg");
                else
                    stream = client.OpenRead(user.AvatarUrl + "_full.jpg");

                if (stream == null)
                    return null;

                var avatar = new Bitmap(stream);
                stream.Flush();
                stream.Close();

                return avatar;
            }
            catch (Exception)
            {
                return null;
            }
        }
Beispiel #44
0
 /// <summary>
 /// 得到头像地址
 /// </summary>
 /// <param name="uid">Uid</param>
 /// <param name="size">大小</param>
 /// <param name="type">类型</param>
 /// <returns></returns>
 public string AvatarUrl(decimal uid, AvatarSize size, AvatarType type = AvatarType.Virtual)
 {
     return string.Format("{0}avatar.php?uid={1}&type={2}&size={3}", UcConfig.UcApi, uid,
                          type.ToString().ToLower(), size.ToString().ToLower());
 }
Beispiel #45
0
 /// <summary>
 /// 检查头像是否存在
 /// </summary>
 /// <param name="uid"></param>
 /// <param name="size"></param>
 /// <param name="type"></param>
 /// <returns></returns>
 public bool AvatarCheck(decimal uid, AvatarSize size = AvatarSize.Middle, AvatarType type = AvatarType.Virtual)
 {
     var args = new Dictionary<string, string>
                    {
                        {"uid", uid.ToString()},
                        {"size", size.ToString().ToLower()},
                        {"type", type.ToString().ToLower()},
                        {"check_file_exists", "1"}
                    };
     return toBool(SendGet(UcConfig.UcApi + "avatar.php", args));
 }