つっちー つっちー
見出し画像

【万博 CSS JS 便利ツール】自動予約ツールじゃないよ! 【9/6修正】

割引あり

秋のBAN祭り開催中らしいですが、このnoteのツールには自動予約機能がないのでBAN祭りには参加できないです🤣
残念!!😆

冗談はさておき、念のためもっと見るボタンの自動押下機能のみ若干調整して再公開することにしました😊
何度も言いますが、自動予約などの自動でサーバーに負荷をかけ続ける機能は無いので、その点は安心して使えます。


設定方法

iphone ならmakeover、
PCとandroidならstylusとtampermonkey入れてください。
tampermonkeyの設定の時は、拡張機能の管理、アプリの詳細の「このサイトでのユーザースクリプトを許可する」をONにしないといけないらしいです。知らんけど😙
詳しい設定方法はXとかで調べるとすぐ分かるんでここではすっ飛ばします。


機能

画像
画像
画像
画像
画像
画像

CSSコード

  • 来場予約画面での過去の日付を非表示に

  • パビリオン検索画面でのぐるぐるを非表示

  • その他予約に不要な説明文などを削除 など

(8月以降更新無し)

.style_loader__eoj1P, /*検索画面のグルグル*/
ol.style_steps__KA_XB, /*パビリオン・イベント選択・時間帯選択する画面でのステップ説明*/
h1.style_title__44y_b, /*時間帯選択する画面での余計な説明1*/
.style_info__DjEiR, /*時間帯選択する画面での余計な説明2*/
.style_main_img__W_6pm, /*時間帯選択する画面でのイメージ画像*/
.style_sub_title__bDw9W, /*時間帯選択する画面での余計な説明3*/
.style_event_chip_links___Pve2, /*時間帯選択する画面でのバーチャル万博へのリンク*/
.style_form_result_caption__iXsYT, /*時間帯選択する画面での余計な説明4*/
.style_form_select_time__TZmGY, /*時間帯選択する画面での余計な説明5*/
.style_hour_unit_wrap__piAg4, /*時間帯選択する画面での絞り込み選択部分*/
.style_scale__Wf3te, /*時間帯選択する画面での空き状況アイコン説明*/
.style_title__jFGv9, /*パビリオン・イベント選択する画面での余計な説明1*/
.style_info__CFlEQ, /*パビリオン・イベント選択する画面での余計な説明2*/
.style_form_search_caption__DbKqM, /*パビリオン・イベント選択する画面での余計な説明3*/
.style_event_links__jS3Q_, /*パビリオン・イベント選択する画面でのバーチャル万博などへのリンク*/
.style_scale__XzXt6, /*パビリオン・イベント選択する画面での空き状況*/
.style_main__page_title__c7e_v, /*来場予約画面での余計な説明1*/
span[data-message-code="SW_GP_DL_117_0003"], /*来場予約画面での余計な説明2*/
.style_selector_item_disabled__iSIA2, /*来場予約画面での選択できない日付*/
.style_main__usage__GPY6i, /*来場予約画面での空き状況アイコン説明*/
.style_main__access_description__w0ln5, /*来場予約画面での余計な説明3*/
.style_main__access__LWLUK, /*来場予約画面での余計な説明4*/
h1.h-type2.sp-lh.top-padding, /*マイチケット画面の余計な説明*/
.style_info__IMd9g, /*マイチケット画面の余計な説明*/
.style_main__mt6v9, /*マイチケット画面の余計な説明*/
.style_note__IV38f, /*マイチケット画面の余計な説明*/
.style_ticket_count__gfKHL, /*マイチケット画面の余計な説明*/
.style_display_controller__SHljn, /*マイチケット画面の余計な表示*/
.style_ticket_selection__operation__5_xwc, /*チケット選択画面の余計な説明*/
h1.h-type2.sp-lh, /*チケット選択画面の余計な説明*/
.style_ticket_selection__lead__X6Nmh, /*チケット選択画面の余計な説明*/
.style_ticket_selection__notice__QKIJm, /*チケット選択画面の余計な説明*/
.style_ticket_selection__ticket_count__UAArm, /*チケット選択画面の余計な説明*/
.style_ticket_selection__selection_count__UQ6tz, /*チケット選択画面の余計な説明*/
.style_main__page_title__X_Tpw, /*予約の詳細画面の余計な説明1*/
.style_main__ticket_group_summary__oZRfR, /*予約の詳細画面の余計な説明2*/
.style_main__notes__9VjEx, /*予約の詳細画面の余計な説明3*/
.style_main__heading_wrap__qbkH6, /*予約の詳細画面の余計な説明4*/
.style_info__rjheq, /*予約の詳細画面の余計な説明5*/
.style_main__request_guide__BNM2t, /*予約の詳細画面の余計な説明6*/
.style_main__parking__0pxbz, /*予約の詳細画面の余計な説明7*/
.style_step_info_first__Y8D4_, /*予約の詳細画面の余計な説明*/
.style_step_info_second__pxlY5, /*予約の詳細画面の余計な説明*/
.style_empty_frame__info__xnrnV, /*予約の詳細画面の余計な説明*/
.style_on_the_day__guide__q9gV9, /*予約の詳細画面の余計な説明*/
.style_wrapper__LDMLO, /*トップ画面の余計な表示*/
h2.styles_title__9jT_J.h-type1, /*トップ画面の余計な表示*/
a.styles_lead_button__5eAGA.lead-btn, /*トップ画面の余計な表示*/
.styles_info__4kC2A, /*トップ画面の余計な表示*/
h2.h-type1, /*トップ画面の余計な表示*/
p[data-message-code="SW_GP_DL_004_0302"], /*トップ画面の余計な表示*/
.styles_display_controller__ODR1w, /*トップ画面の余計な表示*/
span[data-message-code="SW_GP_DL_004_0410"], /*トップ画面の余計な表示*/
#ot-sdk-btn-floating, /*ページ下部の優先設定センターアイコン*/
#bottom-fix-nav, /*ページ下部のナビ部分*/
footer /*ページ下部のフッター部分*/
{display: none !important;}
[data-disabled="true"] {pointer-events: auto !important;}

