1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. SOLVE-SMART

Beiträge von SOLVE-SMART

  • ControlSend an Textfeld

    • SOLVE-SMART
    • 29. Dezember 2022 um 17:21

    Hi zusammen,

    Windi:
    Dein Vorschlag in Post #6 bezieht sich auf den Login der Webseite, doch die ursprüngliche Frage bezieht sich wohl auf das Produkt StarMoney (für Windows), welches keine Web-App ist.
    Daher bringt dies Schleifchen leider nicht viel. Dennoch gut dargestellt wie leicht der Login mit dem WebDriver (au3WebDriver) sein kann 👍 .

    💡 Als kleiner Tipp für das nächste Mal:
    Mach' es den Nutzer doch gern etwas einfacher und verlinke die Abhängigkeiten (die au3WebDriver UDF Dateien). Oder hänge diese an deinen Post heran, ansonsten weiß der unerfahrene Nutzer ggf. nicht wo er diese Dateien findet.

    Schleifchen:
    Eine kleine "Verbesserung" könnte sein, dass du statt Send('Sc!x3$WV*$aCf&V3%#LE', 1), dein Passwort kurz in die Zwichenablage kopierst und es dann per strg + v einfach in das Feld "sendest". Dies geht schneller und das $SEND_RAW Flag musst du auch nicht setzen.

    AutoIt
    ClipPut('Sc!x3$WV*$aCf&V3%#LE')
    Send('^v')

    Ist am Ende Geschmackssache 😇 .

    Des Weiteren darf ich den meisten anderen hier beipflichten, dass du mit ControlSend, wenn die Klasse sich nicht ändert (daher auch der sub string Tipp von MojoeB mit WinTitleMatchMode = 2), robuster wärst. Doch wenn es nichts weiter ist als was du eingangs erwähntest:

    Zitat von Schleifchen

    [...] Also: Programm starten, Passwort eingeben, Enter :)

    Dann scheint MouseClick völlig ausreichend zu sein 👍 .


    Angenehmen Abend euch allen noch ✨ .

    Viele Grüße
    Sven

  • Webabfrage - Mit Java nachgeladene Inhalte aus Webseite auslesen.

    • SOLVE-SMART
    • 26. Dezember 2022 um 21:26

    Hi Faultier_1982,

    Danke erstmal für den Screenshot und die Infos dazu 👍 . Bei dieser Seite scheint es wirklich ein wenig tricky zu sein, um nicht zu sagen nicht möglich zu sein, die Daten aus dem DOM zu bekommen. Jedoch scheint der Weg über die responses (die Antworten der verschiedenen API requests) zu funktionieren. Dein Ansatz mit dem Network Tab in den Chrome DevTools ist schon richtig, da ist alles zu finden - allerdings kenne ich mich mit dem Kontext überhaupt nicht aus und weiß somit leider auch gar nicht was genau du suchst und auf was es ankommt 😔 .

    Nur mal als Beispiel:
    Es gibt u.a. diesen /tickhistorybefore Endpunkt mit Parametern wie einem UTC Zeitstempel. Dann gibt es den /barhistorybetween Endpunkt, ebenfalls mit Zeitstempel etc.
    Ob dies die Infos sind die du suchst weiß ich nicht. Siehe die Screenshots um dies besser zu bewerten.

    pasted-from-clipboard.png   pasted-from-clipboard.png

    Angenommen dies sieht gut für dich aus, dann würde ich erstmal die Unix Timestamps zu einem verständlichen Datum konvertieren, damit du dann besser sagen kannst ob die Werte mit dem Chart übereinstimmen oder nicht.

    AutoIt
    #include <Date.au3>
    
    Func _GetEpochValue($sEpoch)
        Local Const $sRegExForTenDigitTimestamp = '\d{10}'
        Local Const $iReturnMatchFlag = 1
    
        Return StringRegExp($sEpoch, $sRegExForTenDigitTimestamp, $iReturnMatchFlag)[0]
    EndFunc
    
    Func _ConvertEpochToDate($sTimestamp)
        Local Const $sInitialDate = '1970/01/01 00:00:00'
    
        Return _DateAdd('s', $sTimestamp, $sInitialDate)
    EndFunc
    
    Global Const $sSpecificDate   = '/Date(1671753600000)/' ; "TickDate" or "BarDate" string
    Global Const $sEpochTimestamp = _GetEpochValue($sSpecificDate)
    
    ConsoleWrite(_ConvertEpochToDate($sEpochTimestamp) & @CRLF)
    Alles anzeigen


    Der nächste Schritt wäre dann wahrscheinlich die responses per cURL oder ähnliche Tools (geht auch mit WinHTTP.au3) zu bekommen und dann deine Daten per JSON.au3 zu extrahieren.
    Doch da sind so viele Fragezeichen bei mir, dass ich dir hierzu wahrscheinlich nicht ohne viel Zeit aufzuwenden helfen kann.

    Viele Grüße

    Sven

  • Webabfrage - Mit Java nachgeladene Inhalte aus Webseite auslesen.

    • SOLVE-SMART
    • 26. Dezember 2022 um 14:52

    Hallo Faultier_1982 ,

    ohne auf deine Zielseite bisher navigiert zu sein und mir das mal angeschaut zu haben, kann ich dir sagen das du über die Browser DevTools i.d.R. alle Informationen bekommen solltest.

    Doch zunächst erstmal zu dem was du bereits versucht hast. Es ist immer hilfteich, wenn du deinen bisherigen Quellcode mit uns teilst. Wenn du ggf. Screenshots mit uns teilst, auf denen klar wird was du erreichen willst. In deinem Fall auch, welchen Browser du nutzt, ob du irgendwelche Ad-Blocker oder ähnliches aktiv hast und was dein Ziel ist.

    Soll das Ganze eine einmalige Sache werden oder willst du Daten öfter von der Seite auswerten? Was soll danach damit getan werden.

    💡 Hilf uns ein wenig mehr und die Wahrscheinlichkeit ist groß, dass dir geholfen wird.

    Viele Grüße

    Sven

  • Umfrage: Tutorial zum WebDriver Projekt ("au3WebDriver" von Danp2)

    • SOLVE-SMART
    • 23. Dezember 2022 um 22:14

    Hi bazii ,

    es freut mich sehr, dass es auf Anklang trifft und auch du der Meinung bist das es hilfreich sein sollte 😀 .

    Bzgl. "virtuelles Weihnachten": Ich fange gerade Kapitel 2 von 8 an. Das Erste ist bereits beendet und ich komme gut voran. Dennoch glaube ich, dass ein Veröffentlichungstermin nicht vor der zweiten Januar Woche 2023 sein wird. So habe ich es nun auch schon im englischen Forum angekündigt (es wird also eine deutsche und englische Version geben), damit noch mehr Druck aufkommt 😅 .
    Nein alles gut, freue mich auch auf das Ergebnis - bin guter Dinge.

    Dann mal eine angenehme Weihnachtszeit und drückt mir alle die Daumen das ich es rechtzeitig abschließen werde 🤞 .

    Viele Grüße
    Sven

  • Controlsend in PuTTY für WOL

    • SOLVE-SMART
    • 23. Dezember 2022 um 09:28

    Ich wollte es eher in kleine Häppchen verpacken AspirinJunkie, doch so geht es natürlich auch 😅 .
    Nein ehrlich, Danke dir 🤝 . Spart mir Zeit selbst durch die Referenz zu gehen und ich habe gleich auch noch was dazu gelernt, Danke.

    Jetzt liegt es an dir Swiffer. Die Erläuterung, aber auch die letzte Frage von AspirinJunkie, ist super.

    Viele Grüße
    Sven

  • Controlsend in PuTTY für WOL

    • SOLVE-SMART
    • 23. Dezember 2022 um 08:34

    Hi Swiffer,

    viel besser, Danke dir 🤝 . Okay, also zu deinem ersten Teil schlage ich vor, gar nicht erst über die putty Oberfläche zu gehen und zu versuchen mit ControlSend() putty zu steuern.
    Putty kann über die command line gesteuert werden, daher das folgende code snippet:

    AutoIt
    _StartPuttySession()
    
    Func _StartPuttySession()
        Local Const $bIsDebugMode          = True
        Local Const $sCloseConsole         = $bIsDebugMode ? ' /K ' : ' /C '
        Local Const $sWindowVisibilityFlag = $bIsDebugMode ? @SW_SHOW : @SW_HIDE
        Local Const $sPuttyCommand         = 'putty.exe -load "swiffer"'
    
        ShellExecuteWait(@ComSpec, $sCloseConsole & $sPuttyCommand, '', '', $sWindowVisibilityFlag)
    
        ; Hier, zur Anschauung, die Variablen aufgelöst.
        ;~ ShellExecuteWait(@ComSpec, ' /K putty.exe -load "swiffer"', '', '', @SW_SHOW)
    EndFunc
    Alles anzeigen

    Eigentlich sind es nur Zeile 9 bzw. Zeile 12, welche interessant sind. Das mit dem Debug Modus an/aus ist nur zur Flexibilität. Wenn du statt True auf False stellst, wird dir gar nicht erst das command line Fenster angezeigt.

    Voraussetzung hier ist, dass dein du eine Session mit dem Namen "Swiffer" gespeichert hast. Versuche dies doch mal bitte und dann kümmern wir uns ggf. um den restlichen Login im putty client. Oder du schaust dir schon mal die Doku an 😉 .

    Viele Grüße
    Sven

  • Controlsend in PuTTY für WOL

    • SOLVE-SMART
    • 22. Dezember 2022 um 20:55

    Hi Swiffer,

    kannst du bitte mal ein Screenshot von Putty deinem Post hinzufügen. Denn auf Grund deiner Send-Befehle und der Kommentare dazu kann ich persönlich nur sehr schwer helfen.
    Besser wäre, wenn du vielleicht bebildert zeigen könntest, was du wann drücken/schreiben/ausführen möchtest, dann können wir auch besser einschätzen ob ControlSend() überhaupt sinnvoll ist oder man es ganz anders lösen könnte/sollte.

    So eine Art Klick-Reihenfolge wäre super. Beispiel:

    pasted-from-clipboard.png

    Bitte beschreibe nochmal genau was du tun willst, Danke 🤝 .

    Viele Grüße
    Sven

  • Code Kata - Christmas Tree

    • SOLVE-SMART
    • 22. Dezember 2022 um 09:18
    Zitat von ChatGPT

    [...] Letztendlich hängt es davon ab, welche Anforderungen du an deinen Weihnachtsbaum hast und wie wichtig dir die Lesbarkeit und Flexibilität des Codes sind. Beide von uns vorgestellten Beispiele könnten in unterschiedlichen Situationen sinnvoll sein. Ich hoffe, das hilft bei der Entscheidung! Wenn du weitere Fragen hast, lass es mich wissen.

    Das ist krass! Ich bin begeistert das Clean Code Aspekte in Betracht gezogen werden, bin gleichermaßen aber auch entsetzt wie gut die KI ist 🤪 . Wow.

    Viele Grüße
    Sven

  • Umfrage: Tutorial zum WebDriver Projekt ("au3WebDriver" von Danp2)

    • SOLVE-SMART
    • 22. Dezember 2022 um 09:13

    Hi zusammen,

    als kurzes Update für euch: 💡 Die Tutorial-Struktur steht.

    Ich habe zunächst die technische Evaluierung durchgeführt. Möchte ich im Forum das Tutorial abbilden; möchte ich es als Word (respektive PDF) erstellen; wie soll der Zugang dazu sein, per Webseite etc.; welche visuellen oder auditiven Mittel/Darstellungen möchte ich verwenden? Die Entscheidung(en) verrate ich noch nicht 😅 , es soll ja spannend bleiben.

    Des Weiteren musste ich mich mit der Frage beschäftigen, ob ich das Tutorial in deutsch und englisch machen möchte oder nicht. Zunächst wird es in deutsch erscheinen, doch es ist alles für eine englische Variante vorbereitet. Dies wird dann auch im englischen Forum von mir announced 📢 .

    ☝ Während ich dies hier schreibe, habe ich das Gefühl, dass ich mich um Kopf und Kragen schreibe und die Erwartungen unnötig hoch treibe 😳 . Ich hoffe das der Inhalt am Ende hilfreich sein wird und auf mehr Details sowie mehr Anwendungsbeispiele Lust macht.

    Viele Grüße
    Sven

  • ChatGPT für AutoIt - Talk, Ideen, Kuriositäten

    • SOLVE-SMART
    • 22. Dezember 2022 um 07:52

    Hi Mars ,

    ich finde die Idee des eigenen Threads dazu super 👍 .

    Zitat von Mars


    [...] lustiges, beängstigendes, hilfreiches, nützliches, nutzloses, etc. zu ChatGPT [...]

    Genau dies spiegelt mein Bild von diesem Dienst. Ich bin an sich gespannt was in den nächsten Monaten damit passiert. Am Ende möchte der Eine oder der Andere sich sicherlich daran bereichern und kommt mit ggf. noch mehr neuen Start-ups um die Ecke - ich bin gespannt 🤪 .

    Zitat von Mars

    [...] Man muss also immer im Hinterkopf haben was man als Output erwartet und nicht blind hinterherlaufen was das Teil (die ChatGPT Antwort) ausgibt.

    Ja absolut. Wenn man festgestellt hat, dass die Antwort ggf, fragwürdig ist, kann man sie noch verfeinern lassen (was erschreckenderweise recht gut funktioniert).
    Bspw. geht sowas wie "[...] nutze in deinem Ergebnis <dies> statt <das> [...]".

    💡 Zu einem späteren Zeitpunkt würde ich hier nochmal was zum geliebten Datenschutz, Urheberrecht und etwaigen Dingen schreiben. Das wird auch noch sehr "witzig" werden.


    Viele Grüße
    Sven

  • Code Kata - Christmas Tree

    • SOLVE-SMART
    • 21. Dezember 2022 um 16:22

    OMG Mars,

    du machst mich fertig 🤪😂 . Danke auch für deine Teilnahme 👍 .

    Kurz: Ist auch eine Lösung, stimmt auch.
    Noch kürzer: #augenbluten 😅 .

    Viele Grüße
    Sven

  • Code Kata - Christmas Tree

    • SOLVE-SMART
    • 21. Dezember 2022 um 13:49

    Hi BugFix ,

    Zitat von BugFix

    [...] Wieviel Fehlermanagement soll der Ersteller einer UDF anbieten und wieviel soll der Anwender tun.

    Ich bin der Meinung, wenn klar definiert ist, wie ein Parameter auszusehen hat (in diesem Fall "String mit einer Funktion"), dann kann die UDF davon ausgehen, dass genau das übergeben wird und muss nicht extra Prüfungen durchführen. Diese Prüfung kann der Anwender problemlos selbst vorab durchführen, z.B. durch exportieren des Codes in eine Temp.au3 und Auswertung dieser mit Syntaxcheck.

    Da bin ich absolut bei dir 👍 . Ich würde diese Prüfung auch dem Anwender überlassen, wollte nur auf den Umstand aufmerksam machen, dass dies "unter umständen" zu längeren Fehlersuchaktionen führen kann.

    AspirinJunkie:

    Zitat von AspirinJunkie

    [...] Diese ist ja nur mit in die UDF gekommen um eben extra zu schreibende Funktionen für kleinere Sachen zu vermeiden.

    Dies hätte ich persönlich so einfach nicht angeboten bzw. zugelassen. Die eine Variante, Funktionen zu übergeben, sollte "reichen". Das wäre strikter und ggf. weniger Fehleranfällig. Allerdings möchte ich auch keine Grundsatzdiskussion anheizen. Ich verstehe die Beweggründe und den Gedanken einer komfortablen Nutzung gut 👍 .

    Viele Grüße
    Sven

    PS.: Bitte lasst uns weitere Diskussionen dieser Art, falls sie nötig wären, in einem separaten Thread führen, Danke 🤝 .

  • Code Kata - Christmas Tree

    • SOLVE-SMART
    • 21. Dezember 2022 um 13:35

    HI AspirinJunkie ,

    ich meine das so:

    AutoIt
    ; Der zweite Parameter hier ist ein String.
    ; Dieser wird beim Ausführen nicht validiert.
    _ArrayCreate("1:" & 2*$nEbenen & ":2", '_StringRepeat("X", $A)')
    
    ; Nun, als Beispiel, habe ich einen Typo in _StringRepeat(), also _StringRepaet().
    ; Dieser wird beim Ausführen nicht validiert. Und ich muss ggf. eine Weile suchen, wo der Fehler steckt.
    _ArrayCreate("1:" & 2*$nEbenen & ":2", '_StringRepaet("X", $A)')
    
    ; --------------------------------------
    
    ; Wenn es kein String ist,
    ; wird gleich in der Konsole auf einen Fehler hingewiesen.
    _StringRepaet("X", $A)
    Alles anzeigen

    Am Ende keine größe Sache, aber die Verwendung von Strings maskiert hierbei Fehler (im Fall der Fälle 😅).

    Viele Grüße
    Sven

  • Code Kata - Christmas Tree

    • SOLVE-SMART
    • 21. Dezember 2022 um 07:28

    Hi AspirinJunkie ,

    Zitat von AspirinJunkie

    [...] ChatGPT [...]
    Meine Frage war einfach: "Schreibe ein AutoIt-Programm, welches einen Tannenbaum in der Konsole ausgibt."

    Tja und das hier war das Ergebnis:


    gruselig...

    Ja absolut. Das sogar genug Daten für eine eher Nischensprache wie AutoIt vorhanden sind, ist krass!
    Auch wenn Dinge wie # RequireAdmin (falsch) und das Sleep(10000) am Ende darauf hindeuten das da nicht wie ein Mensch überlegt wurde, ist es schon beachtlich das zumindest die Grundlogik um das Problem zu lösen stimmt 🤯😅 .

    Zitat von AspirinJunkie

    Um mal wieder penetrant Werbung einzubauen - hier meine Methode mit der _ArrayPlus-UDF:

    Super Beispiel was ein wenig Abstraktion an Qualität bringen kann 👍 . Gefällt mir gut, deine ArrayPlus.au3.
    Elegant und super simple, cool!

    Ein kleines aber gibt es trotzdem von mir: Ein wenig schade ist, dass bei dem expliziten Ansatz, eine Funktion als Parameter zu übergeben, jegliche Kontrolle vor dem ausführen bzw. beim Kompilieren verloren geht, da es ja einfach ein string ist. Zudem kommt dazu, dass eine weitere UDF eingebunden werden muss, doch insgesamt überwiegen auch für mich die Vorteile 😀 .

    💡 Fazit: Auch deine Variante ist natürlich korrekt, Danke dir fürs Mitmachen.


    Viele Grüße
    Sven

  • Umfrage: Tutorial zum WebDriver Projekt ("au3WebDriver" von Danp2)

    • SOLVE-SMART
    • 20. Dezember 2022 um 21:14
    Zitat von Bitnugger

    Ich würde über den Inhalt nachdenken... das Format ergibt sich dann quasi von selbst. ;)

    So unterschiedlich können die Herangehensweisen sein 😅 . Keine Sorge, wird schon.

  • Umfrage: Tutorial zum WebDriver Projekt ("au3WebDriver" von Danp2)

    • SOLVE-SMART
    • 20. Dezember 2022 um 20:38

    Hi Bitnugger ,

    wird gemacht 👍 .
    Ich denke bereits über das Format nach, der Inhalt kommt dann von allein (hoffentlich 😅🤞 ).

    💡 Also für alle: Es wird das Tutorial zum WebDriver geben, seid gern gespannt, wartet aber nicht sehnsüchtig darauf 😊 .

    Viele Grüße
    Sven

  • Umfrage: Tutorial zum WebDriver Projekt ("au3WebDriver" von Danp2)

    • SOLVE-SMART
    • 19. Dezember 2022 um 21:41

    Hi water ,

    Zitat von water

    [...] Tutorial finde ich auf jeden Fall gut! Der Bedarf ist sicher gegeben, da das Thema WebDriver doch sehr komplex ist.

    da hast du absolut Recht. Mir ist auch gerade aufgefallen, dass du bereits ein Tutorial Thread im engl. Forum erstellt hattest (2020), was dann zum Wiki führte.
    Sehr cool, gut gemacht 👍 .

    Das Einzige was mich nun noch abschreckt ist, dass es die 10 Dateiengrenze (Anhänge) hier gibt und nur 5 MB insgesamt.
    Also wenn ich Bilder, ggf. ein Audio-Kommentar oder ein animiertes GIF ins Tutorial einbauen will (damit es etwas attraktiver und interaktiver wird), bin ich da super eingeschränkt - das nervt mich jetzt schon.

    Wenn ich allerdings die Bilder etc. bspw. auf GitHub hosten würde, kann ich sie hier nicht direkt einbetten - auch nervig 😒 .
    Mal sehen für was ich mich entscheide.

    Angenehmen Abend dir noch water 😀 .

    Viele Grüße
    Sven

  • Umfrage: Tutorial zum WebDriver Projekt ("au3WebDriver" von Danp2)

    • SOLVE-SMART
    • 19. Dezember 2022 um 16:05

    Hi Alina ,

    Danke für deine Tipps 👍 . Ich habe nicht den Anspruch eine Handlungsanweisung zu schreiben, die jeder 1 zu 1 befolgen können muss. Soll mehr eine Hilfestellung für den ersten Umgang mit dem WebDriver sein. Das Querlesen bzw. ausprobieren würde ich einfach von den Nutzern machen lassen, die sowieso gerade sich mit dem WebDriver beschäftigen wollen. Also ein recht praktischer Ansatz, da meine Zeit die ich dafür investieren möchte begrenzt ist 🙃 .

    water Danke auch dir für deinen Hinweis 😀 .
    Ich kenne das Wiki dazu. Auch dort habe ich vor einigen Monaten mal etwas aktualisiert - du erinnerst dich vielleicht? Wir sprachen/schrieben sogar per PM dazu mal 😅 .
    Da ich zusammen mit Dan und mLipok die README.md des Github Projekts erstellt habe, weiß ich (hoffentlich) recht gut auf was ich mich fokussieren möchte.

    Vielleicht sollte ich im Tutorial, wenn ich es denn schreibe, ganz genau erwähnen was nicht Teil des Tuts sein wird.
    ==> Wie nutze ich das Vorhandene, wie binde ich es ein, auf was muss ich achten? Mehr erstmal nicht.

    Viele Grüße
    Sven

  • Umfrage: Tutorial zum WebDriver Projekt ("au3WebDriver" von Danp2)

    • SOLVE-SMART
    • 19. Dezember 2022 um 14:57

    Hi zusammen,

    ich habe mich gefragt, ob es für einige von euch interessant und sogar hilfreich sein könnte, wenn es ein Tutorial zum WebDriver Projekt gäbe?
    Was ist das? Initiiert durch Danp2 ==> https://github.com/Danp2/au3WebDriver.

    Ich sehe immer wieder mal (ehrlich gesagt mehr im englischen Forum, hier gelegentlich), dass Nutzer mit InetGet oder über den alten _IE* Object Ansatz, Informationen aus dem Web holen wollen/müssen (um diese dann weiter zu verarbeiten), doch damit nicht zu Rande kommen oder auf Grund von Restriktionen nicht an die Informationen kommen.

    ==> Dann ist meist schnell von [...] nutze doch dies, nutze doch das [...] (Web API (cURL), falls vorhanden etc.) die Rede.
    ==> Ggf. besteht keine API oder der Nutzer kennt sich mit Requests <=> Responses nicht aus oder oder oder.

    In meinem potenziellen Tutorial würde ich gern, in einer 1️⃣. Iteration (auf high level), die AutoIt Implementierung der WebDriver Spezifikation, bzw. wie diese genutzt werden kann (wie es in das eigene Projekt integrierte werden kann) beschreiben. In einer 2️⃣. Iteration würde ich dann ggf. auf konkrete Anwendungsbeispiele zur Automatisierung eines Browsers eingehen.


    Soweit ich gesehen habe, gibt es bisher kein Tutorial in dieser Richtung, daher die Frage:
    Überhaupt interessant? Danke für euer Feedback 🤝 .

    Viele Grüße
    Sven

  • Code Kata - Christmas Tree

    • SOLVE-SMART
    • 19. Dezember 2022 um 13:48

    Alina und Moombas ihr seid mir zwei Schlingel 😂 , schlimm!

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™