Wollte mal in die Runde fragen, wie ihr das mit dem Debugging bewerkstelligt.
Bisher habe ich mit Wordpad gearbeitet und per "test and try" mich an den Fehlermeldungen oder Dialogausgaben orientiert.
Hab mir jetzt PyCharm installiert. Und nun was gelesen/gesehen über Remotedebugging. Auf youtube konnte ich mir einiges dazu ansehen, aber leider nicht auf deutsch. Und ob das in meinen Fall geht, weiß ich nicht. Muss ich da noch irgendwas auf dem Pi installieren, einrichten?
Bin da leider noch völlig ahnungslos. Wäre cool, wenn ihr da einige deutsche Quellen habt. Englisch ginge auch.
Weiß nicht ob es wirklich zum Thema passt. Dect Geräte sollte man auch nicht unterschätzen. Wenn ich meine Fritzbox nicht auf Sendeleistung mindern stelle, dann stört mein Dect Telefon den SAT-Empfang von DSF (Sport1)
warum ich nach anderen xml methoden suche?: möchte noch komplexere xml auslesen/ändern/speichern. sehe das ganze hier als einfachen einstieg. und die zeiten von speicherknappheit sind eigentlich auch vorbei. und gelernt habe ich auf jeden fall schon einiges.
bevor du dir die finger wund tippst, werde ich damit mal versuchen was auf die reihe zu kriegen. der hinweis, mit datei schließen, ist ein guter einwand.
die skin kann man hier herunterladen. nicht erschrecken, das ist alles noch sehr chaotisch. ABER ACHTUNG, ist für OSMC aufn Pi (solltest auch die anderen scripte ausprobieren): https://github.com/harryberlin/BM…rtical-beta.zip
@marco0810 Ich kommt nicht ganz mit, wie bringe ich die farben dann zur auswahl? wie schreibe ich die in die variable.xml?
edit: hab nochmal überlegt. du hast bissl zu viel infos gegeben. ich könnte den string in der variablen nutzen. das ist ne gute idee. jedoch das dauerhafte hinzufügen in die colors defaults.xml fehlt dann trotzdem. und ich möchte natürlich auf einfachen wege lernen, wie man xml files liest und schreibt.
1. mit der erweiterung menutextcolor="true" kann ich separieren welche farben ich hernehmen will, ohne dass die anderen berücksichtigt werden. weil die brauch die skin ja ebenfalls, aber machen sich als textfarbe evtl. nicht so gut. 2. einie gui zum setzen einer custom farbe habe ich noch nicht. da brauch ich bissl mehr zeit. 3. wenn die custom farbe gewählt wurde, wäre es cool, wenn man sie in die xml speichern und löschen kann. 4. ja, das auswählen funktioniert. 5. die xml ist immer bei einer skin vorhanden, weil das die colors für die skin sind. 6. nur eben wenn die skin gewechselt wird, dann wird sie ja mit standardwerten geladen. und da ist der skinstring noch nicht gesetzt. nach einmaligen setzen merkt sich kodi den skinstring ja. sprich, die farbe wird gehalten.
Aber jetzt noch ne andere frage. wenn die skin neu geladen wird, dann ist ja der string noch leer, also keine farbe drin. Kann man da irgendwie ein default in den string setzen, oder geht das dann nur per variable?
also wenn man 'name=' durch 'color name=' ersetzt, dann sollte zumindest das erwähnte problem behoben sein.
dass schleifen mit for anfangen ist mir bekannt. aber die definition ist mir völlig unbekannt. farbe und wert sind doch völlig unbekannte variablen. check ich nicht.... hab mich ehrlich gesagt auch noch nicht so mit for schleifen in python beschäftigt. bisher nur mal ne kleine while():
also so wie ich das jetzt verstanden habe, ist es kein xml parser, sondern es werden die strings gesucht. das mit dem findall und der for scheife check ich irgendwie nicht. aber es läuft zumindest.
und zu guter letzt, wenn ich jetzt zum dictionary was hinzufüge, wie wird dann da wieder die xml datei draus. ich glaub einfach die datei speichern macht da was ganz anderes draus.
Danke für deine Hilfe. Da der string "color" nicht geprüft wird, könnte doch unter umständen auch mal eine "nicht farbe" ausgelesen werden, weil ja nur name gecheckt wird, oder?
So schaut es zur Zeit aus (muss noch etwas aufräumen):
Python: changecolor.py
#!/usr/bin/env python
import xbmc, xbmcgui, xbmcaddon
import re
# -- for skin --
bDebug = False
Farben={}
print xbmcaddon.Addon(xbmc.getSkinDir()).getAddonInfo('path').decode('utf-8')
xmlfile=xbmcaddon.Addon(xbmc.getSkinDir()).getAddonInfo('path').decode('utf-8') + '/colors/defaults.xml'
xml = open(xmlfile, 'r').read()
print xml
match=re.findall('name="(.*?)">(.*?)</',xml)
for farbe,wert in match:
Farben[farbe] = wert
print Farben
print Farben['blue']
Farbliste=Farben.keys()
Wertliste=Farben.values()
print 'Farbe 0: ' + Farbliste[0]
print Farben[Farbliste[0]]
print Wertliste
ret = xbmcgui.Dialog().select('Choose a Color', Farbliste)
print ret
print 'selected: ' + Farbliste[ret]
if bDebug: xbmcgui.Dialog().ok("Choosed color", Farbliste[ret])
xbmc.executebuiltin('Skin.SetString(MyColor,' + Farbliste[ret] + ')')
pass
ist dictionary ein xml parser? das mit dem array hast du nicht ganz verstanden. so z.b. soll es aussehen: farbe[white, red, blue] wert[FFFFFFFF, FFFF0000, FF0000FF] (sofern ich das jetzt richtig gesetzt hab) ah, ich glaub das ist kein array, sondern ne liste.
@Dima ja die farben kann man dann berechnen, wenn die schieberegler RGB entsprechend eingestellt sind. das sehe ich nicht so schwer. da hab ich beim parsen von xml mehr probleme.
das erste für die namen. was dann auch zum aufruf des select dialog genommen werden kann. das zweite für die werte.
wenn dann im dialog selektiert wurde, dann soll ein skinstring mit dem name gesetzt werden. und der string kann ja dann für z.B. textcolor genutzt werden.
um das ganze dann mal zu erweitern: soll auch ein eintrag "custom" oder "neu" mit ins array, wenn man dann per schieberegler eine farbe setzen kann. aber dafür müsste ich erst einen dialog schustern. und dann ggf. mit in die xml speichern. aber bin zufrieden, wenn schon mal das lesen der xml klappt.