PyTeamspeak2

Stellt hier eure Projekte vor.
Internetseiten, Skripte, und alles andere bzgl. Python.
Benutzeravatar
BasterTWO
User
Beiträge: 75
Registriert: Donnerstag 25. Oktober 2007, 20:03

PyTeamspeak2

Beitragvon BasterTWO » Freitag 26. Dezember 2008, 02:41

Hallo Python Freunde,
ich habe seit längerem an einer PythonClass für Teamspeak gearbeitet und habe nun mit meiner vorkurzen fertiggestellten LogClass ein Python Modul erstellt welches ich nun auch veröffentlicht habe.

Ich würde mich über Anregungen und Vorschläge freuen. :)

Projekt Homepage
http://code.google.com/p/pyteamspeak2/

MfG
BasterTWO
DasIch
User
Beiträge: 2423
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

Beitragvon DasIch » Freitag 26. Dezember 2008, 02:48

Du weisst aber schon dass Multilinestrings, Multilinestrings heissen weil sie über mehrere Zeilen - nicht Spalten - gehen können?
Die Bennenung der Methoden ist - auch wenn PEP 8 konform - grauenhaft. Kannst du dir eigentlich selbst merken was wofür steht? :shock:
Benutzeravatar
BasterTWO
User
Beiträge: 75
Registriert: Donnerstag 25. Oktober 2007, 20:03

Beitragvon BasterTWO » Freitag 26. Dezember 2008, 02:50

Die Funktionsnamen bestehen aus den TelnetBefehlen wodurch sie leichter zumerken sind wenn man schon mal mit der Telnet Schnittstelle gearbeitet hat.

Desweitern arbeitet ich noch an der Dokumentation :P

BasterTWO
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Freitag 26. Dezember 2008, 03:12

Also ehrlich, eine Zeile mit 655 Zeichen länge impliziert doch dass man etwas fürchterlich falsch gemacht hat. Ebenso der Reguläre Ausdruck der eher Ausschaut wie ein Beispiel für Loop Unfolding als lesbaren Quellcode. Dann noch diese exzessiven Bodenstriche, herumindexiere, magische Zahlen (250? Was soll denn 250 sein?). Bei %s muss man auch nicht mehr explizit ``str()`` aufrufen, aber das ist mir nur so beim überfliegen aufgefallen. Zu PEP8 muss ich wohl auch nix sagen. Irgendwie kommt es mir vor dass mit brauchbaren Abstraktionen man 50% bis 70% des Codes (1127 Zeilen) einfach loswerden kann. Mehr habe ich mir dann nicht mehr angeschaut, weil es spät ist und weil mich TeamSpeak eigentlich auch überhaupt nicht interessiert.

Und ja, es ist mir bewusst dass ich nicht freundlich rüberkomme ;) Aber vielleicht kannst du ja trotzdem etwas aus der Kritik mitnehmen.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Benutzeravatar
BasterTWO
User
Beiträge: 75
Registriert: Donnerstag 25. Oktober 2007, 20:03

Danke!

Beitragvon BasterTWO » Freitag 26. Dezember 2008, 11:38

Ich finde es super das ihr euch meinen Code so genau angeschaut habt und das ich auch streng mit mir seit, weil ich will einfach das mein Code besser zu lesen ist da ich mich selber kaum zu recht finde. :wink:

Leider war mir PEP8 beim Coden vollständig unbekannt und muss mich nun dort erstmal rein lesen. Auch mit das mit %s ist mir neu aber klingt logisch und wird denn Code auch stark kürzen. Was ich auch toll finde das du meine Reguläre Ausdrüke angeschaut hast ich weis noch nicht so ganz wie ich die besser schreiben kann oder vieleicht gar zurch .split ersetzen könnte, ein Gedanken Anstoss wäre sehr lieb.

Wegen der 250 ich denke du meinst immer diese if Abfrage:

Code: Alles auswählen

elif _msg[1] == 250:


250 ist eine Error Code der von Teamspeak bei einem Fehler zurück gegeben wird.


MfG
BasterTWO
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Re: Danke!

Beitragvon Leonidas » Freitag 26. Dezember 2008, 12:26

BasterTWO hat geschrieben:Was ich auch toll finde das du meine Reguläre Ausdrüke angeschaut hast ich weis noch nicht so ganz wie ich die besser schreiben kann oder vieleicht gar zurch .split ersetzen könnte, ein Gedanken Anstoss wäre sehr lieb.

Schau dir mal die Wiederholungs-Zeichen die Pythons Reguläre Ausdrücke verstehen an.

Wenn du statt ``re.match`` ``re.findall`` verwendest kannst du auf triviale Weise aus

Code: Alles auswählen

_player = [int(_filterdata.group(1)), int(_filterdata.group(2)), int(_filterdata.group(3)),
int(_filterdata.group(4)), int(_filterdata.group(5)), int(_filterdata.group(6)),
int(_filterdata.group(7)), int(_filterdata.group(8)), int(_filterdata.group(9)),
int(_filterdata.group(10)), int(_filterdata.group(11)), int(_filterdata.group(12)),
int(_filterdata.group(13)), str(_filterdata.group(14)), str(_filterdata.group(15)),
str(_filterdata.group(16))]


Code: Alles auswählen

player = [int(item) for item in filterdata]

machen.

BasterTWO hat geschrieben:250 ist eine Error Code der von Teamspeak bei einem Fehler zurück gegeben wird.

Dann sollte das als symbolische Konstante da stehen.

Und letztendlich macht fast jede Funktion das gleiche, auf ein bischen unterschiedliche Art und Weise. Da kann man sicher etwas abstrahieren.
My god, it's full of CARs! | Leonidasvoice vs Modvoice

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder