This commit is contained in:
François Meyer 2025-05-29 08:14:27 +00:00 committed by GitHub
commit 9f96ac709a
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 32 additions and 7 deletions

View File

@ -744,11 +744,11 @@ String fallbacks[] = {
"XEphem*WCS.y: 10",
"XEphem*WebDB*Pattern.value: ",
"XEphem*WebDB*Search.set: False",
"XEphem*WebDB*URL0.value: https://celestrak.org/NORAD/elements/stations.txt",
"XEphem*WebDB*URL1.value: https://celestrak.org/NORAD/elements/science.txt",
"XEphem*WebDB*URL2.value: https://celestrak.org/NORAD/elements/tle-new.txt",
"XEphem*WebDB*URL3.value: https://celestrak.org/NORAD/elements/amateur.txt",
"XEphem*WebDB*URL4.value: https://celestrak.org/NORAD/elements/visual.txt",
"XEphem*WebDB*URL0.value: https://celestrak.org/NORAD/elements/gp.php?GROUP=stations&FORMAT=tle",
"XEphem*WebDB*URL1.value: https://celestrak.org/NORAD/elements/gp.php?GROUP=science&FORMAT=tle",
"XEphem*WebDB*URL2.value: https://celestrak.org/NORAD/elements/gp.php?GROUP=last-30-days&FORMAT=tle",
"XEphem*WebDB*URL3.value: https://celestrak.org/NORAD/elements/gp.php?GROUP=amateur&FORMAT=tle",
"XEphem*WebDB*URL4.value: https://celestrak.org/NORAD/elements/gp.php?GROUP=visual&FORMAT=tle",
"XEphem*WebDB*URL5.value: https://www.minorplanetcenter.net/iau/Ephemerides/Comets/Soft03Cmt.txt",
"XEphem*WebDB*URL6.value: https://www.minorplanetcenter.net/iau/Ephemerides/CritList/Soft03CritList.txt",
"XEphem*WebDB*URL7.value: https://www.minorplanetcenter.net/iau/Ephemerides/Distant/Soft03Distant.txt",

View File

@ -414,6 +414,7 @@ char *url;
char *l0p = l0, *l1p = l1, *l2p = l2;
char host[128];
char *slash, *dot;
char *group, *ampersand;
char filename[256];
FILE *fp;
XE_SSL_FD ssl_fd;
@ -469,8 +470,32 @@ char *url;
}
/* create local file */
slash = strrchr (url+ltransport, '/');
sprintf (filename, "%s/%.*sedb", getPrivateDir(), (int)(dot-slash), slash+1);
if (strstr (url+ltransport, "celestrak.org/NORAD/elements")){
/* managing celestrak new URL format
* https://celestrak.org/NORAD/documentation/gp-data-formats.php
*
* the code below looks for the GROUP= argument in the URL to infer
* the destination filename */
/* fallback filename if no GROUP name found : */
snprintf(filename, 255, "%s/default-celestrak-download.edb", getPrivateDir());
/* look for GROUP= arg in url : */
group=strstr (url+ltransport,"GROUP=")+6;
if (group != NULL){ /* if we find a GROUP= name */
ampersand=strstr (group,"&"); /* look for a potential ampersand separating args in the url */
if (ampersand==NULL){ /* if no ampersand, lets assume group is the only argument in the url */
snprintf(filename, 255, "%s/%s.edb", getPrivateDir(), group);
}
else{
snprintf(filename, 255, "%s/%.*s.edb", getPrivateDir(), (int)(ampersand-group), group);
}
}
}
else{
slash = strrchr (url+ltransport, '/');
sprintf (filename, "%s/%.*sedb", getPrivateDir(), (int)(dot-slash), slash+1);
}
fp = fopen (filename, "w");
if (!fp) {
xe_msg (1, "%s:\n%s", filename, syserrstr());