種別表記/出発済みを消去/当駅止まりフィルタリング追加
This commit is contained in:
parent
3ee1d1f5ca
commit
c4a28d6c39
398
components/custom-train-data.js
Normal file
398
components/custom-train-data.js
Normal file
@ -0,0 +1,398 @@
|
||||
export const customTrainDataDetector = (TrainNumber) =>{
|
||||
switch(TrainNumber){
|
||||
//しおかぜメイン
|
||||
//8000 ノーマル
|
||||
case "2M":
|
||||
case "4M":
|
||||
case "6M":
|
||||
case "14M":
|
||||
case "16M":
|
||||
case "18M":
|
||||
case "26M":
|
||||
case "28M":
|
||||
case "30M":
|
||||
case "1M":
|
||||
case "3M":
|
||||
case "5M":
|
||||
case "13M":
|
||||
case "15M":
|
||||
case "17M":
|
||||
case "25M":
|
||||
case "27M":
|
||||
case "29M":
|
||||
return {type:"LTDEXP",trainName:"しおかぜ",trainIcon:'http://www.trainfrontview.net/b/s8000nr.png',trainNumDistance:0,info:"いしづちと併結 / 8000系で運転"};
|
||||
//8000 アンパン
|
||||
case "10M":
|
||||
case "22M":
|
||||
case "9M":
|
||||
case "21M":
|
||||
return {type:"LTDEXP",trainName:"しおかぜ",trainIcon:'http://www.trainfrontview.net/f/s8000ap.png',trainNumDistance:0,info:"いしづちと併結 / アンパンマン列車で運転"};
|
||||
//8600
|
||||
case "8M":
|
||||
case "12M":
|
||||
case "20M":
|
||||
case "24M":
|
||||
case "7M":
|
||||
case "11M":
|
||||
case "19M":
|
||||
case "23M":
|
||||
return {type:"LTDEXP",trainName:"しおかぜ",trainIcon:'http://www.trainfrontview.net/b/s8600.png',trainNumDistance:0,info:"いしづちと併結 / 8600系で運転"};
|
||||
|
||||
//いしづちメイン
|
||||
//8000 ノーマル
|
||||
|
||||
case "1004M":
|
||||
case "1006M":
|
||||
case "1014M":
|
||||
case "1016M":
|
||||
case "1018M":
|
||||
case "1026M":
|
||||
case "1028M":
|
||||
case "1030M":
|
||||
case "1001M":
|
||||
case "1003M":
|
||||
case "1005M":
|
||||
case "1013M":
|
||||
case "1015M":
|
||||
case "1017M":
|
||||
case "1025M":
|
||||
case "1027M":
|
||||
case "1029M":
|
||||
return {type:"LTDEXP",trainName:"いしづち",trainIcon:'http://www.trainfrontview.net/b/s8000no.png',trainNumDistance:1000,info:"しおかぜと併結 / 8000系で運転"};
|
||||
|
||||
//8000 アンパン
|
||||
case "1010M":
|
||||
case "1022M":
|
||||
case "1009M":
|
||||
case "1021M":
|
||||
return {type:"LTDEXP",trainName:"いしづち",trainIcon:'http://www.trainfrontview.net/f/s8000ap.png',trainNumDistance:1000,info:"しおかぜと併結 / アンパンマン列車で運転"};
|
||||
|
||||
//8600
|
||||
case "1008M":
|
||||
case "1012M":
|
||||
case "1020M":
|
||||
case "1024M":
|
||||
case "1007M":
|
||||
case "1011M":
|
||||
case "1019M":
|
||||
case "1023M":
|
||||
return {type:"LTDEXP",trainName:"いしづち",trainIcon:'http://www.trainfrontview.net/b/s8600_isz.png',trainNumDistance:1000,info:"しおかぜと併結 / 8600系で運転"};
|
||||
|
||||
//MEXP
|
||||
//8000
|
||||
case "1092M":
|
||||
return {type:"LTDEXP",trainName:"モーニングEXP高松",trainIcon:'http://www.trainfrontview.net/b/s8000no.png',trainNumDistance:null,info:"8000系で運転"};
|
||||
//8600
|
||||
case "1091M":
|
||||
return {type:"LTDEXP",trainName:"モーニングEXP松山",trainIcon:'http://www.trainfrontview.net/b/s8600_isz.png',trainNumDistance:null,info:"8600系で運転"};
|
||||
//三桁いしづち
|
||||
//8000 アンパン
|
||||
case "1041M":
|
||||
case "1044M":
|
||||
return {type:"LTDEXP",trainName:"いしづち",trainIcon:'http://www.trainfrontview.net/f/s8000ap.png',trainNumDistance:940,info:"アンパンマン列車で運転"};
|
||||
//8600
|
||||
case "1043M":
|
||||
case "1042M":
|
||||
case "1046M":
|
||||
return {type:"LTDEXP",trainName:"いしづち",trainIcon:'http://www.trainfrontview.net/b/s8600_isz.png',trainNumDistance:940,info:"8600系で運転"};
|
||||
|
||||
//南風 2700ノーマル
|
||||
case "34D":
|
||||
case "38D":
|
||||
case "40D":
|
||||
case "42D":
|
||||
case "46D":
|
||||
case "50D":
|
||||
case "52D":
|
||||
case "54D":
|
||||
case "58D":
|
||||
case "31D":
|
||||
case "35D":
|
||||
case "39D":
|
||||
case "41D":
|
||||
case "43D":
|
||||
case "47D":
|
||||
case "51D":
|
||||
case "53D":
|
||||
case "55D":
|
||||
return {type:"LTDEXP",trainName:"南風",trainIcon:'http://www.trainfrontview.net/b/s2700.png',trainNumDistance:30,info:"2700系で運転"};
|
||||
//2700アンパン
|
||||
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',trainNumDistance:30,info:"アンパンマン列車で運転"};
|
||||
break;
|
||||
|
||||
|
||||
|
||||
//うずしお
|
||||
//2700
|
||||
case "5006D":
|
||||
case "5022D":
|
||||
case "5013D":
|
||||
case "5029D":
|
||||
return {type:"LTDEXP",trainName:"うずしお",trainIcon:'http://www.trainfrontview.net/b/s2700_uzu.png',trainNumDistance:5000,info:"南風と宇多津で併結 / 高松-宇多津間進行方向逆転 / 2700系で運転"};
|
||||
case "3002D":
|
||||
case "3004D":
|
||||
case "3010D":
|
||||
case "3012D":
|
||||
case "3016D":
|
||||
case "3018D":
|
||||
case "3024D":
|
||||
case "3028D":
|
||||
case "3030D":
|
||||
case "3003D":
|
||||
case "3005D":
|
||||
case "3007D":
|
||||
case "3015D":
|
||||
case "3019D":
|
||||
case "3021D":
|
||||
case "3025D":
|
||||
case "3027D":
|
||||
case "3031D":
|
||||
case "3033D":
|
||||
return {type:"LTDEXP",trainName:"うずしお",trainIcon:'http://www.trainfrontview.net/b/s2700_uzu.png',trainNumDistance:3000,info:"2700系で運転"};
|
||||
|
||||
//2600
|
||||
case "3008D":
|
||||
case "3014D":
|
||||
case "3020D":
|
||||
case "3026D":
|
||||
case "3001D":
|
||||
case "3011D":
|
||||
case "3017D":
|
||||
case "3023D":
|
||||
return {type:"LTDEXP",trainName:"うずしお",trainIcon:'http://www.trainfrontview.net/b/s2600.png',trainNumDistance:3000,info:"2600系で運転"};
|
||||
|
||||
//キハ185
|
||||
case "3009D":
|
||||
case "3032D":
|
||||
return {type:"LTDEXP",trainName:"うずしお",trainIcon:'http://www.trainfrontview.net/b/s185tu_uzu.png',trainNumDistance:3000,info:"キハ185系で運転"};
|
||||
|
||||
//マリンライナー
|
||||
case "3104M":
|
||||
case "3106M":
|
||||
case "3108M":
|
||||
case "3110M":
|
||||
case "3112M":
|
||||
case "3114M":
|
||||
case "3116M":
|
||||
case "3118M":
|
||||
case "3120M":
|
||||
case "3122M":
|
||||
case "3124M":
|
||||
case "3126M":
|
||||
case "3128M":
|
||||
case "3130M":
|
||||
case "3132M":
|
||||
case "3134M":
|
||||
case "3136M":
|
||||
case "3138M":
|
||||
case "3140M":
|
||||
case "3142M":
|
||||
case "3144M":
|
||||
case "3146M":
|
||||
case "3148M":
|
||||
case "3150M":
|
||||
case "3152M":
|
||||
case "3154M":
|
||||
case "3156M":
|
||||
case "3158M":
|
||||
case "3160M":
|
||||
case "3162M":
|
||||
case "3164M":
|
||||
case "3166M":
|
||||
case "3168M":
|
||||
case "3170M":
|
||||
case "3105M":
|
||||
case "3107M":
|
||||
case "3109M":
|
||||
case "3111M":
|
||||
case "3113M":
|
||||
case "3115M":
|
||||
case "3117M":
|
||||
case "3119M":
|
||||
case "3121M":
|
||||
case "3123M":
|
||||
case "3125M":
|
||||
case "3127M":
|
||||
case "3129M":
|
||||
case "3131M":
|
||||
case "3133M":
|
||||
case "3135M":
|
||||
case "3137M":
|
||||
case "3139M":
|
||||
case "3141M":
|
||||
case "3143M":
|
||||
case "3145M":
|
||||
case "3147M":
|
||||
case "3149M":
|
||||
case "3151M":
|
||||
case "3153M":
|
||||
case "3155M":
|
||||
case "3157M":
|
||||
case "3159M":
|
||||
case "3161M":
|
||||
case "3163M":
|
||||
case "3165M":
|
||||
case "3167M":
|
||||
case "3169M":
|
||||
case "3175M":
|
||||
return {type:"Rapid",trainName:"マリンライナー",trainIcon:'http://www.trainfrontview.net/b/s5001.png',trainNumDistance:3100,info:""};
|
||||
case "3102M":
|
||||
case "3101M":
|
||||
case "3103M":
|
||||
case "3171M":
|
||||
case "3173M":
|
||||
return {type:"Rapid",trainName:"マリンライナー",trainIcon:'http://www.trainfrontview.net/b/s5001k.png',trainNumDistance:3100,info:""};
|
||||
|
||||
//サンライズ瀬戸
|
||||
case "5032M":
|
||||
case "5031M":
|
||||
return {type:"NightLTDEXP",trainName:"サンライズ瀬戸",trainIcon:'http://www.trainfrontview.net/b/w285.png',trainNumDistance:null,info:""};
|
||||
case "8041M": //琴平延長高松迄
|
||||
case "8031M": //琴平延長高松以降
|
||||
return {type:"NightLTDEXP",trainName:"サンライズ瀬戸",trainIcon:'http://www.trainfrontview.net/b/w285.png',trainNumDistance:null,info:"琴平延長運転日"};
|
||||
|
||||
//宇和海
|
||||
//2000 ノーマル
|
||||
case "1052D":
|
||||
case "1056D":
|
||||
case "1058D":
|
||||
case "1064D":
|
||||
case "1070D":
|
||||
case "1074D":
|
||||
case "1076D":
|
||||
case "1078D":
|
||||
case "1080D":
|
||||
case "1082D":
|
||||
case "1051D":
|
||||
case "1059D":
|
||||
case "1065D":
|
||||
case "1069D":
|
||||
case "1071D":
|
||||
case "1073D":
|
||||
case "1075D":
|
||||
case "1077D":
|
||||
case "1079D":
|
||||
case "1053D":
|
||||
return {type:"LTDEXP",trainName:"宇和海",trainIcon:'http://www.trainfrontview.net/b/s2000_uwa.png',trainNumDistance:1050,info:"2000系で運転"};
|
||||
//2000 アンパン込み
|
||||
case "1054D":
|
||||
case "1060D":
|
||||
case "1062D":
|
||||
case "1066D":
|
||||
case "1068D":
|
||||
case "1072D":
|
||||
case "1055D":
|
||||
case "1057D":
|
||||
case "1061D":
|
||||
case "1063D":
|
||||
case "1067D":
|
||||
case "1081D":
|
||||
return {type:"LTDEXP",trainName:"宇和海",trainIcon:'http://www.trainfrontview.net/f/s2002a.png',trainNumDistance:1050,info:"アンパン列車で運転"};
|
||||
//しまんと
|
||||
case "2002D":
|
||||
case "2004D":
|
||||
case "2006D":
|
||||
case "2008D":
|
||||
case "2001D":
|
||||
case "2003D":
|
||||
case "2005D":
|
||||
case "2007D":
|
||||
return {type:"LTDEXP",trainName:"しまんと",trainIcon:'http://www.trainfrontview.net/b/s2700_smn.png',trainNumDistance:2000,info:"2700系で運転"};
|
||||
|
||||
//あしずり 2000
|
||||
case "2074D":
|
||||
case "2076D":
|
||||
case "2080D":
|
||||
case "2084D":
|
||||
case "2086D":
|
||||
case "2071D":
|
||||
case "2075D":
|
||||
case "2077D":
|
||||
case "2081D":
|
||||
case "2083D":
|
||||
return {type:"LTDEXP",trainName:"あしずり",trainIcon:'http://www.trainfrontview.net/b/s2000_asi.png',trainNumDistance:2070,info:"2000系で運転"};
|
||||
|
||||
|
||||
//あしずり 2700
|
||||
case "2078D":
|
||||
case "2082D":
|
||||
case "2088D":
|
||||
case "2073D":
|
||||
case "2079D":
|
||||
case "2085D":
|
||||
case "2072D":
|
||||
return {type:"LTDEXP",trainName:"あしずり",trainIcon:'http://www.trainfrontview.net/b/s2700_asi.png',trainNumDistance:2070,info:"2700系で運転"};
|
||||
|
||||
//剣山
|
||||
case "4002D":
|
||||
case "4004D":
|
||||
case "4006D":
|
||||
case "4008D":
|
||||
case "4010D":
|
||||
case "4001D":
|
||||
case "4003D":
|
||||
case "4005D":
|
||||
case "4007D":
|
||||
case "4009D":
|
||||
case "4011D":
|
||||
return {type:"LTDEXP",trainName:"剣山",trainIcon:'http://www.trainfrontview.net/b/s185tu.png',trainNumDistance:4000,info:"キハ185系で運転"};
|
||||
|
||||
//むろと
|
||||
case "5051D":
|
||||
case "5052D":
|
||||
return {type:"LTDEXP",trainName:"むろと",trainIcon:'http://www.trainfrontview.net/b/s185_mrt.png',trainNumDistance:5050,info:"キハ185系で運転"};
|
||||
|
||||
|
||||
|
||||
//よしのがわトロッコ
|
||||
case "8452D":
|
||||
case "8451D":
|
||||
return {type:"LTDEXP",trainName:"よしのがわトロッコ",trainIcon:'http://www.trainfrontview.net/f/s185to_ai.png',trainNumDistance:null,info:""};
|
||||
|
||||
|
||||
//岡山高松アントロ
|
||||
case "8176D":
|
||||
case "8179D":
|
||||
//岡山琴平アントロ
|
||||
case "8277D":
|
||||
case "8278D":
|
||||
return {type:"LTDEXP",trainName:"アンパンマントロッコ",trainIcon:'http://www.trainfrontview.net/f/s32to4.png',trainNumDistance:null,info:""};
|
||||
|
||||
|
||||
//伊予灘ものがたり
|
||||
case "8901D":
|
||||
case "8903D":
|
||||
case "8902D":
|
||||
case "8904D":
|
||||
return {type:"LTDEXP",trainName:"伊予灘ものがたり",trainIcon:'http://www.trainfrontview.net/b/s185iyoy.png',trainNumDistance:null,info:""};
|
||||
|
||||
|
||||
|
||||
//千年ものがたり
|
||||
case "8011D":
|
||||
case "8012D":
|
||||
return {type:"LTDEXP",trainName:"四国まんなか千年ものがたり",trainIcon:'http://www.trainfrontview.net/b/s185mm1.png',trainNumDistance:null,info:""};
|
||||
|
||||
|
||||
//夜明けものがたり
|
||||
case "8053D":
|
||||
case "8054D":
|
||||
case "8062D":
|
||||
case "8063D":
|
||||
return {type:"LTDEXP",trainName:"時代の夜明けのものがたり",trainIcon:'http://www.trainfrontview.net/b/s185ym1.png',trainNumDistance:null,info:""};
|
||||
|
||||
default:
|
||||
return {type:"Normal",trainName:"",trainIcon:null,trainNumDistance:null,info:null};
|
||||
break;
|
||||
}
|
||||
}
|
@ -1,6 +1,8 @@
|
||||
import React, { Component, useRef, useState, useEffect } from 'react';
|
||||
import {StatusBar,View,LayoutAnimation,ScrollView,Linking,Text,TouchableOpacity } from 'react-native';
|
||||
import { Switch } from 'react-native-elements';
|
||||
import {widthPercentageToDP as wp, heightPercentageToDP as hp} from 'react-native-responsive-screen';
|
||||
import { customTrainDataDetector } from '../custom-train-data';
|
||||
|
||||
let diagramData = undefined;
|
||||
|
||||
@ -42,6 +44,7 @@ export default function LED_vision(props){
|
||||
const [trainDiagram,setTrainDiagram] = useState(null);
|
||||
const [stationDiagram,setStationDiagram] = useState(null);
|
||||
const [currentTrain, setCurrentTrain] = useState(null);
|
||||
const [finalSwitch, setFinalSwitch] = useState(false);
|
||||
useEffect(()=>{
|
||||
fetch('https://train.jr-shikoku.co.jp/g?arg1=station&arg2=traintimeinfo&arg3=dia', HeaderConfig).then(response => response.text()).then(d=>{
|
||||
const val = d.replace("[\r\n","").split(',\r\n');
|
||||
@ -121,27 +124,111 @@ export default function LED_vision(props){
|
||||
},[])
|
||||
|
||||
const filtering = d => currentTrain.map(m=>m.num).includes(d.train)
|
||||
|
||||
console.log(new Date())
|
||||
const timeFiltering = d => {
|
||||
const date = new Date();
|
||||
const newDate = new Date();
|
||||
let data = d.time.split(":");
|
||||
let delay = isNaN(currentTrain.filter(data =>data.num == d.train)[0].delay) ? 0 : currentTrain.filter(data =>data.num == d.train)[0].delay;
|
||||
|
||||
date.setHours(parseInt(data[0]));
|
||||
date.setMinutes(parseInt(data[1])+parseInt(delay));
|
||||
console.log(date);
|
||||
console.log(newDate)
|
||||
if(!(newDate > date)){
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
|
||||
}
|
||||
const finalFiltering = d =>{
|
||||
if(finalSwitch){
|
||||
return true;
|
||||
}
|
||||
else{
|
||||
if(d.lastStation == "当駅止"){
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return(
|
||||
<View style={{ width: wp("98%"),/* height: wp("98%")/10*9, */backgroundColor:"#432",borderWidth:1,margin:10,marginHorizontal:wp("1%")}} >
|
||||
<View style={{alignContent:"center",alignItems:"center",width:"100%",marginVertical:10}}>
|
||||
<Text style={{fontSize:parseInt("25%"),color:"white",fontWeight:"bold"}}>次の列車</Text>
|
||||
<Text style={{fontSize:parseInt("15%"),color:"white"}}>Next Train</Text>
|
||||
<View style={{alignContent:"center",alignItems:"center",width:"100%",marginVertical:10,flexDirection:"row"}}>
|
||||
<View style={{flex:1}}>
|
||||
<Text>にゃー</Text>
|
||||
</View>
|
||||
<View style={{}}>
|
||||
<Text style={{fontSize:parseInt("25%"),color:"white",fontWeight:"bold"}}>次の列車</Text>
|
||||
<Text style={{fontSize:parseInt("15%"),color:"white"}}>Next Train</Text>
|
||||
</View>
|
||||
<View style={{flex:1}}>
|
||||
<View style={{flexDirection:"row",padding:10}}>
|
||||
<View style={{flex:1}} />
|
||||
<Text style={{alignItems:"center",alignContent:"center",textAlign:"center",textAlignVertical:"center",color:"white"}}>当駅止表示</Text>
|
||||
<Switch value={finalSwitch} onValueChange={(value)=>setFinalSwitch(!finalSwitch)}/>
|
||||
</View>
|
||||
</View>
|
||||
|
||||
</View>
|
||||
{trainTimeAndNumber ? currentTrain && trainTimeAndNumber.filter(filtering).map((d,index)=>
|
||||
{trainTimeAndNumber ? currentTrain && trainTimeAndNumber.filter(filtering).filter(timeFiltering).filter(finalFiltering).map((d,index)=>
|
||||
<View style={{alignContent:"center",alignItems:"center",width:"94%",marginVertical:5,marginHorizontal:"3%",backgroundColor:"#000",flexDirection:"row"}}>
|
||||
<View style={{flex:6,flexDirection:"row"}}>
|
||||
{/* <Text style={{fontSize:parseInt("25%"),color:"red",fontWeight:"bold"}}>検証中</Text> */}
|
||||
<Text style={{fontSize:parseInt("22%"),color:"white",fontWeight:"bold"}}>{d.lastStation}</Text>
|
||||
<View style={{flex:9}}>
|
||||
<Text style={{fontSize:(()=>{
|
||||
if(customTrainDataDetector(d.train).trainName.length > 6){
|
||||
return 17;
|
||||
}
|
||||
else{
|
||||
return 20
|
||||
}
|
||||
})(),color:(()=>{
|
||||
switch(customTrainDataDetector(d.train).type){
|
||||
case "Rapid":
|
||||
return "aqua";
|
||||
case "LTDEXP":
|
||||
return "red";
|
||||
case "NightLTDEXP":
|
||||
return "red";
|
||||
case "Normal":
|
||||
return "white";
|
||||
|
||||
}
|
||||
})(),fontWeight:"bold"}}>{(()=>{
|
||||
switch(customTrainDataDetector(d.train).type){
|
||||
case "Rapid":
|
||||
return "快速";
|
||||
case "LTDEXP":
|
||||
return "特急";
|
||||
case "NightLTDEXP":
|
||||
return "寝台特急";
|
||||
case "Normal":
|
||||
return "普通列車";
|
||||
}
|
||||
})()+" "+customTrainDataDetector(d.train).trainName+(()=>{
|
||||
if(customTrainDataDetector(d.train).trainNumDistance != null){
|
||||
return parseInt(d.train.replace("M","").replace("D","")) - customTrainDataDetector(d.train).trainNumDistance + "号";
|
||||
}
|
||||
else{
|
||||
return "";
|
||||
}
|
||||
})()}</Text>
|
||||
</View>
|
||||
<View style={{flex:4,flexDirection:"row"}}>
|
||||
<Text style={{fontSize:(()=>{
|
||||
if(d.lastStation.length > 4){
|
||||
return 15;
|
||||
}
|
||||
else{
|
||||
return 20
|
||||
}
|
||||
})(),color:"white",fontWeight:"bold"}}>{d.lastStation}</Text>
|
||||
</View>
|
||||
<View style={{flex:3}}>
|
||||
<Text style={{fontSize:parseInt("22%"),color:"white",fontWeight:"bold"}}>{d.time}</Text>
|
||||
<Text style={{fontSize:parseInt("20%"),color:"white",fontWeight:"bold"}}>{d.time}</Text>
|
||||
</View>
|
||||
<View style={{flex:4}}>
|
||||
<Text style={{fontSize:parseInt("22%"),color:"white",fontWeight:"bold"}}>{d.train}</Text>
|
||||
</View>
|
||||
<View style={{flex:5}}>
|
||||
<Text style={{fontSize:parseInt("22%"),color:"white",fontWeight:"bold"}}>{(()=>{
|
||||
<Text style={{fontSize:parseInt("20%"),color:"white",fontWeight:"bold"}}>{(()=>{
|
||||
let data= currentTrain.filter(data=>data.num==d.train)[0].delay;
|
||||
if(isNaN(data)){
|
||||
return data;
|
||||
|
Loading…
Reference in New Issue
Block a user