Timetables not Updating in Wine

You are here: Home > Forum > General > Website / Forum > Timetables not Updating in Wine

Page 1 of 1

Timetables not Updating in Wine 17/05/2016 at 19:26 #82487
Gwasanaethau
Avatar
509 posts
For a while now, I have been unable to update timetables via the refresher when running in Wine. My previous solution involved installing the loader in Windows just to grab the latest versions of the timetables, copy them to the proper directory on my Linux partition, and then uninstall the loader, which, as you can guess, was very long-winded. Simulations seemed to update perfectly, so I did some investigation as to why this was. I have had some promising results!

It seems that when the refresher is run through wine, it is not converting spaces in URLs into %20s. This causes update requests to fail on any file containing a space as it automatically assumes the filename ends at that first space. This then results in a 404 being sent back to the refresher. Since spaces only ever appear in the filenames for timetables, not simulations, the update only ever seems to fail on timetables.

I know running SimSig in wine is not supported, but thought I’d just throw it out there anyway. Sending a GET request via curl from the command line, or the HTTPRequester plugin in Firefox, results in the timetable being downloaded correctly.

Thanks for listening to my ramblings! :laugh:

Mark (Gwasanaethau)

Log in to reply
The following user said thank you: TUT
Timetables not Updating in Wine 17/05/2016 at 21:03 #82489
GeoffM
Avatar
6287 posts
Thanks for the debugging. Seems the Delphi internet component is not escaping the URL correctly. I'll try to ensure the server files have no spaces.
SimSig Boss
Log in to reply
The following user said thank you: Gwasanaethau
Timetables not Updating in Wine 22/07/2016 at 13:05 #83739
TUT
Avatar
510 posts
Online
" said:
For a while now, I have been unable to update timetables via the refresher when running in Wine. My previous solution involved installing the loader in Windows just to grab the latest versions of the timetables, copy them to the proper directory on my Linux partition, and then uninstall the loader, which, as you can guess, was very long-winded. Simulations seemed to update perfectly, so I did some investigation as to why this was. I have had some promising results!

It seems that when the refresher is run through wine, it is not converting spaces in URLs into %20s. This causes update requests to fail on any file containing a space as it automatically assumes the filename ends at that first space. This then results in a 404 being sent back to the refresher. Since spaces only ever appear in the filenames for timetables, not simulations, the update only ever seems to fail on timetables.

I know running SimSig in wine is not supported, but thought I’d just throw it out there anyway. Sending a GET request via curl from the command line, or the HTTPRequester plugin in Firefox, results in the timetable being downloaded correctly.

Thanks for listening to my ramblings! :laugh:

Mark (Gwasanaethau)
I was wondering, would it be possible for you to give a few more details about how to do this?

I ask because I'm playing Coventry with the latest version of the sim, after extra areas of control were added, but with what appears to be the original timetable, which is missing those areas.

Thanks!

Log in to reply
Timetables not Updating in Wine 23/07/2016 at 01:48 #83747
Gwasanaethau
Avatar
509 posts
" said:


I was wondering, would it be possible for you to give a few more details about how to do this?

I ask because I'm playing Coventry with the latest version of the sim, after extra areas of control were added, but with what appears to be the original timetable, which is missing those areas.

Thanks!

Hi TUT,

I can indeed, however I just want to double-check that this is OK with Geoff first, as it essentially means bypassing (and pretending to be) the Refresher in order for it to work.

Geoff, is it OK to provide details of this on the forum/via PM?

Mark (Gwasanaethau).

Log in to reply
The following user said thank you: TUT
Timetables not Updating in Wine 23/07/2016 at 05:43 #83749
GeoffM
Avatar
6287 posts
Mark, no problem with that.

TUT, could also try this and this

I know I need to fix this but there are a lot of files and the process is not entirely streamlined (yet). My bad, sorry.

SimSig Boss
Log in to reply
The following users said thank you: TUT, Gwasanaethau
Timetables not Updating in Wine 23/07/2016 at 06:57 #83751
TUT
Avatar
510 posts
Online
Thank you very much both of you.

GeoffM, thanks for taking the time to provide a link to the correct timetable. As it turns out, that is supplied with the sim, or else the refresher did download it correctly this time. I'm sorry, I have two timetables in my folder, Coventry 20091015 (0445 start) and Coventry 20091015 (0445 start) v4.0 and I assumed v4.0 would be the updated one without checking, which I should have done before posting on here.

Nevertheless I believe the general issue does remain, but thank you very much GeoffM, I understand that the process is time consuming (presumably tedious) and it's time spent helping those using Wine, which is officially unsupported and a small minority, so I certainly understand.

Gwasanaethau, I totally understand that you needed to check. As I say, I don't think the general issue is totally fixed, but I have a playable version of Coventry at the moment, so whether you would like to supply further details is totally up to you (My original issue was that - once I'd worked out what the problem was - I could edit the timetables of trains to/from Hawkesbury Lane on the fly, until I got to 6G64, which goes to Prologis, and I don't have the information on 6G64, not being a time table author, to work out exactly how it, 0G65, 6G65, etc. should be handled. Great to have the professional version )

