コード例 #1
0
        internal static void GetFlickrGroupIdFromGroupName(string groupname, string apiKey, GetFlickrGroupIdFromGroupNameCallback callback)
        {
            if (_flickrGroupNameCache.ContainsValue(groupname))
            {
                callback((from kvp in _flickrGroupNameCache where kvp.Value == groupname select kvp.Key).FirstOrDefault());
                return;
            }

            string          groupurl = string.Format(CultureInfo.InvariantCulture, "http://www.flickr.com/groups/{0}", groupname);
            string          query    = string.Format(CultureInfo.InvariantCulture, "http://api.flickr.com/services/rest/?method=flickr.urls.lookupGroup&api_key={0}&url={1}", apiKey, groupurl);
            AsyncWebRequest request  = new AsyncWebRequest();

            request.Request(new Uri(query));
            request.Result += (sender, e) =>
            {
                if (e.Status != HttpStatusCode.OK)
                {
                    callback(null);
                }

                try
                {
                    string groupid = XDocument.Parse(e.Response).Element("rsp").Element("group").Attribute("id").Value;
                    _flickrUserNameCache[groupid] = groupname;
                    callback(groupid);
                }
                catch
                {
                    callback(null);
                }
            };
        }
コード例 #2
0
        internal static void GetFlickrGroupIdFromGroupName(string groupname, string apiKey, GetFlickrGroupIdFromGroupNameCallback callback)
        {
            if (_flickrGroupNameCache.ContainsValue(groupname))
            {
                callback((from kvp in _flickrGroupNameCache where kvp.Value == groupname select kvp.Key).FirstOrDefault());
                return;
            }

            string groupurl = string.Format(CultureInfo.InvariantCulture, "http://www.flickr.com/groups/{0}", groupname);
            string query = string.Format(CultureInfo.InvariantCulture, "http://api.flickr.com/services/rest/?method=flickr.urls.lookupGroup&api_key={0}&url={1}", apiKey, groupurl);
            AsyncWebRequest request = new AsyncWebRequest();
            request.Request(new Uri(query));
            request.Result += (sender, e) =>
            {
                if (e.Status != HttpStatusCode.OK)
                {
                    callback(null);
                }

                try
                {
                    string groupid = XDocument.Parse(e.Response).Element("rsp").Element("group").Attribute("id").Value;
                    _flickrUserNameCache[groupid] = groupname;
                    callback(groupid);
                }
                catch
                {
                    callback(null);
                }
            };
        }