javascript:!function(){const version="2.11",setting={trim_blank_line:10,avoid_ng_level:2,removeEmoji:!1,ngurl:[/(https?:\/\/note\.mu\/?[^\s]*)/g,/(https?:\/\/.*amazon\.co[^\s]*)/g,/(https?:\/\/.*amazon\.jp\/?[^\s]*)/g,/(https?:\/\/seed\.online\/?[^\s]*)/g,/(https?:\/\/.*hatenablog\.com\/?[^\s]*)/g,/(https?:\/\/bit\.ly\/?[^\s]*)/g,/(https?:\/\/pr5\.work\/?[^\s]*)/g,/(https?:\/\/ow\.ly\/?[^\s]*)/g,/(https?:\/\/buff\.ly\/?[^\s]*)/g,/(https?:\/\/.+\.shop\/?[^\s]*)/g,/(https?:\/\/ur0\.link\/?[^\s]*)/g,/(https?:\/\/goo\.gl\/?[^\s]*)/g,/(https?:\/\/discord\.gg\/?[^\s]*)/g,/(https?:\/\/t\.co\/?[^\s]*)/g,/(https?:\/\/lineblog\.me\/?[^\s]*)/g,/(https?:\/\/db\.tt\/?[^\s]*)/g,/(https?:\/\/.*getuploader\.com\/?[^\s]*)/g,/(https?:\/\/.*r10\.to\/?[^\s]*)/g,/(https?:\/\/mjk\.ac\/?[^\s]*)/g,/(https?:\/\/kisu\.me\/?[^\s]*)/g,/(https?:\/\/j55\.pw\/?[^\s]*)/g,/(https?:\/\/j\.mp\/?[^\s]*)/g,/(https?:\/\/www\d?\.to\/?[^\s]*)/g,/(https?:\/\/ux\.nu\/?[^\s]*)/g,/(https?:\/\/urx\d?\.nu\/?[^\s]*)/g,/(https?:\/\/p\.tl\/?[^\s]*)/g,/(https?:\/\/amba\.to\/?[^\s]*)/g,/(https?:\/\/amzn\.to\/?[^\s]*)/g,/(https?:\/\/appsto\.re\/?[^\s]*)/g,/(https?:\/\/dlvr\.it\/?[^\s]*)/g,/(https?:\/\/kuku\.lu\/?[^\s]*)/g,/(https?:\/\/linkclub\.jp\/?[^\s]*)/g,/(https?:\/\/.*sakura.ne.jp\/?[^\s]*)/g,/(https?:\/\/.*wixsite.com\/?[^\s]*)/g,/(https?:\/\/lineblog\.me\/?[^\s]*)/g,/(https?:\/\/kakuyomu\.jp\/?[^\s]*)/g,/(https?:\/\/.*syosetu\.com\/?[^\s]*)/g,/(https?:\/\/.*stores\.jp\/?[^\s]*)/g,/(https?:\/\/.*shop-pro\.jp\/?[^\s]*)/g,/(https?:\/\/.*webmoney\.jp\/?[^\s]*)/g,/(https?:\/\/.*\.live\.nicovideo\.jp\/?[^\s]*)/g,/(https?:\/\/.*linkco\.re\/?[^\s]*)/g,/(https?:\/\/.*lin\.ee\/?[^\s]*)/g,/(https?:\/\/.*onl\.tw\/?[^\s]*)/g,/(https?:\/\/.*onl\.la\/?[^\s]*)/g,/(https?:\/\/.*onl\.bz\/?[^\s]*)/g,/(https?:\/\/.*onl\.sc\/?[^\s]*)/g,/(https?:\/\/.*tinyurl\.com\/?[^\s]*)/g,/(https?:\/\/.*openrec\.tv\/?[^\s]*)/g,/(https?:\/\/.*cloudfront\.net\/?[^\s]*)/g,/(https?:\/\/.*fc2\.com\/?[^\s]*)/g,/(https?:\/\/is\.gd\/?[^\s]*)/g,/(https?:\/\/.*\/\?id=\d+[^\s]*)/g,/(https?:\/\/yt\.be\/?[^\s]*)/g,/(https?:\/\/.*twitch\.tv\/?[^\s]*)/g,/(https?:\/\/.*campaign[^\s]*)/g,/(https?:\/\/.*tiktok\.com\/?[^\s]*)/g,/(https?:\/\/.*nicovideo\.jp\/?[^\s]*)/g,/(https?:\/\/.*discord\.com\/?[^\s]*)/g],ngword:[{before:/拡散希望/g,after:"拡/散/希/望"},{before:/拡散お願い/g,after:"拡/散/お/願/い"},{before:/(https?:\/\/marshmallow-qa\.com\/?[^?]+)\?[^\s]+/g,after:"$1"},{before:/(utm_)(source|medium|term|campaign|content)/g,after:"$1.$2"},{before:/鈴原/g,after:"鈴.原"},{before:/無料/g,after:"無.料"},{before:/\.{3}/g,after:"…"},{before:/(_ ?){2,}/g,after:"_"},{before:/(- ?){2,}/g,after:"-"},{before:/(= ?){2,}/g,after:"="},{before:/(; ?){3,}/g,after:";;"},{before:/(: ?){3,}/g,after:"::"},{before:/</g,after:"<"},{before:/>/g,after:">"},{before:/&/g,after:"&"},{before:/"/g,after:'"'},{before:/ +/g,after:" "},{before:/ +/g,after:" "},{before:/ +/g,after:" "},{before:/(\d{2,})(円)/g,after:"$1.$2"},{before:/登録/g,after:"登.録"},{before:/(く.{1,2}[ぽポ])([んン])/g,after:"$1.$2"},{before:/キャンペーン/g,after:"キャン.ペーン"},{before:/コード/g,after:"コー.ド"},{before:/K5/g,after:"K.5"},{before:/常闇/g,after:"とこやみ"},{before:/tokoyami/g,after:"toko.yami"}],replaceURLString:[/K5/g,/tokoyami/g],ngQueryParam:[/utm_(source|medium|term|campaign|content)/],ngdomain:["amazon","amzn",/\.{3}/,/_{4,}/,/-{4,}/],removeSurrogate:[65039,8419],unicodeOffset:[[/[\u{2776}-\u{277F}]/gu,10053],[/\u{24FF}/gu,9423],[/[\u{24EB}-\u{24F4}]/gu,129],[/[\u{1f150}-\u{1f169}]/gu,127247],[/[\u{24B6}-\u{24CF}]/gu,9333],[/[\u{24D0}-\u{24E9}]/gu,9327],[/[\u{1d400}-\u{1d419}]/gu,119743],[/[\u{1d41a}-\u{1d433}]/gu,119737],[/[\u{1d7ce}-\u{1d7d7}]/gu,120734],[/[\u{1d56c}-\u{1d585}]/gu,120107],[/[\u{1d586}-\u{1d59f}]/gu,120101],[/[\u{1d468}-\u{1d481}]/gu,119847],[/[\u{1d482}-\u{1d49b}]/gu,119841],[/[\u{1d4d0}-\u{1d4e9}]/gu,119951],[/[\u{1d4ea}-\u{1d503}]/gu,119945],[/[\u{2124}]/gu,8394],[/[\u{1d552}-\u{1d56b}]/gu,120049],[/[\u{1d7d8}-\u{1d7e1}]/gu,120744],[/[\u{1d670}-\u{1d689}]/gu,120367],[/[\u{1d68a}-\u{1d6a3}]/gu,120361],[/[\u{1d7f6}-\u{1d7ff}]/gu,120774],[/[\u{1d5a0}-\u{1d5b9}]/gu,120159],[/[\u{1d5ba}-\u{1d5d3}]/gu,120153],[/[\u{1d7e2}-\u{1d7eb}]/gu,120754],[/[\u{1d5d4}-\u{1d5ed}]/gu,120211],[/[\u{1d5ee}-\u{1d607}]/gu,120205],[/[\u{1d7ec}-\u{1d7f5}]/gu,120764],[/[\u{1d63c}-\u{1d655}]/gu,120315],[/[\u{1d656}-\u{1d66f}]/gu,120309],[/[\u{1d608}-\u{1d621}]/gu,120263],[/[\u{1d622}-\u{1d63b}]/gu,120257],[/[\u{249c}-\u{24b5}]/gu,9275],[/[\u{2474}-\u{247c}]/gu,9283],[/[\u{1f1e6}-\u{1f1ff}]/gu,127397],[/[\u{1f130}-\u{1f149}]/gu,127215],[/[\u{1f170}-\u{1f189}]/gu,127279],[/[\u{1d538}-\u{1d550}]/gu,120055],[/[\u{2102}]/gu,8383],[/[\u{210d}]/gu,8389],[/[\u{2115}]/gu,8391],[/[\u{2119}-\u{211a}]/gu,8393],[/[\u{211d}]/gu,8395],[/[\u{2124}]/gu,8394],[/[\u{1d434}-\u{1d44d}]/gu,119795],[/[\u{1d44e}-\u{1d467}]/gu,119789],[/[\u{1d49c}-\u{1d4b5}]/gu,119899],[/[\u{1d4b6}-\u{1d4cf}]/gu,119893],[/[\u{1d504}-\u{1d51c}]/gu,120003],[/[\u{1d51e}-\u{1d537}]/gu,119997]],replaceEmoji:[{before:/\u{203c}/gu,after:"!!"},{before:/\u{2049}/gu,after:"!?"},{before:/\u{1f195}/gu,after:"[NEW]"},{before:/\u{1f202}/gu,after:"サ"},{before:/\u{1f522}/gu,after:"1234"},{before:/\u{1f197}/gu,after:"[OK]"},{before:/\u{1f196}/gu,after:"[NG]"},{before:/\u{1f193}/gu,after:"[FREE]"},{before:/\u{1f192}/gu,after:"[COOL]"},{before:/\u{1f199}/gu,after:"[UP!]"},{before:/\u{1f201}/gu,after:"ココ"},{before:/\u{1f233}/gu,after:"空"},{before:/\u{1f17f}/gu,after:"P"},{before:/\u{1f251}/gu,after:"可"},{before:/\u{1f250}/gu,after:"得"},{before:/\u{3299}/gu,after:"秘"},{before:/\u{3297}/gu,after:"祝"},{before:/\u{1f234}/gu,after:"合"},{before:/\u{1f235}/gu,after:"満"},{before:/\u{1f239}/gu,after:"割"},{before:/\u{1f232}/gu,after:"禁"},{before:/\u{1f170}/gu,after:"A"},{before:/\u{1f171}/gu,after:"B"},{before:/\u{1f18e}/gu,after:"AB"},{before:/\u{1f191}/gu,after:"CL"},{before:/\u{1f17e}/gu,after:"O"},{before:/\u{1f198}/gu,after:"[SOS]"},{before:/\u{2b55}/gu,after:"○"},{before:/\u{274c}/gu,after:"×"},{before:/\u{2757}/gu,after:"!"},{before:/\u{2755}/gu,after:"!"},{before:/\u{2753}/gu,after:"?"},{before:/\u{2754}/gu,after:"?"},{before:/\u{26a0}/gu,after:"!"},{before:/\u{1f22f}/gu,after:"指"},{before:/\u{1f19a}/gu,after:"VS"},{before:/\u{1f194}/gu,after:"ID"},{before:/\u{1f51f}/gu,after:"10"},{before:/\u{1f236}/gu,after:"有"},{before:/\u{1f21a}/gu,after:"無"},{before:/\u{1f238}/gu,after:"申"},{before:/\u{1f23a}/gu,after:"営"},{before:/\u{1f237}/gu,after:"月"},{before:/\u{a9}/gu,after:"(C)"},{before:/\u{ae}/gu,after:"(R)"},{before:/\u{2122}/gu,after:"(TM)"},{before:/[\u{25b6}\u{25B7}]/gu,after:">"},{before:/[\u{25C0}\u{25C1}]/gu,after:"<"},{before:/[\u{2798}-\u{27af}\u{27B1}-\u{27BE}\u{21E8}]/gu,after:"→"},{before:/[\u{2B05}\u{2B30}-\u{2B42}\u{21E6}]/gu,after:"←"},{before:/[\u{2B06}\u{21E7}]/gu,after:"↑"},{before:/[\u{2B07}\u{21E9}]/gu,after:"↓"},{before:/[\u{1f53c}\u{1F53A}]/gu,after:"▲"},{before:/[\u{1F53B}\u{1F53D}]/gu,after:"▼"},{before:/\u{2139}/gu,after:"i"},{before:/[\u{1F3B5}\u{1F3B6}\u{2669}]/gu,after:"♪"},{before:/\u{2795}/gu,after:"+"},{before:/\u{2796}/gu,after:"-"},{before:/\u{2797}/gu,after:"÷"},{before:/\u{2716}/gu,after:"×"},{before:/\u{1F4B2}/gu,after:"$"},{before:/\u{146D}/gu,after:"P"},{before:/\u{157C}/gu,after:"H"},{before:/\u{1587}/gu,after:"R"},{before:/\u{15E9}/gu,after:"A"},{before:/\u{15EA}/gu,after:"D"},{before:/\u{15F0}/gu,after:"M"},{before:/\u{15F7}/gu,after:"B"},{before:/\u{2022}/gu,after:"・"},{before:/\u{301C}/gu,after:"~"},{before:/\u{2751}/gu,after:"□"},{before:/\u{795C}/gu,after:"示古"}],emojiRegExpSub:/(?:[\u2700-\u27bf]|(?:\ud83c[\udde6-\uddff]){2}|[\ud800-\udbff][\udc00-\udfff]|[\u0023-\u0039]\ufe0f?\u20e3|\u3299|\u3297|[\u3004\u3016-\u301C\u301E\u3020-\u303F]|\u24c2|\ud83c[\udd70-\udd71]|\ud83c[\udd7e-\udd7f]|\ud83c\udd8e|\ud83c[\udd91-\udd9a]|\ud83c[\udde6-\uddff]|\ud83c[\ude01-\ude02]|\ud83c\ude1a|\ud83c\ude2f|\ud83c[\ude32-\ude3a]|\ud83c[\ude50-\ude51]|[\u0081-\u009F\u00A1-\u00A4\u00A6\u00A9-\u00AF\u00B2\u00B3\u00B5\u00B7-\u00D6\u00D8-\u00F6\u00F8-\u00FF]|[\u2000-\u200F\u2011-\u2014\u2016\u2017\u201A\u201B\u201E\u201F\u2022-\u2024\u2027-\u202F\u2031\u2034-\u203A\u203C\u203D\u203F-\u206F]|[\u2070-\u20CF]|[\u2201\u2204-\u2206\u2209\u220A\u220C-\u2210\u2213-\u2219\u221B\u221C\u2221-\u2224\u2226\u222D\u222F-\u2233\u2236-\u223C\u223E-\u2251\u2253-\u225F\u2262-\u2265\u2268\u2269\u226C-\u2281\u2284\u2285\u2288-\u22A4\u22A6-\u22BE\u22C0-\u22FF]|[\u2440-\u245F]|[\u2474-\u24FF]|[\u2504-\u250B\u250D\u250E\u2511\u2512\u2515\u2516\u2519\u251A\u251E\u251F\u2521\u2522\u2526\u2527\u2529\u252A\u252D\u252E\u2531\u2532\u2535\u2536\u2539\u253A\u253D\u253E\u2540\u2541\u2543-\u254A\u254C-\u257F]|[\u25A2-\u25B1\u25B4-\u25BB\u25BE-\u25C5\u25C8-\u25CA\u25CC\u25CD\u25D0-\u25EE\u25F0-\u25FF]|\u00a9|\u00ae|\u2122|\u2139|\ud83c\udc04|[\u2600-\u2604\u2607-\u263F\u2641\u2643-\u2669\u266B-\u266C\u266E\u2670-\u26FF]|\u2b05|\u2b06|\u2b07|\u2b1b|\u2b1c|\u2b50|\u2b55|\u231a|\u231b|\u2328|\u23cf|[\u23e9-\u23f3]|[\u23f8-\u23fa]|\ud83c\udccf|\u2934|\u2935|[\u2194-\u21D1\u21D3\u21D5-\u21FF]|[\u2FF0-\u2FFF]|[\uA640-\uA69F]|[\u0100-\u0390]|[\u03CA-\u0400]|[\u0452-\u1FFF]|[\uFE70-\uFEFF]|[\uA000-\uE3FF]|[\uFB00-\uFEFF])/g,spaceState:{Ended:"終了済",TimedOut:"終了済",Running:"ライブ中",NotStarted:"開始待ち"}};class Tweet{constructor(feed,tweetid,twitter,isChild){let tweet=feed.globalObjects.tweets[tweetid],user=feed.globalObjects.users[tweet.user_id_str];if(this.feed=feed,this.tweetid=tweetid,this.twitter=twitter,this.tweet=tweet,this.user=user,this.username=this.removeEmoji(user.name),this.screen_name=user.screen_name,this.created_at=new Date(tweet.created_at),this.isChild=isChild,this.body=this.removeEmoji(tweet.full_text&&tweet.full_text.substring(...Tweet.gettextrange(tweet.full_text,tweet.display_text_range[0],tweet.display_text_range[1]))||""),tweet.card){if(tweet.card.binding_values.title){let title=this.removeEmoji(tweet.card.binding_values.title.string_value),titlepart=title.split(/( ?- ?)|( ?| ?)|( ?\| ?)|( ?: ?)|( ?│ ?)/);this.body.indexOf(title)>=0||titlepart.length>=2&&this.body.indexOf(titlepart[0])>=0||(this.body=this.body.replace(tweet.card.binding_values.card_url.string_value,this.removeEmoji(title)+"\n"+tweet.card.binding_values.card_url.string_value))}let choice=tweet.card.name.match(/poll(\d)choice_text_only/);if(choice){this.is_enq_end=tweet.card.binding_values.counts_are_final.boolean_value,this.enq_enddate=new Date(tweet.card.binding_values.end_datetime_utc.string_value),tweet.card.binding_values.last_updated_datetime_utc&&(this.enq_lastupdate=new Date(tweet.card.binding_values.last_updated_datetime_utc.string_value)),this.enq=[];let num=choice[1];for(let i=1;i<=num;i++)this.enq.push({name:tweet.card.binding_values["choice"+i+"_label"].string_value,amount:parseInt(tweet.card.binding_values["choice"+i+"_count"].string_value)})}if(tweet.card.binding_values.player_stream_url&&/.*\.vmap$/.test(tweet.card.binding_values.player_stream_url.string_value)&&this.twitter.promises.push(this.getURLFromVMAP(tweet.card.binding_values.player_stream_url.string_value)),tweet.card.name.indexOf("audiospace")>=0&&(this.audioSpaceId=tweet.card.binding_values.id.string_value,this.twitter.promises.push(this.getSpace(twitter,this.audioSpaceId))),tweet.card.binding_values.photo_image_full_size_original||tweet.card.binding_values.thumbnail_image_original){let photo_image_url=tweet.card.binding_values.photo_image_full_size_original||tweet.card.binding_values.thumbnail_image_original;photo_image_url=photo_image_url.image_value.url.match(/card_img\/(\d+)\/([^?]*).*format=(\w+)/),this.imgs=this.img||[],this.imgs.push("https://ohayua.cyou/card_img/"+photo_image_url[1]+"/"+photo_image_url[2]+"."+photo_image_url[3])}if(tweet.card.binding_values.unified_card&&tweet.card.binding_values.unified_card.string_value){let ucard=JSON.parse(tweet.card.binding_values.unified_card.string_value);if(ucard.destination_objects&&ucard.destination_objects.browser_1&&ucard.destination_objects.browser_1.data&&ucard.destination_objects.browser_1.data.url_data&&(this.videourl=this.videourl||[],this.videourl.push(this.avoidLinkURLNG(this.avoidVideoURLNG(ucard.destination_objects.browser_1.data.url_data.url)))),ucard.media_entities){let media_entities;Object.keys(ucard.media_entities).map(x=>{if(["video","photo"].indexOf(ucard.media_entities[x].type)>=0)return ucard.media_entities[x]}).filter(x=>x).forEach(entitie=>{switch(entitie.type){case"animated_gif":case"video":let arr=entitie.video_info.variants.filter(x=>"video/mp4"===x.content_type).map(y=>y.bitrate).sort(),media_url_https=entitie.media_url_https?" "+entitie.media_url_https:"";this.videourl=this.videourl||[];let videourl=entitie.video_info.variants.filter(y=>y.bitrate===arr[0]?y:null)[0].url.replace(/\?tag=\w*/,"");this.videourl.push(decodeURIComponent(videourl+media_url_https));break;case"photo":[".png",".jpg",".gif"].some(x=>entitie.media_url_https.endsWith(x))&&(this.imgs=this.imgs||[],this.imgs.push(entitie.media_url_https),entitie.url&&entitie.url.length>=0&&this.body.indexOf(entitie.url)<0&&(this.body=this.body.replace(entitie.url,entitie.media_url_https)))}})}}}if(tweet.entities&&tweet.entities.urls&&tweet.entities.urls.forEach(url=>{this.body=this.body.replace(url.url,this.avoidLinkURLNG(url.expanded_url))}),tweet.in_reply_to_screen_name&&(this.replyTo=this.replyTo||[],this.replyTo.push("@"+tweet.in_reply_to_screen_name)),tweet.entities&&tweet.entities.user_mentions&&tweet.entities.user_mentions.forEach(mention=>{this.replyTo=this.replyTo||[];let str="@"+mention.screen_name;this.replyTo.indexOf(str)<0&&this.replyTo.push(str)}),tweet.extended_entities&&tweet.extended_entities.media.map(x=>{switch(x.type){case"animated_gif":case"video":let arr=x.video_info.variants.filter(y=>"video/mp4"===y.content_type).map(y=>y.bitrate).sort(),media_url_https=x.media_url_https?" "+x.media_url_https:"";this.videourl=this.videourl||[];let videourl=x.video_info.variants.filter(y=>y.bitrate===arr[0]?y:null)[0].url.replace(/\?tag=\w*/,"")+media_url_https;if(this.videourl.push(videourl),this.body=this.body.replace(x.url,videourl),x.additional_media_info&&x.additional_media_info.call_to_actions){let additional_url="";x.additional_media_info.call_to_actions.watch_now?additional_url=x.additional_media_info.call_to_actions.watch_now.url:x.additional_media_info.call_to_actions.visit_site&&(additional_url=x.additional_media_info.call_to_actions.visit_site.url),this.additional_media={url:additional_url,title:x.additional_media_info.title+(x.additional_media_info.description?" ("+x.additional_media_info.description+")":"")}}break;case"photo":let alt_text=x.ext_alt_text?x.ext_alt_text+" ":"";this.imgs=this.imgs||[],this.imgs.push(alt_text+x.media_url_https),this.body=this.body.replace(x.url,alt_text+x.media_url_https)}}),tweet.conversation_control&&tweet.conversation_control.policy&&(this.policy=tweet.conversation_control.policy),tweet.quoted_status_permalink&&!isChild)try{this.child=new Tweet(feed,Twitter.getTweetId(new URL(tweet.quoted_status_permalink.expanded)),twitter,!0),this.body=this.body.replace(tweet.quoted_status_permalink.expanded,"")}catch(e){console.log(e)}}toString(){let str="";switch(str+=this.replaceNGWord(this.username+" @"+this.screen_name)+" ("+this.getDate(this.created_at)+") ",this.policy){case"community":str+="[返信:フォロー/@のみ]";break;case"by_invitation":str+="[返信:@のみ]"}if(str+="\n",this.replyTo){let replyId=this.replyTo.filter(id=>this.body.toUpperCase().indexOf(id.toUpperCase())<0?id:null);replyId.length>0&&(str+=replyId.join(" ")+" ")}if(str+=this.body?this.avoidVideoURLNG(this.replaceNGWord(this.body))+"\n":"",this.enq){let total=this.enq.reduce((x,y)=>({amount:x.amount+y.amount})).amount,i=1;str+="【投票"+(this.is_enq_end?"結果":"中")+":"+this.getenqRemainTime(),str+="("+(this.is_enq_end?"計":"現在")+total.toLocaleString()+"票)】\n",str+=this.enq.map(item=>"["+i+++"] "+item.name+"("+(total>0?Math.round(item.amount/total*100*10)/10:0)+"%)\n").join("")}if(this.space){let start="",end="";this.space.started_at?start+=" "+this.getDate(this.space.started_at)+" ~":this.space.scheduled_start&&(start+=" "+this.getDate(this.space.scheduled_start)+" 開始予定"),["Ended","TimedOut"].indexOf(this.space.state)>=0&&(end+=" "+this.getDate(this.space.updated_at)),str+=(this.space.title?this.removeEmoji(this.space.title)+" ":"")+"["+setting.spaceState[this.space.state]+start+(end||"")+"]",str+="\nホスト:"+Array.from(new Set(this.space.admins.map(x=>this.removeEmoji(x.display_name)+" @"+x.twitter_screen_name))).join(", "),this.space.speakers.length>0&&(str+="\nスピーカー:"+Array.from(new Set(this.space.speakers.map(x=>this.removeEmoji(x.display_name)+" @"+x.twitter_screen_name))).join(", ")),str+="\n"}return str+=this.additional_media&&str.indexOf(this.avoidVideoURLNG(this.additional_media.url))<0?this.additional_media.title+"\n"+this.avoidVideoURLNG(this.additional_media.url)+"\n":"",str+=this.imgs?this.imgs.map(url=>this.body.indexOf(url)<0?this.avoidImageURLNG(url)+"\n":"").join(""):"",this.videourl&&this.videourl.forEach(url=>{this.body.indexOf(url)<0&&str.indexOf(this.avoidVideoURLNG(url)<0)&&(str+=this.avoidVideoURLNG(url)+"\n")}),str+=this.getURL(),this.child&&(str+="\n[引用元] "+this.child.toString()),str.split("\n").length>parseInt(setting.trim_blank_line)&&(str=str.replace(/^\s*\n/gm,"")),console.log(this),console.log(str),str}async getURLFromVMAP(vmap){await fetch(vmap).then(res=>res.text().then(text=>{let p,xml=(new DOMParser).parseFromString(text,"text/xml"),arr=Array.from(xml.getElementsByTagName("tw:videoVariant")).filter(x=>"video/mp4"===x.getAttribute("content_type")),bitrate=arr.map(x=>x.getAttribute("bit_rate")).sort(),videourl=arr.filter(x=>x.getAttribute("bit_rate")===bitrate[0])[0].getAttribute("url");this.videourl=this.videourl||[],this.videourl.push(decodeURIComponent(videourl))}))}async getSpace(twitter,audioSpaceId){let url="https://"+(this.twitter.isMobile?"mobile.":"")+"api.twitter.com/graphql/"+twitter.audioSpaceQueryId+"/AudioSpaceById?variables="+encodeURIComponent('{"id":"'+audioSpaceId+'","isMetatagsQuery":false,"withSuperFollowsUserFields":true,"withDownvotePerspective":false,"withReactionsMetadata":false,"withReactionsPerspective":false,"withSuperFollowsTweetFields":true,"withReplays":true}')+"&features="+encodeURIComponent('{"spaces_2022_h2_clipping":true,"spaces_2022_h2_spaces_communities":true,"responsive_web_twitter_blue_verified_badge_is_enabled":true,"verified_phone_label_enabled":false,"longform_notetweets_consumption_enabled":true,"tweetypie_unmention_optimization_enabled":true,"vibe_api_enabled":true,"responsive_web_edit_tweet_api_enabled":true,"graphql_is_translatable_rweb_tweet_is_translatable_enabled":true,"view_counts_everywhere_api_enabled":true,"standardized_nudges_misinfo":true,"tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled":false,"responsive_web_graphql_timeline_navigation_enabled":true,"interactive_text_enabled":true,"responsive_web_text_conversations_enabled":false,"responsive_web_enhance_cards_enabled":false}'),headerparam={accept:"*/*","accept-language":"ja",authorization:twitter.authtoken,"content-type":"application/json","sec-ch-ua":'"Google Chrome";v="89", "Chromium";v="89", ";Not A Brand";v="99"',"sec-ch-ua-mobile":"?0","sec-fetch-dest":"empty","sec-fetch-mode":"cors","sec-fetch-site":"same-origin","x-csrf-token":twitter.csfrtoken,"x-twitter-active-user":"yes","x-twitter-client-language":"ja"};t.twid?headerparam["x-twitter-auth-type"]="OAuth2Session":headerparam["x-guest-token"]=t.guesttoken,await fetch(url,{headers:headerparam,referrer:this.getURL(),referrerPolicy:"strict-origin-when-cross-origin",body:null,method:"GET",mode:"cors",credentials:"include"}).then(response=>response.json()).then(json=>(this.spaceObj=json,this.space={admins:json.data.audioSpace.participants.admins,speakers:json.data.audioSpace.participants.speakers,title:json.data.audioSpace.metadata.title,state:json.data.audioSpace.metadata.state,started_at:json.data.audioSpace.metadata.started_at?new Date(json.data.audioSpace.metadata.started_at):null,scheduled_start:json.data.audioSpace.metadata.scheduled_start?new Date(json.data.audioSpace.metadata.scheduled_start):null,updated_at:json.data.audioSpace.metadata.updated_at?new Date(json.data.audioSpace.metadata.updated_at):null},json))}getenqRemainTime(){if(this.is_enq_end)return"";let diffsecond=Math.trunc((this.enq_enddate.getTime()-(new Date).getTime())/1e3),day=Math.trunc(diffsecond/60/60/24);if(day>0)return"残り"+day+"日";diffsecond-=60*day*60*24;let hour=Math.trunc(diffsecond/60/60);if(hour>0)return"残り"+hour+"時間";diffsecond-=60*hour*60;let minute=Math.trunc(diffsecond/60);return minute>0?"残り"+minute+"分":(diffsecond-=60*minute,diffsecond>0?"残り"+diffsecond+"秒":"")}getURL(){let url="https://twitter.com/"+this.screen_name+"/status/"+this.tweetid;return url=this.replaceText(url,setting.replaceURLString),setting.avoid_ng_level>=1&&(url=this.makeRedirectURL(url)),url}getDate(date){let d=date;return d.getFullYear()+"/"+("0"+(d.getMonth()+1)).slice(-2)+"/"+("0"+d.getDate()).slice(-2)+" "+("0"+d.getHours()).slice(-2)+":"+("0"+d.getMinutes()).slice(-2)+":"+("0"+d.getSeconds()).slice(-2)}replaceNGWord(text){return setting.ngword.forEach(ng=>{let url_pattern=/(https?:\/\/[^\s]*)/;text=text.split(url_pattern).map(x=>url_pattern.test(x)?x:x.replace(ng.before,ng.after)).join("")}),text}replaceText(text,replacePattern){let new_text;return replacePattern.reduce((x,ng)=>x.replace(ng,this.fixedEncodeURIComponent(ng.source,!0)),text)}fixedEncodeURIComponent(str,strong){let pattern=strong?/[a-zA-Z!'()*.-_]/g:/[!'()*.-]/g;return encodeURIComponent(str).replace(pattern,(function(c){return"%"+c.charCodeAt(0).toString(16).toUpperCase()}))}makeRedirectURL(str,p){if(p){let url=new URL(str);return"https://ohayua.cyou/?ssl="+("https:"===url.protocol?"1":"0")+"&d="+url.host.replace(".","_")+"&p="+encodeURIComponent(url.pathname).replace(/^\//,"")}{let q=this.fixedEncodeURIComponent(str);return q=setting.ngdomain.reduce((u,domain)=>{let n_domain=u.match(domain);if(n_domain){let n_url;return this.makeRedirectURL(u.replace(domain,this.fixedEncodeURIComponent(n_domain,!0)))}return u},q),"https://www.google.co.jp/url?q="+q}}removeNGQueryParam(urlString){let url=new URL(urlString),queryParams=url.searchParams;return Array.from(queryParams.keys()).forEach(key=>{setting.ngQueryParam.some(ng=>ng.test(key))&&queryParams.delete(key)}),url.toString()}avoidLinkURLNG(str){return str=this.replaceText(str,setting.replaceURLString),(str=this.removeNGQueryParam(str)).match(/https?:\/\/(?:.*?youtu\.be\/|.*?youtube\.com\/)/)?str:(setting.ngurl.forEach(urlregexp=>{let ngurl=str.match(urlregexp);ngurl&&ngurl.forEach(url=>{str=str.replace(url,this.makeRedirectURL(url))})}),setting.avoid_ng_level<=1?str:setting.avoid_ng_level>=2?this.makeRedirectURL(str):void 0)}avoidImageURLNG(str){if(str=this.replaceText(str,setting.replaceURLString),setting.avoid_ng_level<2)return str;if(2===setting.avoid_ng_level)return str.replace(/http/g,"tp");if(3===setting.avoid_ng_level){let url=new URL(str),urlstr;return"https://"+url.hostname.replace(/\./g,"-")+".cdn.ampproject.org/i/"+("https:"===url.protocol?"s/":"")+url.hostname+url.pathname}}avoidVideoURLNG(url){return(url=this.replaceText(url,setting.replaceURLString)).match(/.*\.mp4/)&&setting.avoid_ng_level>=2?url.replace(/http/g,"tp"):url=(url=url.replace(/https?:\/\/(?:.*?youtu\.be\/|.*?youtube\.com\/watch.*?v=)([A-Za-z\-\_0-9%]+)(?:[\?\&\#][^t][\=\-\w\.]*)*(?:[\?\&\#]t=)([\dhms]+)(?:[\?\&\#][\w\=\-\.]*)*/g,"https://ohayua.cyou/?yt=$1&t=$2 https://i.ytimg.com/vi/$1/hqdefault.jpg")).replace(/https?:\/\/(?:.*?youtu\.be\/|.*?youtube\.com\/watch.*?v=)([A-Za-z\-\_0-9%]+)(?:[\?\&\#][\w\=\-\.]*)*/g,"http://y2u.be/$1 https://i.ytimg.com/vi/$1/hqdefault.jpg")}removeEmoji(text){if(!setting.removeEmoji)return text;if("string"!=typeof text)return text;let output=text;return output=this.removeSurrogatePair(output),output=this.replaceEmoji(output),output=this.removeBold(output),output=output.replace(this.twitter.emojiRegExp,""),output=output.replace(setting.emojiRegExpSub,""),output=this.removeKaomoji(output),output}static r3(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);tx.replace(new RegExp(String.fromCodePoint(y),"g"),""),text)}removeBold(input){let output;return setting.unicodeOffset.reduce((text,param)=>text.replace(param[0],x=>String.fromCodePoint(x.codePointAt()-param[1])),input)}replaceEmoji(input){let output;return setting.replaceEmoji.reduce((text,param)=>text.replace(param.before,param.after),input)}removeKaomoji(input){let non_text="[^0-9A-Za-z!-@\\[-`{-}~ぁ-ヶ・-ヾ、-〃々-〕一-龠!-~\\nー…。-゚¢-¥▽△○□◎【】∀∂∃∇∈∋∑-√∝∞∟∠∥∧-∬∮∴∵∽≒≠≡≦≧≪≫⊂⊃⊆⊇⊥⊿~〜Α-ΡΣ-Ωα-ρσ-ωА-яё\\´°±¨×÷─-┃┌┏┐┓└┗┘┛├┝┠┣-┥┨┫┬┯┰┳┴┸┻┼┿╂╋←-↓⇒⇔  -〕〝〟]",allow_text,open_bracket="[\\(∩꒰(₍]",close_bracket="[\\)∩꒱)₎]+",arround_face="(?:"+non_text+"|"+"[ovっつ゜ニノ三二\\\\/]"+")*",face_char=input.match(new RegExp(arround_face+"[\\(∩꒰(₍].*?[\\)∩꒱)₎]+"+arround_face,"g")),output=input;return face_char&&face_char.forEach(x=>{new RegExp(non_text).test(x)&&(output=output.replace(x,""))}),output}static gettextrange(e,t,n){var u=(0,Tweet.r1)(e);if(e.length-u>0){var i=[].concat((0,Tweet.r3)(e)),a=0===t?"":i.slice(0,t).join(""),c=i.slice(t,n).join("");return[a.length,a.length+c.length]}return[t,n]}}class Twitter{constructor(){this.promises=[],this.isMobile=/^mobile/.test(window.location.hostname),this.twid=Twitter.getToken("twid"),this.mainurl=Twitter.getScriptURL("/main"),this.vendorurl=Twitter.getScriptURL("vendor");let scripts=document.getElementsByTagName("script");for(let i=0;ix.src.match(r))[0];return mainscript?mainscript.src:""}static getTweetId(url=location){let path=url.pathname.match(/\/[^\/]+\/status\/(\d+)/);if(path)return path[1]}static getToken(name){let n=document.cookie.match(new RegExp(name+"=([^;]*);?"));if(n)return n[1]}getData(){let m=fetch(this.mainurl,{mode:"cors"}).then(response=>response.text()),v=fetch(this.vendorurl,{mode:"cors"}).then(response=>response.text()),a=fetch(this.audioSpaceEndpoints,{mode:"cors"}).then(response=>response.text());Promise.all([m,v,a]).then(([m,v,a])=>{this.authtoken="Bearer "+m.match(/"AAAAAA[^"]+"/)[0].replace(/"/g,""),this.audioSpaceQueryId=a.match('queryId:s*"([^"]+)",(?=operationName:s*"AudioSpaceById")')[1];let emoji=v.match(/\/(\(\?:\\ud83d[^\/]+)\/g/);return this.emojiRegExp=new RegExp(emoji?emoji[1]:"","g"),this.getTweets()})}getTweets(){let url="https://api.twitter.com/2/timeline/conversation/"+this.tweetid+".json?include_profile_interstitial_type=1&include_blocking=1&include_blocked_by=1&include_followed_by=1&include_want_retweets=1&include_mute_edge=1&include_can_dm=1&include_can_media_tag=1&skip_status=1&cards_platform=Web-12&include_cards=1&include_composer_source=true&include_ext_alt_text=true&include_reply_count=1&tweet_mode=extended&include_entities=true&include_user_entities=true&include_ext_media_color=true&include_ext_media_availability=true&send_error_codes=true&count=20&ext=mediaStats%2ChighlightedLabel%2CcameraMoment",headerparam={authorization:this.authtoken,"x-csrf-token":this.csfrtoken,"x-twitter-active-user":"yes","x-twitter-client-language":"ja"};this.twid?headerparam["x-twitter-auth-type"]="OAuth2Session":headerparam["x-guest-token"]=this.guesttoken,fetch(url,{mode:"cors",credentials:"include",headers:headerparam}).then(response=>response.json()).then(json=>{if(t=new Tweet(json,this.tweetid,this),!(this.promises.length>0)){let str=t.toString();return navigator.clipboard.writeText(str),this.stopLoading(),str}Promise.all(this.promises).then(x=>{let str=t.toString();return navigator.clipboard.writeText(str),this.stopLoading(),str})})}startLoading(){let css=document.createElement("style");css.id="loading-circle-animation-style",css.media="screen",css.type="text/css";let rotate_animation=[".loading-circle-animation{","height: 20%;","width: 20%;","animation-timing-function: linear;","animation-name: rotate-circle;","animation-iteration-count: infinite;","animation-duration: 0.75s;","position: fixed;","left: 40%;","top: 40%;","}"].join(" "),rotate="@keyframes rotate-circle{"+["0% {transform: rotate(0deg)}","100% {transform: rotate(360deg)}"].join(" ")+"}",rules=document.createTextNode([rotate_animation,rotate].join("\n"));css.appendChild(rules),document.getElementsByTagName("head")[0].appendChild(css);let circleArea=document.createElement("div");circleArea.classList.add("loading-circle-animation");let circleSvg=document.createElementNS("http://www.w3.org/2000/svg","svg");circleSvg.setAttribute("height","100%"),circleSvg.setAttribute("width","100%"),circleSvg.setAttribute("viewBox","0 0 32 32");let circle_1=document.createElementNS("http://www.w3.org/2000/svg","circle");circle_1.setAttribute("cx","16"),circle_1.setAttribute("cy","16"),circle_1.setAttribute("fill","none"),circle_1.setAttribute("r","14"),circle_1.setAttribute("stroke-width","4"),circle_1.style="stroke: rgb(29, 161, 242); opacity: 0.2;";let circle_2=document.createElementNS("http://www.w3.org/2000/svg","circle");circle_2.setAttribute("cx","16"),circle_2.setAttribute("cy","16"),circle_2.setAttribute("fill","none"),circle_2.setAttribute("r","14"),circle_2.setAttribute("stroke-width","4"),circle_2.style="stroke: rgb(29, 161, 242); stroke-dasharray: 80; stroke-dashoffset: 60;",circleSvg.appendChild(circle_1),circleSvg.appendChild(circle_2),circleArea.appendChild(circleSvg),document.querySelector("#react-root").appendChild(circleArea)}stopLoading(){document.querySelector(".loading-circle-animation").remove(),document.querySelector("#loading-circle-animation-style").remove()}}t=new Twitter(!0),t.startLoading(),t.getData()}();