Различайте альбомы и изображения в галерее Imgur

Прежде всего, извиняюсь, так как это довольно узкая тема, поэтому я понимаю, если она будет удалена. Ссылки Imgur бывают нескольких форматов, как показано ниже:

http://i.imgur.com/kMoI9Vn.jpg
http://i.imgur.com/f7VXJQF
http://imgur.com/S1dZBPm
http://imgur.com/a/liD3a
http://imgur.com/gallery/HFoOCeg

В документах API Imgur есть две соответствующие конечные точки. Один для альбомов, а другой для изображения. Обычно нет проблем с различением изображения и альбома, поскольку URL-адреса альбомов имеют префикс /a/.

Однако следующие URL являются допустимыми URL-адресами галерей:

http://imgur.com/gallery/HFoOCeg
http://imgur.com/gallery/clWTb

Первый — это изображение, а второй — альбом. Категория галерея имеет две соответствующие конечные точки: изображение и альбом. Попытка использовать отправку запроса на альбом в конечную точку изображения и наоборот приводит к ошибке 404.

Есть ли способ, если предоставляется только идентификатор (например: HFoOCeg), чтобы определить, является ли это альбомом или изображением, без отправки нескольких запросов?


person Benedict Lewis    schedule 04.06.2014    source источник
comment
Интересно то же самое. Насколько я вижу, идентификаторы альбомов имеют длину 5 символов, а идентификаторы изображений — 7. Но я не знаю, согласуется ли это. Вы нашли хороший ответ?   -  person Rufus    schedule 03.04.2015
comment
ОП, ты нашел ответ?   -  person Saket    schedule 24.08.2017


Ответы (1)


Если вы используете ajax, это может оказаться полезным. Он выбирает данные из https://api.imgur.com/3/gallery/. {hash} и помещает в функцию успеха условие, позволяющее отличить альбом от отдельного изображения. Пока вроде работает. Кстати, в моем комментарии выше я обнаружил, что идентификаторы альбомов и изображений не всегда имеют длину 5 и 7 символов соответственно.

Возьмите хэш с URL-адреса, например http://imgur.com/gallery/vTTHZ любым удобным для вас способом.

Потом:

var thehash = 'vTTHZ';
$.ajax({
      type: "GET",
      url: "https://api.imgur.com/3/gallery/" + thehash,
      dataType: "json",
      headers:{
      'Authorization':'Client-ID xxxxxxxxxxxxxx'
      },
      success: function(data) {
       if(data.data.is_album === true) {
        var dlength = data.data.images.length;
        for(i=0; i < dlength; i++) {
         $('#mydiv').append('<li>' + data.data.images[i].link + '</li>');
         } 
       } else 
       {
        $('#mydiv').html('<li>' + data.data.link + '</li>');
       }      
        console.log(data);            
      }
    });
person Rufus    schedule 03.04.2015