home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Meeting Pearls 3
/
Meeting_Pearls_III.iso
/
Pearls
/
comm
/
Mail+News
/
UMS11
/
rexx
/
MausMitglied.intui
< prev
next >
Wrap
Text File
|
1995-06-27
|
7KB
|
237 lines
/****** MausMitglied.intui ************************************************************
NAME
$VER: MausMitglied.intui 1.4 (27.6.95) by Olaf Peters
*** This script is only useful in the german MausNet (R) ***
AUTHOR
Olaf Peters
Kulmer Str. 7
28237 Bremen
op@hb2.maus.de / olf@informatik.uni-bremen.de
SYNOPSIS
Unterstützt die Mitglieder-/Chefverwaltung in Mausgruppen.
FUNCTION
Dieses Script ermöglicht es aus IntuiNews' Nachrichtenfenster heraus
ein Mitglied in einer Mausgruppe einzutragen bzw. auszutragen oder
auch als Chef zu setzen (Vorausgesetzt man ist Sysop in der Maus).
Das Script ist dabei so flexibel, daß es die nötigen Angaben
weitestgehend automatisch erkennt. Das neue Mitglied (bzw. der neue
Chef) muß dabei immer der Absender der gerade im Nachrichtenfenster
angezeigten Mitteilung sein, dabei spielt es keine Rolle, ob es sich
um eine PM oder um eine Nachricht in einer Gruppe handelt. Bei
Gruppenmitteilungen fragt das Script, ob es für den Absender auch um
jene Gruppe handelt (wichtig bei Austragen/Chef setzen) und erlaubt
ggf. eine Änderung der Gruppe.
Das Script fragt - nach eventueller Vervollständigung der Angaben -
welche Aktion ausgeführt werden soll (Eintragen, Austragen, Chef
setzen) und schreibt danach die Mauscontrol-Mitteilung an den
Exporter aus dessen Maus das neue Mitglied schreibt. Z.B. schreibt
"Heike Musterfrau, hb2.maus", daß sie gerne in BIETE aufgenommen
werden möchte. Das Script schickt die Mauscontrol-Nachricht dann
(entsprechende Bestätigung vorausgesetzt) an "maus.hb2, hb2.maus".
NEEDS
Für die Benutzung des Scripts muß folgendes installiert sein:
· mindestens IntuiNews v1.3 beta 6 (wegen des ARexx-Ports)
· mindestens UMSServer v11.20+ (wegen des UMSDupAccount Tricks für
normale Logins)
· reqtools.library und reqrexxtools.library (für die Requester)
BUGS
Keine bekannt. Sollten welche auftauchen, bitte mailen (s.o.)
$HISTORY:
27.6.95 1.4 : INFO SCREEN statt GetPubScreenName -> IN 1.3b9
27.3.95 1.3 : PubScreenname wird jetzt von IntuiNews geholt (beta 6)
25.3.95 1.2 : · Anpassung an IntuiNews v1.3b5
· Bug beseitigt, der die ///mauscontrol im Infile
verhunzte: ein LF hinter dem 'G'-Kommando hat's
gebracht.
· es wird überprüft, ob es den Alias 'maus.xy' gibt.
Damit sollten Unfugmails eingeschränkt werden?
16.3.95 1.1 : Mitglied eintragen funktionierte irgendwie nicht?!
14.3.95 1.0 : initial
******************************************************************************
*
*/
ProgramName = "MausMitglied.rexx"
lf = '0a'x
eztags = "rtez_flags=ezreqf_centertext"
rstags = "rtgs_flags=gsreqf_centertext"
/*** Startup ***/
options results
RC = 0
account = 0
signal on BREAK_C
signal on BREAK_D
signal on BREAK_E
signal on BREAK_F
signal on ERROR
signal on HALT
signal on IOERR
signal on SYNTAX
/*/// "Libs einbinden" */
if ~show(l, "rexxreqtools.library") then
if ~addlib("rexxreqtools.library", 0, -30, 0) then do
say "rexxreqtools.library konnte nicht geöffnet werden!" ;
exit(20) ;
end
libname = "ums.library"
if ~show("L", "ums.library") then do
if ~addlib("ums.library", 0, -210, 8) then do
say "ums.library not found!"
exit(20)
end
end
call UMSInitConsts
/*\\\*/
/*/// "Login duplizieren" */
'info screen'
screen = result
eztags = eztags "rt_pubscrname='" || screen || "'"
rstags = rstags "rt_pubscrname='" || screen || "'"
'status'
if result ~= "MESSAGE" then do
rtezrequest("Du mußt im Nachrichtenfenster sein,"|| lf || "um dieses Script auszuführen!", "_Abbruch", ProgramName, eztags)
call HALT
end
'getaccount'
if (result = "RESULT") | (result = 0) then do
rtezrequest("Script konnte keinen Account bekommen!", "_Abbruch", ProgramName, eztags)
call HALT
end ; else
login = result
account = UMSLogin("", login, "")
if account = 0 then do
rtezrequest("Konnte Account nicht duplizieren!", "_Abbruch", ProgramName, eztags)
call HALT
end
/*\\\*/
'getmsgnum'
if result = "RESULT" then do
rtezrequest("No message no fun! :-)", "_Abbruch", ProgramName, eztags)
call HALT
end ; else
msgnum = result
drop msg.
if ~UMSReadMsgHeader(account, msgnum, msg., true) then do
rtezrequest("Nachricht konnte nicht gelesen werden!", "_Abbruch", ProgramName, eztags)
call HALT
end
if upper(right(msg.UMSCODE_FromAddr, 5)) ~= ".MAUS" then do
rtezrequest(msg.UMSCODE_FromName "hat keine Mausadresse.", "_Abbruch", ProgramName, eztags)
call HALT
end
parse var msg.UMSCODE_FromAddr maus ".maus"
if UMSReadConfigUserName(account, "maus." || maus) = "" then do
rtezrequest("Für die Maus" maus "gibt's hier keinen Exporter!", "_Abbruch", ProgramName, eztags)
call HALT
end
if msg.UMSCODE_Group = "MSG." || UMSCODE_Group then do
parse var msg.UMSCODE_ToName Chef Gruppe .
reqgrp = (upper(Chef) ~= "CHEF")
end ; else do
parse var msg.UMSCODE_Group "maus." . "." gruppe
if gruppe = "" then do
reqgrp = true
end ; else
reqgrp = (rtezrequest("Nachricht in Gruppe" gruppe || "." || lf || "Geht's auch um diese Gruppe?", "_Ja|_Nein", ProgramName, eztags) = 0)
end
if reqgrp then do
gruppe = rtgetstring("", "User:" msg.UMSCODE_FromName || lf || lf || "Um welche Gruppe geht's?", ProgramName, "_Okay|_Abbruch", rstags, rtres)
if rtres = 0 then
call HALT
end
wahl = rtezrequest("Gruppe:" gruppe || lf || lf || "Was soll mit" msg.UMSCODE_FromName "passieren?", "_Eintragen|A_ustragen|Als _Chef|_Abbruch", ProgramName, eztags)
select
when wahl = 1 then
op = ">"
when wahl = 2 then
op = "<"
when wahl = 3 then
op = "="
otherwise
call HALT
end
drop ctrl.
ctrl.UMSCODE_ToName = "maus." || maus
ctrl.UMSCODE_ToAddr = maus || ".maus"
ctrl.UMSCODE_Subject = "///mauscontrol"
ctrl.UMSCODE_MsgText = "GU" || msg.UMSCODE_FromName || op || gruppe || lf
if UMSWriteMsg(account, ctrl.) = 0 then do
rtezrequest("Mauscontrol-Nachricht konnte nicht geschrieben werden:" || lf || "UMS Error #" || UMSErrNum(account) || ":" UMSErrTxt(account), "_Abbruch", ProgramName, eztags)
end ; else
rtezrequest("Mauscontrol-Nachricht erfolgreich geschrieben.", "_Okay", ProgramName, eztags)
/*/// "Final cleanup" */
BREAK_C:
BREAK_D:
BREAK_E:
BREAK_F:
ERROR:
HALT:
IOERR:
SYNTAX:
/*** Logout ***/
if account ~= 0 then do
call UMSLogout(account)
account = 0
end
exit 0
/*** Support ***/
CheckErr: procedure expose account
err = UMSErrNum(account)
if err ~= 0 then do
rtezrequest("UMS Error #" || err || ": " || UMSErrTxt(account))
end
return
/*\\\*/