CSSコード(完全ソロ向け)

.style_loader__eoj1P, /*検索画面のグルグル*/
ol.style_steps__KA_XB, /*パビリオン・イベント選択・時間帯選択する画面でのステップ説明*/
h1.style_title__44y_b, /*時間帯選択する画面での余計な説明1*/
.style_info__DjEiR, /*時間帯選択する画面での余計な説明2*/
.style_main_img__W_6pm, /*時間帯選択する画面でのイメージ画像*/
.style_sub_title__bDw9W, /*時間帯選択する画面での余計な説明3*/
.style_event_chip_links___Pve2, /*時間帯選択する画面でのバーチャル万博へのリンク*/
.style_form_result_caption__iXsYT, /*時間帯選択する画面での余計な説明4*/
.style_form_select_time__TZmGY, /*時間帯選択する画面での余計な説明5*/
.style_hour_unit_wrap__piAg4, /*時間帯選択する画面での絞り込み選択部分*/
.style_scale__Wf3te, /*時間帯選択する画面での空き状況アイコン説明*/
.style_title__jFGv9, /*パビリオン・イベント選択する画面での余計な説明1*/
.style_info__CFlEQ, /*パビリオン・イベント選択する画面での余計な説明2*/
.style_form_search_caption__DbKqM, /*パビリオン・イベント選択する画面での余計な説明3*/
.style_event_links__jS3Q_, /*パビリオン・イベント選択する画面でのバーチャル万博などへのリンク*/
.style_scale__XzXt6, /*パビリオン・イベント選択する画面での空き状況*/
.style_main__page_title__c7e_v, /*来場予約画面での余計な説明1*/
span[data-message-code="SW_GP_DL_117_0003"], /*来場予約画面での余計な説明2*/
.style_selector_item_disabled__iSIA2, /*来場予約画面での選択できない日付*/
.style_main__usage__GPY6i, /*来場予約画面での空き状況アイコン説明*/
.style_main__access_description__w0ln5, /*来場予約画面での余計な説明3*/
.style_main__access__LWLUK, /*来場予約画面での余計な説明4*/
h1.h-type2.sp-lh.top-padding, /*マイチケット画面の余計な説明*/
.style_info__IMd9g, /*マイチケット画面の余計な説明*/
.style_main__mt6v9, /*マイチケット画面の余計な説明*/
.style_note__IV38f, /*マイチケット画面の余計な説明*/
.style_ticket_count__gfKHL, /*マイチケット画面の余計な説明*/
.style_display_controller__SHljn, /*マイチケット画面の余計な表示*/
.style_ticket_selection__operation__5_xwc, /*チケット選択画面の余計な説明*/
h1.h-type2.sp-lh, /*チケット選択画面の余計な説明*/
.style_ticket_selection__lead__X6Nmh, /*チケット選択画面の余計な説明*/
.style_ticket_selection__notice__QKIJm, /*チケット選択画面の余計な説明*/
.style_ticket_selection__id_input_message__r681a, /*チケット選択画面の余計な説明*/
.style_ticket_selection__ticket_count__UAArm, /*チケット選択画面の余計な説明*/
.style_ticket_selection__selection_count__UQ6tz, /*チケット選択画面の余計な説明*/
.style_main__page_title__X_Tpw, /*予約の詳細画面の余計な説明1*/
.style_main__ticket_group_summary__oZRfR, /*予約の詳細画面の余計な説明2*/
.style_main__notes__9VjEx, /*予約の詳細画面の余計な説明3*/
.style_main__heading_wrap__qbkH6, /*予約の詳細画面の余計な説明4*/
.style_info__rjheq, /*予約の詳細画面の余計な説明5*/
.style_main__request_guide__BNM2t, /*予約の詳細画面の余計な説明6*/
.style_main__parking__0pxbz, /*予約の詳細画面の余計な説明7*/
.style_step_info_first__Y8D4_, /*予約の詳細画面の余計な説明*/
.style_step_info_second__pxlY5, /*予約の詳細画面の余計な説明*/
.style_empty_frame__info__xnrnV, /*予約の詳細画面の余計な説明*/
.style_on_the_day__guide__q9gV9, /*予約の詳細画面の余計な説明*/
.style_wrapper__LDMLO, /*トップ画面の余計な表示*/
h2.styles_title__9jT_J.h-type1, /*トップ画面の余計な表示*/
a.styles_lead_button__5eAGA.lead-btn, /*トップ画面の余計な表示*/
.styles_info__4kC2A, /*トップ画面の余計な表示*/
h2.h-type1, /*トップ画面の余計な表示*/
p[data-message-code="SW_GP_DL_004_0302"], /*トップ画面の余計な表示*/
.styles_display_controller__ODR1w, /*トップ画面の余計な表示*/
span[data-message-code="SW_GP_DL_004_0410"], /*トップ画面の余計な表示*/
#ot-sdk-btn-floating, /*ページ下部の優先設定センターアイコン*/
#bottom-fix-nav, /*ページ下部のナビ部分*/
footer /*ページ下部のフッター部分*/
{display: none !important;}
[data-disabled="true"] {pointer-events: auto !important;}

