列車データの提供元を完全にサーバーサイドに移行
This commit is contained in:
parent
67f40b55c1
commit
db2547028d
2
App.js
2
App.js
@ -34,13 +34,13 @@ export default function App() {
|
||||
useEffect(() => UpdateAsync(), []);
|
||||
|
||||
const ProviderTree = buildProvidersTree([
|
||||
AllTrainDiagramProvider,
|
||||
NotificationProvider,
|
||||
StationListProvider,
|
||||
FavoriteStationProvider,
|
||||
TrainDelayDataProvider,
|
||||
CurrentTrainProvider,
|
||||
AreaInfoProvider,
|
||||
AllTrainDiagramProvider,
|
||||
BusAndTrainDataProvider,
|
||||
TrainMenuProvider,
|
||||
SheetProvider,
|
||||
|
@ -12,7 +12,6 @@ import {
|
||||
import { SheetManager } from "react-native-actions-sheet";
|
||||
import { useScrollHandlers } from "react-native-actions-sheet";
|
||||
import { AS } from "../../storageControl";
|
||||
import trainList from "../../assets/originData/trainList";
|
||||
import { lineListPair } from "../../lib/getStationList";
|
||||
import { useCurrentTrain } from "../../stateBox/useCurrentTrain";
|
||||
import { checkDuplicateTrainData } from "../../lib/checkDuplicateTrainData";
|
||||
@ -35,6 +34,7 @@ import { useTrainMenu } from "../../stateBox/useTrainMenu";
|
||||
import { HeaderText } from "./EachTrainInfoCore/HeaderText";
|
||||
import { useStationList } from "../../stateBox/useStationList";
|
||||
import { stationIDPair } from "../../lib/getStationList2";
|
||||
import { useAllTrainDiagram } from "@/stateBox/useAllTrainDiagram";
|
||||
|
||||
export const EachTrainInfoCore = ({
|
||||
actionSheetRef,
|
||||
@ -45,6 +45,7 @@ export const EachTrainInfoCore = ({
|
||||
}) => {
|
||||
const { currentTrain } = useCurrentTrain();
|
||||
const { originalStationList, stationList } = useStationList();
|
||||
const { allTrainDiagram: trainList } = useAllTrainDiagram();
|
||||
const { setTrainInfo } = useTrainMenu();
|
||||
const [currentTrainData, setCurrentTrainData] = useState();
|
||||
|
||||
|
8
menu.js
8
menu.js
@ -17,7 +17,6 @@ import { widthPercentageToDP as wp } from "react-native-responsive-screen";
|
||||
import { Ionicons } from "@expo/vector-icons";
|
||||
import LottieView from "lottie-react-native";
|
||||
import { parseAllTrainDiagram } from "./lib/parseAllTrainDiagram";
|
||||
import trainList from "./assets/originData/trainList";
|
||||
|
||||
import LED_vision from "./components/発車時刻表/LED_vidion";
|
||||
import Sign from "./components/駅名表/Sign";
|
||||
@ -37,6 +36,7 @@ import { StationNumber } from "./components/Menu/StationPagination";
|
||||
import lineColorList from "./assets/originData/lineColorList";
|
||||
import { AS } from "./storageControl";
|
||||
import { SimpleDot } from "./components/Menu/SimpleDot";
|
||||
import { useAllTrainDiagram } from "./stateBox/useAllTrainDiagram";
|
||||
|
||||
export default function Menu({ getCurrentTrain }) {
|
||||
const { navigate } = useNavigation();
|
||||
@ -131,11 +131,7 @@ export default function Menu({ getCurrentTrain }) {
|
||||
}, [selectedCurrentStation]);
|
||||
|
||||
//全列車ダイヤリストを作成するuseEffect
|
||||
const [trainDiagram, setTrainDiagram] = useState(null); // 全列車のダイヤを列番ベースで整理
|
||||
useEffect(() => {
|
||||
//全列車リストを生成する副作用[無条件初回実行]
|
||||
setTrainDiagram(trainList);
|
||||
}, []);
|
||||
const { allTrainDiagram:trainDiagram} = useAllTrainDiagram();
|
||||
|
||||
const oPSign = () => {
|
||||
const payload = {
|
||||
|
@ -15,17 +15,9 @@ export const AllTrainDiagramProvider = ({ children }) => {
|
||||
() => allTrainDiagram && setKeyList(Object.keys(allTrainDiagram)),
|
||||
[allTrainDiagram]
|
||||
);
|
||||
const customData = {
|
||||
"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":"臨時列車,提,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(() => {
|
||||
fetch(
|
||||
"https://n8n.haruk.in/webhook/CrowdTh%E2%82%AC71m3Ra7!ngLead%E2%82%ACr$"
|
||||
"https://n8n.haruk.in/webhook/JR-shikoku-diagram-migrate-original"
|
||||
)
|
||||
.then((res) => res.json())
|
||||
.then((res) => res.data)
|
||||
@ -37,10 +29,7 @@ export const AllTrainDiagramProvider = ({ children }) => {
|
||||
});
|
||||
return data;
|
||||
})
|
||||
.then((res) => {
|
||||
Object.assign(res, customData);
|
||||
setAllTrainDiagram(res);
|
||||
})
|
||||
.then((res) => setAllTrainDiagram(res))
|
||||
.catch((d) => {
|
||||
alert("allTrainDiagram取得エラー/再取得します");
|
||||
alert(d);
|
||||
@ -57,7 +46,6 @@ export const AllTrainDiagramProvider = ({ children }) => {
|
||||
return data;
|
||||
})
|
||||
.then((res) => {
|
||||
Object.assign(res, customData);
|
||||
setAllTrainDiagram(res);
|
||||
});
|
||||
});
|
||||
|
@ -1,6 +1,6 @@
|
||||
import React, { createContext, useContext, useState, useEffect } from "react";
|
||||
import trainList from "../assets/originData/trainList";
|
||||
import { AS } from "../storageControl";
|
||||
import { useAllTrainDiagram } from "./useAllTrainDiagram";
|
||||
const initialState = {
|
||||
busAndTrainData: [],
|
||||
setBusAndTrainData: () => {},
|
||||
@ -17,6 +17,7 @@ export const useBusAndTrainData = () => {
|
||||
};
|
||||
|
||||
export const BusAndTrainDataProvider = ({ children }) => {
|
||||
const { allTrainDiagram: trainList } = useAllTrainDiagram();
|
||||
const [busAndTrainData, setBusAndTrainData] = useState([]);
|
||||
const [trainPairData, setTrainPairData] = useState([]);
|
||||
useEffect(() => {
|
||||
@ -79,7 +80,7 @@ export const BusAndTrainDataProvider = ({ children }) => {
|
||||
case "139M":
|
||||
returnArray.push("143M");
|
||||
break;
|
||||
// 土讃線琴平界隈
|
||||
// 土讃線琴平界隈
|
||||
case "1263M":
|
||||
returnArray.push("4263M");
|
||||
break;
|
||||
@ -130,7 +131,7 @@ export const BusAndTrainDataProvider = ({ children }) => {
|
||||
case "484D":
|
||||
returnArray.push("583D");
|
||||
break;
|
||||
// reverse.
|
||||
// reverse.
|
||||
case "525D":
|
||||
returnArray.push("4430D");
|
||||
break;
|
||||
@ -173,7 +174,7 @@ export const BusAndTrainDataProvider = ({ children }) => {
|
||||
case "583D":
|
||||
returnArray.push("484D");
|
||||
break;
|
||||
//上り
|
||||
//上り
|
||||
case "4520D":
|
||||
returnArray.push("4314D");
|
||||
break;
|
||||
@ -215,7 +216,7 @@ export const BusAndTrainDataProvider = ({ children }) => {
|
||||
break;
|
||||
case "564D":
|
||||
returnArray.push("475D");
|
||||
break;
|
||||
break;
|
||||
case "568D":
|
||||
returnArray.push("5479D");
|
||||
break;
|
||||
@ -225,7 +226,7 @@ export const BusAndTrainDataProvider = ({ children }) => {
|
||||
case "576D":
|
||||
returnArray.push("4368D");
|
||||
break;
|
||||
// reverse.
|
||||
// reverse.
|
||||
case "4314D":
|
||||
returnArray.push("4520D");
|
||||
break;
|
||||
@ -278,11 +279,11 @@ export const BusAndTrainDataProvider = ({ children }) => {
|
||||
returnArray.push("576D");
|
||||
break;
|
||||
}
|
||||
if(new RegExp(/^4[1-9]\d\d[DM]$/).test(trainNum)){
|
||||
if (new RegExp(/^4[1-9]\d\d[DM]$/).test(trainNum)) {
|
||||
if (trainList["5" + trainNum.substring(1)])
|
||||
returnArray.push("5" + trainNum.substring(1));
|
||||
}
|
||||
if(new RegExp(/^5[1-7]\d\d[DM]$/).test(trainNum)){
|
||||
if (new RegExp(/^5[1-7]\d\d[DM]$/).test(trainNum)) {
|
||||
if (trainList["4" + trainNum.substring(1)])
|
||||
returnArray.push("4" + trainNum.substring(1));
|
||||
}
|
||||
@ -302,11 +303,13 @@ export const BusAndTrainDataProvider = ({ children }) => {
|
||||
}
|
||||
|
||||
if (!returnArray.length) return [];
|
||||
const TDArray = returnArray.filter(d => trainList.hasOwnProperty(d)).map((d) => {
|
||||
const TD = trainList[d];
|
||||
if (!TD) return;
|
||||
return { id: d, TrainData: TD.split("#").filter((d) => d != "") };
|
||||
});
|
||||
const TDArray = returnArray
|
||||
.filter((d) => trainList.hasOwnProperty(d))
|
||||
.map((d) => {
|
||||
const TD = trainList[d];
|
||||
if (!TD) return;
|
||||
return { id: d, TrainData: TD.split("#").filter((d) => d != "") };
|
||||
});
|
||||
return TDArray;
|
||||
};
|
||||
return (
|
||||
|
Loading…
Reference in New Issue
Block a user