Merge commit '7500582165eea1a436e09b2015f820934ab93525' into patch/6.x

This commit is contained in:
harukin-expo-dev-env 2025-05-04 12:56:30 +00:00
commit 8212148fb2
6 changed files with 965 additions and 1002 deletions

4
Top.js
View File

@ -19,7 +19,7 @@ export const Top = () => {
const { navigate, addListener, isFocused } = useNavigation();
//地図用
const { injectJavaScript, mapSwitch } = useTrainMenu();
const { mapSwitch } = useTrainMenu();
const goToFavoriteList = () =>
navigate("positions", { screen: "favoriteList" });
@ -44,7 +44,7 @@ export const Top = () => {
useEffect(() => {
const unsubscribe = addListener("tabPress", goToTrainMenu);
return unsubscribe;
}, [addListener, mapSwitch, injectJavaScript]);
}, [addListener, mapSwitch]);
return (
<Stack.Navigator detachInactiveScreens={false}>

View File

@ -36,8 +36,7 @@ export default function Apps() {
const { isLandscape } = useDeviceOrientationChange();
const handleLayout = () => {};
const { originalStationList } = useStationList();
const { setInjectJavaScript, mapSwitch, trainInfo, setTrainInfo } =
useTrainMenu();
const { mapSwitch, trainInfo, setTrainInfo } = useTrainMenu();
const openStationACFromEachTrainInfo = async (stationName) => {
await SheetManager.hide("EachTrainInfo");
@ -60,7 +59,7 @@ export default function Apps() {
useShow: () => SheetManager.show("StationDetailView", { payload }),
onExit: () => SheetManager.hide("StationDetailView"),
};
setTimeout(()=>SheetManager.show("StationDetailView", { payload }),50);
setTimeout(() => SheetManager.show("StationDetailView", { payload }), 50);
} else {
SheetManager.hide("StationDetailView");
}
@ -110,7 +109,6 @@ export default function Apps() {
{isLandscape || (
<MapsButton
onPress={() => {
setInjectJavaScript("");
navigate("trainMenu", { webview });
}}
/>

View File

@ -18,8 +18,6 @@ export default function TrainMenu({ style }) {
const {
selectedLine,
setSelectedLine,
injectJavaScript,
setInjectJavaScript,
mapsStationData: stationData,
} = useTrainMenu();
useEffect(() => {
@ -214,7 +212,6 @@ export default function TrainMenu({ style }) {
<MapsButton
onPress={() => {
goBack();
webview.current?.injectJavaScript(injectJavaScript);
}}
top={0}
mapSwitch={"flex"}

View File

@ -19,8 +19,6 @@ export default function TrainMenu({ style }) {
const {
selectedLine,
setSelectedLine,
injectJavaScript,
setInjectJavaScript,
mapsStationData: stationData,
} = useTrainMenu();
useEffect(() => {
@ -215,7 +213,6 @@ export default function TrainMenu({ style }) {
<MapsButton
onPress={() => {
goBack();
webview.current?.injectJavaScript(injectJavaScript);
}}
top={0}
mapSwitch={"flex"}

View File

@ -28,6 +28,10 @@ export const injectJavascriptData: InjectJavascriptData = (
// 上部ヘッダーの取り扱い、自動再読み込み、setStringsの実行
const bootData = `
let trainDataList = [];
fetch("https://n8n.haruk.in/webhook/jr-shikoku-position-custom-datalist").then((response) => response.json()).then((data) => {
trainDataList = data[0].data;
}).then(()=>setReload());
let probremsData = [];
fetch("https://n8n.haruk.in/webhook/jrshikoku-position-problems").then((response) => response.json()).then((data) => {
probremsData = data.data;
@ -51,8 +55,9 @@ export const injectJavascriptData: InjectJavascriptData = (
setIconElem.insertAdjacentHTML('beforebegin', "<img src="+img+" style='float:"+(position ? 'left' : 'right')+";height:20px;'>");
setIconElem.remove();
}
const setTrainIcon = (,e,hasProblem) =>{
switch(){
const setTrainIcon = () => {
switch () {
//しおかぜメイン
//8000 ノーマル
case "2M":
@ -73,16 +78,14 @@ export const injectJavascriptData: InjectJavascriptData = (
case "25M":
case "27M":
case "29M":
setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s8000nr.png',hasProblem);
break;
return "https://storage.haruk.in/s8000nr.png";
//8000 アンパン
case "10M":
case "22M":
case "9M":
case "21M":
setStationIcon(e.querySelector("img"),'https://n8n.haruk.in/webhook/anpanman-pictures.png?trainNum='+,hasProblem);
break;
return "https://n8n.haruk.in/webhook/anpanman-pictures.png?trainNum=" +
;
//8600
case "8M":
@ -93,8 +96,7 @@ export const injectJavascriptData: InjectJavascriptData = (
case "11M":
case "19M":
case "23M":
setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s8600.png',hasProblem);
break;
return "https://storage.haruk.in/s8600.png";
//いしづちメイン
//8000 ノーマル
@ -116,17 +118,15 @@ export const injectJavascriptData: InjectJavascriptData = (
case "1025M":
case "1027M":
case "1029M":
setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s8000no.png',hasProblem);
break;
return "https://storage.haruk.in/s8000no.png";
//8000 アンパン
case "1010M":
case "1022M":
case "1009M":
case "1021M":
setStationIcon(e.querySelector("img"),'https://n8n.haruk.in/webhook/anpanman-pictures.png?trainNum='+,hasProblem);
break;
return "https://n8n.haruk.in/webhook/anpanman-pictures.png?trainNum=" +
;
//8600
case "1008M":
case "1012M":
@ -136,32 +136,26 @@ export const injectJavascriptData: InjectJavascriptData = (
case "1011M":
case "1019M":
case "1023M":
setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s8600_isz.png',hasProblem);
break;
return "https://storage.haruk.in/s8600_isz.png";
//MEXP
//8000
case "1092M":
setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s8000nr.png',hasProblem);
break;
return "https://storage.haruk.in/s8000nr.png";
//8600
case "1091M":
setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s8600_isz.png',hasProblem);
break;
return "https://storage.haruk.in/s8600_isz.png";
//三桁いしづち
//8000 アンパン
case "1041M":
case "1044M":
setStationIcon(e.querySelector("img"),'https://n8n.haruk.in/webhook/anpanman-pictures.png?trainNum='+,hasProblem);
break;
return "https://n8n.haruk.in/webhook/anpanman-pictures.png?trainNum=" +
;
//8600
case "1043M":
case "1042M":
case "1046M":
setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s8600_isz.png',hasProblem);
break;
return "https://storage.haruk.in/s8600_isz.png";
//南風 2700ーマル
case "34D":
case "38D":
@ -181,8 +175,7 @@ export const injectJavascriptData: InjectJavascriptData = (
case "51D":
case "53D":
case "55D":
setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s2700.png',hasProblem);
break;
return "https://storage.haruk.in/s2700.png";
//2700アンパン
case "32D":
case "36D":
@ -194,11 +187,8 @@ export const injectJavascriptData: InjectJavascriptData = (
case "45D":
case "49D":
case "57D":
setStationIcon(e.querySelector("img"),'https://n8n.haruk.in/webhook/anpanman-pictures.png?trainNum='+,hasProblem);
break;
return "https://n8n.haruk.in/webhook/anpanman-pictures.png?trainNum=" +
;
//うずしお
//2700
case "3004D":
@ -214,9 +204,7 @@ export const injectJavascriptData: InjectJavascriptData = (
case "3019D":
case "3025D":
case "3031D":
setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s2700_uzu.png',hasProblem);
break;
return "https://storage.haruk.in/s2700_uzu.png";
//2700 二両編成
case "3008D":
@ -228,9 +216,7 @@ export const injectJavascriptData: InjectJavascriptData = (
case "3017D":
case "3023D":
case "3029D":
setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s2700_uzu.png',hasProblem);
break;
return "https://storage.haruk.in/s2700_uzu.png";
//2600
case "3002D":
case "3012D":
@ -242,9 +228,7 @@ export const injectJavascriptData: InjectJavascriptData = (
case "3021D":
case "3027D":
case "3033D":
setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s2600.png',hasProblem);
break;
return "https://storage.haruk.in/s2600.png";
//マリンライナー
case "3104M":
case "3106M":
@ -314,24 +298,20 @@ export const injectJavascriptData: InjectJavascriptData = (
case "3167M":
case "3169M":
case "3175M":
setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s5001.png',hasProblem);
break;
return "https://storage.haruk.in/s5001.png";
case "3102M":
case "3101M":
case "3103M":
case "3171M":
case "3173M":
setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s5001k.png',hasProblem);
break;
return "https://storage.haruk.in/s5001k.png";
//サンライズ瀬戸
case "5032M":
case "5031M":
case "8041M": //琴平延長高松迄
case "8031M": //琴平延長高松以降
setStationIcon(e.querySelector("img"),'https://storage.haruk.in/w285.png',hasProblem);
break;
return "https://storage.haruk.in/w285.png";
//宇和海
//2000 ノーマル
case "1052D":
@ -360,8 +340,7 @@ export const injectJavascriptData: InjectJavascriptData = (
case "1077D":
case "1079D":
case "1081D":
setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s2000_uwa.png',hasProblem);
break;
return "https://storage.haruk.in/s2000_uwa.png";
//2000 アンパン込み
case "1058D":
case "1066D":
@ -369,16 +348,14 @@ export const injectJavascriptData: InjectJavascriptData = (
case "1053D":
case "1059D":
case "1067D":
setStationIcon(e.querySelector("img"),'https://n8n.haruk.in/webhook/anpanman-pictures.png?trainNum='+,hasProblem);
break;
return "https://n8n.haruk.in/webhook/anpanman-pictures.png?trainNum=" +
;
//しまんと
case "2002D":
case "2004D":
case "2001D":
case "2003D":
setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s2700_smn.png',hasProblem);
break;
return "https://storage.haruk.in/s2000_smn.png";
//あしずり 2000
case "2074D":
case "2076D":
@ -388,8 +365,8 @@ export const injectJavascriptData: InjectJavascriptData = (
case "2073D":
case "2079D":
case "2081D":
setStationIcon(e.querySelector("img"),'https://n8n.haruk.in/webhook/anpanman-pictures.png?trainNum='+,hasProblem);
break;
return "https://n8n.haruk.in/webhook/anpanman-pictures.png?trainNum=" +
;
//あしずり 2700
case "2072D":
@ -398,8 +375,7 @@ export const injectJavascriptData: InjectJavascriptData = (
case "2075D":
case "2077D":
case "2083D":
setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s2700_asi.png',hasProblem);
break;
return "https://storage.haruk.in/s2700_asi.png";
//剣山
case "4002D":
case "4004D":
@ -408,15 +384,12 @@ export const injectJavascriptData: InjectJavascriptData = (
case "4003D":
case "4005D":
case "4007D":
setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s185tu.png',hasProblem);
break;
return "https://storage.haruk.in/s185tu.png";
//よしのがわトロッコ
case "8452D":
case "8451D":
setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s185to_ai.png',hasProblem);
break;
return "https://storage.haruk.in/s185to_ai.png";
//岡山高松アントロ
case "8176D":
@ -424,28 +397,23 @@ export const injectJavascriptData: InjectJavascriptData = (
//岡山琴平アントロ
case "8277D":
case "8278D":
setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s32to4.png',hasProblem);
break;
return "https://storage.haruk.in/s32to4.png";
//千年ものがたり
case "8021D":
case "8022D":
setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s185mm1.png',hasProblem);
break;
return "https://storage.haruk.in/s185mm1.png";
//夜明けものがたり
case "8082D":
case "8083D":
case "8073D":
case "8074D":
setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s185ym1.png',hasProblem);
break;
return "https://storage.haruk.in/s185ym1.png";
//ラマルドボア
case "9253M":
case "9256M":
setStationIcon(e.querySelector("img"),'https://storage.haruk.in/w213w.png',hasProblem);
break;
return "https://storage.haruk.in/w213w.png";
// 貨物
case "74":
@ -466,8 +434,7 @@ export const injectJavascriptData: InjectJavascriptData = (
case "8071":
case "8072":
case "8077":
setStationIcon(e.querySelector("img"),'https://storage.haruk.in/ef210a.png',hasProblem);
break;
return "https://storage.haruk.in/ef210a.png";
// // 普通列車系統、6000系運用
// //61運用
@ -485,7 +452,6 @@ export const injectJavascriptData: InjectJavascriptData = (
// setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s6000p.png',hasProblem);
// break;
// // 土讃線普通列車系統(include ごな線)
// // ごな線
// case "5851D": //219D併結 [ToDo: 219Dとの分割対策]
@ -899,13 +865,11 @@ export const injectJavascriptData: InjectJavascriptData = (
// 伊予灘ものがたり 赤
case "8091D":
case "8093D":
setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s185iyor.png',hasProblem);
break;
return "https://storage.haruk.in/s185iyor.png";
// 伊予灘ものがたり 黄
case "8092D":
case "8094D":
setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s185iyoy.png',hasProblem);
break;
return "https://storage.haruk.in/s185iyoy.png";
// 高徳線、徳島線、牟岐線、鳴門線普通列車系統
// キハ40・47
@ -930,8 +894,7 @@ export const injectJavascriptData: InjectJavascriptData = (
case "976D":
case "980D":
case "982D":
setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s40.png',hasProblem);
break;
return "https://storage.haruk.in/s40.png";
// 1000形
case "4311D":
case "363D":
@ -943,8 +906,7 @@ export const injectJavascriptData: InjectJavascriptData = (
case "450D":
case "4458D":
case "474D":
setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s1000.png',hasProblem);
break;
return "https://storage.haruk.in/s1000.png";
// 1200形
case "4301D":
case "4327D":
@ -984,17 +946,12 @@ export const injectJavascriptData: InjectJavascriptData = (
case "4958D":
case "4962D":
case "4966D":
setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s1200n.png',hasProblem);
break;
return "https://storage.haruk.in/s1200n.png";
// 半定期臨時列車
case "9174M":
setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s5001.png',hasProblem);
break;
return "https://storage.haruk.in/s5001.png";
case "9395D":
setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s1500.png',hasProblem);
break;
return "https://storage.haruk.in/s1500.png";
default: //指定車両でなく、Regexでの指定に移動
// // 琴平直通系普通電車
@ -1011,29 +968,20 @@ export const injectJavascriptData: InjectJavascriptData = (
// break;
// }// 高徳線 普通列車系統
// else
if(new RegExp(/^(4|5)3\\d\\dD$/).test()){
setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s1500.png',hasProblem);
break;
}
else if(new RegExp(/^3\\d\\dD$/).test()){
setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s1500.png',hasProblem);
break;
}// 徳島線 普通列車系統
else if(new RegExp(/^(4|5)4\\d\\dD$/).test()){
setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s1500.png',hasProblem);
break;
}
else if(new RegExp(/^4\\d\\dD$/).test()){
setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s1500.png',hasProblem);
break;
}// 鳴門線普通列車系統
else if(new RegExp(/^(4|5)9(5|6|7|8)\\dD$/).test()){
setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s1500.png',hasProblem);
break;
}
else if(new RegExp(/^9(5|6|7|8)\\dD$/).test()){
setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s1500.png',hasProblem);
break;
if (new RegExp(/^(4|5)3\\d\\dD$/).test()) {
return "https://storage.haruk.in/s1500.png";
} else if (new RegExp(/^3\\d\\dD$/).test()) {
return "https://storage.haruk.in/s1500.png";
} // 徳島線 普通列車系統
else if (new RegExp(/^(4|5)4\\d\\dD$/).test()) {
return "https://storage.haruk.in/s1500.png";
} else if (new RegExp(/^4\\d\\dD$/).test()) {
return "https://storage.haruk.in/s1500.png";
} // 鳴門線普通列車系統
else if (new RegExp(/^(4|5)9(5|6|7|8)\\dD$/).test()) {
return "https://storage.haruk.in/s1500.png";
} else if (new RegExp(/^9(5|6|7|8)\\dD$/).test()) {
return "https://storage.haruk.in/s1500.png";
}
// 牟岐線普通列車系統 一旦閉鎖
// else if(new RegExp(/^(4|5)5\\d\\dD$/).test(列番データ)){
@ -1056,6 +1004,7 @@ export const injectJavascriptData: InjectJavascriptData = (
let viaData = "";
let ToData = "";
let TrainNumber = ;
try{
const diagram = trainTimeInfo[];
if(diagram){
@ -1073,6 +1022,7 @@ export const injectJavascriptData: InjectJavascriptData = (
const textBase = .split(":")[1].replace("\\r","");
trainName = textBase;
}
if(new RegExp(/^4[1-9]\\d\\d[DM]$/).test() || new RegExp(/^5[1-7]\\d\\d[DM]$/).test() || new RegExp(/^3[2-9]\\d\\d[DM]$/).test(TrainNumber) ){
flag=true;
isWanman = true;
@ -1279,6 +1229,20 @@ export const injectJavascriptData: InjectJavascriptData = (
}
}
getThrew();
if(trainDataList.find(e => e.id === ) !== undefined){
const data = trainDataList.find(e => e.id === );
//{id,isWanman,trainName,viaData,ToData}
isWanman = data.isWanman;
if(data.trainName != ""){
trainName = data.trainName;
}
if(data.viaData != ""){
viaData = data.viaData;
}
if(data.ToData != ""){
ToData = data.ToData;
}
}
//列番付与
const returnText1 = (isWanman ? "ワンマン " : "") + trainName + viaData;
const returnText2 = (ToData ? ToData+"行 " : ToData)+ TrainNumber;
@ -1310,7 +1274,20 @@ const setStrings = () =>{
var TrainType = undefined;
setTrainMenuDialog(element)
${iconSetting == "true" ? "setTrainIcon(列番データ,element,hasProblem);" : ""}
${iconSetting == "true" ? `
if(trainDataList.find(e => e.id === ) !== undefined){
const trainIconUrl = trainDataList.find(e => e.id === ).img;
if(!!trainIconUrl){
setStationIcon(element.querySelector("img"),trainIconUrl,hasProblem);
}
}
else{
const trainIconUrl = setTrainIcon();
if(!!trainIconUrl){
setStationIcon(element.querySelector("img"),trainIconUrl,hasProblem);
}
}
` : ""}
nameReplace(,,,hasProblem);
}
try{

View File

@ -10,8 +10,6 @@ const initialState = {
setSelectedLine: () => {},
mapsStationData: undefined,
setMapsStationData: () => {},
injectJavaScript: "",
setInjectJavaScript: () => {},
iconSetting: undefined,
setIconSetting: () => {},
mapSwitch: undefined,
@ -40,8 +38,6 @@ export const useTrainMenu = () => {
export const TrainMenuProvider = ({ children }) => {
const [selectedLine, setSelectedLine] = useState(undefined);
const [mapsStationData, setMapsStationData] = useState(undefined);
const [injectJavaScript, setInjectJavaScript] = useState();
useEffect(() => {
getStationList2().then(setMapsStationData);
}, []);
@ -88,8 +84,6 @@ export const TrainMenuProvider = ({ children }) => {
setSelectedLine,
mapsStationData,
setMapsStationData,
injectJavaScript,
setInjectJavaScript,
iconSetting,
setIconSetting,
mapSwitch,