$(document).ready(function () { loadYoutubeCard(); loadFacebookCard(); loadInstagramCard(); }); function loadInstagramCard() { $.ajax({ url: "/Api/instagramList", type: "post", data: null, success: function (data, textStatus, jqXHR) { if (data.ret == "yes") { var obj = data.list; $('#card_group2').append(instagramCardHtml(obj)); } else { alert(data.message); if (data.err_code == "99999") { location.href = "/Root/Login"; } } }, error: function (jqXHR, textStatus, errorThrown) { alert('網路或伺服器發生錯誤,請稍後重試!'); } }); } function instagramCardHtml(objItem) { var html = ""; html += ""; html += "
"; html += " "; html += "
"; html += " "; html += "
"; html += " "; html += "
"; html += " Instagram 排行 "; html += "
"; html += "
"; html += "
"; html += "
"; html += " "; html += "
"; html += " "; html += " "; html += " "; html += " "; html += " "; html += " "; html += " "; html += " "; html += " "; html += " "; html += " "; html += " "; html += " "; html += " "; html += " "; html += " "; $.each(objItem, function (index, item) { html += instagramSubHtml(item); }); html += " "; html += "
名稱 粉絲數 貼文互動數(近6) Reels預估觀看數 更新日期
"; html += "
"; html += " "; html += "
"; html += "
"; html += "
"; html += "
"; return html; } function instagramSubHtml(item) { var html = ""; var decimal = item.instagram_postActive; var postPercent = (decimal * 100).toFixed(2) + "%"; var avgView = item.instagram_reelsActive.toFixed(0); var publishdate = new Date(item.instagram_updatedate); html += " "; html += " "; html += " "; html += "  "; html += " " + item.instagram_name + ""; html += " "; html += " " + AppendComma(item.instagram_fansNum) + " "; html += " " + postPercent + " "; html += " " + AppendComma(avgView) + " "; html += " " + formatDate(publishdate, 'yyyy/MM/dd HH:mm:ss') + " "; html += " "; html += " "; html += " "; html += " "; html += " "; return html; } function loadFacebookCard() { $.ajax({ url: "/Api/facebookList", type: "post", data: null, success: function (data, textStatus, jqXHR) { if (data.ret == "yes") { var obj = data.list; $('#card_group').append(facebookCardHtml(obj)); } else { alert(data.message); if (data.err_code == "99999") { location.href = "/Root/Login"; } } }, error: function (jqXHR, textStatus, errorThrown) { alert('網路或伺服器發生錯誤,請稍後重試!'); } }); } function facebookCardHtml(objItem) { var html = ""; html += ""; html += "
"; html += " "; html += "
"; html += " "; html += "
"; html += " "; html += "
"; html += " Facebook 排行 "; html += "
"; html += "
"; html += "
"; html += "
"; html += " "; html += "
"; html += " "; html += " "; html += " "; html += " "; html += " "; html += " "; html += " "; html += " "; html += " "; html += " "; html += " "; html += " "; html += " "; html += " "; html += " "; $.each(objItem, function (index, item) { html += facebookSubHtml(item); }); html += " "; html += "
名稱 追蹤者數 互動數(近5) 資料更新日期
"; html += "
"; html += " "; html += "
"; html += "
"; html += "
"; html += "
"; return html; } function facebookSubHtml(item) { var html = ""; var decimal = item.facebook_active; var percent = (decimal * 100).toFixed(2) + "%"; var publishdate = new Date(item.facebook_updatedate); html += " "; html += " "; html += " "; html += "  "; html += " " + item.facebook_name + ""; html += " "; html += " " + AppendComma(item.facebook_fansNum) + " "; html += " " + percent + " "; html += " " + formatDate(publishdate, 'yyyy/MM/dd HH:mm:ss') + " "; html += " "; html += " "; html += " "; html += " "; return html; } function loadYoutubeCard() { $.ajax({ url: "/Api/youtubeList", type: "post", data: null, success: function (data, textStatus, jqXHR) { if (data.ret == "yes") { var obj = data.youtubeList; $('#card_group').append(youtubeCardHtml(obj)); } else { alert(data.message); if (data.err_code == "99999") { location.href = "/Root/Login"; } } }, error: function (jqXHR, textStatus, errorThrown) { alert('網路或伺服器發生錯誤,請稍後重試!'); } }); } function youtubeCardHtml(objItem) { var html = ""; html += ""; html += "
"; html += " "; html += "
"; html += " "; html += "
"; html += " "; html += "
"; html += " Youtube 頻道排行 "; html += "
"; html += "
"; html += "
"; html += "
"; html += " "; html += "
"; html += " "; html += " "; html += " "; html += " "; html += " "; html += " "; html += " "; html += " "; html += " "; html += " "; html += " "; html += " "; html += " "; html += " "; html += " "; $.each(objItem, function (index, item) { html += youtubeSubHtml(item); }); html += " "; html += "
頻道名稱 訂閱數 平均觀看數(近5) 資料更新日期
"; html += "
"; html += " "; html += "
"; html += "
"; html += "
"; html += "
"; return html; } function youtubeSubHtml(item) { var html = ""; html += " "; html += " "; html += " "; html += "  "; html += " " + item.youtube_name + ""; html += " "; html += " " + AppendComma(item.youtube_subscriberCount) + " "; html += " " + AppendComma(item.youtube_avgViewCount) + " "; html += " " + (new Date(item.youtube_updateTime)).format("yyyy/MM/dd hh:mm:ss") + " "; html += " "; html += " "; html += " "; html += " "; return html; } function instagramBtnClick(obj) { var dataUid = obj.getAttribute('data-uid'); var dataType = obj.getAttribute('data-method'); if (dataType == 'post') { var trList = $("#instagramPost_layout").find(".masonry-item"); $.each(trList, function (index, item) { $(item).remove(); }); var formData = { instagram_uid: dataUid, method: 'post' } $.ajax({ url: "/Api/instagramData", type: "post", data: formData, success: function (data, textStatus, jqXHR) { if (data.ret == "yes") { var obj = data.list; var html = ""; $.each(obj, function (index, item) { html += instagramPostModalHtml(item); }); $('#instagramPost_layout').append(html); $('#InstagramPostModal').modal('toggle'); } else { alert(data.message); if (data.err_code == "99999") { location.href = "/Root/Login"; } } }, error: function (jqXHR, textStatus, errorThrown) { alert('網路或伺服器發生錯誤,請稍後重試!'); } }); } if (dataType == 'reels') { var trList = $("#instagramPost_layout").find(".masonry-item"); $.each(trList, function (index, item) { $(item).remove(); }); var formData = { instagram_uid: dataUid, method: 'reels' } $.ajax({ url: "/Api/instagramData", type: "reels", data: formData, success: function (data, textStatus, jqXHR) { if (data.ret == "yes") { var obj = data.list; var html = ""; $.each(obj, function (index, item) { html += instagramReelsModalHtml(item); }); $('#instagramPost_layout').append(html); $('#InstagramPostModal').modal('toggle'); } else { alert(data.message); if (data.err_code == "99999") { location.href = "/Root/Login"; } } }, error: function (jqXHR, textStatus, errorThrown) { alert('網路或伺服器發生錯誤,請稍後重試!'); } }); } } function instagramReelsModalHtml(obj) { var html = ""; html += ""; html += "
"; html += " "; html += "
"; html += " "; html += " "; html += " "; html += "
"; html += " "; html += "
"; html += " "; html += "
"; html += "
"; html += " " + obj.instagramDetail_title + ""; html += "
"; html += "
" + obj.instagramDetail_date + "
"; html += "
"; html += " "; html += "
"; html += " "; html += "
"; html += " "; html += "
"; html += " "; html += "
"; html += "
" + AppendComma(obj.instagramDetail_viewNum) + "
"; html += "

觀看數

"; html += "
"; html += "
"; html += " "; html += "
"; html += " "; html += "
"; html += "
" + AppendComma(obj.instagramDetail_commentNum) + "
"; html += "

留言數

"; html += "
"; html += "
"; html += "
"; html += "
"; html += "
"; html += "
"; return html; } function instagramPostModalHtml(obj) { var html = ""; html += ""; html += "
"; html += " "; html += "
"; html += " "; html += " "; html += " "; html += "
"; html += " "; html += "
"; html += " "; html += "
"; html += "
"; html += " " + obj.instagramDetail_title + ""; html += "
"; html += "
" + obj.instagramDetail_date + "
"; html += "
"; html += " "; html += "
"; html += " "; html += "
"; html += " "; html += "
"; html += " "; html += "
"; html += "
" + AppendComma(obj.instagramDetail_likeNum) + "
"; html += "

喜歡數

"; html += "
"; html += "
"; html += " "; html += "
"; html += " "; html += "
"; html += "
" + AppendComma(obj.instagramDetail_commentNum) + "
"; html += "

留言數

"; html += "
"; html += "
"; html += "
"; html += "
"; html += "
"; html += "
"; return html; } function facebookBtnClick(obj) { var dataUid = obj.getAttribute('data-uid'); var trList = $("#facebook_layout").find(".masonry-item"); $.each(trList, function (index, item) { $(item).remove(); }); var formData = { facebook_uid: dataUid } $.ajax({ url: "/Api/facebookData", type: "post", data: formData, success: function (data, textStatus, jqXHR) { if (data.ret == "yes") { var obj = data.list; var html = ""; $.each(obj, function (index, item) { html += facebookModalHtml(item); }); $('#facebook_layout').append(html); $('#FacebookModal').modal('toggle'); } else { alert(data.message); if (data.err_code == "99999") { location.href = "/Root/Login"; } } }, error: function (jqXHR, textStatus, errorThrown) { alert('網路或伺服器發生錯誤,請稍後重試!'); } }); } function facebookModalHtml(obj) { //var publishdate = new Date(obj.youtubeDetail_publishedAt); var html = ""; html += ""; html += "
"; html += " "; html += "
"; //html += " "; //html += " "; //html += " "; html += "
"; html += " "; html += "
"; html += " "; html += "
"; // html += "
"; //html += " " + obj.youtubeDetail_title + ""; //html += "
"; //html += "
" + obj.+ "
"; html += "
"; html += " "; html += "
"; html += " "; html += "
"; html += " "; html += "
"; html += " "; html += "
"; html += " " + obj.facebookDetail_publishedAt + " "; html += "

貼文發布時間

"; html += "
"; html += "
"; html += " "; html += "
"; html += " "; html += "
"; html += "
" + AppendComma(obj.facebookDetail_likeCount) + "
"; html += "

按讚數

"; html += "
"; html += "
"; html += " "; html += "
"; html += " "; html += "
"; html += "
" + AppendComma(obj.facebookDetail_msgCount) + "
"; html += "

留言數

"; html += "
"; html += "
"; html += " "; html += "
"; html += " "; html += "
"; html += "
" + AppendComma(obj.facebookDetail_shareCount) + "
"; html += "

分享數

"; html += "
"; html += "
"; html += "
"; html += "
"; html += "
"; html += "
"; return html; } function youtubeBtnClick(obj) { var dataUid = obj.getAttribute('data-uid'); var trList = $("#youtube_layout").find(".masonry-item"); $.each(trList, function (index, item) { $(item).remove(); }); var formData = { youtube_uid: dataUid } $.ajax({ url: "/Api/youtubeData", type: "post", data: formData, success: function (data, textStatus, jqXHR) { if (data.ret == "yes") { var obj = data.data; var html = ""; $.each(obj.youtubeDetails, function (index, item) { html += youtubeModalHtml(item); }); $('#youtube_layout').append(html); $('#YoutubeModal').modal('toggle'); } else { alert(data.message); if (data.err_code == "99999") { location.href = "/Root/Login"; } } }, error: function (jqXHR, textStatus, errorThrown) { alert('網路或伺服器發生錯誤,請稍後重試!'); } }); } function youtubeModalHtml(obj) { var publishdate = new Date(obj.youtubeDetail_publishedAt); var html = ""; html += ""; html += "
"; html += " "; html += "
"; html += " "; html += " "; html += " "; html += "
"; html += " "; html += "
"; html += " "; html += "
"; html += "
"; html += " " + obj.youtubeDetail_title + ""; html += "
"; html += "
" + formatDate(publishdate, 'yyyy-MM-dd HH:mm:ss') + "
"; html += "
"; html += " "; html += "
"; html += " "; html += "
"; html += " "; html += "
"; html += " "; html += "
"; html += "
" + AppendComma(obj.youtubeDetail_viewCount) + "
"; html += "

觀看數

"; html += "
"; html += "
"; html += " "; html += "
"; html += " "; html += "
"; html += "
" + AppendComma(obj.youtubeDetail_likeCount) + "
"; html += "

按讚數

"; html += "
"; html += "
"; html += " "; html += "
"; html += " "; html += "
"; html += "
" + AppendComma(obj.youtubeDetail_commentCount) + "
"; html += "

留言數

"; html += "
"; html += "
"; html += "
"; html += "
"; html += "
"; html += "
"; return html; } function formatDate(inputDate, format) { if (!inputDate) return ''; const padZero = (value) => (value < 10 ? `0${value}` : `${value}`); const parts = { yyyy: inputDate.getFullYear(), MM: padZero(inputDate.getMonth() + 1), dd: padZero(inputDate.getDate()), HH: padZero(inputDate.getHours()), hh: padZero(inputDate.getHours() > 12 ? inputDate.getHours() - 12 : inputDate.getHours()), mm: padZero(inputDate.getMinutes()), ss: padZero(inputDate.getSeconds()), tt: inputDate.getHours() < 12 ? 'AM' : 'PM' }; return format.replace(/yyyy|MM|dd|HH|hh|mm|ss|tt/g, (match) => parts[match]); }