Merge commit 'fdefbc82bd39c8cba29911273db2f96fa39c0e3f'
This commit is contained in:
commit
84d1305796
@ -923,7 +923,7 @@
|
||||
"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":"RIZIN.50 香川大会臨,提,https://www.jr-shikoku.co.jp/03_news/pdf/20250228_20250330_rizin-50-kagawa.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#",
|
||||
"9174M":"RIZIN.50 香川大会臨,提,https://www.jr-shikoku.co.jp/03_news/pdf/20250228_20250330_rizin-50-kagawa.pdf#高松,発,22:00#坂出,発,22:16#児島,発,22:39#茶屋町,発,22:55#早島,発,22:59#妹尾,発,23:03#岡山,着,23:12#",
|
||||
"9395D":"臨時列車,提,https://www.jr-shikoku.co.jp/03_news/pdf/20250314_20250413_tomorrow_together_worldtour.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#",
|
||||
"9174M":"臨時列車,提,https://www.jr-shikoku.co.jp/03_news/pdf/20250314_20250413_tomorrow_together_worldtour.pdf#高松,発,22:00#坂出,発,22:16#児島,発,22:39#茶屋町,発,22:55#早島,発,22:59#妹尾,発,23:03#岡山,着,23:12#",
|
||||
|
||||
}
|
@ -1,4 +1,4 @@
|
||||
import React, { useEffect, useMemo, useRef, useState } from "react";
|
||||
import React, { useEffect, useState } from "react";
|
||||
import {
|
||||
View,
|
||||
Text,
|
||||
@ -28,8 +28,6 @@ import { ShortHeader } from "./EachTrainInfo/ShortHeader";
|
||||
import { ScrollStickyContent } from "./EachTrainInfo/ScrollStickyContent";
|
||||
import { getStationID } from "../../lib/eachTrainInfoCoreLib/getStationData";
|
||||
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 { openBackTrainInfo } from "../../lib/eachTrainInfoCoreLib/openBackTrainInfo";
|
||||
import { ShowSpecialTrain } from "./EachTrainInfo/ShowSpecialTrain";
|
||||
@ -45,14 +43,11 @@ export const EachTrainInfoCore = ({
|
||||
from,
|
||||
navigate,
|
||||
}) => {
|
||||
// const [actionSheetHorizonalScroll, setActionSheetHorizonalScroll] = useState(false);
|
||||
const { currentTrain } = useCurrentTrain();
|
||||
const { originalStationList, stationList } = useStationList();
|
||||
const { setTrainInfo } = useTrainMenu();
|
||||
const [currentTrainData, setCurrentTrainData] = useState();
|
||||
|
||||
// const [actionSheetHorizonalScroll, setActionSheetHorizonalScroll] = useState(false);
|
||||
|
||||
useEffect(() => {
|
||||
if (!currentTrain.length) return;
|
||||
setCurrentTrainData(
|
||||
@ -196,29 +191,6 @@ export const EachTrainInfoCore = ({
|
||||
}
|
||||
setIsJumped(true);
|
||||
}, [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 { isLandscape } = useDeviceOrientationChange();
|
||||
const scrollHandlers = actionSheetRef
|
||||
@ -326,8 +298,7 @@ export const EachTrainInfoCore = ({
|
||||
});
|
||||
const currentPos = currentPosID.filter((d) => d != false)[0];
|
||||
if (currentPos) {
|
||||
if (direction == 0) setCurrentPosition(currentPos.reverse());
|
||||
else setCurrentPosition(currentPos);
|
||||
setCurrentPosition(direction == 0 ? currentPos.reverse() : currentPos);
|
||||
} else if (direction == 0) {
|
||||
setCurrentPosition([
|
||||
getStationID(pos[1], stationList),
|
||||
|
@ -57,6 +57,31 @@ export const TrainIconStatus: FC<Props> = ({ data, navigate, from }) => {
|
||||
}
|
||||
});
|
||||
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]);
|
||||
const [move, setMove] = useState(true);
|
||||
|
@ -18,24 +18,23 @@ import { widthPercentageToDP as wp } from "react-native-responsive-screen";
|
||||
import { getPDFViewURL } from "../../lib/getPdfViewURL";
|
||||
import { useBusAndTrainData } from "../../stateBox/useBusAndTrainData";
|
||||
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) => {
|
||||
if (!props.payload) return <></>;
|
||||
const {
|
||||
currentStation,
|
||||
navigate,
|
||||
onExit,
|
||||
goTo,
|
||||
useShow,
|
||||
} = props.payload;
|
||||
const { currentStation, navigate, onExit, goTo, useShow } = props.payload;
|
||||
const { busAndTrainData } = useBusAndTrainData();
|
||||
const [trainBus, setTrainBus] = useState();
|
||||
|
||||
useEffect(() => {
|
||||
if (!currentStation) return () => {};
|
||||
const data = busAndTrainData.filter((d) => {
|
||||
return d.name === currentStation[0].Station_JP;
|
||||
});
|
||||
const data = busAndTrainData.filter((d) =>
|
||||
d.name === currentStation[0].Station_JP
|
||||
);
|
||||
if (data.length == 0) {
|
||||
setTrainBus();
|
||||
}
|
||||
@ -90,12 +89,7 @@ export const StationDeteilView = (props) => {
|
||||
</View>
|
||||
<View>
|
||||
{currentStation && (
|
||||
<View
|
||||
style={{
|
||||
margin: 10,
|
||||
marginHorizontal: wp("10%"),
|
||||
}}
|
||||
>
|
||||
<View style={{ margin: 10, marginHorizontal: wp("10%") }}>
|
||||
<Sign
|
||||
currentStation={currentStation}
|
||||
oP={() => {
|
||||
@ -115,102 +109,51 @@ export const StationDeteilView = (props) => {
|
||||
{currentStation &&
|
||||
currentStation[0].JrHpUrl &&
|
||||
currentStation[0].StationNumber != "M12" && (
|
||||
<駅構内図 //高松/阿波池田&後免&須崎kounai.png児島例外/
|
||||
oP={() => {
|
||||
navigate("howto", {
|
||||
info:
|
||||
currentStation[0].JrHpUrl.replace("/index.html", "/") +
|
||||
"/kounai_map.html",
|
||||
goTo,
|
||||
useShow,
|
||||
});
|
||||
onExit();
|
||||
}}
|
||||
oLP={() => {
|
||||
Linking.openURL(
|
||||
currentStation[0].JrHpUrl.replace("/index.html", "/") +
|
||||
"/kounai_map.html"
|
||||
);
|
||||
}}
|
||||
uri={currentStation[0].JrHpUrl.replace("/index.html", "/")}
|
||||
<駅構内図 //児島例外/
|
||||
navigate={navigate}
|
||||
goTo={goTo}
|
||||
useShow={useShow}
|
||||
address={currentStation[0].JrHpUrl}
|
||||
onExit={onExit}
|
||||
/>
|
||||
)}
|
||||
{currentStation && (
|
||||
<View style={{ flexDirection: "row" }}>
|
||||
{!currentStation[0].JrHpUrl || (
|
||||
<TicketBox
|
||||
backgroundColor={"#AD7FA8"}
|
||||
icon={<Foundation name="web" color="white" size={50} />}
|
||||
flex={1}
|
||||
onPressButton={() => {
|
||||
navigate("howto", {
|
||||
info: currentStation[0].JrHpUrl,
|
||||
|
||||
goTo,
|
||||
useShow,
|
||||
});
|
||||
onExit();
|
||||
}}
|
||||
onLongPressButton={() =>
|
||||
Linking.openURL(currentStation[0].JrHpUrl)
|
||||
}
|
||||
>
|
||||
web
|
||||
</TicketBox>
|
||||
<WebSiteButton
|
||||
navigate={navigate}
|
||||
info={currentStation[0].JrHpUrl}
|
||||
goTo={goTo}
|
||||
useShow={useShow}
|
||||
onExit={onExit}
|
||||
/>
|
||||
)}
|
||||
{!currentStation[0].StationTimeTable || (
|
||||
<TicketBox
|
||||
backgroundColor={"#8F5902"}
|
||||
icon={<FontAwesome name="table" color="white" size={50} />}
|
||||
flex={1}
|
||||
onPressButton={() => {
|
||||
usePDFView == "true"
|
||||
? Linking.openURL(currentStation[0].StationTimeTable)
|
||||
: navigate("howto", {
|
||||
info,
|
||||
|
||||
goTo,
|
||||
useShow,
|
||||
});
|
||||
onExit();
|
||||
}}
|
||||
onLongPressButton={() =>
|
||||
Linking.openURL(currentStation[0].StationTimeTable)
|
||||
}
|
||||
>
|
||||
時刻表
|
||||
</TicketBox>
|
||||
<StationTimeTableButton
|
||||
info={info}
|
||||
address={currentStation[0].StationTimeTable}
|
||||
usePDFView={usePDFView}
|
||||
navigate={navigate}
|
||||
onExit={onExit}
|
||||
goTo={goTo}
|
||||
useShow={useShow}
|
||||
/>
|
||||
)}
|
||||
{!currentStation[0].StationMap || (
|
||||
<TicketBox
|
||||
backgroundColor={"#888A85"}
|
||||
icon={<Ionicons name="map" color="white" size={50} />}
|
||||
flex={1}
|
||||
onPressButton={() =>
|
||||
Linking.openURL(currentStation[0].StationMap)
|
||||
}
|
||||
>
|
||||
Map
|
||||
</TicketBox>
|
||||
<StationMapButton stationMap={currentStation[0].StationMap} />
|
||||
)}
|
||||
{!trainBus || (
|
||||
<TicketBox
|
||||
backgroundColor={"#CE5C00"}
|
||||
icon={<Ionicons name="bus" color="white" size={50} />}
|
||||
flex={1}
|
||||
onPressButton={() => {
|
||||
<TrainBusButton
|
||||
address={trainBus.address}
|
||||
press={() => {
|
||||
navigate("howto", {
|
||||
info: trainBus.address,
|
||||
|
||||
goTo,
|
||||
useShow,
|
||||
});
|
||||
onExit();
|
||||
}}
|
||||
onLongPressButton={() => Linking.openURL(trainBus.address)}
|
||||
>
|
||||
並行バス
|
||||
</TicketBox>
|
||||
/>
|
||||
)}
|
||||
</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 = () => {
|
||||
useEffect(() => {
|
||||
const backAction = () => {
|
||||
@ -294,4 +176,4 @@ const Handler = () => {
|
||||
return () => backHandler.remove();
|
||||
}, []);
|
||||
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>
|
||||
);
|
||||
};
|
@ -49,7 +49,7 @@ export const customTrainDataDetector = (TrainNumber: string) => {
|
||||
return {
|
||||
type: "LTDEXP",
|
||||
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",
|
||||
trainNumDistance: 0,
|
||||
info: "いしづちと併結 / アンパンマン列車で運転",
|
||||
@ -114,7 +114,7 @@ export const customTrainDataDetector = (TrainNumber: string) => {
|
||||
return {
|
||||
type: "LTDEXP",
|
||||
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",
|
||||
trainNumDistance: 1000,
|
||||
info: "しおかぜと併結 / アンパンマン列車で運転",
|
||||
@ -173,7 +173,7 @@ export const customTrainDataDetector = (TrainNumber: string) => {
|
||||
return {
|
||||
type: "LTDEXP",
|
||||
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",
|
||||
trainNumDistance: 940,
|
||||
info: "アンパンマン列車で運転",
|
||||
@ -247,9 +247,7 @@ export const customTrainDataDetector = (TrainNumber: string) => {
|
||||
return {
|
||||
type: "LTDEXP",
|
||||
trainName: "南風",
|
||||
trainIcon: `https://n8n.haruk.in/webhook/dosan-anpanman-pictures.png?trainNum=${TrainNumber}&day=${dayjs().format(
|
||||
"yyyy-MM-DD"
|
||||
)}`,
|
||||
trainIcon: `https://n8n.haruk.in/webhook/anpanman-pictures.png?trainNum=${TrainNumber}`,
|
||||
infoUrl: "https://www.jr-eki.com/aptrain/naani/dosan/train.html",
|
||||
trainNumDistance: 30,
|
||||
info: "アンパンマン列車で運転",
|
||||
@ -589,7 +587,7 @@ export const customTrainDataDetector = (TrainNumber: string) => {
|
||||
return {
|
||||
type: "LTDEXP",
|
||||
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",
|
||||
trainNumDistance: 1050,
|
||||
info: "アンパン列車で運転",
|
||||
@ -623,9 +621,9 @@ export const customTrainDataDetector = (TrainNumber: string) => {
|
||||
return {
|
||||
type: "LTDEXP",
|
||||
trainName: "あしずり",
|
||||
trainIcon: "https://storage.haruk.in/s2000_asi.png",
|
||||
trainIcon: `https://n8n.haruk.in/webhook/anpanman-pictures.png?trainNum=${TrainNumber}`,
|
||||
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,
|
||||
info: "2000系で運転",
|
||||
infogram: ""
|
||||
@ -767,17 +765,17 @@ export const customTrainDataDetector = (TrainNumber: string) => {
|
||||
trainIcon: "https://storage.haruk.in/s5001.png",
|
||||
infoUrl: "https://www.jr-shikoku.co.jp/01_trainbus/vehicle-info/marine.html",
|
||||
trainNumDistance: null,
|
||||
info: "RIZIN.50 香川大会臨 3/30のみ運転",
|
||||
info: "臨時列車 4/12,13,19のみ運転",
|
||||
infogram: "G"
|
||||
};
|
||||
case "9395D":
|
||||
return {
|
||||
type: "SPCL_Normal",
|
||||
trainName: "",
|
||||
trainIcon: null,
|
||||
trainIcon: "https://storage.haruk.in/s1500.png",
|
||||
infoUrl: null,
|
||||
trainNumDistance: null,
|
||||
info: "RIZIN.50 香川大会臨 3/30のみ運転",
|
||||
info: "臨時列車 4/12,13,19のみ運転",
|
||||
infogram: ""
|
||||
};
|
||||
default:
|
||||
|
@ -80,7 +80,7 @@ export const injectJavascriptData: InjectJavascriptData = (
|
||||
case "22M":
|
||||
case "9M":
|
||||
case "21M":
|
||||
setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s8000ap.png',hasProblem);
|
||||
setStationIcon(e.querySelector("img"),'https://n8n.haruk.in/webhook/anpanman-pictures.png?trainNum='+列番データ,hasProblem);
|
||||
break;
|
||||
|
||||
|
||||
@ -124,7 +124,7 @@ export const injectJavascriptData: InjectJavascriptData = (
|
||||
case "1022M":
|
||||
case "1009M":
|
||||
case "1021M":
|
||||
setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s8000ap.png',hasProblem);
|
||||
setStationIcon(e.querySelector("img"),'https://n8n.haruk.in/webhook/anpanman-pictures.png?trainNum='+列番データ,hasProblem);
|
||||
break;
|
||||
|
||||
//8600
|
||||
@ -152,7 +152,7 @@ export const injectJavascriptData: InjectJavascriptData = (
|
||||
//8000 アンパン
|
||||
case "1041M":
|
||||
case "1044M":
|
||||
setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s8000ap.png',hasProblem);
|
||||
setStationIcon(e.querySelector("img"),'https://n8n.haruk.in/webhook/anpanman-pictures.png?trainNum='+列番データ,hasProblem);
|
||||
break;
|
||||
//8600
|
||||
case "1043M":
|
||||
@ -194,7 +194,7 @@ export const injectJavascriptData: InjectJavascriptData = (
|
||||
case "45D":
|
||||
case "49D":
|
||||
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;
|
||||
|
||||
|
||||
@ -369,7 +369,7 @@ export const injectJavascriptData: InjectJavascriptData = (
|
||||
case "1053D":
|
||||
case "1059D":
|
||||
case "1067D":
|
||||
setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s2002a.png',hasProblem);
|
||||
setStationIcon(e.querySelector("img"),'https://n8n.haruk.in/webhook/anpanman-pictures.png?trainNum='+列番データ,hasProblem);
|
||||
break;
|
||||
//しまんと
|
||||
case "2002D":
|
||||
@ -388,7 +388,7 @@ export const injectJavascriptData: InjectJavascriptData = (
|
||||
case "2073D":
|
||||
case "2079D":
|
||||
case "2081D":
|
||||
setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s2000_asi.png',hasProblem);
|
||||
setStationIcon(e.querySelector("img"),'https://n8n.haruk.in/webhook/anpanman-pictures.png?trainNum='+列番データ,hasProblem);
|
||||
break;
|
||||
|
||||
//あしずり 2700
|
||||
@ -896,16 +896,16 @@ export const injectJavascriptData: InjectJavascriptData = (
|
||||
// case "628D":
|
||||
// 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',hasProblem);
|
||||
// break;
|
||||
// // 伊予灘ものがたり 黄
|
||||
// case "8092D":
|
||||
// case "8094D":
|
||||
// setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s185iyoy.png',hasProblem);
|
||||
// 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
|
||||
@ -987,6 +987,14 @@ export const injectJavascriptData: InjectJavascriptData = (
|
||||
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;
|
||||
|
||||
|
||||
default: //指定車両でなく、Regexでの指定に移動
|
||||
// // 琴平直通系普通電車
|
||||
|
@ -16,10 +16,9 @@ export const AllTrainDiagramProvider = ({ children }) => {
|
||||
[allTrainDiagram]
|
||||
);
|
||||
const customData = {
|
||||
"9395D":"RIZIN.50 香川大会臨,提,https://www.jr-shikoku.co.jp/03_news/pdf/20250228_20250330_rizin-50-kagawa.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#",
|
||||
"9174M":"RIZIN.50 香川大会臨,提,https://www.jr-shikoku.co.jp/03_news/pdf/20250228_20250330_rizin-50-kagawa.pdf#高松,発,22:00#坂出,発,22:16#児島,発,22:39#茶屋町,発,22:55#早島,発,22:59#妹尾,発,23:03#岡山,着,23:12#",
|
||||
|
||||
};
|
||||
"9395D":"臨時列車,提,https://www.jr-shikoku.co.jp/03_news/pdf/20250314_20250413_tomorrow_together_worldtour.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#",
|
||||
"9174M":"臨時列車,提,https://www.jr-shikoku.co.jp/03_news/pdf/20250314_20250413_tomorrow_together_worldtour.pdf#高松,発,22:00#坂出,発,22:16#児島,発,22:39#茶屋町,発,22:55#早島,発,22:59#妹尾,発,23:03#岡山,着,23:12#",
|
||||
};
|
||||
useEffect(() => {
|
||||
fetch(
|
||||
"https://n8n.haruk.in/webhook/CrowdTh%E2%82%AC71m3Ra7!ngLead%E2%82%ACr$"
|
||||
|
Loading…
Reference in New Issue
Block a user