www.sebr.name

Home Software Getnews

Wenn die Seele etwas erleben möchte, wirft sie das Bild dieser Erfahrung vor sich und fährt dann in das eigene Bild hinein.
Meister Eckhart

Getnews 2.5 Drucken E-Mail
Geschrieben von: Arnold Sebr   
Montag, den 02. November 2009 um 14:17 Uhr

Getnews 2.5 ist ein Komandozeilen Newsreader und Newsgrabber. Das Programm selber wurde von mir in C geschrieben und ist gerade mal 100KB groß und benötigt kaum CPU Resourcen. Getnews wurde geschrieben um Newsgruppen aus dem Usenet im Hintergrund (in einem DOS Fenster) zu verarbeiten. Die Komunikation mit dem Newsserver erfolgt dabei streng nach RFC 977.

Da Getnews nur die Artikel abholt und speichert, ist zum Decodieren der Binaries ein Programm wie UUDEVIEW, UUD oder UUD32WIN erforderlich. UUDEVIEW 0.5 hat dabei den Vorteil, dass es ebenfalls ein Kommandozeilentool ist und decodierte Messages automatisch gelöscht werden können.

Besonderheiten:

  • Getnews benötigt im Betrieb nur etwa 2MB Hauptspeicher und unter 2% CPU-Zeit.
  • Getnews markiert gelesene Message-Ids über alle Gruppen und vermeidet so doppelte downloads.
  • Getnews lädt je Durchgang eine definierbare Anzahl an Artikeln je Gruppe.
  • Getnews verwendet eine Subject Filterdatei um unerwünschte Inhalte zu überspringen (z.B. Videos).
  • Getnews kann Artikel einer Gruppe nach Gruppe aber auch nach Absender in einem eigenen Verzeichnissen ablegen (oder auch nach Gruppe und Absender). Dadurch erhält man einen schönen Überblick, wer was geposted hat.
  • Getnews erstellt je Gruppe oder Absender eine Liste der Gruppen in die ein Artikel ebenfalls geposted wurde.
  • Getnews verarbeitet auch Server mit mehr als 100.000 Gruppen.
  • Getnews verarbeite auch Gruppen mit mehr als 1.000.000 Postings.
  • Getnews kann auch Artikel von verschiedenen Servern abholen.
  • Unerwünschte Absender können je Gruppe geblockt werden.
  • Getnews wurde optimiert um in Verbindung mit REXX Newsgruppen automatisch verarbeiten zu können.
  • Getnews ist eine 32Bit Windows Anwendung.

Installation:
Die Zip-Datei runterladen und in einem eigenen Verzeichnis (z.B.: \getnews) entpacken. 

Anwendung:
getnews  <parameter>

Parameter:
/n=news.newsserver.com (Serveradresse)
/p=119 (Serverport, optional)
/l (abholen der Liste der Newsgruppen, optional)
/m (abholen der Messages, optional)
/u=username (Login zum Server, optional)
/w=passwort (Passwort zum Server, optional)
/v (verarbeiten der Filterdatei, optional)
/e (skip on errors, optional)
alle Parameter sind cAsEsEnSiTvE!

Beispiele:

getnews /n=your.newsserver.com /u=username /w=password /l

Diese Anweisung muss zuerst einmal aufgerufen werden, um eine Liste der Newsgruppen abzuholen. Dieser Vorgang kann beim ersten Aufruf etwas länger dauern, je nachdem, wieviele Newsgruppen am Server sind, da die Liste sortiert wird. Dabei wird eine Datei names your.newsserver.com.act angelegt. Dies Datei muss nun editiert werden (mit Notepad oder einem anderen ACSII-Editor) um Gruppen abzuholen.

----- Datei Beispiel (Ausschnitt) -----
n 0 0 0 100 0.alaskan-malamutes groups\g3
n 0 0 0 100 0.siberian-huskys groups\g4
n 0 0 0 100 0.test groups\g5
n 0 0 0 100 0.verizon.adsl groups\g6
n 0 0 0 100 0.verizon.discussion-general groups\g7
n 0 0 0 100 0.verizon.email.spam groups\g8
n 0 0 0 100 0.verizon.flame groups\g9
n 0 0 0 100 0.verizon.linux groups\g10
n 0 0 0 100 0.verizon.newsgroup.requests groups\g11
n 0 0 0 100 0.verizon.security groups\g12
n 0 0 0 100 0.verizon.test groups\g13
n 0 0 0 100 0.verizon.windowsxp groups\g14
----- Datei Beispiel (Ausschnitt) -----

Je Gruppe existiert eine Zeile in der Datei. Die Datei ist alphabetisch sortiert. Zuerst steht ein Flag. Dieses hat folgende Bedeutung:
n = neue Gruppe, nicht abholen
- = alte Gruppe, nicht abholen  
x = Gruppe nicht abholen
g = Gruppe abholen und alle Artikel in einem Gruppenverzeichnis ablegen.
u = Gruppe abholen und die Artikel in je einem Verzeichnis pro Absender ablegen.
b = Gruppe abholen und je Absender ein Verzeichnis in der jeweiligen Gruppe anlegen.
Die nächsten 3 Zahlen sind Werte für erster Artikel, letzter Artikel, letzter gelesener Artikel (hier zunächst alle 0), die vierte Zahl (hier default 100) gibt an wie viele Artikel in dieser Gruppe abgeholt werden sollen. Danach folgt der Gruppenname und das Gruppenverzeichnis.
Zum Testen am besten mal eine Gruppe auf g, b oder u ändern und die Datei speichern.
Danach folgende Anweisung verwenden um die Artikel abzuholen:

