見出し画像

万博予約サイトの不便も欠点も、あらゆる不満を解消させるたった2つのコード CSS / JS 【8/9修正】

万博の公式予約サイト、本当に使いにくいですよね😅

満員のパビリオンを延々ずっとスクロールさせられ😒
ようやく空きが出たと思って時間を選択しようとしても✖だらけ😮‍💨
車いすや興味のないパビリオンも消せない🙁
複数人予約はID入力が本当に大変😵‍💫
入力してる間にどんどん予約を取られ😩
検索画面に行ったときにはすでに焼野原・・・😭

やっと予約が取れた!🤩
と思ったら車いす専用😖
慌てて取り直そうとキャンセルしたら😑
せっかく当たった抽選予約ごと来場予約を間違ってキャンセル😱
そんな方も多数いらっしゃるようです。

でも、実はそれを全部解決できるツールがあるんです。
もちろん無料ですが。
是非使ってみて、お友達にも勧めてあげてください。
※複数人予約のID入力はベータ機能となります。しかも3日前予約のみ



設定方法

すみません、説明下手なので簡単にしか書けません。
でも安心してください。スクリプトに変な記号が並んでますが、分からなくても全く問題ありません。Xでも簡単に分かりやすく紹介されてますので、「万博 CSS」などで検索してみてください。

iPhone

Makeoverというアプリを入れる必要があります。こちらで分かりやすく説明されていますので参考にどうぞ。

PC

CSS用にStylus、JS用にTampermonkeyの拡張機能をブラウザにインストールしてください。(他の拡張機能でも動くと思いますが、筆者はこの2つで動作確認しています)

Android

Tampermonkeyで動いたという報告も上がっていますが、動作がおかしいことがあるようです。筆者はAndroidを持ってなくて検証できないので、あまりサポートできることはありません。
こちらが参考になるかもしれません。



機能について

CSSの機能

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

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

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


画像
画像

JSの機能

  • 複数人予約時のID登録作業自動化(8/7機能追加)

  • 抽選予約を誤って取り消してしまうのを防ぐためのロック機能を追加(8/7機能追加)

  • 来場予約を誤って取り消してしまうのを防ぐためのロック機能を追加

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

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

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

  • もっと見るボタンを自動押下

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


画像
ベータ機能です。しかも3日前予約のみ
画像
画像
画像
画像

これらの機能により、画面の見やすさと、スクロールなどの操作の手間を減らし、予約時のストレスを大幅に軽減することを目的としています。と同時に、予約の取れやすさにつながります。


スクリプト

以下のスクリプトをコピペしてください。

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__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

// ==UserScript==
// @name          つっちー
// @version       4.1
// @match         https://ticket.expo2025.or.jp/*
// @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=()=>{document.querySelectorAll('button.style_more_btn__ymb22').forEach(e=>{if(e.offsetParent!==null){const s=HTMLElement.prototype.focus;HTMLElement.prototype.focus=()=>{};e.click();setTimeout(()=>{HTMLElement.prototype.focus=s},1e4)}})},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()}
})();

JS(3日前先着予約での複数ID自動登録機能ありのベータ版)

(こちらのベータ版、はデバッグ上等!な人のみ使ってください。よく分かんなければ上のJSを使ってください)

// ==UserScript==
// @name          つっちー
// @version       4.2β
// @match         https://ticket.expo2025.or.jp/*
// @run-at        document-end
// @grant         none
// ==/UserScript==
(function(){
'use strict';
const r="";
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(){
(function(){const h=location.href;if(h.includes(r))return;const i="event_search/?id=",s=h.indexOf(i);if(s===-1)return;const P=s+i.length+10,n=h.slice(0,P)+r+h.slice(P);setTimeout(()=>location.replace(n),10)})();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=()=>{document.querySelectorAll('button.style_more_btn__ymb22').forEach(e=>{if(e.offsetParent!==null){const s=HTMLElement.prototype.focus;HTMLElement.prototype.focus=()=>{};e.click();setTimeout(()=>{HTMLElement.prototype.focus=s},1e4)}})},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()}
})();

複数IDを同時予約したい場合は、上から10行目の const r=""; に
const r=",1111111111,2222222222,3333333333";
のようにしてIDを追加してください。

注意点
・IDを入力するときは最初にカンマを付ける
・自分のIDは入れない
・複数IDを追加するときはカンマで区切る
・IDは絶対間違えないように
・追加できるIDは13個まで


免責

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

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

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

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


注意喚起

有料で販売されている情報について

予約の自動化や補助をする有料のツールはやばいのでお気を付けください。ログを見れば、ツールによるループ操作や連打などの操作は簡単にわかります。過度にサーバーに負荷をかける行為は明確な規約違反で、ID無効などの措置が取られる可能性があります。
そのような事情もあり、自動化機能を付けることは簡単ですが、私の公開するものには自動予約機能は付けていません。

「コツ」や「攻略法」なんてものは日々変わります。
・実はその人にしか使えないもの
・昨日までは使えたけど今日からは使えないもの
・その日たまたま使えたもの
などなど、有料で販売されている「コツ」や「攻略法」なんて買ってみたけどほとんど何の役にも立ちません。誰かの日記や感想を有料で読まされるようなもんで金の無駄です。

不正アクセス禁止法に触れるような方法で得たと思われる内部情報にも注意が必要です。無料の情報でも過度に信じず、都市伝説や宗教や占いみたいなもんだと思ってほどほどに読み流す程度にしましょう。ましてやそんなものにお金を払うのは金をどぶに捨てるようなもんです。それより会場で美味しいもの食べましょう!


あとがき

私がスクリプトを作るきっかけとなり参考にさせていただいた緒方壽人氏、AndoroidへのJS導入方法・動作報告・スクリプト改良などでご協力をいただいたみんみん@Ch__MinMin氏、改良のアイデアやヒントを勝手にいただいているペンギン@expo2025氏には感謝感謝です。

万博の予約システムはダメダメでも、このスクリプトを使うことで万博を楽しめる人が1人でも増えてくれると嬉しいです。
使ってみて満足していただけたなら、チップをいただけるともっと嬉しいです。

あとおよそ2ヶ月、まだまだ万博を楽しみましょー!

いいなと思ったら応援しよう!

ピックアップされています

万博

  • 1本

コメント

27
つっちー
つっちー

beastcat様

直前の操作(どのページのどのボタンを押したかなど)と、他のJSの機能は問題なく動いているかどうかを教えてください。

beastcat@
beastcat@

他のJSは問題なく動いています。ver.4.1も4.2βも、もっと見るを1回押さないと最終まで表示されませんでした。
でも、表示させたい候補を絞れば大丈夫です。返信ありがとうございます!格段に使いやすいです!!

つっちー
つっちー

iphoneということであれば、safariでmakeoverを使ってますよね?
ただ単に読み込みに時間がかかってるだけなんじゃないですかね?

cssの1行目の
.style_loader__eoj1P, /*検索画面のグルグル*/
を削除してみると、読み込み中なのかそうでないかが分かります。
グルグルが完全に表示されなくなった時にもっと見るボタンを押せるようになってるなら問題ありですが、ボタンを押せなければ正常動作です

beastcat@
beastcat@

返信ありがとうございます
その通り、読み込み時間でした。焦り過ぎですね...お騒がせしてすみませんでした!

ログイン または 会員登録 するとコメントできます。
万博予約サイトの不便も欠点も、あらゆる不満を解消させるたった2つのコード CSS / JS 【8/9修正】|つっちー
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