링크 파싱 애드온을 더 이상 개발하지 않겠다고 했지만, (속닥속닥)
에디터 컴포넌트 만들다가 스트레스 받아서 기능을 하나 더 얹어 봤어요 흙흙
http://bit.ly/2wwjrGF
해시태그를 기준으로 이미지를 수집해서 뿌려줄 수도 있더라구요.
근데 얘는 실시간으로 이미지들이 계속 업데이트 되니까 참 다이나믹합니다 :)
관련 json data 도움은 @v!님의 팁에서 얻었구요. 감사합니다~
https://xetown.com/devtip/638385
덧. 애드온 0.4 기준 바뀐 부분
function getInstagram(i) { var url_match = urls[i].replace('//', '/').split('/'); if(url_match[2] == 'p') { // Instagram Post var ig_cnt = $('#'+prefix+cnt+i), ig_load = $('#'+prefix+load+i); $.ajax({ url: 'https://api.instagram.com/oembed', data: {url : urls[i].replace(url_match[4], '')}, dataType: 'jsonp', success: function(data) { ig_cnt.css({'border':'none'}).html(data.html).fadeIn('slow'); ig_load.hide(); if(ap_parser_link_text) { var p = ig_cnt.parent('.'+container).prev('p'); if(p.text().indexOf(urls[i]) != -1) { if(p.text() == urls[i]) p.remove(); else p.html(p.text().replace(urls[i], '')); } } }, error: function() { getPreview(i); } }); } else if (url_match[2] == 'explore' && url_match[3] == 'tags') { // Instagram Tags getPreview(i); $.post('./addons/ap_parser/ap_parser.php', {tag : url_match[4]}, function(data) { var src = ''; $.each(data, function(index, value) { if (index === 0) { $('#'+prefix+cnt+i).find('.ap_parser_info').before('<div class="ap_parser_image_wrap">'+ '<a href="https://www.instagram.com/p/'+value.code+'" target="'+ap_parser_external_link+'">'+ '<div class="ap_parser_images">'+ '<img src="'+value.thumbnail_src+'">'+ '</div></a></div>'); } else { src += '<a class="ap_parser_insta_link" href="https://www.instagram.com/p/'+value.code+'" target="'+ap_parser_external_link+'">' src += '<img class="ap_parser_insta_thumb" src="'+value.thumbnail_src+'" style="width: 24%; margin: 0 .5%;" />'; src += '</a>'; if (index == 16) { return false; } } }); $('#'+prefix+cnt+i+' .ap_parser_image_wrap, #'+prefix+cnt+i+' .ap_parser_info').wrapAll('<div />'); $('#'+prefix+cnt+i).append('<div class="ap_parser_insta" style="padding: 10px 20px 20px" />').css('border-radius', 4); $('#'+prefix+cnt+i).children('.ap_parser_insta').html(src); }); } else { // Instagram Profile getPreview(i); var regExp = /http(?:s)?:\/\/(?:www\.)?instagram\.com\/([a-zA-Z0-9_]+)/; var matches = urls[i].match(regExp); if(matches && $.inArray(matches[1], ['', 'about', 'developer', 'legal', 'explore']) == -1) { $.post('./addons/ap_parser/ap_parser.php', {user_id : url_match[2]}, function(data) { var src = ''; $.each(data, function(index, value) { src += '<a class="ap_parser_insta_link" href="https://www.instagram.com/p/'+value.code+'" target="'+ap_parser_external_link+'">' src += '<img class="ap_parser_insta_thumb" src="'+value.thumbnail_src+'" style="width: 24%; margin: 0 .5%;" />'; src += '</a>'; }); $('#'+prefix+cnt+i+' .ap_parser_image_wrap, #'+prefix+cnt+i+' .ap_parser_info').wrapAll('<div />'); $('#'+prefix+cnt+i).append('<div class="ap_parser_insta" style="padding: 10px 20px 20px" />').css('border-radius', 4); $('#'+prefix+cnt+i).children('.ap_parser_insta').html(src); }); } } }
$url = urldecode($_REQUEST['url']); $img_len = (int)($_REQUEST['img_len']); $user_id = urldecode($_REQUEST['user_id']); $tag = urldecode($_REQUEST['tag']); // Get and Return Instagram User Profile if ($user_id) { $profile_url = "https://www.instagram.com/$user_id/?__a=1"; $response = getInstaProfile($profile_url); if ($response === false) { return; } $data = json_decode($response, true); if ($data === null) { return; } $media = $data['user']['media']; header('Content-type: application/json'); echo json_encode($media['nodes']); exit; } else if ($tag) { $profile_url = "https://www.instagram.com/explore/tags/$tag/?__a=1"; $response = getInstaProfile($profile_url); if ($response === false) { return; } $data = json_decode($response, true); if ($data === null) { return; } $media = $data['tag']['media']; header('Content-type: application/json'); echo json_encode($media['nodes']); exit; }
스트레스를 개발로 푸는거~ 아주 칭찬해~~
스트레스의 가호가 윤삼님과 함께 하기를~ ㅋㅋㅋ
해시태그(나 프로필)은 업데이트되는대로 반영이 되는건가영? +ㅁ+