//オブジェクトパーサー(トゥート) function parse(obj, mix, acct_id, tlid, popup) { var templete = ''; var datetype = localStorage.getItem("datetype"); var nsfwtype = localStorage.getItem("nsfw"); var sent = localStorage.getItem("sentence"); var ltr = localStorage.getItem("letters"); var gif = localStorage.getItem("gif"); if (!sent) { var sent = 500; } if (!ltr) { var ltr = 500; } if (!nsfwtype || nsfwtype == "yes") { var nsfw = "ok"; } else { var nsfw; } var cwtype = localStorage.getItem("cw"); if (!cwtype || cwtype == "yes") { var cw = "ok"; } else { var cw; } if (!datetype) { datetype = "absolute"; } if (!gif) { var gif = "yes"; } var local = []; Object.keys(obj).forEach(function(key) { var toot = obj[key]; if(popup){ if (toot.type == "mention") { var what = "返信しました"; } else if (toot.type == "reblog") { var what = "ブーストしました"; } else if (toot.type == "favourite") { var what = "お気に入り登録しました"; } var noticetext = '' + date(toot.created_at, datetype) + '' + toot.account.display_name + "(" + toot.account.acct + ")が" + what; var toot = toot.status; var notice = noticetext; var memory = localStorage.getItem("notice-mem"); if (popup >= 0 && obj.length < 5 && noticetext != memory) { Materialize.toast(noticetext, popup * 1000); $(".notf-icon_" + tlid).addClass("red-text"); localStorage.setItem("notice-mem", noticetext); noticetext = ""; } }else{ if (toot.reblog) { var notice = toot.account.display_name + "(" + toot.account.acct + ")がブースト
"; var boostback = "shared"; var toot = toot.reblog; } else { var notice = ""; var boostback = ""; } } var id = toot.id; //Integratedである場合はUnix時間をキーに配列を生成しておく if (mix == "mix") { local[date(obj[key].created_at, 'unix')] = toot.id; var divider = '
'; } if (mix == "home") { var home = "Home TLより" var divider = ""; } else { var home = ""; var divider = '
'; } if (toot.account.locked) { var locked = ' '; } else { var locked = ""; } if (!toot.application) { var via = 'Unknown'; } else { var via = toot.application.name; } if (toot.spoiler_text && cw) { var content = toot.content; var spoil = toot.spoiler_text; var spoiler = "cw cw_hide_" + toot.id; var api_spoil = "gray"; var spoiler_show = '見る'; } else { var ct = toot.content.split('

').length + toot.content.split('
').length - 2; if ((sent < ct && $.mb_strlen($.strip_tags(toot.content)) > 5) || ($.strip_tags(toot.content).length > ltr && $.mb_strlen($.strip_tags(toot.content)) > 5)) { var content = '以下全文
' + toot.content var spoil = '' + $.mb_substr($.strip_tags( toot.content), 0, 100) + '自動折りたたみ'; var spoiler = "cw cw_hide_" + toot.id; var spoiler_show = '続き…
'; } else { var content = toot.content; var spoil = toot.spoiler_text; var spoiler = ""; var spoiler_show = ""; } } var urls = content.match( /https?:\/\/([-a-zA-Z0-9@.]+)\/?(?!.*((media|tags)|mentions)).*([-_.!~*\'()a-zA-Z0-9;\/?:\@&=+\$,%#]+)?/ ); if (urls) { var analyze = 'URL解析
'; } else { var analyze = ''; } var viewer = ""; var hasmedia = ""; var youtube = ""; var emojick = toot.emojis[0]; //絵文字があれば if (emojick) { Object.keys(toot.emojis).forEach(function(key5) { var emoji = toot.emojis[key5]; var shortcode = emoji.shortcode; var emoji_url = ''; var regExp = new RegExp(":" + shortcode + ":", "g"); content = content.replace(regExp, emoji_url); }); } var mediack = toot.media_attachments[0]; //メディアがあれば if (mediack) { hasmedia = "hasmedia"; var cwdt = 100 / toot.media_attachments.length Object.keys(toot.media_attachments).forEach(function(key2) { var media = toot.media_attachments[key2]; var purl = media.preview_url; var url = media.url; if (toot.sensitive && nsfw) { var sense = "sensitive" } else { var sense = "" } viewer = viewer + ''; }); } else { viewer = ""; hasmedia = "nomedia"; } var menck = toot.mentions[0]; var mentions = ""; //メンションであれば if (menck) { mentions = "Links: "; Object.keys(toot.mentions).forEach(function(key3) { var mention = toot.mentions[key3]; mentions = mentions + '@' + mention.acct + ' '; }); mentions = '
' + mentions + '
'; } var tagck = toot.tags[0]; var tags = ""; //タグであれば if (tagck) { if (!menck) { tags = "Links: "; } Object.keys(toot.tags).forEach(function(key4) { var tag = toot.tags[key4]; tags = tags + '#' + tag.name + ' '; }); tags = '
' + tags + '
'; } //公開範囲を取得 var vis = ""; var visen = toot.visibility; if (visen == "public") { var vis = 'public'; var can_rt = ""; } else if (visen == "unlisted") { var vis = 'lock_open'; var can_rt = ""; } else if (visen == "plivate") { var vis = 'lock'; var can_rt = "hide"; } else if (visen == "direct") { var vis = 'mail'; var can_rt = "hide"; } if (toot.account.acct == localStorage.getItem("user_" + acct_id)) { var if_mine = ""; } else { var if_mine = "hide"; } if (toot.favourited) { var if_fav = " yellow-text"; var fav_app = "faved"; } else { var if_fav = ""; var fav_app = ""; } if (toot.reblogged) { var if_rt = "teal-text"; var rt_app = "rted"; } else { var if_rt = ""; var rt_app = ""; } //アニメ再生 if (gif == "yes") { var avatar = toot.account.avatar; } else { var avatar = toot.account.avatar_static; } templete = templete + '
' + '
' + notice + home + '
' + '
' + '
' + '
' + toot.account.display_name + ' @' + toot.account.acct + locked + '
' + '
' + date(toot.created_at, datetype) + '
' + '
' + content + '' + spoil + spoiler_show + '' + '' + viewer + '' + '
' + analyze + '' + '' + mentions + tags + '
' + '
' + '
' + vis + '
' + '' + '' + '
' + '' + '
' + '
via ' + via + '
' + '' + divider; }); if (mix == "mix") { return [templete, local] } else { return templete; } } //オブジェクトパーサー(ユーザーデータ) function userparse(obj, auth, acct_id, notf) { var templete = ''; var datetype = localStorage.getItem("datetype"); Object.keys(obj).forEach(function(key) { var toot = obj[key]; if (toot.locked) { var locked = ' '; } else { var locked = ""; } if (auth) { var auth = 'person_add'; } else { var auth = ""; } if(notf){ var notftext='' + date(toot.created_at, datetype) + 'フォローされました。
'; }else{ var notftext=""; } templete = templete + '
' + notftext + '
' + '
' + '
' + '
' + toot.display_name + '
' + '
@' + toot.acct + locked + '
' + '
' + auth + '
Follows:' + toot.following_count + '
Followers:' + toot.followers_count + '
' + '
' + '
' + '
'; }); return templete; }