Output von WGet (und anderen Programmen) einlesen

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
Sebert
Beiträge: 19
Registriert: 21.03.2014 19:12

Re: Output von WGet (und anderen Programmen) einlesen

Beitrag von Sebert »

Hi Kiffi,

vielen Dank, das wars. Jetzt muß ich mir noch überlegen wie ich mir den Output
in was handlicheres zerlege, denn so ist das einfach zu viel, aber ein Anfang ist gemacht.


Aber auch vielen Dank an Thomas & ts-soft für eure Mühen

Grüße

Sebastian
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: Output von WGet (und anderen Programmen) einlesen

Beitrag von ts-soft »

Wie gesagt, die Hilfe lesen hilft meist auch :mrgreen:
GNU Wget 1.11.4 Manual hat geschrieben:The messages are normally reported to standard error.
Den Rest wirste ja jetzt schaffen, ansonsten: die Hilfe hilft :wink:
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
Sebert
Beiträge: 19
Registriert: 21.03.2014 19:12

Re: Output von WGet (und anderen Programmen) einlesen

Beitrag von Sebert »

ts-soft hat geschrieben:Wie gesagt, die Hilfe lesen hilft meist auch :mrgreen:
GNU Wget 1.11.4 Manual hat geschrieben:The messages are normally reported to standard error.
Den Rest wirste ja jetzt schaffen, ansonsten: die Hilfe hilft :wink:
Ja, den Rest bekomme ich mit Trial & Error hin :allright:

Und das mit der Hilfe, habe den Absatz "Logging and Input File Options" sogar überflogen,
aber da es da um logfiles ging habe ich das übersprungen, weil scheinbar nicht von Interesse :doh:

Grüße

Sebastian
Benutzeravatar
Sebert
Beiträge: 19
Registriert: 21.03.2014 19:12

Re: Output von WGet (und anderen Programmen) einlesen

Beitrag von Sebert »

Servus,

habe dann dochmal eine Frage, bzw. bin auf ein Verhalten gestossen, welches ich mir nicht erklären kann.

Anbei mein Code

Code: Alles auswählen

  

