void OnUGCInfo(SteamCloud.UGCDetailsCallback callback) { var req = GetRequest(r => r.JobID == callback.JobID); if (req == null) { return; } if (callback.Result != EResult.OK) { IRC.Instance.Send(req.Channel, "{0}: Unable to request UGC info: {1}", req.Requester.Nickname, callback.Result); return; } var displayDict = new DisplayDictionary(); displayDict.Add("URL", callback.URL); displayDict.Add("Creator", callback.Creator); displayDict.Add("App", callback.AppID); displayDict.Add("File", callback.FileName, true); displayDict.Add("Size", Utils.GetByteSizeString(callback.FileSize)); IRC.Instance.Send(req.Channel, "{0}: {1}: {2}", req.Requester.Nickname, req.UGC, displayDict); }
void OnProfileInfo(SteamFriends.ProfileInfoCallback callback) { var req = GetRequest(r => r.JobID == callback.JobID); if (req == null) { return; } if (callback.Result != EResult.OK) { IRC.Instance.Send(req.Channel, "{0}: Unable to request profile info for {1}: {2}", req.Requester.Nickname, req.SteamID, callback.Result); return; } var displayDict = new DisplayDictionary(); displayDict.Add("Real Name", callback.RealName); displayDict.Add("Headline", callback.Headline); displayDict.Add("City", callback.CityName); displayDict.Add("State", callback.StateName); displayDict.Add("Country", callback.CountryName); displayDict.Add("Time Created", callback.TimeCreated); displayDict.Add("Summary", callback.Summary); IRC.Instance.Send(req.Channel, "{0}: {1}: {2}", req.Requester.Nickname, req.SteamID, displayDict); IRC.Instance.Send(req.Channel, "{0}: http://steamcommunity.com/profiles/{1}/", req.Requester.Nickname, req.SteamID.ConvertToUInt64()); }
void OnUGC(UGCHandler.UGCJobResult result) { var req = GetRequest(r => r.JobID == result.ID); if (req == null) { return; } if (result.TimedOut) { IRC.Instance.Send(req.Channel, "{0}: Unable to request published file info: request timed out", req.Requester.Nickname); return; } if (result.Result != EResult.OK) { IRC.Instance.Send(req.Channel, "{0}: Unable to request published file info: {1}", req.Requester.Nickname, result.Result); return; } PublishedFileDetails details = result.Details; var displayDict = new DisplayDictionary(); displayDict.Add("Title", details.title, true); displayDict.Add("URL", details.url); displayDict.Add("Creator", details.creator); displayDict.Add("Creator App", Steam.Instance.GetAppName(details.creator_appid)); displayDict.Add("Consumer App", Steam.Instance.GetAppName(details.consumer_appid)); if (details.shortcutid != 0) { displayDict.Add("Creator Game", details.shortcutname); displayDict.Add("Consumer Game", details.consumer_shortcutid); } if (details.hcontent_file != 0) { displayDict.Add("File UGC", details.hcontent_file); } if (details.hcontent_preview != 0) { displayDict.Add("Preview UGC", details.hcontent_preview); } displayDict.Add("Desc.", details.short_description, true); displayDict.Add("Creation", Utils.DateTimeFromUnixTime(details.time_created)); displayDict.Add("Vis.", ( EPublishedFileVisibility )details.visibility); displayDict.Add("File", details.file_url); if (details.banned) { displayDict.Add("Ban Reason", details.ban_reason, true); displayDict.Add("Banner", details.banner); } if (details.incompatible) { displayDict.Add("Incompatible", "True"); } if (details.num_reports > 0) { displayDict.Add("# Reports", details.num_reports.ToString()); } if (details.vote_data != null) { displayDict.Add("Votes", string.Format("{0} up, {1} down", details.vote_data.votes_up, details.vote_data.votes_down)); displayDict.Add("Score", string.Format("{0:N4}", details.vote_data.score)); } if (details.for_sale_data != null) { if (details.for_sale_data.is_for_sale) { displayDict.Add("For Sale", "True"); } displayDict.Add("Sale Status", details.for_sale_data.estatus); } if (details.kvtags.Count > 0) { string kvTagsString = string.Join(", ", details.kvtags.Select(kv => string.Format("{0}={1}", kv.key, kv.value))); displayDict.Add("KVTags", kvTagsString); } if (details.tags.Count > 0) { string tagString = string.Join(", ", details.tags.Select(tag => { if (tag.adminonly) { return(string.Format("{0} (admin)", tag.tag)); } return(tag.tag); })); displayDict.Add("Tags", tagString); } IRC.Instance.Send(req.Channel, "{0}: {1}: {2}", req.Requester.Nickname, req.PubFileID, displayDict); }