Log in to reply
Timetables not Updating in Wine 23/07/2016 at 18:16 #83762
Gwasanaethau
Avatar
509 posts
Thanks Geoff, and no problem TUT.

Essentially you can just use curl (or probably wget instead, but I don’t know the correct options for that) from the terminal. I have added a few extra lines to make it more streamlined.

Firstly, copy the following lines of code into a new file named timetable-refresher.sh :

#!/bin/bash

FILENAME="${1}"
HTTPNAME="${FILENAME// /%20}"
DIRNAME="$(basename "${PWD}")"

curl -# -H 'Accept:*/*' -H 'Host:www.SimSig.co.uk' -H 'User-Agent:Simsigrefresher' "http://www.SimSig.co.uk/SimSigUpdate/files/${DIRNAME}/${HTTPNAME}" -o "${FILENAME}"

Then navigate to the sim’s timetable folder/directory. In your case:
cd ${HOME}/«PATH»/SimSig/Timetables/coventry
…replacing «PATH» with the path of your SimSig installation.
Then start the refresher and note the full name of the timetable that it is trying to download. In your case:
Coventry 20091015 (0445 start).WTT
Then run your script with the timetable as an argument, eg:
bash timetable-refresher.sh 'Coventry 20091015 (0445 start).WTT'
If you want me to talk you through the commands in the script so you know what they do, then just shout and I’ll outline them for you. ;)

Hope this helps you (and anyone else).

Mark (Gwasanaethau)

Log in to reply
Timetables not Updating in Wine 31/07/2016 at 11:13 #83879
TUT
Avatar
510 posts
Online
" said:
Thanks Geoff, and no problem TUT.

Essentially you can just use curl (or probably wget instead, but I don’t know the correct options for that) from the terminal. I have added a few extra lines to make it more streamlined.

Firstly, copy the following lines of code into a new file named timetable-refresher.sh :

#!/bin/bash

FILENAME="${1}"
HTTPNAME="${FILENAME// /%20}"
DIRNAME="$(basename "${PWD}")"

curl -# -H 'Accept:*/*' -H 'Host:www.SimSig.co.uk' -H 'User-Agent:Simsigrefresher' "http://www.SimSig.co.uk/SimSigUpdate/files/${DIRNAME}/${HTTPNAME}" -o "${FILENAME}"

Then navigate to the sim’s timetable folder/directory. In your case:
cd ${HOME}/«PATH»/SimSig/Timetables/coventry
…replacing «PATH» with the path of your SimSig installation.
Then start the refresher and note the full name of the timetable that it is trying to download. In your case:
Coventry 20091015 (0445 start).WTT
Then run your script with the timetable as an argument, eg:
bash timetable-refresher.sh 'Coventry 20091015 (0445 start).WTT'
If you want me to talk you through the commands in the script so you know what they do, then just shout and I’ll outline them for you. ;)

Hope this helps you (and anyone else).

Mark (Gwasanaethau)
This does help, thank you very much!

I'm sorry I've only just noticed this response :blush: Not sure how I missed it, but that's why I've only just replied.

Log in to reply
Timetables not Updating in Wine 31/07/2016 at 12:38 #83882
Finger
Avatar
220 posts
" said:

#!/bin/bash

FILENAME="${1}"
HTTPNAME="${FILENAME// /%20}"
DIRNAME="$(basename "${PWD}")"

curl -# -H 'Accept:*/*' -H 'Host:www.SimSig.co.uk' -H 'User-Agent:Simsigrefresher' "http://www.SimSig.co.uk/SimSigUpdate/files/${DIRNAME}/${HTTPNAME}" -o "${FILENAME}"

Isn't that a bit excessive?

You can just
wget "http://www.SimSig.co.uk/SimSigUpdate/files/coventry/Coventry 20091015 (0445 start).WTT"
and that's it, without worrying about headers (Host header WHY???). If you use curl, you have to do the urlencoding though, because (apparently by design) they just don't do it and are happy to send illegal requests.

Log in to reply
Timetables not Updating in Wine 16/09/2016 at 13:32 #84983
Gwasanaethau
Avatar
509 posts
Finger said:
" said:

#!/bin/bash

FILENAME="${1}"
HTTPNAME="${FILENAME// /%20}"
DIRNAME="$(basename "${PWD}")"

curl -# -H 'Accept:*/*' -H 'Host:www.SimSig.co.uk' -H 'User-Agent:Simsigrefresher' "http://www.SimSig.co.uk/SimSigUpdate/files/${DIRNAME}/${HTTPNAME}" -o "${FILENAME}"

Isn't that a bit excessive?

You can just
wget "http://www.SimSig.co.uk/SimSigUpdate/files/coventry/Coventry 20091015 (0445 start).WTT"
and that's it, without worrying about headers (Host header WHY???). If you use curl, you have to do the urlencoding though, because (apparently by design) they just don't do it and are happy to send illegal requests.
Probably, but I wanted to have a script that was reusable in the future (I found this issue with various timetables in the past). In my initial testing months ago, I had to include those three headers otherwise the server would give me a 403 FORBIDDEN response.

Log in to reply