Kommandline = "-O "+ zieldatei + " " + url + " --no-check-certificate"

 Wget = RunProgram(wgetpfad,Kommandline,zielordner,#PB_Program_Open| #PB_Program_Error | #PB_Program_Hide)

If Wget
    ClearGadgetItems(#TEXT_DOWNLOAD)
    While ProgramRunning(Wget)
      String = ReadProgramError(Wget)
      If String <> ""
        AddGadgetItem(#TEXT_DOWNLOAD, 0, String)
      EndIf  
   Wend 
  
  AddGadgetItem(#TEXT_AUSGABE,-1,"Exitcode " + ProgramExitCode(Wget) )
  ProcedureReturn ProgramExitCode(Wget) 
  KillProgram(Wget)
  CloseProgram(Wget)  
Else
  ProcedureReturn 1
EndIf
Das klappt auch wie gewünscht bei fast allen meinen Podcasts. Den Parameter " --no-check-certificate" habe ich wegen einem
Podcast hinzugefügt: http://feeds.podtrac.com/0nc59cm6Sqs$
Da gibt es sonst Knatsch gibt wegen eines fehlerhaften Zertifikates.
Und wenn ich das manuell versuche, bzw. mir die Kommandline ausgeben lasse, und damit wget starte, dann klappt alles.
Innerhalb meines Programmes springt "If Wget" hier sofort auf #False und der download startet nicht.
Wenn ich die Flags bei RunProgram weglasse, dann klappt es. Fällt jemanden dazu eine Erklärung ein?

Grüße

Sebastian
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8808
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Re: Output von WGet (und anderen Programmen) einlesen

Beitrag von NicTheQuick »

Hast du es schon mal mit Anführungszeichen versucht?

Code: Alles auswählen

Kommandline = "-O " + Chr(34) + zieldatei + Chr(34) + " " + Chr(34) + url + Chr(34) + " --no-check-certificate"
Benutzeravatar
Sebert
Beiträge: 19
Registriert: 21.03.2014 19:12

Re: Output von WGet (und anderen Programmen) einlesen

Beitrag von Sebert »

Hi Nic,

getestet, macht aber keinen Unterschied (wget erwartet sowieso keine Anführunszeichen). Die Kommandline an sich tut ja auch.
Problem ist ja nur das Verhalten mit den Flags.

Grüße

Sebastian
Benutzeravatar
Kiffi
Beiträge: 10711
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: Output von WGet (und anderen Programmen) einlesen

Beitrag von Kiffi »

mh, überall lese ich sowas hier:
wget [option]... [URL]...
versuch mal testweise "--no-check-certificate" nach vorne zu setzen. Sollte eigentlich keinen Unterschied machen, aber vielleicht hilft's ja.

Grüße ... Kiffi
a²+b²=mc²
Benutzeravatar
Sebert
Beiträge: 19
Registriert: 21.03.2014 19:12

Re: Output von WGet (und anderen Programmen) einlesen

Beitrag von Sebert »

Hi kiffi,

macht leider auch keinen Unterschied.

Könnte es daran liegen, dass Wget bei diesem feed auf die SSL Funktionen der im Paket enthaltenen "libssl32.dll" zurückgreift,
und dass die Sache durcheinanderbringt?

Grüße

Sebastian
Benutzeravatar
Kiffi
Beiträge: 10711
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: Output von WGet (und anderen Programmen) einlesen

Beitrag von Kiffi »

Sebert hat geschrieben:Den Parameter " --no-check-certificate" habe ich wegen einem
Podcast hinzugefügt: http://feeds.podtrac.com/0nc59cm6Sqs$
Da gibt es sonst Knatsch gibt wegen eines fehlerhaften Zertifikates.
habe ich grade nochmal selber ausprobiert. Kein Knatsch bei mir.
Und auch kein Fehler beim Programmstart (ohne und mit '--no-check-...').

Code: Alles auswählen

EnableExplicit

Define wgetpfad.s = Chr(34) + "C:\Program Files (x86)\GnuWin32\bin\wget.exe" + Chr(34)
Define url.s = "http://feeds.podtrac.com/0nc59cm6Sqs$"
Define zieldatei.s = GetTemporaryDirectory() + "feed.xml"
Define zielordner.s = GetTemporaryDirectory()

; Define Kommandline.s = "-O " + zieldatei + " " + url + " --no-check-certificate"
Define Kommandline.s = "-O " + zieldatei + " " + url ; + " --no-check-certificate"

Define Wget = RunProgram(wgetpfad,Kommandline,zielordner,#PB_Program_Open| #PB_Program_Error | #PB_Program_Hide)

Define String.s

If Wget
	
	While ProgramRunning(Wget)
		String = ReadProgramError(Wget)
		If String <> ""
			Debug String
		EndIf  
	Wend 
	
	Debug "Exitcode " + ProgramExitCode(Wget)
	
	KillProgram(Wget)
	
	CloseProgram(Wget)  
	
EndIf
[22:10:43] SYSTEM_WGETRC = c:/progra~1/wget/etc/wgetrc
[22:10:43] syswgetrc = C:\Program Files (x86)\GnuWin32/etc/wgetrc
[22:10:43] --2014-05-05 22:10:43-- http://feeds.podtrac.com/0nc59cm6Sqs$
[22:10:43] Auflösen des Hostnamen »feeds.podtrac.com«.... 174.129.205.3
[22:10:43] Verbindungsaufbau zu feeds.podtrac.com|174.129.205.3|:80... verbunden.
[22:10:43] HTTP Anforderung gesendet, warte auf Antwort... 200 OK
[22:10:43] Länge: nicht spezifiziert [application/rss+xml]
[22:10:43] In »C:/Users/Pitta/AppData/Local/Temp/feed.xml« speichern.
[22:10:44] 0K .......... .......... .......... .......... .......... 128K
[22:10:44] 50K .......... .......... .......... .......... .......... 389K
[22:10:44] 100K .......... .......... .......... .......... .......... 424K
[22:10:44] 150K .......... .......... .......... .......... .......... 1,24M
[22:10:44] 200K .......... .......... .......... .......... ........ 415K=0,8s
[22:10:44] 2014-05-05 22:10:44 (313 KB/s) - »C:/Users/Pitta/AppData/Local/Temp/feed.xml« gespeichert [254098]
[22:10:44] Exitcode 0
Sicher, dass das der richtige URL ist?

Grüße ... Kiffi
a²+b²=mc²
Benutzeravatar
Sebert
Beiträge: 19
Registriert: 21.03.2014 19:12

Re: Output von WGet (und anderen Programmen) einlesen

Beitrag von Sebert »

Hi kiffi,

vielleicht habe ich mich da unklar ausgedrückt.
Der Feed ist in Ordnung, es geht um die enclosures des feeds.

Also zBsp
"http://www.podtrac.com/pts/redirect.mp3 ... 030512.mp3"

Da kommt dann ohne "--no-check..." folgendes bei mir raus:

Code: Alles auswählen

--2014-05-06 06:18:42--  http://www.podtrac.com/pts/redirect.mp3/www.dragonpage.com/podpress_trac/feed/3467/0/DrgnPgC2C_Ep464_030512.mp3
Resolving www.podtrac.com... 69.16.232.40
Connecting to www.podtrac.com|69.16.232.40|:80... connected.
HTTP request sent, awaiting response... 302 Found
Location: http://www.dragonpage.com/podpress_trac/feed/3467/0/DrgnPgC2C_Ep464_030512.mp3 [following]
--2014-05-06 06:18:42--  http://www.dragonpage.com/podpress_trac/feed/3467/0/DrgnPgC2C_Ep464_030512.mp3
Resolving www.dragonpage.com... 50.78.224.105
Connecting to www.dragonpage.com|50.78.224.105|:80... connected.
HTTP request sent, awaiting response... 302 Found
Location: http://dl.dropbox.com/s/w024evh8ba0m49q/DrgnPgC2C_Ep464_030512.mp3 [following]
--2014-05-06 06:18:43--  http://dl.dropbox.com/s/w024evh8ba0m49q/DrgnPgC2C_Ep464_030512.mp3
Resolving dl.dropbox.com... 54.225.160.64
Connecting to dl.dropbox.com|54.225.160.64|:80... connected.
HTTP request sent, awaiting response... 302 FOUND
Location: http://dl.dropboxusercontent.com/s/w024evh8ba0m49q/DrgnPgC2C_Ep464_030512.mp3 [following]
--2014-05-06 06:18:43--  http://dl.dropboxusercontent.com/s/w024evh8ba0m49q/DrgnPgC2C_Ep464_030512.mp3
Resolving dl.dropboxusercontent.com... 50.16.206.191, 50.16.219.169, 50.19.217.218, ...
Connecting to dl.dropboxusercontent.com|50.16.206.191|:80... connected.
HTTP request sent, awaiting response... 302 FOUND
Cookie coming from dl.dropboxusercontent.com attempted to set domain to dropbox.com
Cookie coming from dl.dropboxusercontent.com attempted to set domain to dropbox.com
Location: https://dl.dropboxusercontent.com/s/w024evh8ba0m49q/DrgnPgC2C_Ep464_030512.mp3 [following]
--2014-05-06 06:18:44--  https://dl.dropboxusercontent.com/s/w024evh8ba0m49q/DrgnPgC2C_Ep464_030512.mp3
Connecting to dl.dropboxusercontent.com|50.16.206.191|:443... connected.
ERROR: cannot verify dl.dropboxusercontent.com's certificate, issued by `/C=US/O=DigiCert Inc/OU=www.digicert.com/CN=DigiCert SHA2 High Assurance Server CA':
  Unable to locally verify the issuer's authority.
To connect to dl.dropboxusercontent.com insecurely, use `--no-check-certificate'.
Unable to establish SSL connection.
EDIT: Bei deinem Code funzt der Download auch mit der komischen SSL Verbindung...grübel

Grüße

Sebatsian
Antworten