|
Post by bigbass on Jul 31, 2022 23:37:04 GMT 1
Hello I needed a way to add downloads to a qt browser / viewer that am working on I wanted it to be useful to add to any Qt code so here is a standalone cli-downloader that will allow parallel downloads it took quite awhile to remove the class code and port it to bacon and modify some parts for bacon just leave a space between links here is an example with a .html , .bac ,.tar.gz Sept 10 2022 will keep the updated source and documentation here sourceforge.net/p/bacon-qt5/wiki/cli-downloader/
|
|
|
Post by alexfish on Aug 1, 2022 15:07:11 GMT 1
Hi Joe
installed libqt5websockets5
works here on rpi4
would it be possible to add -o output file to/dir/file*
BR Alex
|
|
|
Post by bigbass on Aug 1, 2022 18:48:46 GMT 1
Hello Alex
thanks for the feed back for the RPI4
I will add libqt5websockets5 to the dependency list
your suggestion about the -o target directory is a good one! I will see what can be done to make it happen Qt has its own special way of doing things so will need to investigate
Joe
|
|
|
Post by vovchik on Aug 1, 2022 19:30:17 GMT 1
Dear Joe,
Thanks. It works very nicely in the Pi. On Mint, however, I get a compile error:
In file included from qt-downloader.bac.h:2:0, from qt-downloader.bac.c:2: qt-downloader.bac.generic.h:3:10: fatal error: QtCore/QDebug: No such file or directory #include <QtCore/QDebug> ^~~~~~~~~~~~~~~ compilation terminated. make: *** [qt-downloader.bac.o] Error 1
Do you have any idea why? I thought I had all the QT5 bits already installed...and your nano browser compiles and works fine on both my platforms.
With kind regards, vovchik
|
|
|
Post by bigbass on Aug 1, 2022 22:52:30 GMT 1
hello vovchik
I added to the x86 PRAGMA line try to copy all again
before it was all one line with the -fPIC at the end I added the path to QtCore also
maybe if this still doesnt work copy the last working PRAGMA line and PRAGMA LDFLAGS that would compile? Joe
|
|
|
Post by vovchik on Aug 2, 2022 0:06:46 GMT 1
Dear Joe,
Thanks. It now works on Mint. I had to change one sub with FORMAT to remove a warning (adding fmt$):
'-------------------------------------------- SUB downloadFinished(QNetworkReply *reply) '-------------------------------------------- 'PRINT "(4)" LOCAL url TYPE QUrl LOCAL fmt$ TYPE STRING url = reply->url() IF (reply->error()) THEN COLOR FG TO INTENSE RED EPRINT "Download of ",url.toEncoded().constData(), " failed: " , PRINTABLE(reply->errorString()) FORMAT "%s%s%s%s\n" COLOR RESET ELSE IF (isHttpRedirect(reply)) THEN COLOR FG TO INTENSE BLUE fmt$ = "%s%s\n" EPRINT "Request was redirected.\n", stderr FORMAT fmt$ COLOR RESET ELSE '--- use a fincounter to see how many urls finshed and downloaded QString filename = saveFileName(url) IF (saveToDisk(filename, reply)) THEN COLOR FG TO INTENSE YELLOW PRINT "Download of ", url.toEncoded().constData() , " succeeded!" FORMAT "%s%s%s\n" PRINT "saved as " , PRINTABLE(filename) FORMAT "%s%s\n" INCR fincounter COLOR RESET END IF END IF END IF IF (dlcounter == fincounter ) THEN COLOR FG TO GREEN PRINT "All downloads finished !" COLOR RESET END END IF END SUB
With kind regards, vovchik
|
|
|
Post by bigbass on Aug 2, 2022 8:17:06 GMT 1
Hello Alex and vovchik I looked at the Qt way of doing -options and it all seemed like overkill for only one option so I just invented another way to do it just note and look at the screen shot if there are any questions ./cli-downloader -o ~/Downloads/ url url '---must have trailing slash when using the ~/target_dir/ ! But anyway here it is Alex what you suggested an -o /dir/ option ./cli-downloader -o ~/Public/ http://www.basic-converter.org/doc_frame.html http://www.basic-converter.org/hug.bac http://www.basic-converter.org/stable/CHANGES http://www.basic-converter.org/stable/bacon-4.5.tar.gz
'---VERSION 1.1 Aug 2 2022 cli-downloader '---option -o ~/Downloads/ url url '---must have trailing slash when using the ~/target_dir/ ! '---ported https://code.qt.io/cgit/qt/qtbase.git/tree/examples/network/download/main.cpp?h=5.15 '---and removed class code heavily modified for bacon use by bigbass
PRAGMA INCLUDE <iostream> <QtCore/QDebug> <QtCore/QDir> <QtCore/QDir> PRAGMA INCLUDE <QtCore/QStringList> <QtCore/QFile> <QtCore/QFileInfo> PRAGMA INCLUDE <QtCore/QMimeDatabase> <QtCore/QMimeType> <QtCore/QTextStream> PRAGMA INCLUDE <QtCore/QUrl> <QtCore/QUrlQuery> <QtNetwork/QNetworkReply> PRAGMA INCLUDE <QtCore/QDateTime> <QtCore/QSize> PRAGMA INCLUDE <QtNetwork/QNetworkAccessManager> <QtNetwork/QNetworkRequest> PRAGMA INCLUDE <cstdio> <QtCore/QTimer> <QtCore/QCoreApplication> PRAGMA INCLUDE <QtCore/QCommandLineParser> <QtCore/QCommandLineOption> PRAGMA LDFLAGS -lQt5Network -lQt5Core -lpthread -latomic PRAGMA COMPILER g++ 'cli-downloader light version for cli only no widget dependencies added
'RPI3 PRAGMA OPTIONS -Wno-return-type -Wno-write-strings -Wno-pointer-arith PRAGMA OPTIONS -I/usr/include/arm-linux-gnueabihf/qt5 PRAGMA OPTIONS -I/usr/include/arm-linux-gnueabihf/qt5/QtNetwork -fPIC
'x86 'PRAGMA OPTIONS -Wno-return-type -Wno-write-strings -Wno-pointer-arith 'PRAGMA OPTIONS -I/usr/include/x86_64-linux-gnu/qt5 'PRAGMA OPTIONS -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -fPIC
'depends atleast qtbase5-dev OPTION PARSE FALSE
DEF FN PRINTOUT(x) = qDebug(x) DEF FN PRINTABLE(p) = qPrintable(p)
DECLARE app TYPE QCoreApplication* DECLARE manager TYPE QNetworkAccessManager* DECLARE reply TYPE QNetworkReply* DECLARE request TYPE QNetworkRequest DECLARE currentDownloads TYPE QList<QNetworkReply *> DECLARE dlcounter = 0 TYPE int DECLARE fincounter = 0 TYPE int
DECLARE target_dir TYPE QString DECLARE filePath TYPE QString
manager = new QNetworkAccessManager() '-------------------------------------------- SUB DownloadManager() '-------------------------------------------- '(1) COLOR FG TO INTENSE WHITE PRINT "(1) initialize the Download manager" COLOR RESET QObject::connect(manager, &QNetworkAccessManager::finished, downloadFinished) END SUB
'-------------------------------------------- SUB execute() '-------------------------------------------- COLOR FG TO INTENSE WHITE PRINT "(2) Process the command line urls" COLOR RESET LOCAL nameofapp TYPE char* LOCAL str TYPE QString LOCAL arg2 TYPE QString QStringList args = QCoreApplication::instance()->arguments() '---use bacon PRINT as a char* HACK for nameofapp nameofapp = PRINTABLE(args.at(0).toLocal8Bit()) ' skip the first argument, which is the program's name args.takeFirst() '---option homemade -o parser hack to a target_dir IF args.at(0).toLocal8Bit() == "-o" THEN 'get the second arg then remove it from the list later arg2 = args.at(1).toLocal8Bit() 'copy arg2 to the target_dir delete arg2 from the download list target_dir = arg2 COLOR FG TO INTENSE BLUE PRINT "-o DIR you want the download to go " ,PRINTABLE(target_dir) FORMAT "%s%s\n" COLOR RESET 'remove the option -o args.replaceInStrings("-o","") 'remove the arg2 which is the target_dir args.replaceInStrings(arg2,"") 'args.replaceInStrings(QRegExp("^\\s+"),"") END IF IF args.isEmpty() == true THEN COLOR FG TO INTENSE BLUE PRINT "Qt Downloader - downloads a single or multiple URLs by bigbass July 31 2022" PRINT "Usage: ",nameofapp, " url" PRINT "Downloads the URL or URLs passed in the command-line to the local directory" PRINT "If the target file already exists it will get over written with the new download" COLOR RESET END ELSE LOCAL Multi_url TYPE QString LOCAL i = 0 TYPE int LOCAL num TYPE int num = args.size() REPEAT Multi_url = args.at(i).toLocal8Bit() CALL doDownload(Multi_url) INCR i UNTIL num == i END IF END SUB
'-------------------------------------------- SUB doDownload(const QUrl &url) '-------------------------------------------- 'PRINT "(3)" IF (url.isEmpty()) THEN ' some strange reason empty urls get passed ' when I add the -o target_dir then remove those ' from the cli arguments this forces empty urls ' to do nothing and not get counted ELSE QList<QNetworkReply *> currentDownloads QNetworkRequest request(url) QNetworkReply *reply = manager->get(request) currentDownloads.append(reply) '--- use a dlcounter to see how many urls are used INCR dlcounter END IF END SUB
'-------------------------------------------- SUB downloadFinished(QNetworkReply *reply) '-------------------------------------------- 'PRINT "(4)" LOCAL url TYPE QUrl url = reply->url() IF (reply->error()) THEN COLOR FG TO INTENSE RED EPRINT "Download of ",url.toEncoded().constData(), " failed: " , PRINTABLE(reply->errorString()) FORMAT "%s%s%s%s\n" COLOR RESET ELSE IF (isHttpRedirect(reply)) THEN COLOR FG TO INTENSE BLUE EPRINT "Request was redirected.\n", stderr FORMAT "%s%s\n" COLOR RESET ELSE '--- use a fincounter to see how many urls finshed and downloaded QString filename = saveFileName(url) filePath = target_dir + filename IF (saveToDisk(filePath, reply)) THEN COLOR FG TO INTENSE YELLOW PRINT "Download of ", url.toEncoded().constData() , " succeeded!" FORMAT "%s%s%s\n" PRINT "saved as " , PRINTABLE(filename) FORMAT "%s%s\n" INCR fincounter COLOR RESET END IF END IF END IF IF (dlcounter == fincounter ) THEN COLOR FG TO GREEN PRINT "All downloads finished !" COLOR RESET END END IF END SUB
'-------------------------------------------- FUNCTION isHttpRedirect(QNetworkReply *reply) TYPE bool '-------------------------------------------- 'PRINT "(5)" LOCAL statusCode TYPE int statusCode = reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt() RETURN (statusCode == 301 || statusCode == 302 || statusCode == 303 || \ statusCode == 305 || statusCode == 307 || statusCode == 308) END FUNCTION
'-------------------------------------------- FUNCTION saveFileName(const QUrl &url) TYPE QString '-------------------------------------------- 'PRINT "(6)" LOCAL path TYPE QString LOCAL basename TYPE QString
path = url.path() basename = QFileInfo(path).fileName()
IF (basename.isEmpty()) THEN basename = "download" ELSE
RETURN basename END IF END FUNCTION
'-------------------------------------------- FUNCTION saveToDisk(const QString &filename, QIODevice *data) TYPE bool '-------------------------------------------- 'PRINT "(7)" QFile file(filename) IF (file.open(QIODevice::WriteOnly)) == false THEN COLOR FG TO INTENSE RED EPRINT "Could not open " ,PRINTABLE(filename), " for writing: " , PRINTABLE(file.errorString()) FORMAT "%s%s%s%s\n" COLOR RESET RETURN FALSE ELSE file.write(data->readAll()) file.close()
RETURN TRUE END IF END FUNCTION
'---main app = new QCoreApplication(argc, argv) 'special note we use QCoreApplication 'instead of the standard QApplication when its all cli CALL DownloadManager CALL execute app->exec()
|
|
|
Post by vovchik on Aug 2, 2022 10:26:22 GMT 1
Dear Joe,
Thanks. Again, unless the FORMAT is not done as I posted above, I get an error on Mint:
Compiling 'qt-downloader11.bac'... g++ -fno-pie -Os -fdata-sections -ffunction-sections -Wl,--gc-sections -Wno-return-type -Wno-write-strings -Wno-pointer-arith -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -fPIC -c qt-downloader11.bac.c g++ -o qt-downloader11 qt-downloader11.bac.o -s -no-pie -lQt5Network -lQt5Core -lpthread -latomic -lm qt-downloader11.bac:170:62: warning: format ‘%s’ expects argument of type ‘char*’, but argument 4 has type ‘_IO_FILE*’ [-Wformat=]
INFO: see full error report (y/[n])? y In file included from qt-downloader11.bac:268:0, from qt-downloader11.bac.c:2: qt-downloader11.bac: In function ‘void downloadFinished(QNetworkReply*)’: qt-downloader11.bac:170:62: warning: format ‘%s’ expects argument of type ‘char*’, but argument 4 has type ‘_IO_FILE*’ [-Wformat=] EPRINT "Request was redirected.\n", stderr FORMAT "%s%s\n"
With kind regards, vovchik
|
|
|
Post by alexfish on Aug 2, 2022 15:11:31 GMT 1
hi joe
getting this on rpi4
WARNING: variable '*reply' in function header at line 164 in file '/home/pi/maps/cli.bac' was defined previously!
WARNING: variable '*reply' in function header at line 209 in file '/home/pi/maps/cli.bac' was defined previously!
but it works
also tested getting openstreet maps . generally this requires usr agent etc from term
./cli -o /home/pi/maps/17/65489/ https://tile.openstreetmap.org/17/65489/43588.png (1) initialize the Download manager (2) Process the command line urls -o DIR you want the download to go /home/pi/maps/17/65489/ Download of https://tile.openstreetmap.org/17/65489/43588.png failed: Error transferring https://tile.openstreetmap.org/17/65489/43588.png - server replied: Blocked
I use this in curl
curl_easy_setopt(easyhandle, CURLOPT_USERAGENT, "bacon-osm-map") curl_easy_setopt(easyhandle, CURLOPT_SSL_VERIFYHOST, 2L)
Alex
|
|
|
Post by vovchik on Aug 2, 2022 15:23:20 GMT 1
Dear Alex (and Joe),
Me too. I get that in Pi...
With kind regards, vovchik
|
|
|
Post by bigbass on Aug 2, 2022 16:48:40 GMT 1
Hello Alex and vovchik first thanks for the detailed error I was able to force my pi3 to fail with -Wformat=1 then solve the problem or else it will keep coming up thanks for your bacon solution too Alex you are expecting curl with only 280 lines of code luckily was able to make it happen anyway for this demo with a forced user agent hack all your suggestions Alex and vovchik will make things better thanks! prestep if its not there mkdir -p ~/maps/17/65489/ ./cli-downloader -o ~/maps/17/65489/ https://tile.openstreetmap.org/17/65489/43588.png
'---VERSION 1.5 Aug 2 2022 cli-downloader '---option -o ~/Downloads/ url url '---must have trailing slash when using the ~/target_dir/ ! '---ported https://code.qt.io/cgit/qt/qtbase.git/tree/examples/network/download/main.cpp?h=5.15 '---and removed class code heavily modified for bacon use by bigbass 'fmt$ = "%s%s\n" fix for mint thanks vovchik ' fixed empty arguments display help ' removed c++ code from bacons PRINT ' handle c++ with PRINTOUT and PRINTABLE
PRAGMA INCLUDE <iostream> <QtCore/QDebug> <QtCore/QDir> <QtCore/QDir> PRAGMA INCLUDE <QtCore/QStringList> <QtCore/QFile> <QtCore/QFileInfo> PRAGMA INCLUDE <QtCore/QMimeDatabase> <QtCore/QMimeType> <QtCore/QTextStream> PRAGMA INCLUDE <QtCore/QUrl> <QtCore/QUrlQuery> <QtNetwork/QNetworkReply> PRAGMA INCLUDE <QtCore/QDateTime> <QtCore/QSize> PRAGMA INCLUDE <QtNetwork/QNetworkAccessManager> <QtNetwork/QNetworkRequest> PRAGMA INCLUDE <cstdio> <QtCore/QTimer> <QtCore/QCoreApplication> PRAGMA INCLUDE <QtCore/QCommandLineParser> <QtCore/QCommandLineOption> PRAGMA LDFLAGS -lQt5Network -lQt5Core -lpthread -latomic PRAGMA COMPILER g++ 'cli-downloader light version for cli only no widget dependencies added
'RPI3 PRAGMA OPTIONS -Wno-return-type -Wno-write-strings -Wno-pointer-arith -Wformat=1 PRAGMA OPTIONS -I/usr/include/arm-linux-gnueabihf/qt5 PRAGMA OPTIONS -I/usr/include/arm-linux-gnueabihf/qt5/QtNetwork -fPIC
'x86 'PRAGMA OPTIONS -Wno-return-type -Wno-write-strings -Wno-pointer-arith 'PRAGMA OPTIONS -I/usr/include/x86_64-linux-gnu/qt5 'PRAGMA OPTIONS -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -fPIC
'depends atleast qtbase5-dev OPTION PARSE FALSE
DEF FN PRINTOUT(x) = qDebug(x) DEF FN PRINTABLE(p) = qPrintable(p)
DECLARE app TYPE QCoreApplication* DECLARE manager TYPE QNetworkAccessManager* DECLARE reply TYPE QNetworkReply* DECLARE request TYPE QNetworkRequest DECLARE currentDownloads TYPE QList<QNetworkReply *> DECLARE dlcounter = 0 TYPE int DECLARE fincounter = 0 TYPE int
DECLARE target_dir TYPE QString DECLARE filePath TYPE QString DECLARE cli_option TYPE QString
manager = new QNetworkAccessManager()
'had trouble globally seeing and comparing the option cli_option = "-o" '-------------------------------------------- SUB DownloadManager() '-------------------------------------------- '(1) COLOR FG TO INTENSE WHITE PRINT "(1) initialize the Download manager" COLOR RESET QObject::connect(manager, &QNetworkAccessManager::finished, downloadFinished) END SUB
'-------------------------------------------- SUB execute() '-------------------------------------------- COLOR FG TO INTENSE WHITE PRINT "(2) Process the command line urls" COLOR RESET LOCAL nameofapp TYPE const char* LOCAL str TYPE QString LOCAL arg2 TYPE QString QStringList args = QCoreApplication::instance()->arguments() PRINTOUT(args.at(0).toLocal8Bit()) '---use bacon PRINT as a char* HACK for nameofapp nameofapp = PRINTABLE(args.at(0).toLocal8Bit())
' skip the first argument, which is the program's name args.takeFirst() IF args.isEmpty() == true THEN COLOR FG TO INTENSE BLUE PRINT "Qt Downloader - downloads a single or multiple URLs by bigbass July 31 2022" PRINT "Usage: ",nameofapp, " url" PRINT "Downloads the URL or URLs passed in the command-line to the local directory" PRINT "If the target file already exists it will get over written with the new download" COLOR RESET END ELSE '---option homemade -o parser hack to a target_dir IF args.at(0).toLocal8Bit() == cli_option THEN 'get the second arg then remove it from the list later arg2 = args.at(1).toLocal8Bit() 'copy arg2 to the target_dir delete arg2 from the download list target_dir = arg2 COLOR FG TO INTENSE BLUE PRINT "-o DIR you want the download to go " PRINTOUT(PRINTABLE(target_dir)) COLOR RESET 'remove the option -o args.replaceInStrings(cli_option,"") 'remove the arg2 which is the target_dir args.replaceInStrings(arg2,"") args.replaceInStrings(QRegExp("^\\s+"),"") END IF LOCAL Multi_url TYPE QString LOCAL i = 0 TYPE int LOCAL num TYPE int num = args.size() REPEAT Multi_url = args.at(i).toLocal8Bit() CALL doDownload(Multi_url) INCR i UNTIL num == i END IF END SUB
'-------------------------------------------- SUB doDownload(const QUrl &url) '-------------------------------------------- 'PRINT "(3)" IF (url.isEmpty()) THEN ' some strange reason empty urls get passed ' when I add the -o target_dir then remove those ' from the cli arguments this forces empty urls ' to do nothing and not get counted 'PRINT "EMPTY HERE" ELSE QList<QNetworkReply *> currentDownloads QNetworkRequest request(url) 'force a user agent request.setRawHeader( "User-Agent" , "Mozilla Firefox" ) QNetworkReply *reply = manager->get(request) currentDownloads.append(reply) '--- use a dlcounter to see how many urls are used INCR dlcounter END IF END SUB
'-------------------------------------------- SUB downloadFinished(QNetworkReply *reply) '-------------------------------------------- 'PRINT "(4)" LOCAL url TYPE QUrl LOCAL fmt$ TYPE STRING url = reply->url() IF (reply->error()) THEN COLOR FG TO INTENSE RED EPRINT "Download of " PRINTOUT(PRINTABLE(url.toEncoded().constData())) PRINT " failed: " PRINTOUT(PRINTABLE(reply->errorString())) COLOR RESET ELSE IF (isHttpRedirect(reply)) THEN COLOR FG TO INTENSE BLUE fprintf(stderr, "Request was redirected.\n") COLOR RESET ELSE '--- use a fincounter to see how many urls finshed and downloaded QString filename = saveFileName(url) filePath = target_dir + filename IF (saveToDisk(filePath, reply)) THEN COLOR FG TO INTENSE YELLOW PRINT "Download of " PRINTOUT(PRINTABLE(url.toEncoded().constData())) PRINT "succeeded! " PRINT "saved as " PRINTOUT(PRINTABLE(filename)) INCR fincounter COLOR RESET END IF END IF END IF IF (dlcounter == fincounter ) THEN COLOR FG TO GREEN PRINT "All downloads finished !" COLOR RESET END END IF END SUB
'-------------------------------------------- FUNCTION isHttpRedirect(QNetworkReply *reply) TYPE bool '-------------------------------------------- 'PRINT "(5)" LOCAL statusCode TYPE int statusCode = reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt() RETURN (statusCode == 301 || statusCode == 302 || statusCode == 303 || \ statusCode == 305 || statusCode == 307 || statusCode == 308) END FUNCTION
'-------------------------------------------- FUNCTION saveFileName(const QUrl &url) TYPE QString '-------------------------------------------- 'PRINT "(6)" LOCAL path TYPE QString LOCAL basename TYPE QString
path = url.path() basename = QFileInfo(path).fileName()
IF (basename.isEmpty()) THEN basename = "download" ELSE
RETURN basename END IF END FUNCTION
'-------------------------------------------- FUNCTION saveToDisk(const QString &filename, QIODevice *data) TYPE bool '-------------------------------------------- 'PRINT "(7)" QFile file(filename) IF (file.open(QIODevice::WriteOnly)) == false THEN COLOR FG TO INTENSE RED EPRINT "Could not open " PRINTOUT(PRINTABLE(filename)) PRINT " for writing: " PRINTOUT(PRINTABLE(file.errorString())) COLOR RESET RETURN FALSE ELSE file.write(data->readAll()) file.close()
RETURN TRUE END IF END FUNCTION
'---main app = new QCoreApplication(argc, argv) 'special note we use QCoreApplication 'instead of the standard QApplication when its all cli CALL DownloadManager CALL execute app->exec()
|
|
|
Post by vovchik on Aug 2, 2022 17:37:42 GMT 1
Dear Joe,
Thanks for the update. I am now getting this identical error on Pi and Mint (runtime):
ASSERT failure in QList<T>::at: "index out of range", file /usr/include/x86_64-linux-gnu/qt5/QtCore/qlist.h, line 541 ERROR: signal ABORT received - internal error. Try to compile the program with TRAP LOCAL to find the cause. ERROR: signal for SEGMENTATION FAULT received - memory invalid or array out of bounds? Try to compile the program with TRAP LOCAL to find the cause.
Is an empty list causing the problem?
With kind regards, vovchik
|
|
|
Post by bigbass on Aug 2, 2022 18:12:08 GMT 1
Hello vovchik
working on it yes probably I have to clean the list somehow
I added your fix and used a regx args.replaceInStrings(QRegExp("^\\s+"),"")
maybe...? it works now
Joe
|
|
|
Post by alexfish on Aug 2, 2022 18:16:05 GMT 1
Hi Joe that worked from the file in a certain dir in end put the cli into /usr/bin clijoe -o /home/pi/maps/17/65489/ https://tile.openstreetmap.org/17/65489/43588.png (1) initialize the Download manager (2) Process the command line urls -o DIR you want the download to go /home/pi/maps/17/65489/ Download of https://tile.openstreetmap.org/17/65489/43588.png succeeded! saved as 43588.png All downloads finished !
BR Alex
|
|
|
Post by vovchik on Aug 2, 2022 18:56:51 GMT 1
Dear Joe (and Alex),
I am still getting this:
(1) initialize the Download manager (2) Process the command line urls ASSERT failure in QList<T>::at: "index out of range", file /usr/include/arm-linux-gnueabihf/qt5/QtCore/qlist.h, line 571 ERROR: signal ABORT received - internal error. Try to compile the program with TRAP LOCAL to find the cause.
both on Pi and Mint. And, I see that everything works for you and Alex. Weird. Time for some head-scratching, maybe.
With kind regards, vovchik
|
|