列車アイコンの追加

This commit is contained in:
harukin-expo-dev-env 2024-12-27 02:41:46 +00:00
parent 80df2ba040
commit d1be37e3be
2 changed files with 124 additions and 47 deletions

View File

@ -5,6 +5,7 @@ import dayjs from "dayjs";
import { useInterval } from "../../../lib/useInterval";
import { Icon } from "@expo/vector-icons/build/createIconSet";
import { SheetManager } from "react-native-actions-sheet";
import { customTrainDataDetector } from "../../custom-train-data";
type GlyphNames = ComponentProps<typeof Ionicons>["name"];
@ -20,8 +21,14 @@ type apt = {
export const TrainIconStatus: FC<Props> = ({ data, navigate, from }) => {
const [trainIcon, setTrainIcon] = useState(null);
const [anpanmanStatus, setAnpanmanStatus] = useState<apt>();
const [address, setAddress] = useState("");
useEffect(() => {
if (!data.trainNum) return;
const { trainIcon, infoUrl } = customTrainDataDetector(data.trainNum);
if (trainIcon) setTrainIcon(trainIcon);
if (infoUrl) setAddress(infoUrl);
switch (data.trainNum) {
case "32D":
case "36D":
@ -33,11 +40,6 @@ export const TrainIconStatus: FC<Props> = ({ data, navigate, from }) => {
case "45D":
case "49D":
case "57D":
setTrainIcon(
`https://n8n.haruk.in/webhook/dosan-anpanman-pictures.png?trainNum=${
data.trainNum
}&day=${dayjs().format("yyyy-MM-DD")}`
);
fetch(
`https://n8n.haruk.in/webhook/dosan-anpanman?trainNum=${
data.trainNum
@ -72,7 +74,7 @@ export const TrainIconStatus: FC<Props> = ({ data, navigate, from }) => {
<TouchableOpacity
onPress={() => {
navigate("howto", {
info: "https://www.jr-eki.com/aptrain/naani/dosan/jikoku.html",
info: address,
goTo: from == "LED" ? "menu" : from,
});
SheetManager.hide("EachTrainInfo");
@ -81,8 +83,8 @@ export const TrainIconStatus: FC<Props> = ({ data, navigate, from }) => {
{move ? (
<Image
source={{ uri: trainIcon }}
style={{ height: 30, width: 30, margin: 5 }}
resizeMethod="resize"
style={{ height: 30, width: 25, margin: 5 }}
resizeMethod="scale"
/>
) : (
<Ionicons {...anpanmanStatus} size={30} style={{ margin: 5 }} />

View File

@ -1,3 +1,4 @@
import dayjs from "dayjs";
export const customTrainDataDetector = (TrainNumber: string) => {
switch (TrainNumber) {
//しおかぜメイン
@ -22,7 +23,9 @@ export const customTrainDataDetector = (TrainNumber: string) => {
return {
type: "LTDEXP",
trainName: "しおかぜ",
trainIcon: "http://www.trainfrontview.net/b/s8000nr.png",
trainIcon: "https://storage.haruk.in/s8000nr.png",
infoUrl:
"http://jr-shikoku.co.jp/01_trainbus/vehicle-info/shiokaze.html",
trainNumDistance: 0,
info: "いしづちと併結 / 8000系で運転",
};
@ -30,19 +33,22 @@ export const customTrainDataDetector = (TrainNumber: string) => {
return {
type: "LTDEXP",
trainName: "しおかぜ",
trainIcon: "http://www.trainfrontview.net/b/s8000nr.png",
trainIcon: "https://storage.haruk.in/s8000nr.png",
infoUrl:
"http://jr-shikoku.co.jp/01_trainbus/vehicle-info/shiokaze.html",
trainNumDistance: 0,
info: "8000系で運転",
};
//8000 アンパン
case "10M":
case "22M":
case "9M":
case "10M":
case "21M":
return {
type: "LTDEXP",
trainName: "しおかぜ",
trainIcon: "http://www.trainfrontview.net/f/s8000ap.png",
trainIcon: "https://storage.haruk.in/s8000ap.png",
infoUrl: "https://www.jr-eki.com/aptrain/naani/yosan/train.html",
trainNumDistance: 0,
info: "いしづちと併結 / アンパンマン列車で運転",
};
@ -58,7 +64,9 @@ export const customTrainDataDetector = (TrainNumber: string) => {
return {
type: "LTDEXP",
trainName: "しおかぜ",
trainIcon: "http://www.trainfrontview.net/b/s8600.png",
trainIcon: "https://storage.haruk.in/s8600.png",
infoUrl:
"http://jr-shikoku.co.jp/01_trainbus/vehicle-info/shiokaze.html",
trainNumDistance: 0,
info: "いしづちと併結 / 8600系で運転",
};
@ -86,7 +94,9 @@ export const customTrainDataDetector = (TrainNumber: string) => {
return {
type: "LTDEXP",
trainName: "いしづち",
trainIcon: "http://www.trainfrontview.net/b/s8000no.png",
trainIcon: "https://storage.haruk.in/s8000no.png",
infoUrl:
"http://jr-shikoku.co.jp/01_trainbus/vehicle-info/ishizuchi.html",
trainNumDistance: 1000,
info: "しおかぜと併結 / 8000系で運転",
};
@ -99,7 +109,8 @@ export const customTrainDataDetector = (TrainNumber: string) => {
return {
type: "LTDEXP",
trainName: "いしづち",
trainIcon: "http://www.trainfrontview.net/f/s8000ap.png",
trainIcon: "https://storage.haruk.in/s8000ap.png",
infoUrl: "https://www.jr-eki.com/aptrain/naani/yosan/train.html",
trainNumDistance: 1000,
info: "しおかぜと併結 / アンパンマン列車で運転",
};
@ -116,7 +127,9 @@ export const customTrainDataDetector = (TrainNumber: string) => {
return {
type: "LTDEXP",
trainName: "いしづち",
trainIcon: "http://www.trainfrontview.net/b/s8600_isz.png",
trainIcon: "https://storage.haruk.in/s8600_isz.png",
infoUrl:
"http://jr-shikoku.co.jp/01_trainbus/vehicle-info/ishizuchi.html",
trainNumDistance: 1000,
info: "しおかぜと併結 / 8600系で運転",
};
@ -127,7 +140,9 @@ export const customTrainDataDetector = (TrainNumber: string) => {
return {
type: "LTDEXP",
trainName: "モーニングEXP高松",
trainIcon: "http://www.trainfrontview.net/b/s8000no.png",
trainIcon: "https://storage.haruk.in/s8000nr.png",
infoUrl:
"http://jr-shikoku.co.jp/01_trainbus/vehicle-info/morning.html",
trainNumDistance: null,
info: "8000系で運転",
};
@ -136,7 +151,9 @@ export const customTrainDataDetector = (TrainNumber: string) => {
return {
type: "LTDEXP",
trainName: "モーニングEXP松山",
trainIcon: "http://www.trainfrontview.net/b/s8600_isz.png",
trainIcon: "https://storage.haruk.in/s8600_isz.png",
infoUrl:
"http://jr-shikoku.co.jp/01_trainbus/vehicle-info/morning.html",
trainNumDistance: null,
info: "8600系で運転",
};
@ -147,7 +164,8 @@ export const customTrainDataDetector = (TrainNumber: string) => {
return {
type: "LTDEXP",
trainName: "いしづち",
trainIcon: "http://www.trainfrontview.net/f/s8000ap.png",
trainIcon: "https://storage.haruk.in/s8000ap.png",
infoUrl: "https://www.jr-eki.com/aptrain/naani/yosan/train.html",
trainNumDistance: 940,
info: "アンパンマン列車で運転",
};
@ -158,7 +176,9 @@ export const customTrainDataDetector = (TrainNumber: string) => {
return {
type: "LTDEXP",
trainName: "いしづち",
trainIcon: "http://www.trainfrontview.net/b/s8600_isz.png",
trainIcon: "https://storage.haruk.in/s8600_isz.png",
infoUrl:
"http://jr-shikoku.co.jp/01_trainbus/vehicle-info/ishizuchi.html",
trainNumDistance: 940,
info: "8600系で運転",
};
@ -171,7 +191,8 @@ export const customTrainDataDetector = (TrainNumber: string) => {
return {
type: "LTDEXP",
trainName: "南風",
trainIcon: "http://www.trainfrontview.net/b/s2700.png",
trainIcon: "https://storage.haruk.in/s2700.png",
infoUrl: "http://jr-shikoku.co.jp/01_trainbus/vehicle-info/nanpu.html",
trainNumDistance: 30,
info: "しまんとと併結 / 2700系で運転",
};
@ -180,7 +201,8 @@ export const customTrainDataDetector = (TrainNumber: string) => {
return {
type: "LTDEXP",
trainName: "南風",
trainIcon: "http://www.trainfrontview.net/b/s2700.png",
trainIcon: "https://storage.haruk.in/s2700.png",
infoUrl: "http://jr-shikoku.co.jp/01_trainbus/vehicle-info/nanpu.html",
trainNumDistance: 30,
info: "うずしおと併結 / 2700系で運転",
};
@ -199,7 +221,8 @@ export const customTrainDataDetector = (TrainNumber: string) => {
return {
type: "LTDEXP",
trainName: "南風",
trainIcon: "http://www.trainfrontview.net/b/s2700.png",
trainIcon: "https://storage.haruk.in/s2700.png",
infoUrl: "http://jr-shikoku.co.jp/01_trainbus/vehicle-info/nanpu.html",
trainNumDistance: 30,
info: "2700系で運転",
};
@ -210,22 +233,29 @@ export const customTrainDataDetector = (TrainNumber: string) => {
return {
type: "LTDEXP",
trainName: "南風",
trainIcon: "http://www.trainfrontview.net/f/s2700apr.png",
trainIcon: `https://n8n.haruk.in/webhook/dosan-anpanman-pictures.png?trainNum=${TrainNumber}&day=${dayjs().format(
"yyyy-MM-DD"
)}`,
infoUrl: "https://www.jr-eki.com/aptrain/naani/dosan/train.html",
trainNumDistance: 30,
info: "うずしおと連結 / アンパンマン列車で運転",
};
case "32D":
case "36D":
case "44D":
case "48D":
case "56D":
case "33D":
case "37D":
case "45D":
case "49D":
case "57D":
return {
type: "LTDEXP",
trainName: "南風",
trainIcon: "http://www.trainfrontview.net/f/s2700apr.png",
trainIcon: `https://n8n.haruk.in/webhook/dosan-anpanman-pictures.png?trainNum=${TrainNumber}&day=${dayjs().format(
"yyyy-MM-DD"
)}`,
trainNumDistance: 30,
info: "アンパンマン列車で運転",
};
@ -239,7 +269,9 @@ export const customTrainDataDetector = (TrainNumber: string) => {
return {
type: "LTDEXP",
trainName: "うずしお",
trainIcon: "http://www.trainfrontview.net/b/s2700_uzu.png",
trainIcon: "https://storage.haruk.in/s2700_uzu.png",
infoUrl:
"http://jr-shikoku.co.jp/01_trainbus/vehicle-info/uzushio.html",
trainNumDistance: 5000,
info: "南風と併結 / 高松-宇多津間進行方向逆転 / 2700系で運転",
};
@ -255,7 +287,9 @@ export const customTrainDataDetector = (TrainNumber: string) => {
return {
type: "LTDEXP",
trainName: "うずしお",
trainIcon: "http://www.trainfrontview.net/b/s2700_uzu.png",
trainIcon: "https://storage.haruk.in/s2700_uzu.png",
infoUrl:
"http://jr-shikoku.co.jp/01_trainbus/vehicle-info/uzushio.html",
trainNumDistance: 3000,
info: "2700系で運転",
};
@ -273,7 +307,9 @@ export const customTrainDataDetector = (TrainNumber: string) => {
return {
type: "LTDEXP",
trainName: "うずしお",
trainIcon: "http://www.trainfrontview.net/b/s2700_uzu.png",
trainIcon: "https://storage.haruk.in/s2700_uzu.png",
infoUrl:
"http://jr-shikoku.co.jp/01_trainbus/vehicle-info/uzushio.html",
trainNumDistance: 3000,
info: "2700系で運転",
};
@ -292,7 +328,9 @@ export const customTrainDataDetector = (TrainNumber: string) => {
return {
type: "LTDEXP",
trainName: "うずしお",
trainIcon: "http://www.trainfrontview.net/b/s2600.png",
trainIcon: "https://storage.haruk.in/s2600.png",
infoUrl:
"http://jr-shikoku.co.jp/01_trainbus/vehicle-info/uzushio.html",
trainNumDistance: 3000,
info: "2600系で運転",
};
@ -303,7 +341,9 @@ export const customTrainDataDetector = (TrainNumber: string) => {
return {
type: "LTDEXP",
trainName: "うずしお",
trainIcon: "http://www.trainfrontview.net/b/s185tu_uzu.png",
trainIcon: "https://storage.haruk.in/s185tu_uzu.png",
infoUrl:
"http://jr-shikoku.co.jp/01_trainbus/vehicle-info/uzushio.html",
trainNumDistance: 3000,
info: "キハ185系で運転",
};
@ -380,7 +420,8 @@ export const customTrainDataDetector = (TrainNumber: string) => {
return {
type: "Rapid",
trainName: "マリンライナー",
trainIcon: "http://www.trainfrontview.net/b/s5001.png",
trainIcon: "https://storage.haruk.in/s5001.png",
infoUrl: "http://jr-shikoku.co.jp/01_trainbus/vehicle-info/marine.html",
trainNumDistance: 3100,
info: "",
};
@ -392,7 +433,8 @@ export const customTrainDataDetector = (TrainNumber: string) => {
return {
type: "Rapid",
trainName: "マリンライナー",
trainIcon: "http://www.trainfrontview.net/b/s5001k.png",
trainIcon: "https://storage.haruk.in/s5001k.png",
infoUrl: "http://jr-shikoku.co.jp/01_trainbus/vehicle-info/marine.html",
trainNumDistance: 3100,
info: "",
};
@ -403,7 +445,9 @@ export const customTrainDataDetector = (TrainNumber: string) => {
return {
type: "NightLTDEXP",
trainName: "サンライズ瀬戸",
trainIcon: "http://www.trainfrontview.net/b/w285.png",
trainIcon: "https://storage.haruk.in/w285.png",
infoUrl:
"https://www.jr-odekake.net/train/sunriseseto_izumo/index.html",
trainNumDistance: null,
info: "",
};
@ -412,7 +456,9 @@ export const customTrainDataDetector = (TrainNumber: string) => {
return {
type: "NightLTDEXP",
trainName: "サンライズ瀬戸",
trainIcon: "http://www.trainfrontview.net/b/w285.png",
trainIcon: "https://storage.haruk.in/w285.png",
infoUrl:
"https://www.jr-odekake.net/train/sunriseseto_izumo/index.html",
trainNumDistance: null,
info: "琴平延長運転日",
};
@ -446,7 +492,8 @@ export const customTrainDataDetector = (TrainNumber: string) => {
return {
type: "LTDEXP",
trainName: "宇和海",
trainIcon: "http://www.trainfrontview.net/b/s2000_uwa.png",
trainIcon: "https://storage.haruk.in/s2000_uwa.png",
infoUrl: "http://jr-shikoku.co.jp/01_trainbus/vehicle-info/uwakai.html",
trainNumDistance: 1050,
info: "2000系で運転",
};
@ -462,7 +509,8 @@ export const customTrainDataDetector = (TrainNumber: string) => {
return {
type: "LTDEXP",
trainName: "宇和海",
trainIcon: "http://www.trainfrontview.net/f/s2002a.png",
trainIcon: "https://storage.haruk.in/s2002a.png",
infoUrl: "http://jr-shikoku.co.jp/01_trainbus/vehicle-info/uwakai.html",
trainNumDistance: 1050,
info: "アンパン列車で運転",
};
@ -474,7 +522,9 @@ export const customTrainDataDetector = (TrainNumber: string) => {
return {
type: "LTDEXP",
trainName: "しまんと",
trainIcon: "http://www.trainfrontview.net/b/s2700_smn.png",
trainIcon: "https://storage.haruk.in/s2700_smn.png",
infoUrl:
"http://jr-shikoku.co.jp/01_trainbus/vehicle-info/shimanto.html",
trainNumDistance: 2000,
info: "2700系で運転",
};
@ -485,7 +535,9 @@ export const customTrainDataDetector = (TrainNumber: string) => {
return {
type: "LTDEXP",
trainName: "しまんと",
trainIcon: "http://www.trainfrontview.net/b/s2700_smn.png",
trainIcon: "https://storage.haruk.in/s2000_smn.png",
infoUrl:
"http://jr-shikoku.co.jp/01_trainbus/vehicle-info/shimanto.html",
trainNumDistance: 2000,
info: "南風と併結 / 2700系で運転",
};
@ -502,7 +554,9 @@ export const customTrainDataDetector = (TrainNumber: string) => {
return {
type: "LTDEXP",
trainName: "あしずり",
trainIcon: "http://www.trainfrontview.net/b/s2000_asi.png",
trainIcon: "https://storage.haruk.in/s2000_asi.png",
infoUrl:
"http://jr-shikoku.co.jp/01_trainbus/vehicle-info/ashizuri.html",
trainNumDistance: 2070,
info: "2000系で運転",
};
@ -518,7 +572,9 @@ export const customTrainDataDetector = (TrainNumber: string) => {
return {
type: "LTDEXP",
trainName: "あしずり",
trainIcon: "http://www.trainfrontview.net/b/s2700_asi.png",
trainIcon: "https://storage.haruk.in/s2700_asi.png",
infoUrl:
"http://jr-shikoku.co.jp/01_trainbus/vehicle-info/ashizuri.html",
trainNumDistance: 2070,
info: "2700系で運転",
};
@ -538,7 +594,9 @@ export const customTrainDataDetector = (TrainNumber: string) => {
return {
type: "LTDEXP",
trainName: "剣山",
trainIcon: "http://www.trainfrontview.net/b/s185tu.png",
trainIcon: "https://storage.haruk.in/s185tu.png",
infoUrl:
"http://jr-shikoku.co.jp/01_trainbus/vehicle-info/tsurugisan.html",
trainNumDistance: 4000,
info: "キハ185系で運転",
};
@ -549,7 +607,8 @@ export const customTrainDataDetector = (TrainNumber: string) => {
return {
type: "LTDEXP",
trainName: "むろと",
trainIcon: "http://www.trainfrontview.net/b/s185_mrt.png",
trainIcon: "https://storage.haruk.in/s185_mrt.png",
infoUrl: "http://jr-shikoku.co.jp/01_trainbus/vehicle-info/muroto.html",
trainNumDistance: 5050,
info: "キハ185系で運転",
};
@ -560,7 +619,9 @@ export const customTrainDataDetector = (TrainNumber: string) => {
return {
type: "LTDEXP",
trainName: "よしのがわトロッコ",
trainIcon: "http://www.trainfrontview.net/f/s185to_ai.png",
trainIcon: "https://storage.haruk.in/s185to_ai.png",
infoUrl:
"http://jr-shikoku.co.jp/01_trainbus/event_train/yoshino_torokko.html",
trainNumDistance: null,
info: "",
};
@ -574,7 +635,9 @@ export const customTrainDataDetector = (TrainNumber: string) => {
return {
type: "LTDEXP",
trainName: "アンパンマントロッコ",
trainIcon: "http://www.trainfrontview.net/f/s32to4.png",
trainIcon: "https://storage.haruk.in/s32to4.png",
infoUrl:
"https://www.jr-eki.com/aptrain/naani/torokko_seto/jikoku.html",
trainNumDistance: null,
info: "",
};
@ -582,12 +645,21 @@ export const customTrainDataDetector = (TrainNumber: string) => {
//伊予灘ものがたり
case "8091D":
case "8093D":
return {
type: "LTDEXP",
trainName: "伊予灘ものがたり",
trainIcon: "https://storage.haruk.in/s185iyor.png",
infoUrl: "https://iyonadamonogatari.com/",
trainNumDistance: null,
info: "",
};
case "8092D":
case "8094D":
return {
type: "LTDEXP",
trainName: "伊予灘ものがたり",
trainIcon: "http://www.trainfrontview.net/b/s185iyoy.png",
trainIcon: "https://storage.haruk.in/s185iyoy.png",
infoUrl: "https://iyonadamonogatari.com/",
trainNumDistance: null,
info: "",
};
@ -598,7 +670,8 @@ export const customTrainDataDetector = (TrainNumber: string) => {
return {
type: "LTDEXP",
trainName: "四国まんなか千年ものがたり",
trainIcon: "http://www.trainfrontview.net/b/s185mm1.png",
trainIcon: "https://storage.haruk.in/s185mm1.png",
infoUrl: "https://www.jr-shikoku.co.jp/sennenmonogatari/",
trainNumDistance: null,
info: "",
};
@ -611,7 +684,8 @@ export const customTrainDataDetector = (TrainNumber: string) => {
return {
type: "LTDEXP",
trainName: "時代の夜明けのものがたり",
trainIcon: "http://www.trainfrontview.net/b/s185ym1.png",
trainIcon: "https://storage.haruk.in/s185ym1.png",
infoUrl: "https://www.jr-shikoku.co.jp/yoakenomonogatari/index.html",
trainNumDistance: null,
info: "",
};
@ -621,6 +695,7 @@ export const customTrainDataDetector = (TrainNumber: string) => {
type: "Normal",
trainName: "",
trainIcon: null,
infoUrl: null,
trainNumDistance: null,
info: null,
};