Compare commits
28 Commits
e6fab84393
...
5cda45740c
Author | SHA1 | Date | |
---|---|---|---|
|
5cda45740c | ||
|
67f40b55c1 | ||
|
7015d90ea9 | ||
|
84d1305796 | ||
|
fdefbc82bd | ||
|
f4a9bf23ef | ||
|
df2d93c29d | ||
|
3b129eb2b5 | ||
|
c90c2fa3db | ||
|
3ffd8daf03 | ||
|
c9af861e71 | ||
|
1a2d678ef3 | ||
|
336e3510fa | ||
|
cd08fdc08b | ||
|
af8f3333cd | ||
|
0ae9d59758 | ||
|
3eb92564ef | ||
|
2b9553a45b | ||
|
4744d5f4e0 | ||
|
52e4f577ea | ||
|
25780e1664 | ||
|
0a364021ce | ||
|
74087067ea | ||
|
cab738fa34 | ||
|
828a974070 | ||
|
eea6407196 | ||
|
3ce1c6db67 | ||
|
002c60baa1 |
16
Top.js
16
Top.js
@ -32,20 +32,12 @@ export const Top = () => {
|
|||||||
const goToTrainMenu = () => {
|
const goToTrainMenu = () => {
|
||||||
if (Platform.OS === "web") {
|
if (Platform.OS === "web") {
|
||||||
Linking.openURL("https://train.jr-shikoku.co.jp/");
|
Linking.openURL("https://train.jr-shikoku.co.jp/");
|
||||||
setTimeout(() => {
|
setTimeout(() => navigate("topMenu", { screen: "menu" }), 100);
|
||||||
navigate("topMenu", { screen: "menu" });
|
|
||||||
}, 100);
|
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (!isFocused()) {
|
if (!isFocused()) navigate("positions", { screen: "Apps" });
|
||||||
navigate("positions", { screen: "Apps" });
|
else if (mapSwitch == "true") navigate("positions", { screen: "trainMenu" });
|
||||||
}
|
else webview.current?.injectJavaScript(`AccordionClassEvent()`);
|
||||||
if (mapSwitch == "true") {
|
|
||||||
navigate("positions", { screen: "trainMenu" });
|
|
||||||
} else {
|
|
||||||
webview.current?.injectJavaScript(`AccordionClassEvent()`);
|
|
||||||
}
|
|
||||||
return;
|
return;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -923,7 +923,13 @@
|
|||||||
"585D":"徳島,発,22:55#阿波富田,発,22:58#二軒屋,発,23:01#文化の森,発,23:03#地蔵橋,発,23:07#中田,発,23:11#南小松島,発,23:15#阿波赤石,発,23:19#立江,発,23:22#羽ノ浦,発,23:26#西原,発,23:29#阿波中島,発,23:32#阿南,着,23:36#",
|
"585D":"徳島,発,22:55#阿波富田,発,22:58#二軒屋,発,23:01#文化の森,発,23:03#地蔵橋,発,23:07#中田,発,23:11#南小松島,発,23:15#阿波赤石,発,23:19#立江,発,23:22#羽ノ浦,発,23:26#西原,発,23:29#阿波中島,発,23:32#阿南,着,23:36#",
|
||||||
|
|
||||||
// 臨時列車
|
// 臨時列車
|
||||||
"9395D":"WEST LIVE TOUR 2025臨,提,https://www.jr-shikoku.co.jp/03_news/pdf/20250228_20250323_west-live-tour-2025.pdf#高松,発,22:10#昭和町,発,22:12#栗林公園北口,発,22:15#栗林,発,22:18#木太町,発,22:22#屋島,発,22:26#古高松南,発,22:38#八栗口,発,22:41#讃岐牟礼,発,22:44#志度,発,22:48#オレンジタウン,発,22:52#造田,発,22:56#神前,発,22:59#讃岐津田,発,23:05#鶴羽,発,23:09#丹生,発,23:14#三本松,着,23:18#",
|
"9395D":"臨時列車,提,https://www.jr-shikoku.co.jp/03_news/pdf/20250314_20250413_tomorrow_together_worldtour.pdf#高松,発,22:10#昭和町,発,22:13#栗林公園北口,発,22:16#栗林,発,22:19#木太町,発,22:23#屋島,発,22:36#古高松南,発,22:39#八栗口,発,22:43#讃岐牟礼,発,22:45#志度,発,22:49#オレンジタウン,発,22:53#造田,発,22:57#神前,発,23:00#讃岐津田,発,23:06#鶴羽,発,23:10#丹生,発,23:15#三本松,着,23:18#",
|
||||||
"9174M":"WEST LIVE TOUR 2025臨,提,https://www.jr-shikoku.co.jp/03_news/pdf/20250228_20250323_west-live-tour-2025.pdf#高松,発,22:00#坂出,発,22:16#児島,発,22:39#茶屋町,発,22:55#早島,発,22:59#妹尾,発,23:03#岡山,着,23:12#",
|
"9174M":"臨時列車,提,https://www.jr-shikoku.co.jp/03_news/pdf/20250314_20250413_tomorrow_together_worldtour.pdf#高松,発,22:00#坂出,発,22:16#児島,発,22:39#茶屋町,発,22:48#早島,発,22:55#妹尾,発,22:59#岡山,着,23:06#",
|
||||||
|
|
||||||
|
// わらぐろ号/れんげ号
|
||||||
|
"9662D":"宇和れんげまつり臨時列車,提,https://www.jr-shikoku.co.jp/03_news/pdf/20250124_20250629_rinji_spring.pdf#宇和島,発,10:00#北宇和島,発,10:03#高光,発,10:07#伊予吉田,発,10:21#立間,発,10:50#下宇和,発,10:36#卯之町,発,10:39#上宇和,発,10:42#伊予石城,発,10:46#双岩,発,10:53#八幡浜,着,10:58#",
|
||||||
|
"9664D":"宇和れんげまつり臨時列車,提,https://www.jr-shikoku.co.jp/03_news/pdf/20250124_20250629_rinji_spring.pdf#卯之町,発,11:18#上宇和,発,11:21#伊予石城,発,11:25#双岩,発,11:34#八幡浜,着,11:39#",
|
||||||
|
"9663D":"宇和れんげまつり臨時列車,提,https://www.jr-shikoku.co.jp/03_news/pdf/20250124_20250629_rinji_spring.pdf#八幡浜,発,10:07#双岩,発,10:16#伊予石城,発,10:23#上宇和,発,10:27#卯之町,着,10:30#",
|
||||||
|
"9665D":"宇和れんげまつり臨時列車,提,https://www.jr-shikoku.co.jp/03_news/pdf/20250124_20250629_rinji_spring.pdf#八幡浜,発,13:38#双岩,発,13:45#伊予石城,発,13:52#上宇和,発,13:56#卯之町,発,14:07#下宇和,発,14:10#立間,発,14:18#伊予吉田,発,14:25#高光,発,14:31#北宇和島,発,14:35#宇和島,着,14:37#",
|
||||||
|
|
||||||
}
|
}
|
@ -1,4 +1,4 @@
|
|||||||
import React, { useEffect, useMemo, useRef, useState } from "react";
|
import React, { useEffect, useState } from "react";
|
||||||
import {
|
import {
|
||||||
View,
|
View,
|
||||||
Text,
|
Text,
|
||||||
@ -28,8 +28,6 @@ import { ShortHeader } from "./EachTrainInfo/ShortHeader";
|
|||||||
import { ScrollStickyContent } from "./EachTrainInfo/ScrollStickyContent";
|
import { ScrollStickyContent } from "./EachTrainInfo/ScrollStickyContent";
|
||||||
import { getStationID } from "../../lib/eachTrainInfoCoreLib/getStationData";
|
import { getStationID } from "../../lib/eachTrainInfoCoreLib/getStationData";
|
||||||
import { findReversalPoints } from "../../lib/eachTrainInfoCoreLib/findReversalPoints";
|
import { findReversalPoints } from "../../lib/eachTrainInfoCoreLib/findReversalPoints";
|
||||||
import { migrateTrainName } from "../../lib/eachTrainInfoCoreLib/migrateTrainName";
|
|
||||||
import { getType } from "../../lib/eachTrainInfoCoreLib/getType";
|
|
||||||
import { searchSpecialTrain } from "../../lib/eachTrainInfoCoreLib/searchSpecialTrain";
|
import { searchSpecialTrain } from "../../lib/eachTrainInfoCoreLib/searchSpecialTrain";
|
||||||
import { openBackTrainInfo } from "../../lib/eachTrainInfoCoreLib/openBackTrainInfo";
|
import { openBackTrainInfo } from "../../lib/eachTrainInfoCoreLib/openBackTrainInfo";
|
||||||
import { ShowSpecialTrain } from "./EachTrainInfo/ShowSpecialTrain";
|
import { ShowSpecialTrain } from "./EachTrainInfo/ShowSpecialTrain";
|
||||||
@ -45,14 +43,11 @@ export const EachTrainInfoCore = ({
|
|||||||
from,
|
from,
|
||||||
navigate,
|
navigate,
|
||||||
}) => {
|
}) => {
|
||||||
// const [actionSheetHorizonalScroll, setActionSheetHorizonalScroll] = useState(false);
|
|
||||||
const { currentTrain } = useCurrentTrain();
|
const { currentTrain } = useCurrentTrain();
|
||||||
const { originalStationList, stationList } = useStationList();
|
const { originalStationList, stationList } = useStationList();
|
||||||
const { setTrainInfo } = useTrainMenu();
|
const { setTrainInfo } = useTrainMenu();
|
||||||
const [currentTrainData, setCurrentTrainData] = useState();
|
const [currentTrainData, setCurrentTrainData] = useState();
|
||||||
|
|
||||||
// const [actionSheetHorizonalScroll, setActionSheetHorizonalScroll] = useState(false);
|
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (!currentTrain.length) return;
|
if (!currentTrain.length) return;
|
||||||
setCurrentTrainData(
|
setCurrentTrainData(
|
||||||
@ -196,29 +191,6 @@ export const EachTrainInfoCore = ({
|
|||||||
}
|
}
|
||||||
setIsJumped(true);
|
setIsJumped(true);
|
||||||
}, [points]);
|
}, [points]);
|
||||||
const trainName = useMemo(() => {
|
|
||||||
if (!data.limited) return "";
|
|
||||||
const limitedArray = data.limited.split(":");
|
|
||||||
const type = getType(limitedArray[0]);
|
|
||||||
|
|
||||||
switch (true) {
|
|
||||||
case !!limitedArray[1]:
|
|
||||||
// 特急の場合は、列車名を取得
|
|
||||||
return type + migrateTrainName(limitedArray[1]);
|
|
||||||
case trainData.length == 0:
|
|
||||||
// 特急以外の場合は、列車番号を取得
|
|
||||||
return type;
|
|
||||||
default:
|
|
||||||
// 行先がある場合は、行先を取得
|
|
||||||
return (
|
|
||||||
type +
|
|
||||||
migrateTrainName(
|
|
||||||
trainData[trainData.length - 1].split(",")[0] + "行き"
|
|
||||||
)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}, [data.limited, trainData]);
|
|
||||||
|
|
||||||
const { height } = useWindowDimensions();
|
const { height } = useWindowDimensions();
|
||||||
const { isLandscape } = useDeviceOrientationChange();
|
const { isLandscape } = useDeviceOrientationChange();
|
||||||
const scrollHandlers = actionSheetRef
|
const scrollHandlers = actionSheetRef
|
||||||
@ -326,8 +298,7 @@ export const EachTrainInfoCore = ({
|
|||||||
});
|
});
|
||||||
const currentPos = currentPosID.filter((d) => d != false)[0];
|
const currentPos = currentPosID.filter((d) => d != false)[0];
|
||||||
if (currentPos) {
|
if (currentPos) {
|
||||||
if (direction == 0) setCurrentPosition(currentPos.reverse());
|
setCurrentPosition(direction == 0 ? currentPos.reverse() : currentPos);
|
||||||
else setCurrentPosition(currentPos);
|
|
||||||
} else if (direction == 0) {
|
} else if (direction == 0) {
|
||||||
setCurrentPosition([
|
setCurrentPosition([
|
||||||
getStationID(pos[1], stationList),
|
getStationID(pos[1], stationList),
|
||||||
|
@ -57,6 +57,31 @@ export const TrainIconStatus: FC<Props> = ({ data, navigate, from }) => {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
break;
|
break;
|
||||||
|
case "2074D":
|
||||||
|
case "2076D":
|
||||||
|
case "2080D":
|
||||||
|
case "2082D":
|
||||||
|
case "2071D":
|
||||||
|
case "2073D":
|
||||||
|
case "2079D":
|
||||||
|
case "2081D":
|
||||||
|
fetch(
|
||||||
|
`https://n8n.haruk.in/webhook/dosan-anpanman-first?trainNum=${
|
||||||
|
data.trainNum
|
||||||
|
}&month=${dayjs().format("M")}&day=${dayjs().format("D")}`
|
||||||
|
)
|
||||||
|
.then((d) => d.json())
|
||||||
|
.then((d) => {
|
||||||
|
console.log(d);
|
||||||
|
if (d.trainStatus == "〇") {
|
||||||
|
//setAnpanmanStatus({name:"checkmark-circle-outline",color:"blue"});
|
||||||
|
} else if (d.trainStatus == "▲") {
|
||||||
|
setAnpanmanStatus({ name: "warning-outline", color: "yellow" });
|
||||||
|
} else if (d.trainStatus == "×") {
|
||||||
|
//setAnpanmanStatus({ name: "close-circle-outline", color: "red" });
|
||||||
|
}
|
||||||
|
});
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}, [data.trainNum]);
|
}, [data.trainNum]);
|
||||||
const [move, setMove] = useState(true);
|
const [move, setMove] = useState(true);
|
||||||
|
@ -10,6 +10,7 @@ import {
|
|||||||
BackHandler,
|
BackHandler,
|
||||||
} from "react-native";
|
} from "react-native";
|
||||||
import { Ionicons, MaterialCommunityIcons } from "@expo/vector-icons";
|
import { Ionicons, MaterialCommunityIcons } from "@expo/vector-icons";
|
||||||
|
import dayjs from "dayjs";
|
||||||
import ActionSheet, {
|
import ActionSheet, {
|
||||||
SheetManager,
|
SheetManager,
|
||||||
useScrollHandlers,
|
useScrollHandlers,
|
||||||
@ -19,9 +20,11 @@ import { useSafeAreaInsets } from "react-native-safe-area-context";
|
|||||||
import ViewShot from "react-native-view-shot";
|
import ViewShot from "react-native-view-shot";
|
||||||
import * as Sharing from "expo-sharing";
|
import * as Sharing from "expo-sharing";
|
||||||
import { useTrainDelayData } from "../../stateBox/useTrainDelayData";
|
import { useTrainDelayData } from "../../stateBox/useTrainDelayData";
|
||||||
|
import { BottomButtons } from "./JRSTraInfo/BottomButtons";
|
||||||
export const JRSTraInfo = () => {
|
export const JRSTraInfo = () => {
|
||||||
const { getTime, delayData, loadingDelayData, setLoadingDelayData } =
|
const { getTime, delayData, loadingDelayData, setLoadingDelayData } =
|
||||||
useTrainDelayData();
|
useTrainDelayData();
|
||||||
|
const timeData = dayjs(getTime).format("HH:mm");
|
||||||
const actionSheetRef = useRef(null);
|
const actionSheetRef = useRef(null);
|
||||||
const scrollHandlers = useScrollHandlers("scrollview-1", actionSheetRef);
|
const scrollHandlers = useScrollHandlers("scrollview-1", actionSheetRef);
|
||||||
const insets = useSafeAreaInsets();
|
const insets = useSafeAreaInsets();
|
||||||
@ -46,11 +49,7 @@ export const JRSTraInfo = () => {
|
|||||||
ref={actionSheetRef}
|
ref={actionSheetRef}
|
||||||
isModal={Platform.OS == "ios"}
|
isModal={Platform.OS == "ios"}
|
||||||
containerStyle={
|
containerStyle={
|
||||||
Platform.OS == "android"
|
Platform.OS == "android" ? { paddingBottom: insets.bottom } : {}
|
||||||
? {
|
|
||||||
paddingBottom: insets.bottom,
|
|
||||||
}
|
|
||||||
: {}
|
|
||||||
}
|
}
|
||||||
useBottomSafeAreaPadding={Platform.OS == "android"}
|
useBottomSafeAreaPadding={Platform.OS == "android"}
|
||||||
>
|
>
|
||||||
@ -90,15 +89,8 @@ export const JRSTraInfo = () => {
|
|||||||
列車遅延速報EX
|
列車遅延速報EX
|
||||||
</Text>
|
</Text>
|
||||||
<View style={{ flex: 1 }} />
|
<View style={{ flex: 1 }} />
|
||||||
{/* <TouchableOpacity style={{padding:10,backgroundColor:"white",alignContent:"center"}} onPress={() => {doFetch()}}>
|
|
||||||
<Text style={{fontSize:20,fontWeight:"bold",color:"#0099CC"}}>最新の情報へ更新</Text>
|
|
||||||
</TouchableOpacity> */}
|
|
||||||
<Text style={{ fontSize: 30, fontWeight: "bold", color: "white" }}>
|
<Text style={{ fontSize: 30, fontWeight: "bold", color: "white" }}>
|
||||||
{getTime
|
{timeData}
|
||||||
? getTime.toLocaleTimeString("ja-JP").split(":")[0] +
|
|
||||||
":" +
|
|
||||||
getTime.toLocaleTimeString("ja-JP").split(":")[1]
|
|
||||||
: NaN}{" "}
|
|
||||||
</Text>
|
</Text>
|
||||||
<Ionicons
|
<Ionicons
|
||||||
name="reload"
|
name="reload"
|
||||||
@ -156,57 +148,7 @@ export const JRSTraInfo = () => {
|
|||||||
</View>
|
</View>
|
||||||
</ScrollView>
|
</ScrollView>
|
||||||
</ViewShot>
|
</ViewShot>
|
||||||
<View
|
<BottomButtons onCapture={onCapture} />
|
||||||
style={{
|
|
||||||
padding: 10,
|
|
||||||
backgroundColor: "#0099CC",
|
|
||||||
flexDirection: "row",
|
|
||||||
justifyContent: "space-between",
|
|
||||||
}}
|
|
||||||
>
|
|
||||||
<TouchableOpacity
|
|
||||||
style={{
|
|
||||||
padding: 10,
|
|
||||||
flexDirection: "row",
|
|
||||||
borderColor: "white",
|
|
||||||
borderWidth: 1,
|
|
||||||
margin: 10,
|
|
||||||
borderRadius: 5,
|
|
||||||
alignItems: "center",
|
|
||||||
backgroundColor: "#0099CC",
|
|
||||||
flex: 1,
|
|
||||||
}}
|
|
||||||
onPress={() =>
|
|
||||||
Linking.openURL("https://mstdn.y-zu.org/@JRSTraInfoEX")
|
|
||||||
}
|
|
||||||
>
|
|
||||||
<MaterialCommunityIcons name="mastodon" color="white" size={30} />
|
|
||||||
<View style={{ flex: 1 }} />
|
|
||||||
<Text style={{ fontSize: 25, fontWeight: "bold", color: "white" }}>
|
|
||||||
MastodonBOT
|
|
||||||
</Text>
|
|
||||||
<View style={{ flex: 1 }} />
|
|
||||||
</TouchableOpacity>
|
|
||||||
<TouchableOpacity
|
|
||||||
style={{
|
|
||||||
padding: 10,
|
|
||||||
flexDirection: "row",
|
|
||||||
borderColor: "white",
|
|
||||||
borderWidth: 1,
|
|
||||||
margin: 10,
|
|
||||||
borderRadius: 5,
|
|
||||||
alignItems: "center",
|
|
||||||
backgroundColor: "#0099CC",
|
|
||||||
}}
|
|
||||||
onPress={onCapture}
|
|
||||||
>
|
|
||||||
<MaterialCommunityIcons
|
|
||||||
name="share-variant"
|
|
||||||
color="white"
|
|
||||||
size={30}
|
|
||||||
/>
|
|
||||||
</TouchableOpacity>
|
|
||||||
</View>
|
|
||||||
</View>
|
</View>
|
||||||
</ActionSheet>
|
</ActionSheet>
|
||||||
);
|
);
|
||||||
|
@ -0,0 +1,49 @@
|
|||||||
|
import React, { CSSProperties, FC } from "react";
|
||||||
|
import {
|
||||||
|
View,
|
||||||
|
Text,
|
||||||
|
TouchableOpacity,
|
||||||
|
Linking,
|
||||||
|
StyleProp,
|
||||||
|
ViewStyle,
|
||||||
|
} from "react-native";
|
||||||
|
import { MaterialCommunityIcons } from "@expo/vector-icons";
|
||||||
|
|
||||||
|
const styles: StyleProp<ViewStyle> = {
|
||||||
|
padding: 10,
|
||||||
|
flexDirection: "row",
|
||||||
|
borderColor: "white",
|
||||||
|
borderWidth: 1,
|
||||||
|
margin: 10,
|
||||||
|
borderRadius: 5,
|
||||||
|
alignItems: "center",
|
||||||
|
backgroundColor: "#0099CC",
|
||||||
|
};
|
||||||
|
export const BottomButtons: FC<{ onCapture: () => void }> = ({ onCapture }) => {
|
||||||
|
return (
|
||||||
|
<View
|
||||||
|
style={{
|
||||||
|
padding: 10,
|
||||||
|
backgroundColor: "#0099CC",
|
||||||
|
flexDirection: "row",
|
||||||
|
justifyContent: "space-between",
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<TouchableOpacity
|
||||||
|
style={{ ...styles, flex: 1 }}
|
||||||
|
onPress={() => Linking.openURL("https://mstdn.y-zu.org/@JRSTraInfoEX")}
|
||||||
|
>
|
||||||
|
<MaterialCommunityIcons name="mastodon" color="white" size={30} />
|
||||||
|
<View style={{ flex: 1 }} />
|
||||||
|
<Text style={{ fontSize: 25, fontWeight: "bold", color: "white" }}>
|
||||||
|
MastodonBOT
|
||||||
|
</Text>
|
||||||
|
<View style={{ flex: 1 }} />
|
||||||
|
</TouchableOpacity>
|
||||||
|
|
||||||
|
<TouchableOpacity style={styles} onPress={onCapture}>
|
||||||
|
<MaterialCommunityIcons name="share-variant" color="white" size={30} />
|
||||||
|
</TouchableOpacity>
|
||||||
|
</View>
|
||||||
|
);
|
||||||
|
};
|
@ -18,24 +18,23 @@ import { widthPercentageToDP as wp } from "react-native-responsive-screen";
|
|||||||
import { getPDFViewURL } from "../../lib/getPdfViewURL";
|
import { getPDFViewURL } from "../../lib/getPdfViewURL";
|
||||||
import { useBusAndTrainData } from "../../stateBox/useBusAndTrainData";
|
import { useBusAndTrainData } from "../../stateBox/useBusAndTrainData";
|
||||||
import { AS } from "../../storageControl";
|
import { AS } from "../../storageControl";
|
||||||
|
import { StationMapButton } from "./StationDeteilView/StationMapButton";
|
||||||
|
import { TrainBusButton } from "./StationDeteilView/TrainBusButton";
|
||||||
|
import { 駅構内図 } from "./StationDeteilView/StationInsideMapButton";
|
||||||
|
import { WebSiteButton } from "./StationDeteilView/WebSiteButton";
|
||||||
|
import { StationTimeTableButton } from "./StationDeteilView/StationTimeTableButton";
|
||||||
|
|
||||||
export const StationDeteilView = (props) => {
|
export const StationDeteilView = (props) => {
|
||||||
if (!props.payload) return <></>;
|
if (!props.payload) return <></>;
|
||||||
const {
|
const { currentStation, navigate, onExit, goTo, useShow } = props.payload;
|
||||||
currentStation,
|
|
||||||
navigate,
|
|
||||||
onExit,
|
|
||||||
goTo,
|
|
||||||
useShow,
|
|
||||||
} = props.payload;
|
|
||||||
const { busAndTrainData } = useBusAndTrainData();
|
const { busAndTrainData } = useBusAndTrainData();
|
||||||
const [trainBus, setTrainBus] = useState();
|
const [trainBus, setTrainBus] = useState();
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (!currentStation) return () => {};
|
if (!currentStation) return () => {};
|
||||||
const data = busAndTrainData.filter((d) => {
|
const data = busAndTrainData.filter((d) =>
|
||||||
return d.name === currentStation[0].Station_JP;
|
d.name === currentStation[0].Station_JP
|
||||||
});
|
);
|
||||||
if (data.length == 0) {
|
if (data.length == 0) {
|
||||||
setTrainBus();
|
setTrainBus();
|
||||||
}
|
}
|
||||||
@ -90,12 +89,7 @@ export const StationDeteilView = (props) => {
|
|||||||
</View>
|
</View>
|
||||||
<View>
|
<View>
|
||||||
{currentStation && (
|
{currentStation && (
|
||||||
<View
|
<View style={{ margin: 10, marginHorizontal: wp("10%") }}>
|
||||||
style={{
|
|
||||||
margin: 10,
|
|
||||||
marginHorizontal: wp("10%"),
|
|
||||||
}}
|
|
||||||
>
|
|
||||||
<Sign
|
<Sign
|
||||||
currentStation={currentStation}
|
currentStation={currentStation}
|
||||||
oP={() => {
|
oP={() => {
|
||||||
@ -115,102 +109,51 @@ export const StationDeteilView = (props) => {
|
|||||||
{currentStation &&
|
{currentStation &&
|
||||||
currentStation[0].JrHpUrl &&
|
currentStation[0].JrHpUrl &&
|
||||||
currentStation[0].StationNumber != "M12" && (
|
currentStation[0].StationNumber != "M12" && (
|
||||||
<駅構内図 //高松/阿波池田&後免&須崎kounai.png児島例外/
|
<駅構内図 //児島例外/
|
||||||
oP={() => {
|
navigate={navigate}
|
||||||
navigate("howto", {
|
goTo={goTo}
|
||||||
info:
|
useShow={useShow}
|
||||||
currentStation[0].JrHpUrl.replace("/index.html", "/") +
|
address={currentStation[0].JrHpUrl}
|
||||||
"/kounai_map.html",
|
onExit={onExit}
|
||||||
goTo,
|
|
||||||
useShow,
|
|
||||||
});
|
|
||||||
onExit();
|
|
||||||
}}
|
|
||||||
oLP={() => {
|
|
||||||
Linking.openURL(
|
|
||||||
currentStation[0].JrHpUrl.replace("/index.html", "/") +
|
|
||||||
"/kounai_map.html"
|
|
||||||
);
|
|
||||||
}}
|
|
||||||
uri={currentStation[0].JrHpUrl.replace("/index.html", "/")}
|
|
||||||
/>
|
/>
|
||||||
)}
|
)}
|
||||||
{currentStation && (
|
{currentStation && (
|
||||||
<View style={{ flexDirection: "row" }}>
|
<View style={{ flexDirection: "row" }}>
|
||||||
{!currentStation[0].JrHpUrl || (
|
{!currentStation[0].JrHpUrl || (
|
||||||
<TicketBox
|
<WebSiteButton
|
||||||
backgroundColor={"#AD7FA8"}
|
navigate={navigate}
|
||||||
icon={<Foundation name="web" color="white" size={50} />}
|
info={currentStation[0].JrHpUrl}
|
||||||
flex={1}
|
goTo={goTo}
|
||||||
onPressButton={() => {
|
useShow={useShow}
|
||||||
navigate("howto", {
|
onExit={onExit}
|
||||||
info: currentStation[0].JrHpUrl,
|
/>
|
||||||
|
|
||||||
goTo,
|
|
||||||
useShow,
|
|
||||||
});
|
|
||||||
onExit();
|
|
||||||
}}
|
|
||||||
onLongPressButton={() =>
|
|
||||||
Linking.openURL(currentStation[0].JrHpUrl)
|
|
||||||
}
|
|
||||||
>
|
|
||||||
web
|
|
||||||
</TicketBox>
|
|
||||||
)}
|
)}
|
||||||
{!currentStation[0].StationTimeTable || (
|
{!currentStation[0].StationTimeTable || (
|
||||||
<TicketBox
|
<StationTimeTableButton
|
||||||
backgroundColor={"#8F5902"}
|
info={info}
|
||||||
icon={<FontAwesome name="table" color="white" size={50} />}
|
address={currentStation[0].StationTimeTable}
|
||||||
flex={1}
|
usePDFView={usePDFView}
|
||||||
onPressButton={() => {
|
navigate={navigate}
|
||||||
usePDFView == "true"
|
onExit={onExit}
|
||||||
? Linking.openURL(currentStation[0].StationTimeTable)
|
goTo={goTo}
|
||||||
: navigate("howto", {
|
useShow={useShow}
|
||||||
info,
|
/>
|
||||||
|
|
||||||
goTo,
|
|
||||||
useShow,
|
|
||||||
});
|
|
||||||
onExit();
|
|
||||||
}}
|
|
||||||
onLongPressButton={() =>
|
|
||||||
Linking.openURL(currentStation[0].StationTimeTable)
|
|
||||||
}
|
|
||||||
>
|
|
||||||
時刻表
|
|
||||||
</TicketBox>
|
|
||||||
)}
|
)}
|
||||||
{!currentStation[0].StationMap || (
|
{!currentStation[0].StationMap || (
|
||||||
<TicketBox
|
<StationMapButton stationMap={currentStation[0].StationMap} />
|
||||||
backgroundColor={"#888A85"}
|
|
||||||
icon={<Ionicons name="map" color="white" size={50} />}
|
|
||||||
flex={1}
|
|
||||||
onPressButton={() =>
|
|
||||||
Linking.openURL(currentStation[0].StationMap)
|
|
||||||
}
|
|
||||||
>
|
|
||||||
Map
|
|
||||||
</TicketBox>
|
|
||||||
)}
|
)}
|
||||||
{!trainBus || (
|
{!trainBus || (
|
||||||
<TicketBox
|
<TrainBusButton
|
||||||
backgroundColor={"#CE5C00"}
|
address={trainBus.address}
|
||||||
icon={<Ionicons name="bus" color="white" size={50} />}
|
press={() => {
|
||||||
flex={1}
|
|
||||||
onPressButton={() => {
|
|
||||||
navigate("howto", {
|
navigate("howto", {
|
||||||
info: trainBus.address,
|
info: trainBus.address,
|
||||||
|
|
||||||
goTo,
|
goTo,
|
||||||
useShow,
|
useShow,
|
||||||
});
|
});
|
||||||
onExit();
|
onExit();
|
||||||
}}
|
}}
|
||||||
onLongPressButton={() => Linking.openURL(trainBus.address)}
|
/>
|
||||||
>
|
|
||||||
並行バス
|
|
||||||
</TicketBox>
|
|
||||||
)}
|
)}
|
||||||
</View>
|
</View>
|
||||||
)}
|
)}
|
||||||
@ -220,67 +163,6 @@ export const StationDeteilView = (props) => {
|
|||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
const 駅構内図 = (props) => {
|
|
||||||
const [open, setOpen] = useState(false);
|
|
||||||
return (
|
|
||||||
<>
|
|
||||||
<TouchableOpacity
|
|
||||||
style={{
|
|
||||||
height: 50,
|
|
||||||
backgroundColor: "#888A85",
|
|
||||||
flexDirection: "column",
|
|
||||||
alignContent: "center",
|
|
||||||
alignItems: "center",
|
|
||||||
margin: 2,
|
|
||||||
}}
|
|
||||||
onPress={props.oP}
|
|
||||||
onLongPress={props.oLP}
|
|
||||||
//onPress={() => setOpen(!open)}
|
|
||||||
>
|
|
||||||
<View style={{ flex: 1 }} />
|
|
||||||
<Text
|
|
||||||
style={{
|
|
||||||
color: "white",
|
|
||||||
textAlign: "center",
|
|
||||||
textAlignVertical: "center",
|
|
||||||
flex: 1,
|
|
||||||
}}
|
|
||||||
>
|
|
||||||
{open ? "駅構内図を非表示" : "駅構内図を表示"}
|
|
||||||
</Text>
|
|
||||||
<View style={{ flex: 1 }} />
|
|
||||||
</TouchableOpacity>
|
|
||||||
<View>
|
|
||||||
{open && (
|
|
||||||
<>
|
|
||||||
<AutoHeightImage
|
|
||||||
source={{ uri: props.uri + "images/kounai.gif" }}
|
|
||||||
resizeMode="contain"
|
|
||||||
width={wp("100%")}
|
|
||||||
/>
|
|
||||||
<AutoHeightImage
|
|
||||||
source={{ uri: props.uri + "images/kounai.png" }}
|
|
||||||
resizeMode="contain"
|
|
||||||
width={wp("100%")}
|
|
||||||
/>
|
|
||||||
<AutoHeightImage
|
|
||||||
source={{ uri: props.uri + "images/kounai_1f.gif" }}
|
|
||||||
resizeMode="contain"
|
|
||||||
width={wp("100%")}
|
|
||||||
/>
|
|
||||||
<AutoHeightImage
|
|
||||||
source={{ uri: props.uri + "images/kounai_2f.png" }}
|
|
||||||
resizeMode="contain"
|
|
||||||
width={wp("100%")}
|
|
||||||
/>
|
|
||||||
</>
|
|
||||||
)}
|
|
||||||
</View>
|
|
||||||
</>
|
|
||||||
);
|
|
||||||
};
|
|
||||||
|
|
||||||
const Handler = () => {
|
const Handler = () => {
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
const backAction = () => {
|
const backAction = () => {
|
||||||
@ -294,4 +176,4 @@ const Handler = () => {
|
|||||||
return () => backHandler.remove();
|
return () => backHandler.remove();
|
||||||
}, []);
|
}, []);
|
||||||
return <></>;
|
return <></>;
|
||||||
};
|
};
|
||||||
|
@ -0,0 +1,43 @@
|
|||||||
|
import { FC } from "react";
|
||||||
|
import { TouchableOpacity, View, Text, Linking } from "react-native";
|
||||||
|
type Props = {
|
||||||
|
navigate: (screen: string, params: { info: string; goTo: string; useShow: boolean }) => void;
|
||||||
|
address: string;
|
||||||
|
goTo: string;
|
||||||
|
useShow: boolean;
|
||||||
|
onExit: () => void;
|
||||||
|
};
|
||||||
|
export const 駅構内図:FC<Props> = (props) => {
|
||||||
|
const { navigate, address, goTo, useShow, onExit } = props;
|
||||||
|
const info = address.replace("/index.html", "/") + "/kounai_map.html";
|
||||||
|
return (
|
||||||
|
<TouchableOpacity
|
||||||
|
style={{
|
||||||
|
height: 50,
|
||||||
|
backgroundColor: "#888A85",
|
||||||
|
flexDirection: "column",
|
||||||
|
alignContent: "center",
|
||||||
|
alignItems: "center",
|
||||||
|
margin: 2,
|
||||||
|
}}
|
||||||
|
onPress={() => {
|
||||||
|
navigate("howto", { info, goTo, useShow });
|
||||||
|
onExit();
|
||||||
|
}}
|
||||||
|
onLongPress={() => Linking.openURL(info)}
|
||||||
|
>
|
||||||
|
<View style={{ flex: 1 }} />
|
||||||
|
<Text
|
||||||
|
style={{
|
||||||
|
color: "white",
|
||||||
|
textAlign: "center",
|
||||||
|
textAlignVertical: "center",
|
||||||
|
flex: 1,
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
駅構内図を表示
|
||||||
|
</Text>
|
||||||
|
<View style={{ flex: 1 }} />
|
||||||
|
</TouchableOpacity>
|
||||||
|
);
|
||||||
|
};
|
@ -0,0 +1,16 @@
|
|||||||
|
import React from "react";
|
||||||
|
import { Linking } from "react-native";
|
||||||
|
import { Ionicons } from "@expo/vector-icons";
|
||||||
|
import { TicketBox } from "@/components/atom/TicketBox";
|
||||||
|
export const StationMapButton = ({stationMap}) => {
|
||||||
|
return (
|
||||||
|
<TicketBox
|
||||||
|
backgroundColor={"#888A85"}
|
||||||
|
icon={<Ionicons name="map" color="white" size={50} />}
|
||||||
|
flex={1}
|
||||||
|
onPressButton={() => Linking.openURL(stationMap)}
|
||||||
|
>
|
||||||
|
Map
|
||||||
|
</TicketBox>
|
||||||
|
);
|
||||||
|
};
|
@ -0,0 +1,32 @@
|
|||||||
|
import React, { FC } from "react";
|
||||||
|
import { Linking } from "react-native";
|
||||||
|
import { FontAwesome } from "@expo/vector-icons";
|
||||||
|
import { TicketBox } from "@/components/atom/TicketBox";
|
||||||
|
type Props = {
|
||||||
|
info: string;
|
||||||
|
address: string;
|
||||||
|
usePDFView: string;
|
||||||
|
navigate: (screen: string, params?: object) => void;
|
||||||
|
onExit: () => void;
|
||||||
|
goTo: string;
|
||||||
|
useShow: string;
|
||||||
|
};
|
||||||
|
export const StationTimeTableButton: FC<Props> = (props) => {
|
||||||
|
const { info, address, usePDFView, navigate, onExit, goTo, useShow } = props;
|
||||||
|
return (
|
||||||
|
<TicketBox
|
||||||
|
backgroundColor={"#8F5902"}
|
||||||
|
icon={<FontAwesome name="table" color="white" size={50} />}
|
||||||
|
flex={1}
|
||||||
|
onPressButton={() => {
|
||||||
|
usePDFView == "true"
|
||||||
|
? Linking.openURL(address)
|
||||||
|
: navigate("howto", { info, goTo, useShow });
|
||||||
|
onExit();
|
||||||
|
}}
|
||||||
|
onLongPressButton={() => Linking.openURL(address)}
|
||||||
|
>
|
||||||
|
時刻表
|
||||||
|
</TicketBox>
|
||||||
|
);
|
||||||
|
};
|
@ -0,0 +1,21 @@
|
|||||||
|
import React, { FC } from "react";
|
||||||
|
import { Linking } from "react-native";
|
||||||
|
import { Ionicons } from "@expo/vector-icons";
|
||||||
|
import { TicketBox } from "@/components/atom/TicketBox";
|
||||||
|
type Props = {
|
||||||
|
address: string;
|
||||||
|
press: () => void;
|
||||||
|
};
|
||||||
|
export const TrainBusButton: FC<Props> = ({ address, press }) => {
|
||||||
|
return (
|
||||||
|
<TicketBox
|
||||||
|
backgroundColor={"#CE5C00"}
|
||||||
|
icon={<Ionicons name="bus" color="white" size={50} />}
|
||||||
|
flex={1}
|
||||||
|
onPressButton={press}
|
||||||
|
onLongPressButton={() => Linking.openURL(address)}
|
||||||
|
>
|
||||||
|
並行バス
|
||||||
|
</TicketBox>
|
||||||
|
);
|
||||||
|
};
|
@ -0,0 +1,28 @@
|
|||||||
|
import React, { FC } from "react";
|
||||||
|
import { Linking } from "react-native";
|
||||||
|
import { Foundation } from "@expo/vector-icons";
|
||||||
|
import { TicketBox } from "@/components/atom/TicketBox";
|
||||||
|
type Props = {
|
||||||
|
navigate: (screen: string, params: any) => void;
|
||||||
|
info: string;
|
||||||
|
goTo: string;
|
||||||
|
useShow: string;
|
||||||
|
onExit: () => void;
|
||||||
|
};
|
||||||
|
export const WebSiteButton: FC<Props> = (Props) => {
|
||||||
|
const { navigate, info, goTo, useShow, onExit } = Props;
|
||||||
|
return (
|
||||||
|
<TicketBox
|
||||||
|
backgroundColor={"#AD7FA8"}
|
||||||
|
icon={<Foundation name="web" color="white" size={50} />}
|
||||||
|
flex={1}
|
||||||
|
onPressButton={() => {
|
||||||
|
navigate("howto", { info, goTo, useShow });
|
||||||
|
onExit();
|
||||||
|
}}
|
||||||
|
onLongPressButton={() => Linking.openURL(info)}
|
||||||
|
>
|
||||||
|
web
|
||||||
|
</TicketBox>
|
||||||
|
);
|
||||||
|
};
|
@ -17,7 +17,7 @@ import { SwitchArea } from "../atom/SwitchArea";
|
|||||||
import { useNotification } from "../../stateBox/useNotifications";
|
import { useNotification } from "../../stateBox/useNotifications";
|
||||||
import { SheetHeaderItem } from "@/components/atom/SheetHeaderItem";
|
import { SheetHeaderItem } from "@/components/atom/SheetHeaderItem";
|
||||||
|
|
||||||
const versionCode = "6.0.1";
|
const versionCode = "6.0.2";
|
||||||
|
|
||||||
export const SettingTopPage = ({
|
export const SettingTopPage = ({
|
||||||
testNFC,
|
testNFC,
|
||||||
|
@ -49,7 +49,7 @@ export const customTrainDataDetector = (TrainNumber: string) => {
|
|||||||
return {
|
return {
|
||||||
type: "LTDEXP",
|
type: "LTDEXP",
|
||||||
trainName: "しおかぜ",
|
trainName: "しおかぜ",
|
||||||
trainIcon: "https://storage.haruk.in/s8000ap.png",
|
trainIcon: `https://n8n.haruk.in/webhook/anpanman-pictures.png?trainNum=${TrainNumber}`,
|
||||||
infoUrl: "https://www.jr-eki.com/aptrain/naani/yosan/train.html",
|
infoUrl: "https://www.jr-eki.com/aptrain/naani/yosan/train.html",
|
||||||
trainNumDistance: 0,
|
trainNumDistance: 0,
|
||||||
info: "いしづちと併結 / アンパンマン列車で運転",
|
info: "いしづちと併結 / アンパンマン列車で運転",
|
||||||
@ -114,7 +114,7 @@ export const customTrainDataDetector = (TrainNumber: string) => {
|
|||||||
return {
|
return {
|
||||||
type: "LTDEXP",
|
type: "LTDEXP",
|
||||||
trainName: "いしづち",
|
trainName: "いしづち",
|
||||||
trainIcon: "https://storage.haruk.in/s8000ap.png",
|
trainIcon: `https://n8n.haruk.in/webhook/anpanman-pictures.png?trainNum=${TrainNumber}`,
|
||||||
infoUrl: "https://www.jr-eki.com/aptrain/naani/yosan/train.html",
|
infoUrl: "https://www.jr-eki.com/aptrain/naani/yosan/train.html",
|
||||||
trainNumDistance: 1000,
|
trainNumDistance: 1000,
|
||||||
info: "しおかぜと併結 / アンパンマン列車で運転",
|
info: "しおかぜと併結 / アンパンマン列車で運転",
|
||||||
@ -173,7 +173,7 @@ export const customTrainDataDetector = (TrainNumber: string) => {
|
|||||||
return {
|
return {
|
||||||
type: "LTDEXP",
|
type: "LTDEXP",
|
||||||
trainName: "いしづち",
|
trainName: "いしづち",
|
||||||
trainIcon: "https://storage.haruk.in/s8000ap.png",
|
trainIcon: `https://n8n.haruk.in/webhook/anpanman-pictures.png?trainNum=${TrainNumber}`,
|
||||||
infoUrl: "https://www.jr-eki.com/aptrain/naani/yosan/train.html",
|
infoUrl: "https://www.jr-eki.com/aptrain/naani/yosan/train.html",
|
||||||
trainNumDistance: 940,
|
trainNumDistance: 940,
|
||||||
info: "アンパンマン列車で運転",
|
info: "アンパンマン列車で運転",
|
||||||
@ -247,9 +247,7 @@ export const customTrainDataDetector = (TrainNumber: string) => {
|
|||||||
return {
|
return {
|
||||||
type: "LTDEXP",
|
type: "LTDEXP",
|
||||||
trainName: "南風",
|
trainName: "南風",
|
||||||
trainIcon: `https://n8n.haruk.in/webhook/dosan-anpanman-pictures.png?trainNum=${TrainNumber}&day=${dayjs().format(
|
trainIcon: `https://n8n.haruk.in/webhook/anpanman-pictures.png?trainNum=${TrainNumber}`,
|
||||||
"yyyy-MM-DD"
|
|
||||||
)}`,
|
|
||||||
infoUrl: "https://www.jr-eki.com/aptrain/naani/dosan/train.html",
|
infoUrl: "https://www.jr-eki.com/aptrain/naani/dosan/train.html",
|
||||||
trainNumDistance: 30,
|
trainNumDistance: 30,
|
||||||
info: "アンパンマン列車で運転",
|
info: "アンパンマン列車で運転",
|
||||||
@ -589,7 +587,7 @@ export const customTrainDataDetector = (TrainNumber: string) => {
|
|||||||
return {
|
return {
|
||||||
type: "LTDEXP",
|
type: "LTDEXP",
|
||||||
trainName: "宇和海",
|
trainName: "宇和海",
|
||||||
trainIcon: "https://storage.haruk.in/s2002a.png",
|
trainIcon: `https://n8n.haruk.in/webhook/anpanman-pictures.png?trainNum=${TrainNumber}`,
|
||||||
infoUrl: "https://www.jr-eki.com/aptrain/naani/yosan/train.html",
|
infoUrl: "https://www.jr-eki.com/aptrain/naani/yosan/train.html",
|
||||||
trainNumDistance: 1050,
|
trainNumDistance: 1050,
|
||||||
info: "アンパン列車で運転",
|
info: "アンパン列車で運転",
|
||||||
@ -623,9 +621,9 @@ export const customTrainDataDetector = (TrainNumber: string) => {
|
|||||||
return {
|
return {
|
||||||
type: "LTDEXP",
|
type: "LTDEXP",
|
||||||
trainName: "あしずり",
|
trainName: "あしずり",
|
||||||
trainIcon: "https://storage.haruk.in/s2000_asi.png",
|
trainIcon: `https://n8n.haruk.in/webhook/anpanman-pictures.png?trainNum=${TrainNumber}`,
|
||||||
infoUrl:
|
infoUrl:
|
||||||
"https://www.jr-shikoku.co.jp/01_trainbus/vehicle-info/ashizuri.html",
|
"https://www.jr-eki.com/aptrain/naani/first-generation/jikoku.html",
|
||||||
trainNumDistance: 2070,
|
trainNumDistance: 2070,
|
||||||
info: "2000系で運転",
|
info: "2000系で運転",
|
||||||
infogram: ""
|
infogram: ""
|
||||||
@ -767,19 +765,41 @@ export const customTrainDataDetector = (TrainNumber: string) => {
|
|||||||
trainIcon: "https://storage.haruk.in/s5001.png",
|
trainIcon: "https://storage.haruk.in/s5001.png",
|
||||||
infoUrl: "https://www.jr-shikoku.co.jp/01_trainbus/vehicle-info/marine.html",
|
infoUrl: "https://www.jr-shikoku.co.jp/01_trainbus/vehicle-info/marine.html",
|
||||||
trainNumDistance: null,
|
trainNumDistance: null,
|
||||||
info: "WEST LIVE TOUR 2025臨 3/21,22のみ運転",
|
info: "臨時列車 4/12,13,19のみ運転",
|
||||||
infogram: "G"
|
infogram: "G"
|
||||||
};
|
};
|
||||||
case "9395D":
|
case "9395D":
|
||||||
return {
|
return {
|
||||||
type: "SPCL_Normal",
|
type: "SPCL_Normal",
|
||||||
trainName: "",
|
trainName: "",
|
||||||
trainIcon: null,
|
trainIcon: "https://storage.haruk.in/s1500.png",
|
||||||
infoUrl: null,
|
infoUrl: null,
|
||||||
trainNumDistance: null,
|
trainNumDistance: null,
|
||||||
info: "WEST LIVE TOUR 2025臨 3/21,22のみ運転",
|
info: "臨時列車 4/12,13,19のみ運転",
|
||||||
infogram: ""
|
infogram: ""
|
||||||
};
|
};
|
||||||
|
case "9662D":
|
||||||
|
case "9665D":
|
||||||
|
return {
|
||||||
|
type: "SPCL_Normal",
|
||||||
|
trainName: "れんげ号",
|
||||||
|
trainIcon: "",
|
||||||
|
infoUrl: null,
|
||||||
|
trainNumDistance: null,
|
||||||
|
info: "臨時列車 4/29のみ運転",
|
||||||
|
infogram: ""
|
||||||
|
};
|
||||||
|
case "9664D":
|
||||||
|
case "9663D":
|
||||||
|
return {
|
||||||
|
type: "SPCL_Normal",
|
||||||
|
trainName: "わらぐろ号",
|
||||||
|
trainIcon: "",
|
||||||
|
infoUrl: null,
|
||||||
|
trainNumDistance: null,
|
||||||
|
info: "臨時列車 4/29のみ運転",
|
||||||
|
infogram: ""
|
||||||
|
};
|
||||||
default:
|
default:
|
||||||
if(getJRF(TrainNumber) !== null){
|
if(getJRF(TrainNumber) !== null){
|
||||||
return {
|
return {
|
||||||
|
@ -28,9 +28,16 @@ export const injectJavascriptData: InjectJavascriptData = (
|
|||||||
|
|
||||||
// 上部ヘッダーの取り扱い、自動再読み込み、setStringsの実行
|
// 上部ヘッダーの取り扱い、自動再読み込み、setStringsの実行
|
||||||
const bootData = `
|
const bootData = `
|
||||||
|
let probremsData = [];
|
||||||
|
fetch("https://n8n.haruk.in/webhook/jrshikoku-position-problems").then((response) => response.json()).then((data) => {
|
||||||
|
probremsData = data.data;
|
||||||
|
});
|
||||||
const setReload = () =>{
|
const setReload = () =>{
|
||||||
try{
|
try{
|
||||||
document.getElementById('refreshIcon').click();
|
document.getElementById('refreshIcon').click();
|
||||||
|
fetch("https://n8n.haruk.in/webhook/jrshikoku-position-problems").then((response) => response.json()).then((data) => {
|
||||||
|
probremsData = data.data;
|
||||||
|
});
|
||||||
setStrings();
|
setStrings();
|
||||||
}catch(error){}
|
}catch(error){}
|
||||||
setTimeout(setReload, 10000);
|
setTimeout(setReload, 10000);
|
||||||
@ -39,16 +46,12 @@ export const injectJavascriptData: InjectJavascriptData = (
|
|||||||
`;
|
`;
|
||||||
// 左か右かを判定してアイコンを設置する
|
// 左か右かを判定してアイコンを設置する
|
||||||
const trainIcon = `
|
const trainIcon = `
|
||||||
const setStationIcon = (setIconElem,img) =>{
|
const setStationIcon = (setIconElem,img,hasProblem) =>{
|
||||||
if(setIconElem.getAttribute("style").includes("left")){
|
const position = setIconElem.getAttribute("style").includes("left");
|
||||||
setIconElem.insertAdjacentHTML('beforebegin', "<img src="+img+" style='float:left;height:20px;'>");
|
setIconElem.insertAdjacentHTML('beforebegin', "<img src="+img+" style='float:"+(position ? 'left' : 'right')+";height:20px;'>");
|
||||||
}
|
|
||||||
else{
|
|
||||||
setIconElem.insertAdjacentHTML('beforebegin', "<img src="+img+" style='float:right;height:20px;'>");
|
|
||||||
}
|
|
||||||
setIconElem.remove();
|
setIconElem.remove();
|
||||||
}
|
}
|
||||||
const setTrainIcon = (列番データ,e) =>{
|
const setTrainIcon = (列番データ,e,hasProblem) =>{
|
||||||
switch(列番データ){
|
switch(列番データ){
|
||||||
//しおかぜメイン
|
//しおかぜメイン
|
||||||
//8000 ノーマル
|
//8000 ノーマル
|
||||||
@ -70,14 +73,14 @@ export const injectJavascriptData: InjectJavascriptData = (
|
|||||||
case "25M":
|
case "25M":
|
||||||
case "27M":
|
case "27M":
|
||||||
case "29M":
|
case "29M":
|
||||||
setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s8000nr.png');
|
setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s8000nr.png',hasProblem);
|
||||||
break;
|
break;
|
||||||
//8000 アンパン
|
//8000 アンパン
|
||||||
case "10M":
|
case "10M":
|
||||||
case "22M":
|
case "22M":
|
||||||
case "9M":
|
case "9M":
|
||||||
case "21M":
|
case "21M":
|
||||||
setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s8000ap.png');
|
setStationIcon(e.querySelector("img"),'https://n8n.haruk.in/webhook/anpanman-pictures.png?trainNum='+列番データ,hasProblem);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
||||||
@ -90,7 +93,7 @@ export const injectJavascriptData: InjectJavascriptData = (
|
|||||||
case "11M":
|
case "11M":
|
||||||
case "19M":
|
case "19M":
|
||||||
case "23M":
|
case "23M":
|
||||||
setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s8600.png');
|
setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s8600.png',hasProblem);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
//いしづちメイン
|
//いしづちメイン
|
||||||
@ -113,7 +116,7 @@ export const injectJavascriptData: InjectJavascriptData = (
|
|||||||
case "1025M":
|
case "1025M":
|
||||||
case "1027M":
|
case "1027M":
|
||||||
case "1029M":
|
case "1029M":
|
||||||
setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s8000no.png');
|
setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s8000no.png',hasProblem);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
//8000 アンパン
|
//8000 アンパン
|
||||||
@ -121,7 +124,7 @@ export const injectJavascriptData: InjectJavascriptData = (
|
|||||||
case "1022M":
|
case "1022M":
|
||||||
case "1009M":
|
case "1009M":
|
||||||
case "1021M":
|
case "1021M":
|
||||||
setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s8000ap.png');
|
setStationIcon(e.querySelector("img"),'https://n8n.haruk.in/webhook/anpanman-pictures.png?trainNum='+列番データ,hasProblem);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
//8600
|
//8600
|
||||||
@ -133,29 +136,29 @@ export const injectJavascriptData: InjectJavascriptData = (
|
|||||||
case "1011M":
|
case "1011M":
|
||||||
case "1019M":
|
case "1019M":
|
||||||
case "1023M":
|
case "1023M":
|
||||||
setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s8600_isz.png');
|
setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s8600_isz.png',hasProblem);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
//MEXP
|
//MEXP
|
||||||
//8000
|
//8000
|
||||||
case "1092M":
|
case "1092M":
|
||||||
setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s8000nr.png');
|
setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s8000nr.png',hasProblem);
|
||||||
break;
|
break;
|
||||||
//8600
|
//8600
|
||||||
case "1091M":
|
case "1091M":
|
||||||
setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s8600_isz.png');
|
setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s8600_isz.png',hasProblem);
|
||||||
break;
|
break;
|
||||||
//三桁いしづち
|
//三桁いしづち
|
||||||
//8000 アンパン
|
//8000 アンパン
|
||||||
case "1041M":
|
case "1041M":
|
||||||
case "1044M":
|
case "1044M":
|
||||||
setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s8000ap.png');
|
setStationIcon(e.querySelector("img"),'https://n8n.haruk.in/webhook/anpanman-pictures.png?trainNum='+列番データ,hasProblem);
|
||||||
break;
|
break;
|
||||||
//8600
|
//8600
|
||||||
case "1043M":
|
case "1043M":
|
||||||
case "1042M":
|
case "1042M":
|
||||||
case "1046M":
|
case "1046M":
|
||||||
setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s8600_isz.png');
|
setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s8600_isz.png',hasProblem);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
||||||
@ -178,7 +181,7 @@ export const injectJavascriptData: InjectJavascriptData = (
|
|||||||
case "51D":
|
case "51D":
|
||||||
case "53D":
|
case "53D":
|
||||||
case "55D":
|
case "55D":
|
||||||
setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s2700.png');
|
setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s2700.png',hasProblem);
|
||||||
break;
|
break;
|
||||||
//2700アンパン
|
//2700アンパン
|
||||||
case "32D":
|
case "32D":
|
||||||
@ -191,7 +194,7 @@ export const injectJavascriptData: InjectJavascriptData = (
|
|||||||
case "45D":
|
case "45D":
|
||||||
case "49D":
|
case "49D":
|
||||||
case "57D":
|
case "57D":
|
||||||
setStationIcon(e.querySelector("img"),'https://n8n.haruk.in/webhook/dosan-anpanman-pictures.png?trainNum='+列番データ);
|
setStationIcon(e.querySelector("img"),'https://n8n.haruk.in/webhook/anpanman-pictures.png?trainNum='+列番データ,hasProblem);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
||||||
@ -211,7 +214,7 @@ export const injectJavascriptData: InjectJavascriptData = (
|
|||||||
case "3019D":
|
case "3019D":
|
||||||
case "3025D":
|
case "3025D":
|
||||||
case "3031D":
|
case "3031D":
|
||||||
setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s2700_uzu.png');
|
setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s2700_uzu.png',hasProblem);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
//2700 二両編成
|
//2700 二両編成
|
||||||
@ -225,7 +228,7 @@ export const injectJavascriptData: InjectJavascriptData = (
|
|||||||
case "3017D":
|
case "3017D":
|
||||||
case "3023D":
|
case "3023D":
|
||||||
case "3029D":
|
case "3029D":
|
||||||
setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s2700_uzu.png');
|
setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s2700_uzu.png',hasProblem);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
//2600
|
//2600
|
||||||
@ -239,7 +242,7 @@ export const injectJavascriptData: InjectJavascriptData = (
|
|||||||
case "3021D":
|
case "3021D":
|
||||||
case "3027D":
|
case "3027D":
|
||||||
case "3033D":
|
case "3033D":
|
||||||
setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s2600.png');
|
setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s2600.png',hasProblem);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
//マリンライナー
|
//マリンライナー
|
||||||
@ -311,14 +314,14 @@ export const injectJavascriptData: InjectJavascriptData = (
|
|||||||
case "3167M":
|
case "3167M":
|
||||||
case "3169M":
|
case "3169M":
|
||||||
case "3175M":
|
case "3175M":
|
||||||
setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s5001.png');
|
setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s5001.png',hasProblem);
|
||||||
break;
|
break;
|
||||||
case "3102M":
|
case "3102M":
|
||||||
case "3101M":
|
case "3101M":
|
||||||
case "3103M":
|
case "3103M":
|
||||||
case "3171M":
|
case "3171M":
|
||||||
case "3173M":
|
case "3173M":
|
||||||
setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s5001k.png');
|
setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s5001k.png',hasProblem);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
//サンライズ瀬戸
|
//サンライズ瀬戸
|
||||||
@ -326,7 +329,7 @@ export const injectJavascriptData: InjectJavascriptData = (
|
|||||||
case "5031M":
|
case "5031M":
|
||||||
case "8041M": //琴平延長高松迄
|
case "8041M": //琴平延長高松迄
|
||||||
case "8031M": //琴平延長高松以降
|
case "8031M": //琴平延長高松以降
|
||||||
setStationIcon(e.querySelector("img"),'https://storage.haruk.in/w285.png');
|
setStationIcon(e.querySelector("img"),'https://storage.haruk.in/w285.png',hasProblem);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
//宇和海
|
//宇和海
|
||||||
@ -357,7 +360,7 @@ export const injectJavascriptData: InjectJavascriptData = (
|
|||||||
case "1077D":
|
case "1077D":
|
||||||
case "1079D":
|
case "1079D":
|
||||||
case "1081D":
|
case "1081D":
|
||||||
setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s2000_uwa.png');
|
setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s2000_uwa.png',hasProblem);
|
||||||
break;
|
break;
|
||||||
//2000 アンパン込み
|
//2000 アンパン込み
|
||||||
case "1058D":
|
case "1058D":
|
||||||
@ -366,14 +369,14 @@ export const injectJavascriptData: InjectJavascriptData = (
|
|||||||
case "1053D":
|
case "1053D":
|
||||||
case "1059D":
|
case "1059D":
|
||||||
case "1067D":
|
case "1067D":
|
||||||
setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s2002a.png');
|
setStationIcon(e.querySelector("img"),'https://n8n.haruk.in/webhook/anpanman-pictures.png?trainNum='+列番データ,hasProblem);
|
||||||
break;
|
break;
|
||||||
//しまんと
|
//しまんと
|
||||||
case "2002D":
|
case "2002D":
|
||||||
case "2004D":
|
case "2004D":
|
||||||
case "2001D":
|
case "2001D":
|
||||||
case "2003D":
|
case "2003D":
|
||||||
setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s2700_smn.png');
|
setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s2700_smn.png',hasProblem);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
//あしずり 2000
|
//あしずり 2000
|
||||||
@ -385,7 +388,7 @@ export const injectJavascriptData: InjectJavascriptData = (
|
|||||||
case "2073D":
|
case "2073D":
|
||||||
case "2079D":
|
case "2079D":
|
||||||
case "2081D":
|
case "2081D":
|
||||||
setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s2000_asi.png');
|
setStationIcon(e.querySelector("img"),'https://n8n.haruk.in/webhook/anpanman-pictures.png?trainNum='+列番データ,hasProblem);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
//あしずり 2700
|
//あしずり 2700
|
||||||
@ -395,7 +398,7 @@ export const injectJavascriptData: InjectJavascriptData = (
|
|||||||
case "2075D":
|
case "2075D":
|
||||||
case "2077D":
|
case "2077D":
|
||||||
case "2083D":
|
case "2083D":
|
||||||
setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s2700_asi.png');
|
setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s2700_asi.png',hasProblem);
|
||||||
break;
|
break;
|
||||||
//剣山
|
//剣山
|
||||||
case "4002D":
|
case "4002D":
|
||||||
@ -405,14 +408,14 @@ export const injectJavascriptData: InjectJavascriptData = (
|
|||||||
case "4003D":
|
case "4003D":
|
||||||
case "4005D":
|
case "4005D":
|
||||||
case "4007D":
|
case "4007D":
|
||||||
setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s185tu.png');
|
setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s185tu.png',hasProblem);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
||||||
//よしのがわトロッコ
|
//よしのがわトロッコ
|
||||||
case "8452D":
|
case "8452D":
|
||||||
case "8451D":
|
case "8451D":
|
||||||
setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s185to_ai.png');
|
setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s185to_ai.png',hasProblem);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
//岡山高松アントロ
|
//岡山高松アントロ
|
||||||
@ -421,14 +424,14 @@ export const injectJavascriptData: InjectJavascriptData = (
|
|||||||
//岡山琴平アントロ
|
//岡山琴平アントロ
|
||||||
case "8277D":
|
case "8277D":
|
||||||
case "8278D":
|
case "8278D":
|
||||||
setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s32to4.png');
|
setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s32to4.png',hasProblem);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
||||||
//千年ものがたり
|
//千年ものがたり
|
||||||
case "8021D":
|
case "8021D":
|
||||||
case "8022D":
|
case "8022D":
|
||||||
setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s185mm1.png');
|
setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s185mm1.png',hasProblem);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
//夜明けものがたり
|
//夜明けものがたり
|
||||||
@ -436,12 +439,12 @@ export const injectJavascriptData: InjectJavascriptData = (
|
|||||||
case "8083D":
|
case "8083D":
|
||||||
case "8073D":
|
case "8073D":
|
||||||
case "8074D":
|
case "8074D":
|
||||||
setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s185ym1.png');
|
setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s185ym1.png',hasProblem);
|
||||||
break;
|
break;
|
||||||
//ラマルドボア
|
//ラマルドボア
|
||||||
case "9253M":
|
case "9253M":
|
||||||
case "9256M":
|
case "9256M":
|
||||||
setStationIcon(e.querySelector("img"),'https://storage.haruk.in/w213w.png');
|
setStationIcon(e.querySelector("img"),'https://storage.haruk.in/w213w.png',hasProblem);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
// 貨物
|
// 貨物
|
||||||
@ -463,7 +466,7 @@ export const injectJavascriptData: InjectJavascriptData = (
|
|||||||
case "8071":
|
case "8071":
|
||||||
case "8072":
|
case "8072":
|
||||||
case "8077":
|
case "8077":
|
||||||
setStationIcon(e.querySelector("img"),'https://storage.haruk.in/ef210a.png');
|
setStationIcon(e.querySelector("img"),'https://storage.haruk.in/ef210a.png',hasProblem);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
// // 普通列車系統、6000系運用
|
// // 普通列車系統、6000系運用
|
||||||
@ -479,7 +482,7 @@ export const injectJavascriptData: InjectJavascriptData = (
|
|||||||
// case "147M":
|
// case "147M":
|
||||||
// //962運用
|
// //962運用
|
||||||
// case "114M":
|
// case "114M":
|
||||||
// setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s6000p.png');
|
// setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s6000p.png',hasProblem);
|
||||||
// break;
|
// break;
|
||||||
|
|
||||||
|
|
||||||
@ -487,31 +490,31 @@ export const injectJavascriptData: InjectJavascriptData = (
|
|||||||
// // ごな線
|
// // ごな線
|
||||||
// case "5851D": //219D併結 [ToDo: 219Dとの分割対策]
|
// case "5851D": //219D併結 [ToDo: 219Dとの分割対策]
|
||||||
// case "5854D":
|
// case "5854D":
|
||||||
// setStationIcon(e.querySelector("img"),'https://storage.haruk.in/tosa9640jgr.png');
|
// setStationIcon(e.querySelector("img"),'https://storage.haruk.in/tosa9640jgr.png',hasProblem);
|
||||||
// break;
|
// break;
|
||||||
|
|
||||||
// //JR車両乗り入れ運用
|
// //JR車両乗り入れ運用
|
||||||
// case "5858D":
|
// case "5858D":
|
||||||
// case "5869D":
|
// case "5869D":
|
||||||
// setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s1000.png');
|
// setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s1000.png',hasProblem);
|
||||||
// break;
|
// break;
|
||||||
// //併結運用の併結される側 [ToDo: 分割対策]
|
// //併結運用の併結される側 [ToDo: 分割対策]
|
||||||
// case "5845D":
|
// case "5845D":
|
||||||
// case "5851D":
|
// case "5851D":
|
||||||
// case "5818D":
|
// case "5818D":
|
||||||
// case "5820D":
|
// case "5820D":
|
||||||
// setStationIcon(e.querySelector("img"),'https://storage.haruk.in/tosa9640.png');
|
// setStationIcon(e.querySelector("img"),'https://storage.haruk.in/tosa9640.png',hasProblem);
|
||||||
// break;
|
// break;
|
||||||
// // 土讃線単体列車のキハ32運用
|
// // 土讃線単体列車のキハ32運用
|
||||||
// case "715D":
|
// case "715D":
|
||||||
// case "718D":
|
// case "718D":
|
||||||
// setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s32ns.png');
|
// setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s32ns.png',hasProblem);
|
||||||
// break;
|
// break;
|
||||||
|
|
||||||
// // サンライズに伴う気動車代走
|
// // サンライズに伴う気動車代走
|
||||||
// case "6219D":
|
// case "6219D":
|
||||||
// case "6222D":
|
// case "6222D":
|
||||||
// setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s1000.png');
|
// setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s1000.png',hasProblem);
|
||||||
// break;
|
// break;
|
||||||
// // それ以外の土讃線ごな線直通列車
|
// // それ以外の土讃線ごな線直通列車
|
||||||
// case "5811D":
|
// case "5811D":
|
||||||
@ -540,7 +543,7 @@ export const injectJavascriptData: InjectJavascriptData = (
|
|||||||
// case "5876D":
|
// case "5876D":
|
||||||
// case "5880D":
|
// case "5880D":
|
||||||
// case "5882D":
|
// case "5882D":
|
||||||
// setStationIcon(e.querySelector("img"),'https://storage.haruk.in/tosa9640.png');
|
// setStationIcon(e.querySelector("img"),'https://storage.haruk.in/tosa9640.png',hasProblem);
|
||||||
// break;
|
// break;
|
||||||
// // それ以外の土讃線普通列車(1000)
|
// // それ以外の土讃線普通列車(1000)
|
||||||
// case "4210D":
|
// case "4210D":
|
||||||
@ -661,7 +664,7 @@ export const injectJavascriptData: InjectJavascriptData = (
|
|||||||
// case "757D":
|
// case "757D":
|
||||||
// case "761D":
|
// case "761D":
|
||||||
|
|
||||||
// setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s1000.png');
|
// setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s1000.png',hasProblem);
|
||||||
// break;
|
// break;
|
||||||
// // 予讃線/土讃線普通列車運用(7000,7200)
|
// // 予讃線/土讃線普通列車運用(7000,7200)
|
||||||
// // 下り列車(伊予西条-松山は全て7000系)
|
// // 下り列車(伊予西条-松山は全て7000系)
|
||||||
@ -715,7 +718,7 @@ export const injectJavascriptData: InjectJavascriptData = (
|
|||||||
// case "155M":
|
// case "155M":
|
||||||
// case "1263M":
|
// case "1263M":
|
||||||
// case "157M":
|
// case "157M":
|
||||||
// setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s7200.png');
|
// setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s7200.png',hasProblem);
|
||||||
// break;
|
// break;
|
||||||
// // 下り7000系
|
// // 下り7000系
|
||||||
// case "101M":
|
// case "101M":
|
||||||
@ -727,7 +730,7 @@ export const injectJavascriptData: InjectJavascriptData = (
|
|||||||
// case "555M":
|
// case "555M":
|
||||||
// case "4565M":
|
// case "4565M":
|
||||||
// case "159M":
|
// case "159M":
|
||||||
// setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s7000.png');
|
// setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s7000.png',hasProblem);
|
||||||
// break;
|
// break;
|
||||||
// // 上り列車 7200系
|
// // 上り列車 7200系
|
||||||
// case "5102M":
|
// case "5102M":
|
||||||
@ -781,7 +784,7 @@ export const injectJavascriptData: InjectJavascriptData = (
|
|||||||
// case "1606M":
|
// case "1606M":
|
||||||
// case "5160M":
|
// case "5160M":
|
||||||
// case "5256M":
|
// case "5256M":
|
||||||
// setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s7200.png');
|
// setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s7200.png',hasProblem);
|
||||||
// break;
|
// break;
|
||||||
// // 上り7000系
|
// // 上り7000系
|
||||||
// case "114M":
|
// case "114M":
|
||||||
@ -792,7 +795,7 @@ export const injectJavascriptData: InjectJavascriptData = (
|
|||||||
// case "4542M":
|
// case "4542M":
|
||||||
// case "162M":
|
// case "162M":
|
||||||
// case "4166M":
|
// case "4166M":
|
||||||
// setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s7000.png');
|
// setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s7000.png',hasProblem);
|
||||||
// break;
|
// break;
|
||||||
// // 松山界隈気動車運用
|
// // 松山界隈気動車運用
|
||||||
// // 上り下りの概念アリ
|
// // 上り下りの概念アリ
|
||||||
@ -815,28 +818,28 @@ export const injectJavascriptData: InjectJavascriptData = (
|
|||||||
// case "4824D":
|
// case "4824D":
|
||||||
// case "4813D":
|
// case "4813D":
|
||||||
// case "4664D":
|
// case "4664D":
|
||||||
// setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s32s.png');
|
// setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s32s.png',hasProblem);
|
||||||
// break;
|
// break;
|
||||||
// // 河童うようよ号偶数
|
// // 河童うようよ号偶数
|
||||||
// case "4816D":
|
// case "4816D":
|
||||||
// case "4830D":
|
// case "4830D":
|
||||||
// setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s32kpuy2.png');
|
// setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s32kpuy2.png',hasProblem);
|
||||||
// break;
|
// break;
|
||||||
// // 河童うようよ号奇数
|
// // 河童うようよ号奇数
|
||||||
// case "4827D":
|
// case "4827D":
|
||||||
// setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s32kpuy1.png');
|
// setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s32kpuy1.png',hasProblem);
|
||||||
// break;
|
// break;
|
||||||
// // 新幹線偶数
|
// // 新幹線偶数
|
||||||
// case "4810D":
|
// case "4810D":
|
||||||
// case "4822D":
|
// case "4822D":
|
||||||
// case "4826D":
|
// case "4826D":
|
||||||
// setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s32tht.png');
|
// setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s32tht.png',hasProblem);
|
||||||
// break;
|
// break;
|
||||||
// // 新幹線奇数
|
// // 新幹線奇数
|
||||||
// case "4817D":
|
// case "4817D":
|
||||||
// case "4823D":
|
// case "4823D":
|
||||||
// case "4829D":
|
// case "4829D":
|
||||||
// setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s32thtk.png');
|
// setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s32thtk.png',hasProblem);
|
||||||
// break;
|
// break;
|
||||||
// // キハ54 通常運用
|
// // キハ54 通常運用
|
||||||
// case "4632D":
|
// case "4632D":
|
||||||
@ -879,30 +882,30 @@ export const injectJavascriptData: InjectJavascriptData = (
|
|||||||
// case "4922D":
|
// case "4922D":
|
||||||
// case "4923D":
|
// case "4923D":
|
||||||
// case "4663D":
|
// case "4663D":
|
||||||
// setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s54s.png');
|
// setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s54s.png',hasProblem);
|
||||||
// break;
|
// break;
|
||||||
// // 54しまんとろっこ
|
// // 54しまんとろっこ
|
||||||
// case "4623D":
|
// case "4623D":
|
||||||
// case "8814D":
|
// case "8814D":
|
||||||
// case "8819D":
|
// case "8819D":
|
||||||
// case "4662D":
|
// case "4662D":
|
||||||
// setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s54to0ys.png');
|
// setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s54to0ys.png',hasProblem);
|
||||||
// break;
|
// break;
|
||||||
// // キハ185 通常運用
|
// // キハ185 通常運用
|
||||||
// case "911D":
|
// case "911D":
|
||||||
// case "628D":
|
// case "628D":
|
||||||
// setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s185cm.png');
|
// setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s185cm.png',hasProblem);
|
||||||
// break;
|
|
||||||
// // 伊予灘ものがたり 赤
|
|
||||||
// case "8091D":
|
|
||||||
// case "8093D":
|
|
||||||
// setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s185iyor.png');
|
|
||||||
// break;
|
|
||||||
// // 伊予灘ものがたり 黄
|
|
||||||
// case "8092D":
|
|
||||||
// case "8094D":
|
|
||||||
// setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s185iyoy.png');
|
|
||||||
// break;
|
// break;
|
||||||
|
// 伊予灘ものがたり 赤
|
||||||
|
case "8091D":
|
||||||
|
case "8093D":
|
||||||
|
setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s185iyor.png',hasProblem);
|
||||||
|
break;
|
||||||
|
// 伊予灘ものがたり 黄
|
||||||
|
case "8092D":
|
||||||
|
case "8094D":
|
||||||
|
setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s185iyoy.png',hasProblem);
|
||||||
|
break;
|
||||||
|
|
||||||
// 高徳線、徳島線、牟岐線、鳴門線普通列車系統
|
// 高徳線、徳島線、牟岐線、鳴門線普通列車系統
|
||||||
// キハ40・47
|
// キハ40・47
|
||||||
@ -927,7 +930,7 @@ export const injectJavascriptData: InjectJavascriptData = (
|
|||||||
case "976D":
|
case "976D":
|
||||||
case "980D":
|
case "980D":
|
||||||
case "982D":
|
case "982D":
|
||||||
setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s40.png');
|
setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s40.png',hasProblem);
|
||||||
break;
|
break;
|
||||||
// 1000形
|
// 1000形
|
||||||
case "4311D":
|
case "4311D":
|
||||||
@ -940,7 +943,7 @@ export const injectJavascriptData: InjectJavascriptData = (
|
|||||||
case "450D":
|
case "450D":
|
||||||
case "4458D":
|
case "4458D":
|
||||||
case "474D":
|
case "474D":
|
||||||
setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s1000.png');
|
setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s1000.png',hasProblem);
|
||||||
break;
|
break;
|
||||||
// 1200形
|
// 1200形
|
||||||
case "4301D":
|
case "4301D":
|
||||||
@ -981,56 +984,64 @@ export const injectJavascriptData: InjectJavascriptData = (
|
|||||||
case "4958D":
|
case "4958D":
|
||||||
case "4962D":
|
case "4962D":
|
||||||
case "4966D":
|
case "4966D":
|
||||||
setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s1200n.png');
|
setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s1200n.png',hasProblem);
|
||||||
|
break;
|
||||||
|
|
||||||
|
// 半定期臨時列車
|
||||||
|
case "9174M":
|
||||||
|
setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s5001.png',hasProblem);
|
||||||
|
break;
|
||||||
|
case "9395D":
|
||||||
|
setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s1500.png',hasProblem);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
||||||
default: //指定車両でなく、Regexでの指定に移動
|
default: //指定車両でなく、Regexでの指定に移動
|
||||||
// // 琴平直通系普通電車
|
// // 琴平直通系普通電車
|
||||||
// if(new RegExp(/^(1|4|5)2\\d\\dM$/).test(列番データ)){
|
// if(new RegExp(/^(1|4|5)2\\d\\dM$/).test(列番データ)){
|
||||||
// setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s7200.png');
|
// setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s7200.png',hasProblem);
|
||||||
// break;
|
// break;
|
||||||
// }
|
// }
|
||||||
// else if(new RegExp(/^(1|4|5)(1|5|6)\\d\\dM$/).test(列番データ)){
|
// else if(new RegExp(/^(1|4|5)(1|5|6)\\d\\dM$/).test(列番データ)){
|
||||||
// setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s7000.png');
|
// setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s7000.png',hasProblem);
|
||||||
// break;
|
// break;
|
||||||
// }
|
// }
|
||||||
// else if(new RegExp(/^(1|5|6)\\d\\dM$/).test(列番データ)){
|
// else if(new RegExp(/^(1|5|6)\\d\\dM$/).test(列番データ)){
|
||||||
// setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s7000.png');
|
// setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s7000.png',hasProblem);
|
||||||
// break;
|
// break;
|
||||||
// }// 高徳線 普通列車系統
|
// }// 高徳線 普通列車系統
|
||||||
// else
|
// else
|
||||||
if(new RegExp(/^(4|5)3\\d\\dD$/).test(列番データ)){
|
if(new RegExp(/^(4|5)3\\d\\dD$/).test(列番データ)){
|
||||||
setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s1500.png');
|
setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s1500.png',hasProblem);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
else if(new RegExp(/^3\\d\\dD$/).test(列番データ)){
|
else if(new RegExp(/^3\\d\\dD$/).test(列番データ)){
|
||||||
setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s1500.png');
|
setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s1500.png',hasProblem);
|
||||||
break;
|
break;
|
||||||
}// 徳島線 普通列車系統
|
}// 徳島線 普通列車系統
|
||||||
else if(new RegExp(/^(4|5)4\\d\\dD$/).test(列番データ)){
|
else if(new RegExp(/^(4|5)4\\d\\dD$/).test(列番データ)){
|
||||||
setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s1500.png');
|
setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s1500.png',hasProblem);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
else if(new RegExp(/^4\\d\\dD$/).test(列番データ)){
|
else if(new RegExp(/^4\\d\\dD$/).test(列番データ)){
|
||||||
setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s1500.png');
|
setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s1500.png',hasProblem);
|
||||||
break;
|
break;
|
||||||
}// 鳴門線普通列車系統
|
}// 鳴門線普通列車系統
|
||||||
else if(new RegExp(/^(4|5)9(5|6|7|8)\\dD$/).test(列番データ)){
|
else if(new RegExp(/^(4|5)9(5|6|7|8)\\dD$/).test(列番データ)){
|
||||||
setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s1500.png');
|
setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s1500.png',hasProblem);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
else if(new RegExp(/^9(5|6|7|8)\\dD$/).test(列番データ)){
|
else if(new RegExp(/^9(5|6|7|8)\\dD$/).test(列番データ)){
|
||||||
setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s1500.png');
|
setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s1500.png',hasProblem);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
// 牟岐線普通列車系統 一旦閉鎖
|
// 牟岐線普通列車系統 一旦閉鎖
|
||||||
// else if(new RegExp(/^(4|5)5\\d\\dD$/).test(列番データ)){
|
// else if(new RegExp(/^(4|5)5\\d\\dD$/).test(列番データ)){
|
||||||
// setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s7200.png');
|
// setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s7200.png',hasProblem);
|
||||||
// break;
|
// break;
|
||||||
// }
|
// }
|
||||||
// else if(new RegExp(/^5\\d\\dD$/).test(列番データ)){
|
// else if(new RegExp(/^5\\d\\dD$/).test(列番データ)){
|
||||||
// setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s7000.png');
|
// setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s7000.png',hasProblem);
|
||||||
// break;
|
// break;
|
||||||
// }
|
// }
|
||||||
break;
|
break;
|
||||||
@ -1039,7 +1050,7 @@ export const injectJavascriptData: InjectJavascriptData = (
|
|||||||
`;
|
`;
|
||||||
|
|
||||||
const normal_train_name = `
|
const normal_train_name = `
|
||||||
const nameReplace = (列車名データ,列番データ,行き先情報) =>{
|
const nameReplace = (列車名データ,列番データ,行き先情報,hasProblem) =>{
|
||||||
let isWanman = false;
|
let isWanman = false;
|
||||||
let trainName = "";
|
let trainName = "";
|
||||||
let viaData = "";
|
let viaData = "";
|
||||||
@ -1166,7 +1177,7 @@ export const injectJavascriptData: InjectJavascriptData = (
|
|||||||
|
|
||||||
//牟岐線発高徳線行き
|
//牟岐線発高徳線行き
|
||||||
case "358D":
|
case "358D":
|
||||||
viaData = "牟岐線直通";
|
viaData = "高徳線直通";
|
||||||
break;
|
break;
|
||||||
case "4314D":
|
case "4314D":
|
||||||
case "4326D":
|
case "4326D":
|
||||||
@ -1174,31 +1185,31 @@ export const injectJavascriptData: InjectJavascriptData = (
|
|||||||
case "4342D":
|
case "4342D":
|
||||||
case "4350D":
|
case "4350D":
|
||||||
case "4368D":
|
case "4368D":
|
||||||
viaData = "牟岐線直通";
|
viaData = "高徳線直通";
|
||||||
isWanman = true;
|
isWanman = true;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
//牟岐線発徳島線行き
|
//牟岐線発徳島線行き
|
||||||
case "451D":
|
case "451D":
|
||||||
case "475D":
|
case "475D":
|
||||||
viaData = "牟岐線直通";
|
viaData = "徳島線直通";
|
||||||
break;
|
break;
|
||||||
case "4447D":
|
case "4447D":
|
||||||
case "4455D":
|
case "4455D":
|
||||||
case "5467D":
|
case "5467D":
|
||||||
case "5471D":
|
case "5471D":
|
||||||
case "5479D":
|
case "5479D":
|
||||||
viaData = "牟岐線直通";
|
viaData = "徳島線直通";
|
||||||
isWanman = true;
|
isWanman = true;
|
||||||
break;
|
break;
|
||||||
//牟岐線発鳴門線行き
|
//牟岐線発鳴門線行き
|
||||||
|
|
||||||
case "952D":
|
case "952D":
|
||||||
viaData = "牟岐線直通";
|
viaData = "鳴門線直通";
|
||||||
break;
|
break;
|
||||||
case "4954D":
|
case "4954D":
|
||||||
case "4978D":
|
case "4978D":
|
||||||
viaData = "牟岐線直通";
|
viaData = "鳴門線直通";
|
||||||
isWanman = true;
|
isWanman = true;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -1220,7 +1231,7 @@ export const injectJavascriptData: InjectJavascriptData = (
|
|||||||
case "248D":
|
case "248D":
|
||||||
case "250D":
|
case "250D":
|
||||||
viaData = "ごめん・なはり線[快速]";
|
viaData = "ごめん・なはり線[快速]";
|
||||||
ToData = "(後免にて解結)土佐山田/奈半利";
|
ToData = "(後免にて解結)\\n土佐山田/奈半利";
|
||||||
break;
|
break;
|
||||||
case "9395D":
|
case "9395D":
|
||||||
viaData = "[臨時]普通";
|
viaData = "[臨時]普通";
|
||||||
@ -1230,6 +1241,22 @@ export const injectJavascriptData: InjectJavascriptData = (
|
|||||||
viaData = "[臨時]マリンライナー94号";
|
viaData = "[臨時]マリンライナー94号";
|
||||||
ToData = "岡山";
|
ToData = "岡山";
|
||||||
break;
|
break;
|
||||||
|
case "9662D":
|
||||||
|
viaData = "[臨時]れんげ号";
|
||||||
|
ToData = "八幡浜";
|
||||||
|
break;
|
||||||
|
case "9665D":
|
||||||
|
viaData = "[臨時]れんげ号";
|
||||||
|
ToData = "宇和島";
|
||||||
|
break;
|
||||||
|
case "9664D":
|
||||||
|
viaData = "[臨時]わらぐろ号";
|
||||||
|
ToData = "八幡浜";
|
||||||
|
break;
|
||||||
|
case "9663D":
|
||||||
|
viaData = "[臨時]わらぐろ号";
|
||||||
|
ToData = "卯之町";
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
if(new RegExp(/^58[1-3][1,3,5,7,9][DM]$/).test(列番データ)){
|
if(new RegExp(/^58[1-3][1,3,5,7,9][DM]$/).test(列番データ)){
|
||||||
viaData = "ごめん・なはり線[快速]";
|
viaData = "ごめん・なはり線[快速]";
|
||||||
@ -1256,8 +1283,9 @@ export const injectJavascriptData: InjectJavascriptData = (
|
|||||||
const returnText1 = (isWanman ? "ワンマン " : "") + trainName + viaData;
|
const returnText1 = (isWanman ? "ワンマン " : "") + trainName + viaData;
|
||||||
const returnText2 = (ToData ? ToData+"行 " : ToData)+ TrainNumber;
|
const returnText2 = (ToData ? ToData+"行 " : ToData)+ TrainNumber;
|
||||||
行き先情報.innerText = "";
|
行き先情報.innerText = "";
|
||||||
行き先情報.insertAdjacentHTML('beforebegin', "<p style='font-size:10px;font-weight:bold;padding:0;'>" + returnText1 + "</p>");
|
行き先情報.insertAdjacentHTML('beforebegin', "<p style='font-size:10px;font-weight:bold;padding:0;color: black;'>" + returnText1 + "</p>");
|
||||||
行き先情報.insertAdjacentHTML('beforebegin', "<div style='display:inline-flex;flex-direction:row;'><p style='font-size:10px;font-weight: bold;padding:0;'>" + (ToData ? ToData + "行 " : ToData) + "</p><p style='font-size:10px;padding:0;'>" + TrainNumber + (JRF ? "":"レ") + "</p></div>");
|
行き先情報.insertAdjacentHTML('beforebegin', "<div style='display:inline-flex;flex-direction:row;'><p style='font-size:10px;font-weight: bold;padding:0;color:black;'>" + (ToData ? ToData + "行 " : ToData) + "</p><p style='font-size:10px;padding:0;color:black;'>" + TrainNumber + (JRF ? "":"レ") + "</p></div>");
|
||||||
|
行き先情報.insertAdjacentHTML('beforebegin', "<p style='font-size:10px;font-weight:bold;padding:0;color: "+(hasProblem ? "red":"black")+";'>" + (hasProblem ? "‼️停止中‼️" : "") + "</p>");
|
||||||
}
|
}
|
||||||
`;
|
`;
|
||||||
|
|
||||||
@ -1274,12 +1302,16 @@ const setStrings = () =>{
|
|||||||
var 行き先情報 = element.getElementsByTagName("p")[0];
|
var 行き先情報 = element.getElementsByTagName("p")[0];
|
||||||
var 列番データ = element.getAttribute('offclick').split('"')[1];
|
var 列番データ = element.getAttribute('offclick').split('"')[1];
|
||||||
var 列車名データ = element.getAttribute('offclick').split('"')[3];
|
var 列車名データ = element.getAttribute('offclick').split('"')[3];
|
||||||
|
const trainData = trainPositionDatas.find(e => e.TrainNum == 列番データ);
|
||||||
|
const hasProblem = probremsData.find((e)=>{
|
||||||
|
return e.TrainNum == trainData.TrainNum && e.Pos == trainData.Pos;
|
||||||
|
});
|
||||||
var flag=false;
|
var flag=false;
|
||||||
var TrainType = undefined;
|
var TrainType = undefined;
|
||||||
setTrainMenuDialog(element)
|
setTrainMenuDialog(element)
|
||||||
|
|
||||||
${iconSetting == "true" ? "setTrainIcon(列番データ,element);" : ""}
|
${iconSetting == "true" ? "setTrainIcon(列番データ,element,hasProblem);" : ""}
|
||||||
nameReplace(列車名データ,列番データ,行き先情報);
|
nameReplace(列車名データ,列番データ,行き先情報,hasProblem);
|
||||||
}
|
}
|
||||||
try{
|
try{
|
||||||
for(let d of document.getElementById('disp').childNodes){
|
for(let d of document.getElementById('disp').childNodes){
|
||||||
|
@ -16,10 +16,13 @@ export const AllTrainDiagramProvider = ({ children }) => {
|
|||||||
[allTrainDiagram]
|
[allTrainDiagram]
|
||||||
);
|
);
|
||||||
const customData = {
|
const customData = {
|
||||||
"9395D":"WEST LIVE TOUR 2025臨,提,https://www.jr-shikoku.co.jp/03_news/pdf/20250228_20250323_west-live-tour-2025.pdf#高松,発,22:10#昭和町,発,22:12#栗林公園北口,発,22:15#栗林,発,22:18#木太町,発,22:22#屋島,発,22:26#古高松南,発,22:38#八栗口,発,22:41#讃岐牟礼,発,22:44#志度,発,22:48#オレンジタウン,発,22:52#造田,発,22:56#神前,発,22:59#讃岐津田,発,23:05#鶴羽,発,23:09#丹生,発,23:14#三本松,着,23:18#",
|
"9395D":"臨時列車,提,https://www.jr-shikoku.co.jp/03_news/pdf/20250314_20250413_tomorrow_together_worldtour.pdf#高松,発,22:10#昭和町,発,22:13#栗林公園北口,発,22:16#栗林,発,22:19#木太町,発,22:23#屋島,発,22:36#古高松南,発,22:39#八栗口,発,22:43#讃岐牟礼,発,22:45#志度,発,22:49#オレンジタウン,発,22:53#造田,発,22:57#神前,発,23:00#讃岐津田,発,23:06#鶴羽,発,23:10#丹生,発,23:15#三本松,着,23:18#",
|
||||||
"9174M":"WEST LIVE TOUR 2025臨,提,https://www.jr-shikoku.co.jp/03_news/pdf/20250228_20250323_west-live-tour-2025.pdf#高松,発,22:00#坂出,発,22:16#児島,発,22:39#茶屋町,発,22:55#早島,発,22:59#妹尾,発,23:03#岡山,着,23:12#",
|
"9174M":"臨時列車,提,https://www.jr-shikoku.co.jp/03_news/pdf/20250314_20250413_tomorrow_together_worldtour.pdf#高松,発,22:00#坂出,発,22:16#児島,発,22:39#茶屋町,発,22:48#早島,発,22:55#妹尾,発,22:59#岡山,着,23:06#",
|
||||||
|
"9662D":"宇和れんげまつり臨時列車,提,https://www.jr-shikoku.co.jp/03_news/pdf/20250124_20250629_rinji_spring.pdf#宇和島,発,10:00#北宇和島,発,10:03#高光,発,10:07#伊予吉田,発,10:21#立間,発,10:50#下宇和,発,10:36#卯之町,発,10:39#上宇和,発,10:42#伊予石城,発,10:46#双岩,発,10:53#八幡浜,着,10:58#",
|
||||||
};
|
"9664D":"宇和れんげまつり臨時列車,提,https://www.jr-shikoku.co.jp/03_news/pdf/20250124_20250629_rinji_spring.pdf#卯之町,発,11:18#上宇和,発,11:21#伊予石城,発,11:25#双岩,発,11:34#八幡浜,着,11:39#",
|
||||||
|
"9663D":"宇和れんげまつり臨時列車,提,https://www.jr-shikoku.co.jp/03_news/pdf/20250124_20250629_rinji_spring.pdf#八幡浜,発,10:07#双岩,発,10:16#伊予石城,発,10:23#上宇和,発,10:27#卯之町,着,10:30#",
|
||||||
|
"9665D":"宇和れんげまつり臨時列車,提,https://www.jr-shikoku.co.jp/03_news/pdf/20250124_20250629_rinji_spring.pdf#八幡浜,発,13:38#双岩,発,13:45#伊予石城,発,13:52#上宇和,発,13:56#卯之町,発,14:07#下宇和,発,14:10#立間,発,14:18#伊予吉田,発,14:25#高光,発,14:31#北宇和島,発,14:35#宇和島,着,14:37#",
|
||||||
|
};
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
fetch(
|
fetch(
|
||||||
"https://n8n.haruk.in/webhook/CrowdTh%E2%82%AC71m3Ra7!ngLead%E2%82%ACr$"
|
"https://n8n.haruk.in/webhook/CrowdTh%E2%82%AC71m3Ra7!ngLead%E2%82%ACr$"
|
||||||
|
Loading…
Reference in New Issue
Block a user