Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Newsgroup-Einträge empfangen mit idNNTP (https://www.delphipraxis.net/90353-newsgroup-eintraege-empfangen-mit-idnntp.html)

lucius 15. Apr 2007 21:07


Newsgroup-Einträge empfangen mit idNNTP
 
Guten Abend Liebe Delphianer,

Ich moechte in der Regel mal gerne wissen, wie man es mit idNNTP hinkriegt Newsgroup-Einträge zu empfangen und auf der HD zu speichern.
Mal angenommen Ich weiss in welcher Group das Bild steht, den Postnamen usw.
Zitat:

<file poster="Yenc@power-post.org (keut)" date="1175033393" subject="(keut post) [01/95] - &quot;Deliverance.par2&quot; yEnc (1/1)">
<groups><group>alt.binaries.dvd</group></groups>
<segments>
<segment bytes="78319" number="1">part1of1.Q784B3y4R9c$QKgKHpBn@powerpost 2000AA.local</segment>
</segments>
</file>
Zum Beispiel die obengenannte Datei (Deliverance.par2).
Einen Provider habe ich auch.
Ich habe mir die Newsreader Demo von Indy mal angeguckt aber Ich werde nicht richtig Schlau daraus.
Was fuer Komponenten brauche ich, idNNTP, idMessage..?
Wie muss ich vorgehen?
idNNTP1.GetArticle?
idNNTP1.GetBody?
Ein wenig Beispielcode waere herzlich wilkommen sodass Ich weiss wie Ich anfangen soll.

Schonmal Recht Herzlichen Dank und Freundlich Gruesse,

Lucius.

lucius 16. Apr 2007 08:30

Re: Newsgroup-Einträge empfangen mit idNNTP
 
Gibt es keinen der mir da hilft?
Ich waere sehr Dankbar.

Gruss Lucius,

lucius 16. Apr 2007 10:06

Re: Newsgroup-Einträge empfangen mit idNNTP
 
Ich habe es geschafft mich ein zu loggen und etwas zu downloaden.
Jetzt moechte Ich aber die Datei Deliverance.par2 haben in alt.binaries.dvd angeben?
Wie funktioniert dass?
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  i : integer;
begin
Memo1.Clear;
IdNNTP1.Host:='newsreader11.eweka.nl';
IdNNTP1.Username := '******';
IdNNTP1.Password := '******';
IdNNTP1.Port := 119;
idNNTP1.Connect;
idNNTP1.SelectGroup('alt.binaries.x');
idNNTP1.GetArticle(idNNTP1.MsgLow,idmessage1);
for i:=0 to idmessage1.Body.Count-1 do
memo1.Lines.Add(idmessage1.Body.Strings[i]);
Idmessage1.SaveToFile('i:\Test\test.bin');
IdNNTP1.Disconnect;
end;
Gruss Lucius.

marabu 17. Apr 2007 08:48

Re: Newsgroup-Einträge empfangen mit idNNTP
 
Goedemorgen Lucius,

das Verbinden mit dem News-Server hast du selbst hinbekommen, wenn ich dich richtig verstehe. Als nächstes musst du die NZB-Datei analysieren und irgendwie in deiner Benutzerschnittstelle anbieten. Da es sich bei NZB um eine XML-Anwendung handelt, solltest du die Ansätze aus deinem RSS-Projekt wiederverwenden können. Erinnerst du dich noch daran?

Das in deinem Beitrag #1 angegebene Beispiel verwendet zwar Deliverance.par2 im Subject, aber die Message-ID für das Herunterladen findest du als Content des Elements segment. Da größere Dateien in mehrere Segmente aufgespalten werden, musst du oft mehrere Teile herunterladen und miteinander zu einer einzigen Datei verketten.

Einen Vorschlag für den Speichernamen der Datei kannst du eventuell aus dem Subject ableiten, aber da ich noch nicht so viele NZB-Dateien gesehen habe, bin ich nicht sicher, ob das gut funktioniert.

Vriendelijke groetjes,

marabu


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:43 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz