您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
看起来是这样的。70/12/31(Th) 23:59:59.
// ==UserScript== // @name Show date normally on Twitter // @name:aa Tiwiteril qaadik tan ayro kee wakti yaybulle // @name:ab Твиттер иаанарԥшуеит иаабац арыцхәи аамҭеи // @name:af Twitter vertoon normale datum en tyd // @name:ak Twitter kyerɛ da ne bere a ɛfata . // @name:am ትዊተር የተለመደው ቀን እና ሰዓት ያሳያል // @name:ar يعرض Twitter التاريخ والوقت العاديين // @name:as টুইটাৰে সাধাৰণ তাৰিখ আৰু সময় প্ৰদৰ্শন কৰে // @name:av Твиттералда бихьулеб букӀуна гӀадатияб тарих ва заман // @name:ay Twitter ukax normal uru ukat pacha uñacht’ayi . // @name:az Twitter normal tarix və vaxt göstərir // @name:ba Twitter ғәҙәти дата һәм ваҡыт күрһәтә // @name:be Twitter адлюстроўвае звычайную дату і час // @name:bg Twitter показва нормална дата и час // @name:bh ट्विटर सामान्य तारीख आ समय के देखावेला // @name:bm Twitter bɛ don ni waati nɔrɔlen jira . // @name:bn টুইটার স্বাভাবিক তারিখ এবং সময় প্রদর্শন করে // @name:bo ཊུ་ཊར་གྱིས་ཚེས་གྲངས་དང་དུས་ཚོད་སྟོན་གྱི་ཡོད། // @name:br Diskouez a ra Twitter deiziad ha eur normal // @name:bs Twitter prikazuje normalan datum i vrijeme // @name:ca Twitter mostra la data i l’hora normals // @name:ce Твиттерехь гойту нийса хан а, хан а . // @name:ceb Ang Twitter nagpakita sa normal nga petsa ug oras // @name:ch I Twitter ha dispåtta i fechan-ña yan . // @name:ckb تویتەر بەروار و کاتی ئاسایی پیشان دەدات // @name:co Twitter mostra a data è u tempu nurmale // @name:cs Twitter zobrazuje normální datum a čas // @name:cv Твиттер йĕркеллĕ кунпа вăхăта кăтартать // @name:cy Mae Twitter yn arddangos dyddiad ac amser arferol // @name:da Twitter viser normal dato og tid // @name:de Twitter zeigt das normale Datum und die normale Uhrzeit an // @name:dv ޓްވިޓަރ އިން އާދައިގެ ތާރީޚާއި ގަޑި ދައްކާ // @name:dz ཊུ་ཊར་གྱིས་ སྤྱིར་བཏང་ཚེས་གྲངས་དང་དུས་ཚོད་བཀྲམ་སྟོན་འབདཝ་ཨིན། // @name:ee Twitter ɖea ŋkeke kple gaƒoƒo si sɔ fiana . // @name:el Το Twitter εμφανίζει κανονική ημερομηνία και ώρα // @name:en Twitter displays normal date and time // @name:en-GB Twitter displays normal date and time // @name:eo Twitter montras normalan daton kaj horon // @name:es Twitter muestra fecha y hora normales // @name:et Twitter kuvab tavalise kuupäeva ja kellaaja // @name:eu Twitterrek data eta ordu normala erakusten du // @name:fa توییتر تاریخ و زمان عادی را نشان می دهد // @name:ff Twitter ina hollira ñalngu e waktu no woorunoo // @name:fi Twitter näyttää normaalin päivämäärän ja ajan // @name:fil Ipinapakita ng Twitter ang normal na petsa at oras // @name:fj Tuvanaka na tiki ni siga kei na gauna . // @name:fo Twitter vísir vanliga dagfesting og tíð // @name:fr Twitter affiche la date et l’heure normales // @name:fr-CA Twitter affiche la date et l’heure normales // @name:fy Twitter Toant normale datum en tiid // @name:ga Taispeánann Twitter gnáth -dháta agus am // @name:gd Bidh Twitter a ’taisbeanadh ceann-latha agus àm àbhaisteach // @name:gl Twitter mostra a data e hora normais // @name:gn Twitter ohechauka ára ha aravo normal . // @name:gsw-berne Twitter displays normal date and time // @name:gu ટ્વિટર સામાન્ય તારીખ અને સમય દર્શાવે છે // @name:gv Twitter t’eh soilshaghey date as traa arryltagh // @name:ha Twitter nuni na al’ada da lokaci // @name:he טוויטר מציג תאריך ושעה רגילים // @name:hi ट्विटर सामान्य तारीख और समय प्रदर्शित करता है // @name:hmn TWITTER qhia txog hnub qub thiab sijhawm // @name:hr Twitter prikazuje normalan datum i vrijeme // @name:ht Twitter montre dat ak lè nòmal // @name:hu A Twitter megjeleníti a normál dátumot és időt // @name:hy Twitter- ը ցուցադրում է նորմալ ամսաթիվը եւ ժամանակը // @name:id Twitter menampilkan tanggal dan waktu normal // @name:ig Twitter na-egosiputa ụbọchị na oge // @name:is Twitter sýnir venjulegan dag og tíma // @name:it Twitter visualizza la data e l’ora normali // @name:iu Twitter ᑕᑯᒃᓴᐅᑎᑦᑎᕗᖅ ᐅᓪᓗᕆᔭᐅᔪᒥᒃ ᐊᒻᒪ ᐱᕕᒃᓴᒥᒃ // @name:ja Twitterには通常の日付と時刻が表示されます // @name:jv Twitter nampilake tanggal lan wektu normal // @name:ka Twitter აჩვენებს ნორმალურ თარიღს და დროს // @name:kg Twitter ke monisa kilumbu mpi ntangu ya mbote // @name:kk Twitter қалыпты күн мен уақытты көрсетеді // @name:kl Twitterip ulloq piffissarlu nalinginnaasoq takutinneqartarpoq // @name:km Twitter បង្ហាញកាលបរិច្ឆេទនិងពេលវេលាធម្មតា // @name:kn ಟ್ವಿಟರ್ ಸಾಮಾನ್ಯ ದಿನಾಂಕ ಮತ್ತು ಸಮಯವನ್ನು ಪ್ರದರ್ಶಿಸುತ್ತದೆ // @name:ko 트위터에는 일반 날짜와 시간이 표시됩니다 // @name:kr Twitter lan loktu-a yim-a kalkal fəlejin // @name:ku Twitter tarîx û wextê normal nîşan dide // @name:kv Твиттерын петкӧдлӧма нормальнӧй кад да кад . // @name:ky Twitter кадимки күндү жана убакытты көрсөтөт // @name:la Twitter Displays Normal Date et Tempus // @name:lb Twitter weist normal Datum an Zäit // @name:lg Twitter eraga olunaku n’essaawa ebya bulijjo . // @name:ln Twitter elakisaka mokolo mpe ngonga ya momesano . // @name:lo Twitter ສະແດງວັນທີແລະເວລາທໍາມະດາ // @name:lt „Twitter“ rodo įprastą datą ir laiką // @name:lv Twitter parāda normālu datumu un laiku // @name:mg Ny Twitter dia mampiseho daty sy fotoana mahazatra // @name:mh Twitter ej kwaļo̧k raan im iien . // @name:mi Ka whakaatu a Twitter i te waa me te waa // @name:mk Твитер прикажува нормален датум и време // @name:ml ട്വിറ്റർ സാധാരണ തീയതിയും സമയവും പ്രദർശിപ്പിക്കുന്നു // @name:mn Твиттер нь хэвийн огноо, цагийг харуулдаг // @name:mo Twitter afișează data și ora normale // @name:mr ट्विटर सामान्य तारीख आणि वेळ प्रदर्शित करते // @name:ms Twitter memaparkan tarikh dan masa biasa // @name:mt Twitter juri data u ħin normali // @name:my Twitter သည်ပုံမှန်နေ့စွဲနှင့်အချိန်ကိုပြသသည် // @name:nb Twitter viser normal dato og tid // @name:ne ट्विटरले सामान्य मिति र समय प्रदर्शन गर्दछ // @name:nl Twitter toont normale datum en tijd // @name:nr Fala i-orasssssss. // @name:ny Twitter ikuwonetsa tsiku labwinobwino komanso nthawi // @name:oc Twitter aficha la data e l’ora normalas // @name:om Twitter guyyaa fi sa’aatii idilee agarsiisa . // @name:or ଟ୍ୱିଟର ସାଧାରଣ ତାରିଖ ଏବଂ ସମୟ ପ୍ରଦର୍ଶନ କରେ | // @name:os Твиттер æвдисы нормалон датæ æмæ рæстæг // @name:pa ਟਵਿੱਟਰ ਆਮ ਮਿਤੀ ਅਤੇ ਸਮਾਂ ਦਰਸਾਉਂਦਾ ਹੈ // @name:pl Twitter wyświetla normalną datę i godzinę // @name:ps ټویټر نورمال نیټه او وخت ښیې // @name:pt Twitter exibe data e hora normais // @name:pt-BR Twitter exibe data e hora normais // @name:pt-PT Twitter exibe data e hora normais // @name:qu Twitter normal p’unchawta, pachata rikuchin . // @name:rn Twitter yerekana itariki n’isaha isanzwe // @name:ro Twitter afișează data și ora normale // @name:ru Твиттер отображает обычную дату и время // @name:rw Twitter yerekana itariki nigihe gisanzwe // @name:sa ट्विटर सामान्य तिथि एवं समय प्रदर्शित करता है। // @name:sd Twitter عام تاريخ ۽ وقت ڏيکاري ٿو // @name:se Twitter čájeha dábálaš beaivvi ja áiggi // @name:sg Twitter afa lango na l’heure . // @name:sh Твиттер приказује нормалан датум и време // @name:si ට්විටර් සාමාන්ය දිනය සහ වේලාව පෙන්වයි // @name:sk Twitter zobrazuje normálny dátum a čas // @name:sl Twitter prikazuje normalen datum in čas // @name:sm Twitter faʻaalia le taimi masani aso ma le taimi // @name:sn Twitter inoratidza yakajairika zuva uye nguva // @name:so Twitter wuxuu soo bandhigayaa taariikhda iyo waqtiga caadiga ah // @name:sq Twitter shfaq datën dhe kohën normale // @name:sr Твиттер приказује нормалан датум и време // @name:ss I-Twitter ikhombisa lusuku nesikhatsi lesivamile // @name:st Twitter e bontša letsatsi le tloaelehileng le nako // @name:su Twitter ningalikeun tanggal sareng waktos anu normal // @name:sv Twitter visar normalt datum och tid // @name:sw Twitter inaonyesha tarehe ya kawaida na wakati // @name:ta ட்விட்டர் சாதாரண தேதி மற்றும் நேரத்தைக் காட்டுகிறது // @name:te ట్విట్టర్ సాధారణ తేదీ మరియు సమయాన్ని ప్రదర్శిస్తుంది // @name:tg Twitter санаи муқаррарӣ ва вақтро нишон медиҳад // @name:th Twitter แสดงวันที่และเวลาปกติ // @name:ti ትዊተር ንቡር ዕለትን ሰዓትን // @name:tk Twitter adaty senesini we wagty görkezýär // @name:tl Ipinapakita ng Twitter ang normal na petsa at oras // @name:tn Twitter e bontsha letlha le nako e e tlwaelegileng // @name:to ’Oku fakahaa’i ’e he Twitter ’a e ’aho mo e taimi angamaheni . // @name:tr Twitter normal tarih ve saati görüntüler // @name:ts Twitter yi kombisa siku na nkarhi lowu tolovelekeke . // @name:tt Твиттер гадәти датаны һәм вакытны күрсәтә // @name:tw Twitter kyerɛ da ne bere a ɛfata . // @name:ty E faaite te Twitter i te mahana e te taime matauhia // @name:ug Twitter نورمال ۋاقىت ۋە ۋاقىتنى كۆرسىتىدۇ // @name:uk Twitter відображає звичайну дату та час // @name:ur ٹویٹر عام تاریخ اور وقت دکھاتا ہے // @name:uz Twitter normal sana va vaqtni namoyish etadi // @name:ve Twitter i sumbedza ḓuvha na tshifhinga tsho ḓoweleaho // @name:vi Twitter hiển thị ngày và giờ bình thường // @name:wo Twitter dafay wane bis ak waxtu // @name:xh I-Twitter ibonisa umhla oqhelekileyo kunye nexesha // @name:yi טוויטטער דיספּלייז נאָרמאַל דאַטע און צייט // @name:yo Twitter ṣafihan ọjọ deede ati akoko // @name:zh Twitter 显示正常的日期和时间 // @name:zh-CN Twitter 显示正常的日期和时间 // @name:zh-HK Twitter 顯示正常的日期和時間 // @name:zh-MO Twitter 顯示正常的日期和時間 // @name:zh-MY Twitter 显示正常的日期和时间 // @name:zh-SG Twitter 显示正常的日期和时间 // @name:zh-TW Twitter 顯示正常的日期和時間 // @name:zu I-Twitter ibonisa usuku olujwayelekile nesikhathi // @name:es-419 Twitter muestra fecha y hora normales // @description Like this, 70/12/31(Th) 23:59:59. // @description:aa Tah celta. 70/12/31(Th) 23:59:59. // @description:ab Абри еиԥш ауп ишыҟоу. 70/12/31(Th) 23:59:59. // @description:af Dit lyk so. 70/12/31 (Th) 23:59:59. // @description:ak Ɛte sɛ eyi. 70/12/31(th) 23:59:59. // @description:am ይህ ይመስላል. 70/12/31 (te) 23:59:59. // @description:ar يبدو هكذا. 70/12/31 (TH) 23:59:59. // @description:as দেখাত এনেকুৱাই। ৭০/১২/৩১(তম) ২৩:৫৯:৫৯। // @description:av Гьеб гьадинаб буго. 70/12/31(Тх) 23:59:59. // @description:ay Ukhamaw ukham uñtasi. 70/12/31(th) 23:59:59. // @description:az Bu kimi görünür. 70/12/31 (TH) 23:59:59. // @description:ba Ул былай күренә. 70/12/31(Th) 23:59:59. // @description:be Падобна так. 70/12/31 (TH) 23:59:59. // @description:bg Изглежда така. 70/12/31 (TH) 23:59:59. // @description:bh अईसन लागता। 70/12/31(वें) 23:59:59 के बा। // @description:bm A bɛ iko nin. 70/12/31(nan) 23:59:59. // @description:bn দেখে মনে হচ্ছে এটি। 70/12/31 (TH) 23:59:59। // @description:bo འདི་འདྲ་འདུག ༧༠/༡༢/༣༡(Th) ༢༣:༥༩:༥༩། // @description:br Seblantout a ra evel-se. 70/12/31(Th) 23:59:59. // @description:bs Izgleda ovako. 70/12/31 (th) 23:59:59. // @description:ca Sembla així. 70/12/31 (Th) 23:59:59. // @description:ce Иштта хетало. 70/12/31(Th) 23:59:59. // @description:ceb Ingon kini. 70/12/31 (Th) 23:59:59. // @description:ch Parehu este yan este. 70/12/1211 (Th) 23:59:59. // @description:ckb بەم شێوەیە دەردەکەوێت. 70/12/31(th) 23:59:59. // @description:co Sembra cusì. 70/12/31 (u) 23:59:59. // @description:cs Vypadá to takto. 70/12/31 (th) 23:59:59. // @description:cv Кун пек курăнать. 70/12/31 (Тх) 23:59:59. // @description:cy Mae’n edrych fel hyn. 70/12/31 (TH) 23:59:59. // @description:da Det ser ud som dette. 70/12/31 (th) 23:59:59. // @description:de Es sieht so aus. 70/12/31 (Th) 23:59:59. // @description:dv މިހެން ހީވަނީ. 70/12/31(th) 23:59:59. // @description:dz འདི་བཟུམ་མཐོངམ་ཨིན། ༧༠/༡༢/༣༡(ཐ) ༢༣:༥༩:༥༩. // @description:ee Edze abe esia ene. 70/12/31 (th) 23:59:59. // @description:el Μοιάζει με αυτό. 70/12/31 (Th) 23:59:59. // @description:en It looks like this. 70/12/31(Th) 23:59:59. // @description:en-GB It looks like this. 70/12/31(Th) 23:59:59. // @description:eo Ĝi aspektas tiel. 70/12/31 (TH) 23:59:59. // @description:es Se parece a esto. 70/12/31 (Th) 23:59:59. // @description:es-419 Se parece a esto. 70/12/31 (Th) 23:59:59. // @description:et See näeb välja selline. 70/12/31 (Th) 23:59:59. // @description:eu Horren antza du. 70/12/31 (th) 23:59:59. // @description:fa به نظر می رسد مانند این 70/12/31 (TH) 23:59:59. // @description:ff Ina wayi no nii. 70/12/31(Th) 23:59:59. // @description:fi Se näyttää tältä. 70/12/31 (Th) 23:59:59. // @description:fil Mukhang ganito. 70/12/31 (TH) 23:59:59. // @description:fj E vaka oqo na ka oqo. 70/12/31(The The) 23:59:59. // @description:fo Tað sær soleiðis út. 70/12/31(H) 23:59:59. // @description:fr Cela ressemble à ça. 70/12/31 (TH) 23:59:59. // @description:fr-CA Cela ressemble à ça. 70/12/31 (TH) 23:59:59. // @description:fy It liket derop. 70/12/31 (TH) 23:59:59. // @description:ga Tá an chuma air seo. 70/12/31 (TH) 23:59:59. // @description:gd Tha e coltach ri seo. 70/12/31 (th) 23:59:59. // @description:gl Parece así. 70/12/31 (TH) 23:59:59. // @description:gn Péicha ojehecha. 70/12/31(TH) 23:59:59. // @description:gsw-berne It looks like this. 70/12/31(Th) 23:59:59. // @description:gu તે આના જેવું લાગે છે. 70/12/31 (મી) 23:59:59. // @description:gv Ta’n red shoh myr shoh. 70/12/31(Th) 23:59:59. // @description:ha Yayi kama da wannan. 70/12/31 (th) 23:59:59. // @description:he זה נראה כך. 70/12/31 (TH) 23:59:59. // @description:hi यह इस तरह दिख रहा है। 70/12/31 (Th) 23:59:59। // @description:hmn Nws zoo li no. 70/12/31 (th) 23:59:59. // @description:hr Izgleda ovako. 70/12/31 (TH) 23:59:59. // @description:ht Li sanble tankou sa a. 70/12/31 (th) 23:59:59. // @description:hu Így néz ki. 70/12/31 (TH) 23:59:59. // @description:hy Կարծես սա է: 70/12/31 (րդ) 23:59:59: // @description:id Sepertinya ini. 70/12/31 (TH) 23:59:59. // @description:ig Ọ dị ka nke a. 70/12/31 (TH) 23:59:59. // @description:is Það lítur svona út. 70/12/31 (TH) 23:59:59. // @description:it Sembra questo. 70/12/31 (Th) 23:59:59. // @description:iu ᐃᒪᐃᑦᑐᔭᕐᒪᑦ. 70/12/31(Th) 23:59:59. // @description:ja このように見えます。 70/12/31(th)23:59:59。 // @description:jv Katon kaya ngono. 70/12/31 (th) 23:59:59. // @description:ka ასე გამოიყურება. 70/12/31 (TH) 23:59:59. // @description:kg Yo ke monana mutindu yai. 70/12/31(Th) 23:59:59. // @description:kk Бұл сияқты. 70/12/31 (мың) 23:59:59. // @description:kl Taamatut isikkoqarpoq. 70/12/31(Th) 23:59:59. // @description:km វាមើលទៅដូចនេះ។ 70/12/31 (ទី) 23:59:59 ។ // @description:kn ಇದು ಈ ರೀತಿ ಕಾಣುತ್ತದೆ. 70/12/31 (ನೇ) 23:59:59. // @description:ko 이렇게 보인다. 70/12/31 (th) 23:59:59. // @description:kr Alama adəgai. 70/12/31(Th) 23:59:59. // @description:ku Wusa dixuye. 70/12/31 (th) 23:59:59. // @description:kv Сійӧ татшӧм. 70/12/31(Тх) 23:59:59. // @description:ky Бул окшойт. 70/12/31 (th) 23:59:59. // @description:la Is vultus amo is. 70/12/31 (Th) 23:59:59. // @description:lb IT gesäit esou aus. 70/12/31 (Th) 23:59:59. // @description:lg Kirabika bwe kiti. 70/12/31(th) 23:59:59. // @description:ln Ezali komonana lokola oyo. 70/12/31(th) 23:59:59. // @description:lo ມັນເບິ່ງຄືວ່ານີ້. 70/12/31 (ທ) ເວລາ 23:59:59. // @description:lt Panašu, kad taip. 70/12/31 (Th) 23:59:59. // @description:lv Tas izskatās šādi. 70/12/31 (Th) 23:59:59. // @description:mg Toa izany. 70/12/31 (th) 23:59:59. // @description:mh Ej āinwōt in. 70/12/31( Tht) 23:59:59. // @description:mi Te ahua nei. 70/12/31 (TH) 23:59:59. // @description:mk Изгледа вака. 70/12/31 (TH) 23:59:59. // @description:ml ഇത് ഇതുപോലെ തോന്നുന്നു. 70/12/31 (TH) 23:59:59. // @description:mn Энэ нь иймэрхүү харагдаж байна. 70/12/31 (th) 23:59:59. // @description:mo Pare așa. 70/12/31 (TH) 23:59:59. // @description:mr हे असे दिसते. 70/12/31 (व्या) 23:59:59. // @description:ms Nampaknya ini. 70/12/31 (Th) 23:59:59. // @description:mt Jidher bħal dan. 70/12/31 (Th) 23:59:59. // @description:my ဒါနဲ့တူတယ် 70/12/31 (ကြိမ်မြောက်) 23:59:59 ။ // @description:nb Det ser slik ut. 70/12/31 (TH) 23:59:59. // @description:ne यो यस्तो देखिन्छ। 70/12/31 (th) 23 :: 59:59। // @description:nl Het ziet er zo uit. 70/12/31 (TH) 23:59:59. // @description:nr Bazama ukududuza. ( 1 10:10 ) U-Israyeli u-10:1. // @description:ny Zikuwoneka ngati izi. 70/12/31 (th) 23:59:59. // @description:oc Sembla aquò. 70/12/31(La) 23:59:59. // @description:om Akkas fakkaata. 70/12/31(th) 23:59:59. // @description:or ଏହା ଏହିପରି ଦେଖାଯାଏ | 70/12/31 (ଥ) 23:59। // @description:os Афтæ зыны ахæм. 70/12/31(Th) 23:59:59. // @description:pa ਇਹ ਇਸ ਤਰ੍ਹਾਂ ਲੱਗਦਾ ਹੈ. 70/12/31 (ਧੂਹ) 23:59:59. // @description:pl Wygląda na to. 70/12/31 (th) 23:59:59. // @description:ps دا ورته ښکاري. 70/12/31 (TH) 23:59:59. // @description:pt Parece isso. 70/12/31 (TH) 23:59:59. // @description:pt-BR Parece isso. 70/12/31 (TH) 23:59:59. // @description:pt-PT Parece isso. 70/12/31 (TH) 23:59:59. // @description:qu Kaymanmi rikchakun. 70/12/31(H) 23:59:59. // @description:rn Bimeze gutya. 70/12/31(Th) 23:59:59. // @description:ro Pare așa. 70/12/31 (TH) 23:59:59. // @description:ru Похоже, это. 70/12/31 (TH) 23:59:59. // @description:rw Birasa nkibi. 70/12/31 (TH) 23:59:59. // @description:sa एवं दृश्यते। 70/12/31(थ) 23:59:59। // @description:sd اهو ڏسجي ٿو. 70/12/31 (ٿ) 23:59:59. // @description:se Dat lea ná. 70/12/31(Th) 23:59:59. // @description:sg A yeke mo bâ mo tene a yeke tongaso. 70/12/12 (Th) 23:59:59. // @description:sh Изгледа овако. 70/12/31 (ТХ) 23:59:59. // @description:si ඒක මේ වගේ. 70/12/31 (TH) 23:59:59. // @description:sk Vyzerá to takto. 70/12/31 (Th) 23:59:59. // @description:sl Videti je tako. 70/12/31 (TH) 23:59:59. // @description:sm E pei o lenei. 70/12/31 (th) 23:59:59. // @description:sn Zvinotaridzika seizvi. 70/12/31 (th) 23:59:59. // @description:so Waxay u egtahay sidan oo kale. 70/12/31 (th) 23:59:59. // @description:sq Duket kështu. 70/12/31 (TH) 23:59:59. // @description:sr Изгледа овако. 70/12/31 (ТХ) 23:59:59. // @description:ss Kubukeka kanje. 70/12/31(Th) 23:59:59. // @description:st E shebahala tjena. 70/12/31 (th) 23:59:59. // @description:su Sigana mah ieu. 70/12/31 (th) 23:59:59. // @description:sv Det ser ut så här. 70/12/31 (Th) 23:59:59. // @description:sw Inaonekana kama hii. 70/12/31 (TH) 23:59:59. // @description:ta இது போல் தெரிகிறது. 70/12/31 (வது) 23:59:59. // @description:te ఇది ఇలా ఉంది. 70/12/31 (వ) 23:59:59. // @description:tg Чунин ба назар мерасад. 70/12/31 (TH) 23:59:59. // @description:th ดูเหมือนว่า 70/12/31 (Th) 23:59:59 // @description:ti ከምዚ ይመስል። 70/12/31(th) 23:59:59። // @description:tk Şuňa meňzeýär. 70/12/3/31 (tra) 23:59:59. // @description:tl Mukhang ganito. 70/12/31 (TH) 23:59:59. // @description:tn Go lebega jaana. 70/12/31(Th) 23:59:59. // @description:to ʻOku hangē ʻení. 70/12/31(T) 23:59:59. // @description:tr Öyle görünüyor. 70/12/31 (TH) 23:59:59. // @description:ts Swi languteka hi ndlela leyi. 70/12/31(TH) 23:59:59. // @description:tt Бу шундый. 70/12/31 (th) 23:59:59. // @description:tw Ɛte sɛ eyi. 70/12/31(th) 23:59:59. // @description:ty E au te reira i te reira. 70/12/31(Th) 23:59:59. // @description:ug ئۇ ئوخشايدۇ. 70/12/31 (th) 23:59:59. // @description:uk Це виглядає так. 70/12/31 (Th) 23:59:59. // @description:ur ایسا لگتا ہے۔ 70/12/31 (ویں) 23:59:59۔ // @description:uz Bu shunday ko’rinadi. 70/12/31 (Th) 23:59:59. // @description:ve Zwi vhonala zwo ralo. 70/12/31(Th) 23:59:59. // @description:vi Nó trông như thế này. 70/12/31 (th) 23:59:59. // @description:wo Dafa mel nii. 70/12/31(Th) 23:59:59. // @description:xh Ijongeka ngoluhlobo. 70/12/31 (th) 23:59:59. // @description:yi עס קוקט ווי דאָס. 70/12/31 (טה) 23:59:59. // @description:yo O dabi eyi. 70/12/31 (TH) 23:59:59. // @description:zh 看起来是这样的。70/12/31(Th) 23:59:59. // @description:zh-CN 看起来是这样的。70/12/31(Th) 23:59:59. // @description:zh-HK 看起來是這樣的。 70/12/31(Th) 23:59:59. // @description:zh-MO 看起來是這樣的。 70/12/31(Th) 23:59:59. // @description:zh-MY 看起来是这样的。70/12/31(Th) 23:59:59. // @description:zh-SG 看起来是这样的。70/12/31(Th) 23:59:59. // @description:zh-TW 看起來是這樣的。 70/12/31(Th) 23:59:59. // @description:zu Kubukeka kanjena. 70/12/31 (th) 23:59:59. // @author AeamaN // @namespace https://github.com/ChinaGodMan/UserScripts // @supportURL https://github.com/ChinaGodMan/UserScripts/issues // @homepageURL https://github.com/ChinaGodMan/UserScripts // @homepage https://github.com/ChinaGodMan/UserScripts // @license MIT // @match https://twitter.com/* // @match https://mobile.twitter.com/* // @match https://mobile.twitter3e4tixl4xyajtrzo62zg5vztmjuricljdp2c5kshju4avyoid.onion/* // @match https://x.com/* // @match https://mobile.x.com/* // @require https://update.greasyfork.org/scripts/538254/1601105/PNG.js // @grant GM_getValue // @grant GM_registerMenuCommand // @grant GM_setValue // @run-at document-body // @icon https://raw.githubusercontent.com/ChinaGodMan/UserScriptsHistory/main/scriptsIcon/x.svg // @compatible chrome // @compatible firefox // @compatible edge // @compatible opera // @compatible safari // @compatible kiwi // @compatible qq // @compatible via // @compatible brave // @version 2025.6.4.1 // ==/UserScript== // And more. See Default valuse below. // It's based on "https://qiita.com/libraplanet/items/0bdd7ef1a13e7af8f48f". // // 他にも機能があります。以下の Default valuse を確認して下さい。 // "https://qiita.com/libraplanet/items/0bdd7ef1a13e7af8f48f" を参考にしています。 (function () { /* START */ 'use strict' // //////////// Settings //////////// // // No GUI Settings // Default values are used const NOGUI = false // ////////////////////////////////// // // ///////// Default valuse ///////// // // Blue bird returns const BBR = false // Replace with orig images(wasted traffic occurs) const ORIGI = false // Slightly wider TL const WTL = false // Eye Care Mode at default background const ECMODE = true // Hide promotions const HPP = true // Hide Who to follow const HWTF = true // Hide DM drawer const HDMD = true // Hide Get Verified const HGV = true // Fine engagement // 1. Live // 2. Normal // 0. Do nothing const FEGM = 0 // Fix videos quality // 1. Maximum // 2. Minimum // 0. Do nothing const FVQ = 1 // Date formats // 1. 31.12.70 23:59 // 2. 31.12.70 23:59:59 // 3. 31.12.70(Th) 23:59 // 4. 31.12.70(Th) 23:59:59 // // 5. 70/12/31 23:59 // 6. 70/12/31 23:59:59 // 7. 70/12/31(Th) 23:59 // 8. 70/12/31(Th) 23:59:59 [ye/mo/da(we) ho:mi:se] // // 9. 70-12/31 23:59 // 10. 70-12/31 23:59'59 // 11. 70-12/31(Th) 23:59 // 12. 70-12/31(Th) 23:59'59 // // 13. M59-12-31 23:59 // 14. M59-12-31 23:59:59 // 15. M59-12-31(Th) 23:59 // 16. M59-12-31(Th) 23:59:59 // // 0. Do nothing const FMT = 7 // Loop interval(ms) const INTL = 800 // ////////////////////////////////// // const MYNAME = 'sdnt1200' const LANG = document.documentElement.getAttribute('lang') let time_r = Date.now() let s_mutations = true let observer = new MutationObserver(function (mutations) { s_mutations = mutations }) let originalXHROPEN let bbr, origi, wtl, ecmode, hpp, hwtf, hdmd, hgv, fegm, fvq, fmt, intl function makeDialog() { let dalg = document.createElement('div') dalg.className = 'us-' + MYNAME dalg.style.all = 'initial' dalg.style.backgroundColor = 'rgb(235, 235, 235)' dalg.style.border = '3px outset' dalg.style.borderRadius = '1%' dalg.style.display = 'none' dalg.style.fontFamily = 'monospace' dalg.style.fontSize = '12px' dalg.style.height = '440px' dalg.style.width = '480px' dalg.style.paddingLeft = '2px' dalg.style.paddingRight = '2px' dalg.style.position = 'fixed' dalg.style.right = '8px' dalg.style.top = '8px' dalg.style.zIndex = '2147483647' dalg.style.overflow = 'auto' let html = '<span style="all: initial; font-size: 120%; line-height: 210%">' + GM_info.script.name + ' ' + GM_info.script.version + ' ' + 'Settings' + '</span><br />\n' + '<input type="radio" name="fmt" value="1" class="top_r" />31.12.70 23:59' + ' ' + ' ' + '<input type="radio" name="fmt" value="2" class="top_r" />31.12.70 23:59:59<br />\n' + '<input type="radio" name="fmt" value="3" class="mid_r" />31.12.70(Th) 23:59' + ' ' + '<input type="radio" name="fmt" value="4" class="mid_r" />31.12.70(Th) 23:59:59<br />\n' + '<input type="radio" name="fmt" value="5" class="mid_r" />70/12/31 23:59' + ' ' + '<input type="radio" name="fmt" value="6" class="mid_r" />70/12/31 23:59:59<br />\n' + '<input type="radio" name="fmt" value="7" class="mid_r" />70/12/31(Th) 23:59' + ' ' + '<input type="radio" name="fmt" value="8" class="mid_r" />70/12/31(Th) 23:59:59<br />\n' + '<input type="radio" name="fmt" value="9" class="mid_r" />70-12/31 23:59' + ' ' + '<input type="radio" name="fmt" value="10" class="mid_r" />70-12/31 23:59\'59<br />\n' + '<input type="radio" name="fmt" value="11" class="mid_r" />70-12/31(Th) 23:59' + ' ' + '<input type="radio" name="fmt" value="12" class="mid_r" />70-12/31(Th) 23:59\'59<br />\n' + '<input type="radio" name="fmt" value="13" class="mid_r" />M59-12-31 23:59' + ' ' + '<input type="radio" name="fmt" value="14" class="mid_r" />M59-12-31 23:59:59<br />\n' + '<input type="radio" name="fmt" value="15" class="mid_r" />M59-12-31(Th) 23:59' + ' ' + '<input type="radio" name="fmt" value="16" class="mid_r" />M59-12-31(Th) 23:59:59<br />\n' + '<input type="radio" name="fmt" value="0" class="btm_r" />Do nothing<br />\n' + '<input type="checkbox" name="bbr" class="top_c" />BB returns' + ' ' + '<input type="checkbox" name="origi" class="mid_c" />Replace with orig images*<br />\n' + '<input type="checkbox" name="wtl" class="mid_c" />Widen slightly TL' + ' ' + '<input type="checkbox" name="ecmode" class="btm_c" />Eye Care Mode at default BG<br />\n' + '<input type="checkbox" name="hpp" class="top_c" />Hide promotions' + ' ' + '<input type="checkbox" name="hwtf" class="mid_c" />Hide Who to follow<br />\n' + '<input type="checkbox" name="hdmd" class="mid_c" />Hide DM drawer' + ' ' + '<input type="checkbox" name="hgv" class="btm_c" />Hide Get Verified<br />\n' + '<input type="radio" name="fegm" value="1" class="top_r" />Fine engagement(live)' + ' ' + '<input type="radio" name="fegm" value="2" class="top_r" />Fine engagement(normal)<br />\n' + '<input type="radio" name="fegm" value="0" class="btm_r" />Do nothing<br />\n' + '<input type="radio" name="fvq" value="1" class="top_r" />at maximum video quality**' + ' ' + '<input type="radio" name="fvq" value="2" class="top_r" />at minimum video quality<br />\n' + '<input type="radio" name="fvq" value="0" class="btm_r" />Do nothing<br />\n' + '<span style="all: initial; font-size: 100%">' + 'Loop interval(ms)** ' + '</span><input type="text" name="intl" size="10" class="top_t" /><br />\n' + '<span style="all: initial; font-size: 100%; line-height: 200%">' + '*wasted traffic occurs **Restart required' + '</span><br />\n' + '<input type="button" class="top_b" value="Cancel" />\n' + '<input type="button" class="top_b" value="Set default" />\n' + '<input type="button" class="top_b" value="Save & Close" /><br /><br />\n' dalg.innerHTML = html for (let e of dalg.querySelectorAll('input.top_r, input.mid_r, input.btm_r')) { e.style.all = 'initial' e.style.appearance = 'auto' e.style.marginRight = '1px' e.style.marginTop = '1px' } for (let e of dalg.querySelectorAll('input.top_c, input.mid_c, input.btm_c')) { e.style.all = 'initial' e.style.appearance = 'auto' e.style.marginRight = '1px' e.style.marginTop = '1px' } for (let e of dalg.querySelectorAll('input.top_t')) { e.style.all = 'initial' e.style.backgroundColor = 'rgb(255, 255, 255)' e.style.fontFamily = 'monospace' e.style.fontSize = '100%' e.style.marginLeft = '1px' e.style.marginRight = '1px' e.style.marginTop = '8px' e.style.marginBottom = '0px' e.style.paddingLeft = '1px' e.style.paddingRight = '1px' e.style.paddingTop = '1px' e.style.paddingBottom = '1px' } for (let e of dalg.querySelectorAll('input.top_b')) { e.style.all = 'initial' e.style.backgroundColor = 'rgb(190, 190, 190)' e.style.borderRadius = '10%' e.style.cursor = 'default' e.style.fontSize = '110%' e.style.marginTop = '10px' e.style.marginBottom = '0px' e.style.paddingTop = '6px' e.style.paddingBottom = '6px' e.style.textAlign = 'center' e.style.width = '90px' } return dalg } function makeFunc(dalg) { dalg.addEventListener( 'click', function (event) { event.stopPropagation() }, false ) dalg.querySelector('input[value="Cancel"]').addEventListener( 'click', function () { dalg.style.display = 'none' }, false ) dalg.querySelector('input[value="Cancel"]').addEventListener( 'mouseenter', function (event) { event.target.style.backgroundColor = 'rgb(170, 170, 170)' }, false ) dalg.querySelector('input[value="Cancel"]').addEventListener( 'mouseleave', function (event) { event.target.style.backgroundColor = 'rgb(190, 190, 190)' }, false ) dalg.querySelector('input[value="Set default"]').addEventListener( 'click', function () { dalg.querySelector('input[name="bbr"]').checked = BBR dalg.querySelector('input[name="origi"]').checked = ORIGI dalg.querySelector('input[name="fmt"][value="' + FMT + '"]').checked = true dalg.querySelector('input[name="wtl"]').checked = WTL dalg.querySelector('input[name="ecmode"]').checked = ECMODE dalg.querySelector('input[name="hpp"]').checked = HPP dalg.querySelector('input[name="hwtf"]').checked = HWTF dalg.querySelector('input[name="hdmd"]').checked = HDMD dalg.querySelector('input[name="hgv"]').checked = HGV dalg.querySelector('input[name="fegm"][value="' + FEGM + '"]').checked = true dalg.querySelector('input[name="fvq"][value="' + FVQ + '"]').checked = true dalg.querySelector('input[name="intl"]').value = INTL }, false ) dalg.querySelector('input[value="Set default"]').addEventListener( 'mouseenter', function (event) { event.target.style.backgroundColor = 'rgb(170, 170, 170)' }, false ) dalg.querySelector('input[value="Set default"]').addEventListener( 'mouseleave', function (event) { event.target.style.backgroundColor = 'rgb(190, 190, 190)' }, false ) dalg.querySelector('input[value="Save & Close"]').addEventListener( 'click', function () { bbr = dalg.querySelector('input[name="bbr"]').checked origi = dalg.querySelector('input[name="origi"]').checked for (let e of dalg.querySelectorAll('input[name="fmt"]')) { if (e.checked) { fmt = +e.value break } } wtl = dalg.querySelector('input[name="wtl"]').checked ecmode = dalg.querySelector('input[name="ecmode"]').checked hpp = dalg.querySelector('input[name="hpp"]').checked hwtf = dalg.querySelector('input[name="hwtf"]').checked hdmd = dalg.querySelector('input[name="hdmd"]').checked hgv = dalg.querySelector('input[name="hgv"]').checked for (let e of dalg.querySelectorAll('input[name="fegm"]')) { if (e.checked) { fegm = +e.value break } } for (let e of dalg.querySelectorAll('input[name="fvq"]')) { if (e.checked) { fvq = +e.value break } } intl = +dalg.querySelector('input[name="intl"]').value GM_setValue('bbr', bbr) GM_setValue('origi', origi) GM_setValue('fmt', fmt) GM_setValue('wtl', wtl) GM_setValue('ecmode', ecmode) GM_setValue('hpp', hpp) GM_setValue('hwtf', hwtf) GM_setValue('hdmd', hdmd) GM_setValue('hgv', hgv) GM_setValue('fegm', fegm) GM_setValue('fvq', fvq) GM_setValue('intl', intl) dalg.style.display = 'none' }, false ) dalg.querySelector('input[value="Save & Close"]').addEventListener( 'mouseenter', function (event) { event.target.style.backgroundColor = 'rgb(170, 170, 170)' }, false ) dalg.querySelector('input[value="Save & Close"]').addEventListener( 'mouseleave', function (event) { event.target.style.backgroundColor = 'rgb(190, 190, 190)' }, false ) } function initgui() { if (GM_getValue('bbr') === undefined) { GM_setValue('bbr', BBR) } else { bbr = GM_getValue('bbr') } if (GM_getValue('origi') === undefined) { GM_setValue('origi', ORIGI) } else { origi = GM_getValue('origi') } if (GM_getValue('fmt') === undefined) { GM_setValue('fmt', FMT) } else { fmt = GM_getValue('fmt') } if (GM_getValue('wtl') === undefined) { GM_setValue('wtl', WTL) } else { wtl = GM_getValue('wtl') } if (GM_getValue('ecmode') === undefined) { GM_setValue('ecmode', ECMODE) } else { ecmode = GM_getValue('ecmode') } if (GM_getValue('hpp') === undefined) { GM_setValue('hpp', HPP) } else { hpp = GM_getValue('hpp') } if (GM_getValue('hwtf') === undefined) { GM_setValue('hwtf', HWTF) } else { hwtf = GM_getValue('hwtf') } if (GM_getValue('hdmd') === undefined) { GM_setValue('hdmd', HDMD) } else { hdmd = GM_getValue('hdmd') } if (GM_getValue('hgv') === undefined) { GM_setValue('hgv', HGV) } else { hgv = GM_getValue('hgv') } if (GM_getValue('fegm') === undefined) { GM_setValue('fegm', FEGM) } else { fegm = GM_getValue('fegm') } if (GM_getValue('fvq') === undefined) { GM_setValue('fvq', FVQ) } else { fvq = GM_getValue('fvq') } if (GM_getValue('intl') === undefined) { GM_setValue('intl', INTL) } else { intl = GM_getValue('intl') } let dalg = makeDialog() makeFunc(dalg) document.body.appendChild(dalg) GM_registerMenuCommand('Settings', function () { if (dalg.style.display == 'none') { dalg.querySelector('input[name="bbr"]').checked = bbr dalg.querySelector('input[name="origi"]').checked = origi dalg.querySelector('input[name="fmt"][value="' + fmt + '"]').checked = true dalg.querySelector('input[name="wtl"]').checked = wtl dalg.querySelector('input[name="ecmode"]').checked = ecmode dalg.querySelector('input[name="hpp"]').checked = hpp dalg.querySelector('input[name="hwtf"]').checked = hwtf dalg.querySelector('input[name="hdmd"]').checked = hdmd dalg.querySelector('input[name="hgv"]').checked = hgv dalg.querySelector('input[name="fegm"][value="' + fegm + '"]').checked = true dalg.querySelector('input[name="fvq"][value="' + fvq + '"]').checked = true dalg.querySelector('input[name="intl"]').value = intl dalg.style.display = 'block' } }) } function datef(date, f) { const WEEK = { 'ja': ['日', '月', '火', '水', '木', '金', '土'], 'ko': ['일', '월', '화', '수', '목', '금', '토'], 'zh-Hant': ['日', '一', '二', '三', '四', '五', '六'], 'zh': ['日', '一', '二', '三', '四', '五', '六'], 'ru': ['ВС', 'ПН', 'ВТ', 'СР', 'ЧТ', 'ПТ', 'СБ'], 'de': ['Son', 'Mon', 'Die', 'Mit', 'Don', 'Fre', 'Sam'], 'it': ['Dom', 'Lun', 'Mar', 'Mer', 'Gio', 'Ven', 'Sab'], 'fr': ['Dim', 'Lun', 'Mar', 'Mer', 'Jeu', 'Ven', 'Sam'], 'pt': ['Dom', 'Seg', 'Ter', 'Qua', 'Qui', 'Sex', 'Sáb'], 'en': ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'] // Add your language } const WEEK_L = WEEK[LANG] ?? WEEK['en'] const YE = date.getFullYear().toString().slice(-2) const YM = date.getFullYear() - 1911 const MO = ('0' + (date.getMonth() + 1)).slice(-2) const DA = ('0' + date.getDate()).slice(-2) const WE = WEEK_L[date.getDay()] const HO = ('0' + date.getHours()).slice(-2) const MI = ('0' + date.getMinutes()).slice(-2) const SE = ('0' + date.getSeconds()).slice(-2) const F = [ DA + '.' + MO + '.' + YE + ' ' + HO + ':' + MI, // 0=1 DA + '.' + MO + '.' + YE + ' ' + HO + ':' + MI + ':' + SE, DA + '.' + MO + '.' + YE + '(' + WE + ') ' + HO + ':' + MI, DA + '.' + MO + '.' + YE + '(' + WE + ') ' + HO + ':' + MI + ':' + SE, YE + '/' + MO + '/' + DA + ' ' + HO + ':' + MI, YE + '/' + MO + '/' + DA + ' ' + HO + ':' + MI + ':' + SE, YE + '/' + MO + '/' + DA + '(' + WE + ') ' + HO + ':' + MI, YE + '/' + MO + '/' + DA + '(' + WE + ') ' + HO + ':' + MI + ':' + SE, YE + '-' + MO + '/' + DA + ' ' + HO + ':' + MI, YE + '-' + MO + '/' + DA + ' ' + HO + ':' + MI + '\'' + SE, YE + '-' + MO + '/' + DA + '(' + WE + ') ' + HO + ':' + MI, YE + '-' + MO + '/' + DA + '(' + WE + ') ' + HO + ':' + MI + '\'' + SE, 'M' + YM + '-' + MO + '-' + DA + ' ' + HO + ':' + MI, 'M' + YM + '-' + MO + '-' + DA + ' ' + HO + ':' + MI + ':' + SE, 'M' + YM + '-' + MO + '-' + DA + '(' + WE + ') ' + HO + ':' + MI, 'M' + YM + '-' + MO + '-' + DA + '(' + WE + ') ' + HO + ':' + MI + ':' + SE, YE + '/' + MO + '/' + DA + '(' + WE + ') ' + HO + ':' + MI + ':' + SE ] return F[f - 1] ?? F[16] } function bbreturn() { const SEL_ID = 'div#placeholder[aria-label="Loading…"] g path, ' + 'svg#loading-x-anim-0 g path, svg#loading-x-anim-1 g path, ' + 'svg#loading-x-anim-2 g path, svg#loading-x-anim-3 g path' const SEL_H = 'header[role="banner"] h1[role="heading"] g path' // ホーム const SEL_M = 'div[data-testid="Dropdown"] a[href="/i/premium_sign_up"] g path' // もっと見る const SEL_V = 'header[role="banner"] nav g path' // 認証済み const SEL_L = 'div[role="dialog"] div[aria-labelledby="modal-header"] svg.r-lrvibr path' // ログイン const SEL_T = 'div#react-root main svg.r-lrvibr path' // トップ let elms = document.querySelectorAll( SEL_ID + ', ' + SEL_H + ', ' + SEL_M + ', ' + SEL_V + ', ' + SEL_L + ', ' + SEL_T ) let ss // Temp. for (let e of elms) { const D_X = 'M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99' const D_BB = 'M23.643 4.937c-.835.37-1.732.62-2.675.733.962-.576 1.7-1.49 2.048-2.578-.9.534-1' + '.897.922-2.958 1.13-.85-.904-2.06-1.47-3.4-1.47-2.572 0-4.658 2.086-4.658 4.66 0' + ' .364.042.718.12 1.06-3.873-.195-7.304-2.05-9.602-4.868-.4.69-.63 1.49-.63 2.342' + ' 0 1.616.823 3.043 2.072 3.878-.764-.025-1.482-.234-2.11-.583v.06c0 2.257 1.605 ' + '4.14 3.737 4.568-.392.106-.803.162-1.227.162-.3 0-.593-.028-.877-.082.593 1.85 2' + '.313 3.198 4.352 3.234-1.595 1.25-3.604 1.995-5.786 1.995-.376 0-.747-.022-1.112' + '-.065 2.062 1.323 4.51 2.093 7.14 2.093 8.57 0 13.255-7.098 13.255-13.254 0-.2-.' + '005-.402-.014-.602.91-.658 1.7-1.477 2.323-2.41z' const D_FILL_N = 'none' const D_FILL_LB = '#1da1f2ff' const D_FILL_DB = '#1d9bf0ff' const D_S = 'currentColor' const D_SW = '2' if (e.getAttribute('d').startsWith(D_X)) { if (e.closest('header[role="banner"] nav, div[data-testid="Dropdown"] a[href="/i/premium_sign_up"]')) { ss = s_mutations e.setAttribute('d', D_BB) e.setAttribute('fill', D_FILL_N) e.setAttribute('stroke', D_S) e.setAttribute('stroke-width', D_SW) s_mutations = ss } else if (e.closest('div#placeholder[aria-label="Loading…"]') || e.closest('svg[id^="loading-x-anim-"]')) { ss = s_mutations e.setAttribute('d', D_BB) e.setAttribute('fill', D_FILL_LB) s_mutations = ss } else { ss = s_mutations e.setAttribute('d', D_BB) e.setAttribute('fill', D_FILL_DB) s_mutations = ss } } } const TITLE = document.title let elm = document.querySelector('head link[rel="shortcut icon"]') let elm_2 = document.querySelector('head link[rel="apple-touch-icon"]') ss = s_mutations if ( elm && !/favicons\/twitter\.2\.ico$/.test(elm.getAttribute('href')) && !/^\(\d+\) /.test(document.title) ) { elm.setAttribute('href', '//abs.twimg.com/favicons/twitter.2.ico') } else if ( elm && !/favicons\/twitter-pip\.2\.ico$/.test(elm.getAttribute('href')) && /^\(\d+\) /.test(document.title) ) { elm.setAttribute('href', '//abs.twimg.com/favicons/twitter-pip.2.ico') } if ( elm_2 && /responsive-web\/client-web[-a-z]*\/icon-ios\.77d25eba\.png$/.test(elm_2.getAttribute('href')) ) { elm_2.setAttribute('href', 'data:image/png;base64,' + PNG_BB) alert('afaf') } let rt = TITLE.replace(/ \/ X$/, ' / Twitter') if (TITLE != rt) document.title = rt s_mutations = ss } function origimg() { const SEL_D = 'div[style*="background-image:"]' const SEL_I = 'img' let elms = document.querySelectorAll(SEL_D + ', ' + SEL_I) for (let e of elms) { let regex = /^(.+pbs\.twimg\.com\/[^?]+\?format=\w+)(&|&)(name=)(\w+)([")]*)$/ let ss // Temp. if (/div/i.test(e.tagName)) { let r = regex.exec(e.style.backgroundImage) if (r && r[4] != 'orig') { ss = s_mutations e.style.backgroundImage = r[1] + r[2] + r[3] + 'orig' + r[5] s_mutations = ss continue } continue } let r = regex.exec(e.getAttribute('src')) if (r && r[4] != 'orig') { ss = s_mutations e.setAttribute('src', r[1] + r[2] + r[3] + 'orig' + r[5]) s_mutations = ss continue } } } function widetl() { let elms = document.querySelectorAll('div.css-175oi2r.r-aqfbo4[data-testid="sidebarColumn"]') let ss // Temp. if (!document.querySelector('head style.' + 'us-' + MYNAME + '-' + 'c')) { let style_a = document.createElement('style') style_a.className = 'us-' + MYNAME + '-' + 'a' style_a.textContent = 'div.css-175oi2r.r-f8sm7e.r-13qz1uu.r-1ye8kvj' + '{max-width: 660px;}' let style_b = document.createElement('style') style_b.className = 'us-' + MYNAME + '-' + 'b' style_b.textContent = 'div[role="dialog"] div.css-175oi2r.r-f8sm7e.r-13qz1uu.r-1ye8kvj' + '{max-width: 600px;}' let style_c = document.createElement('style') style_c.className = 'us-' + MYNAME + '-' + 'c' style_c.textContent = 'section div.css-175oi2r.r-f8sm7e.r-13qz1uu.r-1ye8kvj' + '{max-width: 600px;}' ss = s_mutations document.head.appendChild(style_a) document.head.appendChild(style_b) document.head.appendChild(style_c) s_mutations = ss } for (let e of elms) { let d, dd, dg, dgi, spdgi, da, ds d = e.querySelector(':scope>div>div.r-1hycxz', ':scope>div>div.r-1jocfgc') if (d != null) { dd = d.querySelector('div.r-aqfbo4.r-6gpygo.r-15ysp7h') // null対策 dg = d.querySelector('div[data-testid="google_sign_in_container"]') dgi = d.querySelector('div[data-testid="google_sign_in_container"] iframe[id^="gsi"]') da = d.querySelector('button[data-testid="apple_sign_in_button"]') ds = d.querySelector('a[href="/i/flow/signup"]') } if (dgi) spdgi = dgi.parentNode.parentNode ss = s_mutations if (dd) dd.style.width = '290px' if (dg) dg.style.width = '260px' if (dgi) dgi.style.left = '-20px' if (spdgi) spdgi.style.setProperty('clip-path', 'inset(0 round 20px)') if (da) da.style.width = '260px' if (ds) ds.style.width = '260px' if (d != null) d.style.width = '290px' e.style.width = '290px' // 350px s_mutations = ss } } function chgbgc() { let body = document.getElementsByTagName('body')[0] if (/\(2\d{2},\s*2\d{2},\s*2\d{2}/i.test(body.style.backgroundColor)) { let tl, fb, sb tl = document.querySelector('main div.r-f8sm7e.r-1ye8kvj') fb = document.querySelector('main div.r-1e5uvyk.r-6026j') sb = document.querySelector('main div.r-aqfbo4.r-15ysp7h.r-1xcajam') let ss = s_mutations body.style.backgroundColor = 'rgb(253, 253, 245)' if (tl != null) tl.style.backgroundColor = 'rgb(253, 253, 245)' if (fb != null) fb.style.backgroundColor = 'rgba(253, 253, 245, 0.85)' if (sb != null) sb.style.backgroundColor = 'rgb(253, 253, 245)' s_mutations = ss } } function hidepromo() { const SEL = 'path[d^="M19.498 3h-15c-1.381 0-2.5 1.12-2.5 2.5v13c0 1.38 1.119 2.5"]' const SEL_2 = 'main div[data-testid="sidebarColumn"] section div[data-testid="trend"] div.r-14gqq1x ' + 'span.css-1qaijid.r-bcqeeo.r-qvutc0' // def-ja, def-en, ble-ja, ble-en const SEL_3 = 'main div[data-testid="primaryColumn"] section article ' + 'span.css-1jxf684.r-bcqeeo.r-qvutc0.r-poiln3' const SEL_4 = 'main div[data-testid="primaryColumn"] section ' + 'span.css-901oao.css-16my406.r-bcqeeo.r-qvutc0' // Lone label def-ja, def-en, ble-ja, ble-en let elms = document.querySelectorAll(SEL) let elms_2 = document.querySelectorAll(SEL_2) let elms_3 = document.querySelectorAll(SEL_3) let elms_4 = document.querySelectorAll(SEL_4) const PROMO = { 'ja': 'によるプロモーション$', 'ko': ' 님이 프로모션함$', 'zh-Hant': '^由 .+ 推廣$', 'zh': '^由 .+ 推广$', 'ru': '^Реклама от ', 'de': '^Gesponsert von ', 'it': '^Sponsorizzato da ', 'fr': '^Sponsorisé par ', 'pt': '^Promovido por ', 'en': '^Promoted by ' // Add your language } const PROMO_L = PROMO[LANG] ?? PROMO['en'] const PROMO_2 = { 'ja': 'プロモポスト', 'ko': 'Promoted Post', 'zh-Hant': '推廣貼文', 'zh': 'Promoted Post', 'ru': 'Promoted Post', 'de': 'Gesponserter Post', 'it': 'Promoted Post', 'fr': 'Promoted Post', 'pt': 'Post promovido', 'en': 'Promoted Post' // Add your language } const PROMO_L_2 = PROMO_2[LANG] ?? PROMO_2['en'] let ss // Temp. for (let e of elms) { let xpe = e.closest('div[data-testid="cellInnerDiv"]') if (!xpe) xpe = e.closest('div.css-175oi2r.r-1adg3ll.r-1ny4l3l') // def-ja, def-en, ble-ja, ble-en if (!xpe) xpe = e.closest('div.css-175oi2r.r-1ny4l3l[data-testid="UserCell"]') // def-ja, def-en, ?, ble-en ss = s_mutations if (xpe) xpe.style.setProperty('display', 'none') // Right column のおすすめユーザー' s_mutations = ss } for (let e of elms_2) { const REGEX = new RegExp(PROMO_L, 'i') if (!REGEX.test(e.textContent)) continue let xpe = e.closest('div.css-175oi2r.r-1adg3ll.r-1ny4l3l') ss = s_mutations xpe.style.setProperty('display', 'none') s_mutations = ss } for (let e of elms_3) { if (e.textContent != 'Ad') continue let xpe = e.closest('div[data-testid="cellInnerDiv"]') ss = s_mutations xpe.style.setProperty('display', 'none') s_mutations = ss } for (let e of elms_4) { if (e.textContent != PROMO_2['en'] && e.textContent != PROMO_L_2) continue let xpe = e.closest('div[data-testid="cellInnerDiv"]') ss = s_mutations xpe.style.setProperty('display', 'none') s_mutations = ss } } function hidewtf() { let ss // Temp. let r = '^[^:]+://[^/]+/$|' + '^[^:]+://[^/]+/(' + 'compose|' + // pop up 'search-advanced|' + // pop up 'home|' + // 除外? 'search|' + 'i/display|' + // pop up 'i/flow|' + // pop up 'i/keyboard_shortcuts|' + // pop up 'i/verified-orgs-signup|' + // pop up、追加 'i/verified-choose|' + // pop up、追加 'i/premium_sign_up|' + // pop up、追加 'i/connect_people|' + 'i/topics|' + 'i/spaces/start|' + // pop up、追加 'i/verified-application|' + // pop up、追加 'i/verified-get-verified|' + // pop up、追加 '[^/]+/followers|' + '[^/]+/following|' + '[^/]+/lists|' + '[^/]+/status/|' + // 両方、WTFのみ除外 '[^/]+/topics|' + '[^/]+/creator-subscriptions|' + // 追加 '[^/]+/superfollows|' + // 追加 '[^/]+/verified_followers' + // 追加 ')' if (new RegExp(r, 'i').test(document.URL)) { for (let i = 1; i < 4; i++) { let e = document.querySelector('head style.' + 'us-' + MYNAME + '-' + i) if (e) document.head.removeChild(e) } return } if (!document.querySelector('head style.' + 'us-' + MYNAME + '-' + 1)) { ss = s_mutations let style = document.createElement('style') style.className = 'us-' + MYNAME + '-' + 1 style.textContent = 'main div[data-testid="primaryColumn"] section div[data-testid="cellInnerDiv"]' + ':has(button.css-175oi2r.r-1mmae3n.r-3pj75a.r-1ny4l3l.r-o7ynqc.r-6416eg[data-testid="UserCell"]) ' + '{display: none;}' // フォロー, def-ja, def-en, ble-ja, ble-en document.head.appendChild(style) s_mutations = ss } if (!document.querySelector('head style.' + 'us-' + MYNAME + '-' + 2)) { ss = s_mutations let style = document.createElement('style') style.className = 'us-' + MYNAME + '-' + 2 style.textContent = 'main div[data-testid="primaryColumn"] section div[data-testid="cellInnerDiv"]' + ':has(h2[aria-level="2"][role="heading"]>div>span.css-1jxf684.r-bcqeeo.r-qvutc0) {display: none;}' // Who to follow, def-ja, def-en, ble-ja, ble-en document.head.appendChild(style) s_mutations = ss } if (!document.querySelector('head style.' + 'us-' + MYNAME + '-' + 3)) { ss = s_mutations let style = document.createElement('style') style.className = 'us-' + MYNAME + '-' + 3 style.textContent = 'main div[data-testid="primaryColumn"] section div[data-testid="cellInnerDiv"]' + ':has(a[href*="/connect_people?user_id="]) {display: none;}' // さらに表示 document.head.appendChild(style) s_mutations = ss } } function hidedmd() { const SEL = 'div[data-testid="DMDrawer"]' let elm = document.querySelector(SEL) let ss = s_mutations if (elm != null) elm.style.setProperty('display', 'none') s_mutations = ss } function hidegv() { const SEL = 'aside.css-175oi2r.r-1habvwh.r-eqz5dr.r-uaa2di.r-1mmae3n.r-3pj75a' const SEL_2 = 'main section div[data-testid="cellInnerDiv"] h1[role="heading"] span.css-1jxf684.r-bcqeeo.r-qvutc0' // def-ja, def-en, ble-ja, ble-en let elms = document.querySelectorAll(SEL) let elms_2 = document.querySelectorAll(SEL_2) const TC = { 'gv': { 'ja': '認証を受ける', 'ko': '인증 받기', 'zh-Hant': '獲得認證', 'zh': '获得认证', 'ru': 'Подтвердить подлинность', 'de': 'Lass dich verifizieren', 'it': 'Ottieni la verifica', 'fr': 'Obtenez la certification', 'pt': 'Obter verificação', 'en': 'Get Verified' // Add your language }, 'sp': { 'ja': 'プレミアムにサブスクライブ', 'ko': 'Subscribe to Premium', 'zh-Hant': '訂閱 Premium', 'zh': 'Subscribe to Premium', 'ru': 'Subscribe to Premium', 'de': 'Premium abonnieren', 'it': 'Subscribe to Premium', 'fr': 'Subscribe to Premium', 'pt': 'Assine o Premium', 'en': 'Subscribe to Premium' // Add your language }, 'spylp': { 'ja': '長いポストを作成するには、プレミアムにサブスクライブしてください', 'ko': 'Premium을 구독하고 나만의 긴 게시물을 작성해 보세요', 'zh-Hant': '訂閱 Premium 以撰寫你自己的更長貼文', 'zh': '订阅 Premium,撰写自己的长帖', 'ru': 'Подпишитесь на Premium, чтобы писать собственные длинные посты', 'de': 'Abonniere Premium, wenn du deine eigenen längeren Posts schreiben möchtest', 'it': 'Per scrivere post più lunghi, abbonati a Premium', 'fr': 'Abonnez-vous à Premium pour écrire vos propres posts plus longs.', 'pt': 'Assine o Premium para escrever posts mais longos', 'en': 'Subscribe to Premium to write your own longer posts' // Add your language }, 'gafp': { 'ja': 'プレミアムプラスで広告をなくす', 'ko': 'Go ad-free with Premium+', 'zh-Hant': 'Go ad-free with Premium+', 'zh': 'Go ad-free with Premium+', 'ru': 'Go ad-free with Premium+', 'de': 'Go ad-free with Premium+', 'it': 'Go ad-free with Premium+', 'fr': 'Go ad-free with Premium+', 'pt': 'Go ad-free with Premium+', 'en': 'Go ad-free with Premium+' // Add your language }, 'gaf': { 'ja': '広告をなくす', 'ko': 'Go ad free', 'zh-Hant': 'Go ad free', 'zh': 'Go ad free', 'ru': 'Go ad free', 'de': 'Go ad free', 'it': 'Go ad free', 'fr': 'Go ad free', 'pt': 'Go ad free', 'en': 'Go ad free' // Add your language }, 'txp': { 'ja': 'TweetDeckはX Proになりました', 'ko': 'TweetDeck is now X Pro', 'zh-Hant': 'TweetDeck is now X Pro', 'zh': 'TweetDeck is now X Pro', 'ru': 'TweetDeck is now X Pro', 'de': 'TweetDeck is now X Pro', 'it': 'TweetDeck is now X Pro', 'fr': 'TweetDeck is now X Pro', 'pt': 'TweetDeck is now X Pro', 'en': 'TweetDeck is now X Pro' // Add your language } } const GV_L = TC.gv[LANG] ?? TC.gv['en'] const SP_L = TC.sp[LANG] ?? TC.sp['en'] const SPYLP_L = TC.spylp[LANG] ?? TC.spylp['en'] const GAFP_L = TC.gafp[LANG] ?? TC.gafp['en'] const GAF_L = TC.gaf[LANG] ?? TC.gaf['en'] const TXP_L = TC.txp[LANG] ?? TC.txp['en'] for (let e of elms) { if ( e.getAttribute('aria-label') == GV_L || e.getAttribute('aria-label') == SP_L || e.getAttribute('aria-label') == SPYLP_L || e.getAttribute('aria-label') == GAFP_L ) { let ss = s_mutations e.parentNode.parentNode.style.setProperty('display', 'none') s_mutations = ss } } for (let e of elms_2) { if (e.textContent == GAF_L || e.textContent == TXP_L) { let xpe = e.closest('div[data-testid="cellInnerDiv"]') let ss = s_mutations xpe.style.setProperty('display', 'none') s_mutations = ss } } } function fineegm() { const SEL_R = 'main div[data-testid="primaryColumn"] section article ' + 'button.css-175oi2r.r-1777fci.r-bt1l66.r-bztko3.r-lrvibr.r-1loqt21.r-1ny4l3l[data-testid*="reply"] ' + 'div>span[data-testid="app-text-transition-container"]>span' // 一つ上 const SEL_T = 'main div[data-testid="primaryColumn"] section article ' + 'button.css-175oi2r.r-1777fci.r-bt1l66.r-bztko3.r-lrvibr.r-1loqt21.r-1ny4l3l[data-testid*="retweet"] ' + 'div>span[data-testid="app-text-transition-container"]>span' const SEL_L = 'main div[data-testid="primaryColumn"] section article ' + 'button.css-175oi2r.r-1777fci.r-bt1l66.r-bztko3.r-lrvibr.r-1loqt21.r-1ny4l3l[data-testid*="like"] ' + 'div>span[data-testid="app-text-transition-container"]>span' const SEL_B = 'main div[data-testid="primaryColumn"] section article ' + 'button.css-175oi2r.r-1777fci.r-bt1l66.r-bztko3.r-lrvibr.r-1loqt21.r-1ny4l3l[data-testid*="bookmark"] ' + 'div>span[data-testid="app-text-transition-container"]>span' document. querySelectorAll(SEL_R + ', ' + SEL_T + ', ' + SEL_L + ', ' + SEL_B). forEach(function (e) { const SEL_ADD = 'span.us-' + MYNAME let ce = e.querySelector('span:not(.us-' + MYNAME + ')') let xpe = e.closest('button') let n = +xpe.getAttribute('aria-label').split(' ')[0] let ls = '' if (n) ls = n.toLocaleString('en-US') let old = e.querySelector(SEL_ADD) let ss // Temp. ss = s_mutations if (ce && ce.style.display != 'none') { // 0の時も無い ce.style.setProperty('display', 'none') } if (!old) { let span = document.createElement('span') span.className = 'us-' + MYNAME span.textContent = ls if (ce) span.style = ce.style e.appendChild(span) } else if (old.textContent != ls) { old.textContent = ls if (ce) old.style = ce.style } s_mutations = ss }) } function fineegm_v_d() { const SEL = 'main div[data-testid="primaryColumn"] section article ' + 'div.css-175oi2r.r-1d09ksm.r-1471scf.r-18u37iz.r-1wbh5a2>' + 'div>span>div>span[data-testid="app-text-transition-container"]>span>span:not(.us-' + MYNAME + ')' // 表示回数は減らない、0の時は無い const SEL_2 = 'button.css-175oi2r.r-1777fci.r-bt1l66.r-bztko3.r-lrvibr.r-1loqt21.r-1ny4l3l[data-testid*="retweet"] ' + 'div>span[data-testid="app-text-transition-container"]>span' // 一つ上 const SEL_ADD = 'span.us-' + MYNAME let elm = document.querySelector(SEL) if (!elm) return let elm_2 = document.querySelector(SEL_2) if (!elm_2) return let pelm = elm.parentNode let xpelm_2 = elm_2.closest('div.r-1kbdv8c[aria-label][role="group"]') // fineegm()のさらに上 let n = +/(\d+)\D+$/.exec(xpelm_2.getAttribute('aria-label'))[1] let ls = n.toLocaleString('en-US') let old = pelm.querySelector(SEL_ADD) let ss // Temp. ss = s_mutations if (!old) { let span = document.createElement('span') span.className = 'us-' + MYNAME span.textContent = ls span.style = elm.style elm.style.setProperty('display', 'none') pelm.appendChild(span) } else if (old.textContent != ls) { old.textContent = ls old.style = elm.style } s_mutations = ss } function fineegm_v_t() { const SEL = 'main div[data-testid="primaryColumn"] section article ' + 'a[href$="/analytics"][aria-label][role="link"]>div>div>span[data-testid="app-text-transition-container"]>' + 'span>span:not(.us-' + MYNAME + ')' // 二つ下から消える document.querySelectorAll(SEL).forEach(function (e) { const SEL_ADD = 'span.us-' + MYNAME let pe = e.parentNode let xpe = e.closest('a') let n = +xpe.getAttribute('aria-label').split(' ')[0] let ls = n.toLocaleString('en-US') let old = pe.querySelector(SEL_ADD) let ss // Temp. ss = s_mutations if (!old) { let span = document.createElement('span') span.className = 'us-' + MYNAME span.textContent = ls span.style = e.style e.style.setProperty('display', 'none') pe.appendChild(span) } else if (old.textContent != ls) { old.textContent = ls old.style = e.style } s_mutations = ss }) } function fineegm_t() { const SEL = 'main div[data-testid="primaryColumn"] div[aria-label] ' + 'h2[role="heading"]~div.css-146c3p1.r-n6v787.r-1cwl3u0' const SEL_2 = 'script[data-testid="UserProfileSchema-test"]' const SEL_ADD = 'div.us-' + MYNAME let elm = document.querySelector(SEL) if (!elm) return let elm_2 = document.querySelector(SEL_2) if (!elm_2) return let pelm = elm.parentNode let n = JSON.parse(elm_2.textContent).author.interactionStatistic[2].userInteractionCount let ls = n.toLocaleString('en-US') let old = pelm.querySelector(SEL_ADD) let ss = s_mutations // Temp. if (!old) { let div = document.createElement('div') div.className = 'us-' + MYNAME div.textContent = ls + ' ' + elm.textContent.split(' ')[1] div.style = elm.style elm.style.setProperty('display', 'none') pelm.appendChild(div) } else if (old.textContent.split(' ')[0] != ls) { old.textContent = ls + ' ' + elm.textContent.split(' ')[1] old.style = elm.style } s_mutations = ss } function isHLSURL(url) { return ( /^https?:\/\/video\.twimg\.com\/[^?]+\.m3u8?/i.test(url) || /^https?:\/\/[^.]+\.video\.pscp\.tv\/[^?]+\.m3u8?/i.test(url) ) } function isHLSMaster(text) { return ( text && text.includes('#EXT-X-STREAM-INF') && !text.includes('#EXT-X-TARGETDURATION') ) } function pickone(reg, text) { let matches = [] const HEAD = text.replace(reg, function (m, p1) { matches.push([m, p1]) return '' }) const L = matches.length if (L < 2) return text let select = matches[0] for (let i = 1; i < L; i++) { // 2番目から select = (fvq != 2 && +select[1] < +matches[i][1]) || (fvq == 2 && +select[1] > +matches[i][1]) ? matches[i] : select } return (HEAD + '\n' + select[0]).trim().replace(/(\r?\n)+/g, '\n') + '\n' } function twXHRStateHandler({ target: xhr }) { if (xhr.readyState === 4) { const rawTEXT = xhr.responseText if (isHLSMaster(rawTEXT)) { // eslint-disable-next-line regexp/optimal-quantifier-concatenation const REG = /#EXT-X-STREAM-INF.*[^-]BANDWIDTH=(\d+).*\r?\n\/.+$/gm const modTEXT = pickone(REG, rawTEXT) Object.defineProperties(xhr, { response: { writable: true }, responseText: { writable: true } }) xhr.response = xhr.responseText = modTEXT } } } function overrideXHROpen() { originalXHROPEN = XMLHttpRequest.prototype.open XMLHttpRequest.prototype.open = function () { if (isHLSURL(arguments[1])) { this.addEventListener('readystatechange', twXHRStateHandler) } return originalXHROPEN.apply(this, arguments) } console.log(MYNAME + ': XMLHttpRequest.open overriden.') } function repldatetime() { const SEL = 'main div[data-testid="primaryColumn"] section article time[datetime*=":"]' const SEL_2 = 'div[aria-labelledby="modal-header"] div[data-testid^="User-Name"] time[datetime]' const SEL_3 = 'div[aria-labelledby="modal-header"] div[aria-label] time[datetime]' const SEL_4 = 'main section[aria-labelledby="detail-header"] article div[data-testid^="User-Name"] time[datetime]' const SEL_5 = 'main section div[data-testid="conversation"] div[aria-label] time[datetime]' // DM list document. querySelectorAll(SEL + ', ' + SEL_2 + ', ' + SEL_3 + ', ' + SEL_4 + ', ' + SEL_5). forEach(function (e) { const SEL_ADD = 'span.us-' + MYNAME let d = e.getAttribute('datetime') let df = datef(new Date(d), fmt) let pe = e.parentNode let old = pe.querySelectorAll(SEL_ADD) let ss // Temp. ss = s_mutations if (!old.length) { let span = document.createElement('span') span.className = 'us-' + MYNAME span.setAttribute('datetime', d) span.setAttribute('local-datetime', df) span.textContent = df span.style = e.style e.style.setProperty('display', 'none') pe.appendChild(span) } else if (old[0].getAttribute('local-datetime') != df) { // TZ change old[0].setAttribute('local-datetime', df) old[0].textContent = df old[0].style = e.style } s_mutations = ss }) } function loop() { setTimeout(() => { if (s_mutations) { s_mutations = null // 初期値がtrue、変更もしない if (bbr) bbreturn() if (origi) origimg() if (wtl) widetl() if (ecmode) chgbgc() if (hpp) hidepromo() if (hwtf) hidewtf() if (hdmd) hidedmd() if (hgv) hidegv() if (fmt) repldatetime() if (fegm) { fineegm() fineegm_v_d() fineegm_v_t() fineegm_t() time_r = Date.now() } } else if (fegm == 1 && Date.now() - time_r > 4000) { fineegm() fineegm_v_d() fineegm_v_t() fineegm_t() time_r = Date.now() } loop() }, intl) } bbr = BBR origi = ORIGI wtl = WTL ecmode = ECMODE hpp = HPP hwtf = HWTF hdmd = HDMD hgv = HGV fegm = FEGM fvq = FVQ fmt = FMT intl = INTL if (!NOGUI) initgui() if (fvq) overrideXHROpen() observer.observe(document, { childList: true, subtree: true }) loop() })() /* END */