getnews /n=your.newsserver.com /u=username /w=password /m

Jetzt werden die markierten Gruppen abgeholt und z.B. je 100 Artikel gelesen. Danach wird die Gruppendatei etwa so aussehen:

----- Datei Beispiel (Ausschnitt) -----
n 0 0 0 100 0.test groups\g5
n 0 0 0 100 0.verizon.adsl groups\g6
b 17456 343765 17856 100 0.verizon.discussion-general groups\g7
n 0 0 0 100 0.verizon.email.spam groups\g8
n 0 0 0 100 0.verizon.flame groups\g9
----- Datei Beispiel (Ausschnitt) -----

Im Gruppenverzeichnis (hier groups/g7) wurde nun eine Datei Names usrid angelegt. In dieser Datei befindet sich je Absender ein Eintrag.

----- Datei Beispiel (Ausschnitt) -----
1 From: "test1" <noname.anywhere.com>
2 From: "test2" <noname.anywhere.com>
3 From: "user3" <noname.anywhere.com>
----- Datei Beispiel (Ausschnitt) -----

Um nun einen bestimmten Absender zu blocken, muss nur dessen Nummer auf -Nummer geändert werden.

----- Datei Beispiel (Ausschnitt) -----
1 From: "test1" <noname.anywhere.com>
-2 From: "test2" <noname.anywhere.com>
3 From: "user3" <noname.anywhere.com>
----- Datei Beispiel (Ausschnitt) -----

In diesem Beispiel wird also test2 geblockt und keine weiteren Artikel mehr von ihm bezogen.

Bei Verwendung der Parameters /v wird die Subject-Filterdatei getnews.no auf jeden Artikel angewendet.

----- Datei Beispiel (Ausschnitt) -----
-<.avi>
-<.flv>
-<.mov>
-<.mpeg>
-<.mpg>
-<video>
-<any text>
----- Datei Beispiel (Ausschnitt) -----

Das führede - kennzeichnet aktive Einträge. Um einen Filter außer Kraft zu setzten reicht es also das - mit z.B. + zu ersetzen. Die spitzen Klammern schließen nun den Filterbegriff ein (notwendig um Leerzeichen vewenden zu können). 

Nachfolgendes REXX Script zeigt, wie man das Abholen der Newsgruppenliste und Abholen der Newsgruppen automatisieren kann. Das Script beendet sich, wenn entweder kein Artikel mehr zu holen ist, oder der Speicherplatz zu niedrig wird. Getnews liefert die Anzahl der abgeholten Artikel als RC (Errorlevel) zurück. Negative Werte bedeuten dabei Laufzeit Fehler.

----- Datei Beispiel -----
 /* REXX Beispiel Script */
 numeric digits 15
 /* Werte hier anpassen */
 Username = avc23457
 Password = testpass
 Server   = news.yournewsserver.com 
 /* */
 Ret = RxFuncAdd( "SysLoadFuncs" , "RexxUtil" , "SysloadFuncs" )
 Ret = SysLoadFuncs( )
 Base = Directory( )
 DiskDrive = SubStr( Base , 1 , 2 )
 "getnews /n="Server "/l /u="Username "/w="Password
 k = 0
main:
 E = SysDriveInfo( DiskDrive )
 parse var E D1 Sp2 Ge2 Rest
 say sp2
 if Sp2 < 100000000 then do
  Ret = Beep( 600, 600 )
  Ret = Beep( 300, 300 )
  Ret = Directory( Base )
  exit
  end
 if k > 2 then do
  k = 0
  "getnews /n="Server "/m /v /e /u="Username "/w="Password
  end
 else do
  "getnews /n="Server "/m /v /u="Username "/w="Password
  end
 k = k + 1
 say "break with ctrl-c here" k rc
 if rc > 0 then do
  ret = SysSleep( 15 )
  signal main
  end
 exit
----- Datei Beispiel -----

Je nach Bedarf kann dieses Script nun um Befehle erweiter werden um z.B. uudeview auszuführen.
wie z.B.:
"md _deco"
"uudeview -i -a -f -c -p _deco *.msg"
in jedem l_ Verzeichnis

Download getnews als .zip 

Have Fun! 

Derzeit experimentiere ich erfolgreich mit Anpassungen um Header und Artikel in mehreren getrennten Kommandozeilen Tasks abzuholen, diese Version wird aber voraussichtlich nicht als Freeware veröffentlicht.

Für kommerzielle Anpassungen an bestimmte Aufgaben bitte bei mir anfragen.




 

Translate

German

Support Freeware Development

Wechselkurse

EZB Wechselkurse
der Währung EUR 
am 05.09.2010
   USD   1.2834
   GBP   0.83320
   HUF   284.50
   PHP   57.290
   CNY   8.7320

Besucher seit 2009-10-01

Top 10:
Austria flag 49%Austria (1717)
Germany flag 14%Germany (485)
United States flag 13%United States (442)
Russian Federation flag 3%Russian Federation (103)
Belize flag 2%Belize (82)
Luxembourg flag 2%Luxembourg (71)
France flag 2%France (69)
Philippines flag 2%Philippines (58)
Seychelles flag 1%Seychelles (44)
Ukraine flag 1%Ukraine (43)
3500 Besucher von 52 Ländern

Wetter in Seefeld-Kadolz

at.wetter.tv: Seefeld-KadolzWetter Seefeld-Kadolz - Morgen

In Gedenken an Isis und Sirius

Isis Isis
Isis
Isis Sirius Sirius
Sirius
 
© Copyright 2009 by Arnold Sebr. All rights reserved.
Designed and programmed by Arnold Sebr.
Valid XHTML and CSS.
Werbung - Advertising