#!/usr/bin/python
# -*- coding: iso-8859-1 -*-
import os
import sys
from socket import *
port = 50007
BUFSIZE = 1024
laut = 0
#
def main():
nummer =0
s = socket(AF_INET, SOCK_STREAM)
s.bind(('', port))
s.listen(1)
conn, (remotehost, remoteport) = s.accept()
print 'connected by', remotehost, remoteport
while 1:
laut = conn.recv(BUFSIZE)
if laut == 'a':
nummer = nummer +10
if nummer > 100:
nummer = 100
os.system("osascript -e 'tell app \"iTunes\" to set sound volume to %i'" % nummer)
if laut == 'b':
nummer = nummer -10
if nummer < 0:
nummer = 0
os.system("osascript -e 'tell app \"iTunes\" to set sound volume to %i'" % nummer)
if laut == 'c':
os.system("osascript -e 'tell app \"iTunes\" to previous track'")
if laut == 'd':
os.system("osascript -e 'tell app \"iTunes\" to next track '")
if not laut:
break
main()
kleiner hack um mein itunes von einem anderen rechner zu steuern.
währe mit pyserial auch ganz cool…
Igitt ein Sternchenimport -> über 200 unbenutze Namen importiert.
`laut` auf Modulebene wird nicht benutzt, das `sys`-Modul wird nicht benutzt, einige Zeilen sind länger als 80 Zeichen, ``while True:`` ist deutlicher als ``wile 1:`` und die Namen sind teilweise irreführend.
wenn ich deinen code ansehe ist es ein wunder, dass python so nett war meinen auch richtig zu interpretieren. sehe, dass meine struktur schrott ist, aber eben, es war ein kleiner schneller flick --> cool von dir…javascript:emoticon(':D')
Naja, soviel habe ich ja nun auch nicht geändert. Insbesondere die Struktur ist fast identisch. Wenn man die Verändern wollte, dann würde wahrscheinlich eine Klasse dabei herauskommen und die ``if``/``elif``-Abfrage wäre durch ein Dictionary ersetzt, dass die Buchstaben auf entsprechende Methoden abbildet. Wäre flexibler und leichter zu erweitern, für die vier Funktionen aber auch länger als die jetzige Lösung.
commands = dict(
a="set sound volume to %i'" % max(volume + 10, 100),
b="set sound volume to %i'" % min(volume - 10, 0),
c="previous track'",
d="next track '")
command = conn.recv(1)
if not command or command not in commands:
break
os.system(CALL_PREFIX + commands[command])
CALL_PREFIX könnte man dann auch direkt durch den String ersetzen, da es nur einmal vorkommt. Auch den system()-Aufruf in eine Funktion mit dem zweiten Teilstring als Argument auszulagern ergibt Sinn.
Idealerweise lagert man das commands-Dictionary aus, damit es nicht immer neu erzeugt werden muss. Einzig für die Übergabe der Lautstärke gilt es sich noch was elegantes zu überlegen.