グリーン、寝台のアイコンを追加

This commit is contained in:
harukin-expo-dev-env 2025-03-22 10:10:29 +00:00
parent e604df3e6a
commit 7f148c17e4
4 changed files with 161 additions and 67 deletions

View File

@ -27,7 +27,7 @@ export function AppContainer() {
const [fontLoaded, error] = useFonts({ const [fontLoaded, error] = useFonts({
"JR-Nishi": require("./assets/fonts/jr-nishi.otf"), "JR-Nishi": require("./assets/fonts/jr-nishi.otf"),
Zou: require("./assets/fonts/DelaGothicOne-Regular.ttf"), Zou: require("./assets/fonts/DelaGothicOne-Regular.ttf"),
"JNR-font": require("./assets/fonts/JNRFont_pic.ttf"), "JNR-font": require("./assets/fonts/JNRfont_pict.ttf"),
}); });
return ( return (
<NavigationContainer ref={navigationRef}> <NavigationContainer ref={navigationRef}>

View File

@ -8,6 +8,7 @@ import { TrainIconStatus } from "./trainIconStatus";
import { TrainViewIcon } from "./trainViewIcon"; import { TrainViewIcon } from "./trainViewIcon";
import { OneManText } from "./HeaderTextParts/OneManText"; import { OneManText } from "./HeaderTextParts/OneManText";
import { customTrainDataDetector } from "@/components/custom-train-data"; import { customTrainDataDetector } from "@/components/custom-train-data";
import { InfogramText } from "@/components/ActionSheetComponents/EachTrainInfoCore/HeaderTextParts/InfogramText";
type Props = { type Props = {
data: { trainNum: string; limited: string }; data: { trainNum: string; limited: string };
@ -22,7 +23,7 @@ type Props = {
}; };
const textConfig: TextStyle = { const textConfig: TextStyle = {
fontSize: 18, fontSize: 17,
fontWeight: "bold", fontWeight: "bold",
color: "white", color: "white",
}; };
@ -40,70 +41,79 @@ export const HeaderText: FC<Props> = ({
const { limited, trainNum } = data; const { limited, trainNum } = data;
// 列車名、種別、フォントの取得 // 列車名、種別、フォントの取得
const [typeName, trainName, fontAvailable, isOneMan] = useMemo(() => { const [typeName, trainName, fontAvailable, isOneMan, infogram] =
const customTrainData = customTrainDataDetector(trainNum); useMemo(() => {
const [type, fontAvailable, isOneMan] = (() => { const customTrainData = customTrainDataDetector(trainNum);
switch (customTrainData.type) { const [type, fontAvailable, isOneMan] = (() => {
case "LTDEXP": switch (customTrainData.type) {
return ["特急", true, false]; case "LTDEXP":
case "Rapid": return ["特急", true, false];
return ["快速", true, false]; case "Rapid":
case "Normal": return ["快速", true, false];
return ["普通", true, false]; case "Normal":
case "OneManRapid": return ["普通", true, false];
return ["快速", true, true]; case "OneManRapid":
case "OneMan": return ["快速", true, true];
return ["普通", true, true]; case "OneMan":
case "NightLTDEXP": return ["普通", true, true];
return ["特急", true, false]; case "NightLTDEXP":
case "SPCL": return ["特急", true, false];
return ["臨時", false, false]; case "SPCL":
case "SPCL_EXP": return ["臨時", false, false];
return ["臨時特急", false, false]; case "SPCL_EXP":
case "SPCL_Rapid": return ["臨時特急", false, false];
return ["臨時快速", true, false]; case "SPCL_Rapid":
case "SPCL_Normal": return ["臨時快速", true, false];
return ["臨時", true, false]; case "SPCL_Normal":
case "Freight": return ["臨時", true, false];
return ["貨物", false, false]; case "Freight":
case "Other": return ["貨物", false, false];
switch (true) { case "Other":
case !!trainNum.includes("T"): switch (true) {
return ["単機回送", false, false]; case !!trainNum.includes("T"):
case !!trainNum.includes("R"): return ["単機回送", false, false];
case !!trainNum.includes("E"): case !!trainNum.includes("R"):
case !!trainNum.includes("L"): case !!trainNum.includes("E"):
case !!trainNum.includes("A"): case !!trainNum.includes("L"):
case !!trainNum.includes("B"): case !!trainNum.includes("A"):
return ["回送", false, false]; case !!trainNum.includes("B"):
case !!trainNum.includes("H"): return ["回送", false, false];
return ["試運転", false, false]; case !!trainNum.includes("H"):
} return ["試運転", false, false];
return ["", false, false]; }
return ["", false, false];
}
})();
switch (true) {
case customTrainData.trainName !== "":
// 特急の場合は、列車名を取得
// 列番対称データがある場合はそれから列車番号を取得
const distance = customTrainData.trainNumDistance;
const number =
distance !== null ? ` ${parseInt(trainNum) - distance}` : "";
const trainName = customTrainData.trainName + number;
return [
type,
trainName,
fontAvailable,
isOneMan,
customTrainData.infogram,
];
case trainData[trainData.length - 1] === undefined:
return [type, "", fontAvailable, isOneMan, customTrainData.infogram];
default:
// 行先がある場合は、行先を取得
return [
type,
migrateTrainName(
trainData[trainData.length - 1].split(",")[0] + "行き"
),
fontAvailable,
isOneMan,
customTrainData.infogram,
];
} }
})(); }, [trainData]);
switch (true) {
case customTrainData.trainName !== "":
// 特急の場合は、列車名を取得
// 列番対称データがある場合はそれから列車番号を取得
const distance = customTrainData.trainNumDistance;
const number = distance !== null ? ` ${parseInt(trainNum) - distance}` : "";
const trainName = customTrainData.trainName + number;
return [type, trainName, fontAvailable, isOneMan];
case trainData[trainData.length - 1] === undefined:
return [type, "", fontAvailable, isOneMan];
default:
// 行先がある場合は、行先を取得
return [
type,
migrateTrainName(
trainData[trainData.length - 1].split(",")[0] + "行き"
),
fontAvailable,
isOneMan,
];
}
}, [trainData]);
return ( return (
<View style={{ padding: 10, flexDirection: "row", alignItems: "center" }}> <View style={{ padding: 10, flexDirection: "row", alignItems: "center" }}>
@ -124,6 +134,7 @@ export const HeaderText: FC<Props> = ({
</Text> </Text>
{isOneMan && <OneManText />} {isOneMan && <OneManText />}
<Text style={textConfig}>{trainName}</Text> <Text style={textConfig}>{trainName}</Text>
<InfogramText infogram={infogram} />
</View> </View>
<View style={{ flex: 1 }} /> <View style={{ flex: 1 }} />

View File

@ -0,0 +1,18 @@
import React, { FC } from "react";
import { Text } from "react-native";
type props = {
infogram: string;
}
export const InfogramText: FC<props> = ({infogram}) => {
return (
<Text
style={{
fontSize: 20,
color: "white",
fontFamily: "JNR-font",
}}
>
{infogram}
</Text>
);
};

View File

@ -28,6 +28,7 @@ export const customTrainDataDetector = (TrainNumber: string) => {
"http://jr-shikoku.co.jp/01_trainbus/vehicle-info/shiokaze.html", "http://jr-shikoku.co.jp/01_trainbus/vehicle-info/shiokaze.html",
trainNumDistance: 0, trainNumDistance: 0,
info: "いしづちと併結 / 8000系で運転", info: "いしづちと併結 / 8000系で運転",
infogram: ""
}; };
case "2M": case "2M":
return { return {
@ -38,6 +39,7 @@ export const customTrainDataDetector = (TrainNumber: string) => {
"http://jr-shikoku.co.jp/01_trainbus/vehicle-info/shiokaze.html", "http://jr-shikoku.co.jp/01_trainbus/vehicle-info/shiokaze.html",
trainNumDistance: 0, trainNumDistance: 0,
info: "8000系で運転", info: "8000系で運転",
infogram: ""
}; };
//8000 アンパン //8000 アンパン
case "10M": case "10M":
@ -51,6 +53,7 @@ export const customTrainDataDetector = (TrainNumber: string) => {
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: "いしづちと併結 / アンパンマン列車で運転",
infogram: ""
}; };
//8600 //8600
case "8M": case "8M":
@ -69,6 +72,7 @@ export const customTrainDataDetector = (TrainNumber: string) => {
"http://jr-shikoku.co.jp/01_trainbus/vehicle-info/shiokaze.html", "http://jr-shikoku.co.jp/01_trainbus/vehicle-info/shiokaze.html",
trainNumDistance: 0, trainNumDistance: 0,
info: "いしづちと併結 / 8600系で運転", info: "いしづちと併結 / 8600系で運転",
infogram: ""
}; };
//いしづちメイン //いしづちメイン
@ -99,6 +103,7 @@ export const customTrainDataDetector = (TrainNumber: string) => {
"http://jr-shikoku.co.jp/01_trainbus/vehicle-info/ishizuchi.html", "http://jr-shikoku.co.jp/01_trainbus/vehicle-info/ishizuchi.html",
trainNumDistance: 1000, trainNumDistance: 1000,
info: "しおかぜと併結 / 8000系で運転", info: "しおかぜと併結 / 8000系で運転",
infogram: ""
}; };
//8000 アンパン //8000 アンパン
@ -113,6 +118,7 @@ export const customTrainDataDetector = (TrainNumber: string) => {
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: "しおかぜと併結 / アンパンマン列車で運転",
infogram: ""
}; };
//8600 //8600
@ -132,6 +138,7 @@ export const customTrainDataDetector = (TrainNumber: string) => {
"http://jr-shikoku.co.jp/01_trainbus/vehicle-info/ishizuchi.html", "http://jr-shikoku.co.jp/01_trainbus/vehicle-info/ishizuchi.html",
trainNumDistance: 1000, trainNumDistance: 1000,
info: "しおかぜと併結 / 8600系で運転", info: "しおかぜと併結 / 8600系で運転",
infogram: ""
}; };
//MEXP //MEXP
@ -145,6 +152,7 @@ export const customTrainDataDetector = (TrainNumber: string) => {
"http://jr-shikoku.co.jp/01_trainbus/vehicle-info/morning.html", "http://jr-shikoku.co.jp/01_trainbus/vehicle-info/morning.html",
trainNumDistance: null, trainNumDistance: null,
info: "8000系で運転", info: "8000系で運転",
infogram: ""
}; };
//8600 //8600
case "1091M": case "1091M":
@ -156,6 +164,7 @@ export const customTrainDataDetector = (TrainNumber: string) => {
"http://jr-shikoku.co.jp/01_trainbus/vehicle-info/morning.html", "http://jr-shikoku.co.jp/01_trainbus/vehicle-info/morning.html",
trainNumDistance: null, trainNumDistance: null,
info: "8600系で運転", info: "8600系で運転",
infogram: ""
}; };
//三桁いしづち //三桁いしづち
//8000 アンパン //8000 アンパン
@ -168,10 +177,21 @@ export const customTrainDataDetector = (TrainNumber: string) => {
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: "アンパンマン列車で運転",
infogram: ""
}; };
//8600 //8600
case "1043M": case "1043M":
case "1042M": case "1042M":
return {
type: "LTDEXP",
trainName: "いしづち",
trainIcon: "https://storage.haruk.in/s8600_isz.png",
infoUrl:
"http://jr-shikoku.co.jp/01_trainbus/vehicle-info/ishizuchi.html",
trainNumDistance: 940,
info: "8600系で運転",
infogram: ""
};
case "1046M": case "1046M":
return { return {
type: "LTDEXP", type: "LTDEXP",
@ -181,6 +201,7 @@ export const customTrainDataDetector = (TrainNumber: string) => {
"http://jr-shikoku.co.jp/01_trainbus/vehicle-info/ishizuchi.html", "http://jr-shikoku.co.jp/01_trainbus/vehicle-info/ishizuchi.html",
trainNumDistance: 940, trainNumDistance: 940,
info: "8600系で運転", info: "8600系で運転",
infogram: ""
}; };
//南風 2700ーマル //南風 2700ーマル
@ -209,6 +230,7 @@ export const customTrainDataDetector = (TrainNumber: string) => {
infoUrl: "http://jr-shikoku.co.jp/01_trainbus/vehicle-info/nanpu.html", infoUrl: "http://jr-shikoku.co.jp/01_trainbus/vehicle-info/nanpu.html",
trainNumDistance: 30, trainNumDistance: 30,
info: "2700系で運転", info: "2700系で運転",
infogram: ""
}; };
//2700アンパン //2700アンパン
@ -231,6 +253,7 @@ export const customTrainDataDetector = (TrainNumber: string) => {
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: "アンパンマン列車で運転",
infogram: ""
}; };
//うずしお //うずしお
@ -256,6 +279,7 @@ export const customTrainDataDetector = (TrainNumber: string) => {
"http://jr-shikoku.co.jp/01_trainbus/vehicle-info/uzushio.html", "http://jr-shikoku.co.jp/01_trainbus/vehicle-info/uzushio.html",
trainNumDistance: 3000, trainNumDistance: 3000,
info: "2700系で運転", info: "2700系で運転",
infogram: ""
}; };
//2700 二両編成 //2700 二両編成
@ -277,6 +301,7 @@ export const customTrainDataDetector = (TrainNumber: string) => {
"http://jr-shikoku.co.jp/01_trainbus/vehicle-info/uzushio.html", "http://jr-shikoku.co.jp/01_trainbus/vehicle-info/uzushio.html",
trainNumDistance: 3000, trainNumDistance: 3000,
info: "2700系で運転", info: "2700系で運転",
infogram: ""
}; };
//2600 //2600
@ -298,6 +323,7 @@ export const customTrainDataDetector = (TrainNumber: string) => {
"http://jr-shikoku.co.jp/01_trainbus/vehicle-info/uzushio.html", "http://jr-shikoku.co.jp/01_trainbus/vehicle-info/uzushio.html",
trainNumDistance: 3000, trainNumDistance: 3000,
info: "2600系で運転", info: "2600系で運転",
infogram: ""
}; };
@ -377,6 +403,7 @@ export const customTrainDataDetector = (TrainNumber: string) => {
infoUrl: "http://jr-shikoku.co.jp/01_trainbus/vehicle-info/marine.html", infoUrl: "http://jr-shikoku.co.jp/01_trainbus/vehicle-info/marine.html",
trainNumDistance: 3100, trainNumDistance: 3100,
info: "", info: "",
infogram: ""
}; };
case "3102M": case "3102M":
case "3101M": case "3101M":
@ -390,6 +417,7 @@ export const customTrainDataDetector = (TrainNumber: string) => {
infoUrl: "http://jr-shikoku.co.jp/01_trainbus/vehicle-info/marine.html", infoUrl: "http://jr-shikoku.co.jp/01_trainbus/vehicle-info/marine.html",
trainNumDistance: 3100, trainNumDistance: 3100,
info: "", info: "",
infogram: ""
}; };
//下りサンポート //下りサンポート
case "1219M": case "1219M":
@ -400,6 +428,7 @@ export const customTrainDataDetector = (TrainNumber: string) => {
infoUrl: "", infoUrl: "",
trainNumDistance: null, trainNumDistance: null,
info: " 土曜・休日は多度津-琴平間運休", info: " 土曜・休日は多度津-琴平間運休",
infogram: ""
}; };
case "111M": case "111M":
@ -419,6 +448,7 @@ export const customTrainDataDetector = (TrainNumber: string) => {
infoUrl: null, infoUrl: null,
trainNumDistance: null, trainNumDistance: null,
info: null, info: null,
infogram: ""
}; };
case "5109M": case "5109M":
case "5135M": case "5135M":
@ -430,6 +460,7 @@ export const customTrainDataDetector = (TrainNumber: string) => {
infoUrl: null, infoUrl: null,
trainNumDistance: null, trainNumDistance: null,
info: null, info: null,
infogram: ""
}; };
case "137M": case "137M":
return { return {
@ -439,6 +470,7 @@ export const customTrainDataDetector = (TrainNumber: string) => {
infoUrl: null, infoUrl: null,
trainNumDistance: null, trainNumDistance: null,
info: "土曜・休日運休", info: "土曜・休日運休",
infogram: ""
}; };
//上りサンポート //上りサンポート
case "116M": case "116M":
@ -449,6 +481,7 @@ export const customTrainDataDetector = (TrainNumber: string) => {
infoUrl: null, infoUrl: null,
trainNumDistance: null, trainNumDistance: null,
info: null, info: null,
infogram: ""
}; };
case "130M": case "130M":
@ -466,6 +499,7 @@ export const customTrainDataDetector = (TrainNumber: string) => {
infoUrl: "", infoUrl: "",
trainNumDistance: null, trainNumDistance: null,
info: "", info: "",
infogram: ""
}; };
case "5118M": case "5118M":
case "5120M": case "5120M":
@ -479,6 +513,7 @@ export const customTrainDataDetector = (TrainNumber: string) => {
infoUrl: null, infoUrl: null,
trainNumDistance: null, trainNumDistance: null,
info: null, info: null,
infogram: ""
}; };
//サンライズ瀬戸 //サンライズ瀬戸
@ -492,6 +527,7 @@ export const customTrainDataDetector = (TrainNumber: string) => {
"https://www.jr-odekake.net/train/sunriseseto_izumo/index.html", "https://www.jr-odekake.net/train/sunriseseto_izumo/index.html",
trainNumDistance: null, trainNumDistance: null,
info: "", info: "",
infogram: "ブ"
}; };
case "8041M": //琴平延長高松迄 case "8041M": //琴平延長高松迄
case "8031M": //琴平延長高松以降 case "8031M": //琴平延長高松以降
@ -503,6 +539,7 @@ export const customTrainDataDetector = (TrainNumber: string) => {
"https://www.jr-odekake.net/train/sunriseseto_izumo/index.html", "https://www.jr-odekake.net/train/sunriseseto_izumo/index.html",
trainNumDistance: null, trainNumDistance: null,
info: "琴平延長運転日", info: "琴平延長運転日",
infogram: "ブ"
}; };
//宇和海 //宇和海
@ -540,6 +577,7 @@ export const customTrainDataDetector = (TrainNumber: string) => {
infoUrl: "http://jr-shikoku.co.jp/01_trainbus/vehicle-info/uwakai.html", infoUrl: "http://jr-shikoku.co.jp/01_trainbus/vehicle-info/uwakai.html",
trainNumDistance: 1050, trainNumDistance: 1050,
info: "2000系で運転", info: "2000系で運転",
infogram: ""
}; };
//2000 アンパン込み //2000 アンパン込み
case "1058D": case "1058D":
@ -555,6 +593,7 @@ export const customTrainDataDetector = (TrainNumber: string) => {
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: "アンパン列車で運転",
infogram: ""
}; };
//しまんと //しまんと
case "2002D": case "2002D":
@ -569,6 +608,7 @@ export const customTrainDataDetector = (TrainNumber: string) => {
"http://jr-shikoku.co.jp/01_trainbus/vehicle-info/shimanto.html", "http://jr-shikoku.co.jp/01_trainbus/vehicle-info/shimanto.html",
trainNumDistance: 2000, trainNumDistance: 2000,
info: "2700系で運転", info: "2700系で運転",
infogram: ""
}; };
//あしずり 2000 //あしずり 2000
@ -588,14 +628,25 @@ export const customTrainDataDetector = (TrainNumber: string) => {
"http://jr-shikoku.co.jp/01_trainbus/vehicle-info/ashizuri.html", "http://jr-shikoku.co.jp/01_trainbus/vehicle-info/ashizuri.html",
trainNumDistance: 2070, trainNumDistance: 2070,
info: "2000系で運転", info: "2000系で運転",
infogram: ""
}; };
//あしずり 2700 //あしずり 2700
case "2072D":
case "2078D": case "2078D":
case "2084D": case "2084D":
case "2075D": case "2075D":
case "2077D": case "2077D":
return {
type: "LTDEXP",
trainName: "あしずり",
trainIcon: "https://storage.haruk.in/s2700_asi.png",
infoUrl:
"http://jr-shikoku.co.jp/01_trainbus/vehicle-info/ashizuri.html",
trainNumDistance: 2070,
info: "2700系で運転",
infogram: ""
};
case "2072D":
case "2083D": case "2083D":
return { return {
type: "LTDEXP", type: "LTDEXP",
@ -605,6 +656,7 @@ export const customTrainDataDetector = (TrainNumber: string) => {
"http://jr-shikoku.co.jp/01_trainbus/vehicle-info/ashizuri.html", "http://jr-shikoku.co.jp/01_trainbus/vehicle-info/ashizuri.html",
trainNumDistance: 2070, trainNumDistance: 2070,
info: "2700系で運転", info: "2700系で運転",
infogram: ""
}; };
//剣山 //剣山
@ -623,6 +675,7 @@ export const customTrainDataDetector = (TrainNumber: string) => {
"http://jr-shikoku.co.jp/01_trainbus/vehicle-info/tsurugisan.html", "http://jr-shikoku.co.jp/01_trainbus/vehicle-info/tsurugisan.html",
trainNumDistance: 4000, trainNumDistance: 4000,
info: "キハ185系で運転", info: "キハ185系で運転",
infogram: ""
}; };
//よしのがわトロッコ //よしのがわトロッコ
@ -636,6 +689,7 @@ export const customTrainDataDetector = (TrainNumber: string) => {
"http://jr-shikoku.co.jp/01_trainbus/event_train/yoshino_torokko.html", "http://jr-shikoku.co.jp/01_trainbus/event_train/yoshino_torokko.html",
trainNumDistance: null, trainNumDistance: null,
info: "", info: "",
infogram: ""
}; };
//岡山高松アントロ //岡山高松アントロ
@ -652,6 +706,7 @@ export const customTrainDataDetector = (TrainNumber: string) => {
"https://www.jr-eki.com/aptrain/naani/torokko_seto/jikoku.html", "https://www.jr-eki.com/aptrain/naani/torokko_seto/jikoku.html",
trainNumDistance: null, trainNumDistance: null,
info: "", info: "",
infogram: ""
}; };
//伊予灘ものがたり //伊予灘ものがたり
@ -664,6 +719,7 @@ export const customTrainDataDetector = (TrainNumber: string) => {
infoUrl: "https://iyonadamonogatari.com/", infoUrl: "https://iyonadamonogatari.com/",
trainNumDistance: null, trainNumDistance: null,
info: "", info: "",
infogram: ""
}; };
case "8092D": case "8092D":
case "8094D": case "8094D":
@ -674,6 +730,7 @@ export const customTrainDataDetector = (TrainNumber: string) => {
infoUrl: "https://iyonadamonogatari.com/", infoUrl: "https://iyonadamonogatari.com/",
trainNumDistance: null, trainNumDistance: null,
info: "", info: "",
infogram: ""
}; };
//千年ものがたり //千年ものがたり
@ -686,6 +743,7 @@ export const customTrainDataDetector = (TrainNumber: string) => {
infoUrl: "https://www.jr-shikoku.co.jp/sennenmonogatari/", infoUrl: "https://www.jr-shikoku.co.jp/sennenmonogatari/",
trainNumDistance: null, trainNumDistance: null,
info: "", info: "",
infogram: ""
}; };
//夜明けものがたり //夜明けものがたり
@ -700,6 +758,7 @@ export const customTrainDataDetector = (TrainNumber: string) => {
infoUrl: "https://www.jr-shikoku.co.jp/yoakenomonogatari/index.html", infoUrl: "https://www.jr-shikoku.co.jp/yoakenomonogatari/index.html",
trainNumDistance: null, trainNumDistance: null,
info: "", info: "",
infogram: ""
}; };
case "9174M": case "9174M":
return { return {
@ -709,6 +768,7 @@ export const customTrainDataDetector = (TrainNumber: string) => {
infoUrl: "http://jr-shikoku.co.jp/01_trainbus/vehicle-info/marine.html", infoUrl: "http://jr-shikoku.co.jp/01_trainbus/vehicle-info/marine.html",
trainNumDistance: null, trainNumDistance: null,
info: "WEST LIVE TOUR 2025臨 3/21,22のみ運転", info: "WEST LIVE TOUR 2025臨 3/21,22のみ運転",
infogram: ""
}; };
case "9395D": case "9395D":
return { return {
@ -718,6 +778,7 @@ export const customTrainDataDetector = (TrainNumber: string) => {
infoUrl: null, infoUrl: null,
trainNumDistance: null, trainNumDistance: null,
info: "WEST LIVE TOUR 2025臨 3/21,22のみ運転", info: "WEST LIVE TOUR 2025臨 3/21,22のみ運転",
infogram: ""
}; };
default: default:
if(getJRF(TrainNumber) !== null){ if(getJRF(TrainNumber) !== null){
@ -727,7 +788,8 @@ export const customTrainDataDetector = (TrainNumber: string) => {
trainIcon: "https://storage.haruk.in/ef210a.png", trainIcon: "https://storage.haruk.in/ef210a.png",
infoUrl: null, infoUrl: null,
trainNumDistance: null, trainNumDistance: null,
info: getJRF(TrainNumber), info: "",
infogram: "",
}; };
} }
else if ( else if (
@ -742,6 +804,7 @@ export const customTrainDataDetector = (TrainNumber: string) => {
infoUrl: null, infoUrl: null,
trainNumDistance: null, trainNumDistance: null,
info: null, info: null,
infogram: ""
}; };
else if ( else if (
new RegExp(/^[1-9]\d\d[DM]$/).test(TrainNumber) || new RegExp(/^[1-9]\d\d[DM]$/).test(TrainNumber) ||
@ -755,6 +818,7 @@ export const customTrainDataDetector = (TrainNumber: string) => {
infoUrl: null, infoUrl: null,
trainNumDistance: null, trainNumDistance: null,
info: null, info: null,
infogram: ""
}; };
} else { } else {
return { return {
@ -764,6 +828,7 @@ export const customTrainDataDetector = (TrainNumber: string) => {
infoUrl: null, infoUrl: null,
trainNumDistance: null, trainNumDistance: null,
info: null, info: null,
infogram: ""
}; };
} }
} }