JSコード

  • もっと見るボタンの自動クリック間隔が0秒だったので1秒前後に調整(9/5)

  • 予約(来場・抽選)を誤って取り消してしまうのを防ぐためのロック機能

  • 満員✖パビリオンの表示/非表示の切り替え

  • いきたいパビリオンをお気に入り❤登録

  • 興味のないパビリオンを非表示♥登録

  • パビリオンの説明文の表示/非表示の切り替え など

// ==UserScript==
// @name          つっちー
// @version       4.2
// @match         https://ticket.expo2025.or.jp/*
// @description   表示最適化スクリプト
// @run-at        document-end
// @grant         none
// ==/UserScript==
(function(){
'use strict';
let p,c=()=>{};
function R(){
const l=location.href;
l.includes('/event_search/')?p!=='search'&&(c(),p='search',c=S()):l.includes('/event_time/')?p!=='time'&&(c(),p='time',c=T()):l.includes('/myticket_detail/')?p!=='detail'&&(c(),p='detail',c=L_detail()):(c(),p=null)
}
R();
let u=location.href;
setInterval(()=>{
location.href!==u&&(u=location.href,R())
},1e3);
function S(){
const F='expo_favorites_map',V='expo_search_full_visible',A='expo_favorite_filter_state',D='show_fav_only',E='hide_dislikes',G='show_all',H=()=>JSON.parse(localStorage.getItem(F)||'{}'),I=e=>localStorage.setItem(F,JSON.stringify(e)),J=e=>{const t=H(),o=t[e]||null;o===null?t[e]='favorite':o==='favorite'?t[e]='dislike':delete t[e];I(t);K()},K=()=>{const e=H();document.querySelectorAll('.expo-heart').forEach(t=>{const o=t.dataset.title,n=e[o]||null;n==='favorite'?(t.textContent='❤',t.style.color='red'):n==='dislike'?(t.textContent='❤\uFE0E',t.style.color='black'):(t.textContent='♡',t.style.color='red')})},L=()=>{document.querySelectorAll('.style_search_item_row__moqWC').forEach(e=>{const t=e.querySelector('button[data-event-index]');if(!t||t.querySelector('.expo-heart'))return;const o=t.querySelector('.style_search_item_title__aePLg');if(!o)return;const n=o.textContent.trim(),s=document.createElement('span');s.className='expo-heart';s.dataset.title=n;Object.assign(s.style,{marginLeft:'8px',fontSize:'25px',cursor:'pointer',userSelect:'none'});s.addEventListener('click',t=>{t.stopPropagation();J(n)});o.insertAdjacentElement('afterend',s)});K()},M=()=>{const e=localStorage.getItem(V)==='true',t=localStorage.getItem(A)||G,o=H();document.querySelectorAll('.style_search_item_row__moqWC').forEach(n=>{let s=!0;const a=n.querySelector('img[src="/asset/img/calendar_none.svg"]');a&&!e&&(s=!1);const i=n.querySelector('.style_search_item_title__aePLg');if(i){const e=i.textContent.trim(),a=o[e]||null;t===D&&a!=='favorite'&&(s=!1);t===E&&a==='dislike'&&(s=!1)}n.style.display=s?'':'none'})},N=()=>{if(document.getElementById('fullToggleBtn'))return;const e=document.querySelector('.style_form_result_caption__N_THN');if(!e)return;const t=document.createElement('button');t.id='fullToggleBtn';t.className='basic-btn type4';Object.assign(t.style,{margin:'25px 0 0 0',display:'flex',alignItems:'center'});const o=document.createElement('img');o.src='/asset/img/calendar_none.svg';o.style.marginRight='20px';const n=document.createElement('span'),s=()=>{n.textContent=localStorage.getItem(V)==='true'?'満員は非表示':'満員も表示'};t.append(o,n);t.addEventListener('click',()=>{const e=localStorage.getItem(V)==='true';localStorage.setItem(V,!e);s();M()});e.parentNode.insertBefore(t,e);s()},O=()=>{if(document.getElementById('favoriteFilterBtn'))return;const e=document.getElementById('fullToggleBtn');if(!e)return;const t=document.createElement('button');t.id='favoriteFilterBtn';t.className='basic-btn type4';Object.assign(t.style,{margin:'25px 0 0 0',display:'flex',alignItems:'center',justifyContent:'center'});const o=document.createElement('span'),n=()=>{const e=localStorage.getItem(A)||G;e===D?o.innerHTML='<span style="color:red;">❤</span>を表示':e===E?o.innerHTML='<span style="color:black;">❤\uFE0E</span>は非表示':o.innerHTML='<span style="color:red;">❤</span>も<span style="color:black;">❤\uFE0E</span>も全て表示'};t.append(o);t.addEventListener('click',()=>{const e=localStorage.getItem(A)||G;let t;t=e===G?D:e===D?E:G;localStorage.setItem(A,t);n();M()});e.insertAdjacentElement('afterend',t);n()},P=()=>{
    const buttons=Array.from(document.querySelectorAll('button.style_more_btn__ymb22'))
        .filter(e=>e.offsetParent!==null);

    let delay=0;
    buttons.forEach(e=>{
        const randomInterval=500+Math.random()*1000; // 0.5〜1.5秒
        delay+=randomInterval;

        const s=HTMLElement.prototype.focus;
        HTMLElement.prototype.focus=()=>{};

        setTimeout(()=>{
            e.click();
            HTMLElement.prototype.focus=s;
        },delay);
    });
};Q=new MutationObserver(()=>{Q.disconnect();N();O();P();L();M();Q.observe(document.body,{childList:!0,subtree:!0})});N();O();L();M();Q.observe(document.body,{childList:!0,subtree:!0});return()=>Q.disconnect()}
function L_detail(){
let b=false;const i=()=>{if(b)return;const c=document.querySelector('.style_info__rjheq');const d=document.querySelector('.style_main__ge7iK');if(c&&d){const B=d.querySelectorAll('.style_main__buttons__button__5GJ9z,.style_event_detail__button__eo_Zr');B.forEach(e=>{e.style.pointerEvents='none';e.style.opacity='0.2'});const t=document.createElement('button');t.id='expo-detail-toggle-buttons';t.className='style_main__buttons__button__5GJ9z';t.tabIndex=0;const S=document.createElement('span');S.className='style_renderer__ip0Pm';t.appendChild(S);Object.assign(t.style,{marginTop:'20px',marginBottom:'20px'});let a=true;const u=()=>{S.textContent=a?'🔒来場・抽選予約をロック中':'🔓来場・抽選予約のロックを解除中'};t.addEventListener('click',()=>{a=!a;const e=d.querySelectorAll('.style_main__buttons__button__5GJ9z,.style_event_detail__button__eo_Zr');e.forEach(e=>{if(a){e.style.pointerEvents='none';e.style.opacity='0.2'}else{e.style.pointerEvents='';e.style.opacity=''}});u()});const C=document.createElement('div');C.className='style_main__buttons__MP9In';Object.assign(C.style,{display:'flex',justifyContent:'center',alignItems:'center',flexWrap:'nowrap'});C.appendChild(t);c.nextSibling?c.parentNode.insertBefore(C,c.nextSibling):c.parentNode.appendChild(C);u();b=true;o.disconnect()}};const o=new MutationObserver((m,O)=>{i()});i();if(!b)o.observe(document.body,{childList:true,subtree:true});return()=>o.disconnect()
}
function T(){
const d='expo_time_hide_description',f='expo_time_full_visible',o=()=>{const e=document.querySelector('.style_description__o9igj');if(!e||e.dataset.processed)return;e.dataset.processed='true';const t=document.createElement('div');t.textContent='説明文を表示';Object.assign(t.style,{cursor:'pointer',textAlign:'center',display:'none'});e.parentNode.insertBefore(t,e.nextSibling);const s=()=>{const o=localStorage.getItem(d)==='true';e.style.display=o?'none':'';t.style.display=o?'':'none'};e.addEventListener('click',o=>{o.target.tagName.toLowerCase()!=='a'&&(localStorage.setItem(d,'true'),s())});t.addEventListener('click',()=>{localStorage.setItem(d,'false');s()});s()},n=()=>{const e=localStorage.getItem(f)==='true';document.querySelectorAll('.style_time_picker__wrap__UBImr').forEach(t=>{const o=t.querySelector('.style_time_picker__disabled___yvRh');o&&(t.style.display=e?'':'none')})},s=()=>{if(document.getElementById('expo-full-toggle'))return;const e=document.querySelector('.style_hour_unit_wrap__piAg4');if(!e)return;const o=document.createElement('button');o.id='expo-full-toggle';o.className='basic-btn type4';Object.assign(o.style,{marginTop:'10pt'});const n=document.createElement('img');n.src='/asset/img/ico_ng.svg';o.append(n);const a=document.createElement('span');Object.assign(a.style,{marginLeft:'6px'});const i=()=>{const e=localStorage.getItem(f)==='true';a.textContent=e?'満員は非表示':'満員も表示'};o.append(a);e.insertAdjacentElement('afterend',o);o.addEventListener('click',()=>{const e=localStorage.getItem(f)!=='true';localStorage.setItem(f,e);i();n()});i()},a=document.querySelector('.style_main__event_times__rkxuG')||document.body,i=new MutationObserver(()=>{i.disconnect();o();s();n();i.observe(a,{childList:!0,subtree:!0})});o();s();n();i.observe(a,{childList:!0,subtree:!0});return()=>i.disconnect()}
})();

もっと見るボタンを無効化したい場合は、どこかにあるP();を//P();に変えると無効化できるはず🤔


免責

  • 本スクリプトは個人の目的で作成されたものであり、無保証、無償で提供されています。

  • 動作の正確性や安全性について一切の保証を行いません。

  • 本スクリプトを使用または改変・再配布することで発生したいかなる損害・トラブル・不利益について、一切責任を負いません。

  • すべて自己責任でご利用ください。


ここから先には何もありません。
何もないので絶対に押さないでくださいね。

ここから先は

214字 / 13画像

この記事が気に入ったらチップで応援してみませんか?

購入者のコメント

コメントするには、 ログイン または 会員登録 をお願いします。
【万博 CSS JS 便利ツール】自動予約ツールじゃないよ! 【9/6修正】|つっちー
word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word

mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1