noisefloor
Ehemaliger
Anmeldungsdatum: 6. Juni 2006
Beiträge: 29064
Wohnort: WW
|
Hallo,
Schade das jetzt keiner mehr von euch weiter Interesse hat mir zu helfen,
Falsch. Du hältst Infos zurück bzw. beantwortest Frage nicht! Z.B. alleine die simple Frage, wo der Zusammenhang zwischen dem Zerlegen per Regex und dem Button ist, ist unbeantwortet.
Wenn ich euch per PN das Skript zusende wärt ihr dann noch willens mir weiter zu helfen? 😳
Von mir: klares NEIN. Wenn Support dann so, dass alles was davon haben. Privat-Support per PN gibt es nicht. Gruß, noisefloor
|
FreeFun
(Themenstarter)
Anmeldungsdatum: 11. August 2016
Beiträge: 58
|
noisefloor schrieb: Falsch. Du hältst Infos zurück bzw. beantwortest Frage nicht! Z.B. alleine die simple Frage, wo der Zusammenhang zwischen dem Zerlegen per Regex und dem Button ist, ist unbeantwortet.
Achso, ja tut mir leid aber ich hab garkeine Ahnung von Python. Ich hab einfach nur über den Code geschaut was alles mit URL zutun hat. Das mit Regex sah erstmal vielversprechend aus. Meine Logik war einfach nur das Python das nicht erkennt bzw. übergeben kann. Habe natürlich weiter geschaut und habe folgendes noch gefunden, vielleicht hilft das ja!? | from urllib2 import Request, urlopen, URLError, HTTPError
|
| global linkURL1
global linkURL2
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 | request = urllib2.Request(remote, headers=hdr)
try:
file = urllib2.urlopen(request, timeout=5)
data = file.read()
file.close()
dom = parseString(data)
latestVersion = dom.getElementsByTagName('version')[0].firstChild.data
changelogXml = dom.getElementsByTagName('changes')[0].firstChild.data
changeloglines = len(re.split('\n', changelogXml))
infoXml = dom.getElementsByTagName('info')[0].firstChild.data
infoBeta = dom.getElementsByTagName('beta')[0].firstChild.data
except HTTPError as e:
print "Remote file: The server couldn't fulfill the request."
print 'Error code: ', e.code
except URLError as e:
print 'Remote file: We failed to reach a server.'
print 'Reason: ', e.reason
else:
print '[INFO] ' + Name + ' remote file: Everything seems OK'
def new_NotificationsActionsHandlers_handleAction(self, model, typeID, entityID, actionName):
import sys, re
regex = re.compile('^https?://(?:(?:[A-Z0-9](?:[A-Z0-9-]{0,61}[A-Z0-9])?\\.)+[A-Z]{2,6}\\.?|\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3})(?::\\d+)?(?:/?|[/?]\\S+)$', re.IGNORECASE)
if regex.match(actionName) is None:
return old_NotificationsActionsHandlers_handleAction(self, model, typeID, entityID, actionName)
else:
from gui.shared import g_eventBus, events
g_eventBus.handleEvent(events.OpenLinkEvent(events.OpenLinkEvent.SPECIFIED, actionName))
return
return
|
| link1 = makeHtmlString('html_templates:lobby/system_messages', 'link', {'text': linkText1,
'linkType': linkURL1})
link2 = makeHtmlString('html_templates:lobby/system_messages', 'link', {'text': linkText2,
'linkType': linkURL2})
|
Ich hoffe das ist jetzt nicht zu unübersichtlich aber hab einfach mal paar Schnipsel rauskopiert und die jeweils hier in eine Code Section reingemacht. linkURL1 ist die die zur http Adresse führt und die linkURL2 ist die die zum ts3server Adresse führt.
|
noisefloor
Ehemaliger
Anmeldungsdatum: 6. Juni 2006
Beiträge: 29064
Wohnort: WW
|
Hallo, der Code ist in Teilen echt gruslig! Abgesehen davon ist der von seahawk1986 vorgeschlagene Weg IMHO hier der richtige - ich sehe gerade keine Grund, die URL per Regex zu zerlegen.
ja tut mir leid aber ich hab garkeine Ahnung von Python
Wenn du kein Python kannst (oder eine ähnliche Programmiersprache), dann kannst du den Code ziemlich sicher auch nicht deinen Bedürfnissen anpassen. Dazu ist der Code schon zu komplex / kompliziert. Gruß, noisefloor
|
frostschutz
Anmeldungsdatum: 18. November 2010
Beiträge: 7657
|
Wild rumgeraten... du hast der Funktion new_NotificationsActionsHandlers_handleAction() das teamspeak:// beigebracht aber die old_NotificationsActionsHandlers_handleAction() prüft selber auch nochmal auf http:// EDIT: Wahrscheinlich falsch geraten, "is None" übersehen 😉 Wie gesagt, bau Debugmeldungen ein damit du siehst ob das überhaupt aufgerufen wird / ob das if regex.Match() greift / was im weiteren Verlauf passiert. Letztendlich musst du das selber debuggen.
|
FreeFun
(Themenstarter)
Anmeldungsdatum: 11. August 2016
Beiträge: 58
|
Wie gesagt ich möchte rein nur das wenn man auf dem Button klickt das Teamspeak geöffnet wird, mehr will ich ja garnicht und alles andere ist ja vorgegeben oder hat eine Konfiguration Section. Ich weiß jetzt nicht wie ich das mit der Debug Meldung machen soll oder muss. 😕
|
Dominik_Schuster
Anmeldungsdatum: 19. September 2013
Beiträge: 122
|
Hi, debugging in python kann auch nur ein print/print() an einer bestimmten Stelle sein (print python2.7 und kleiner, print() python3.x). Siehe: 1
2
3
4
5
6
7
8
9
10
11
12
13 | def new_NotificationsActionsHandlers_handleAction(self, model, typeID, entityID, actionName):
import sys, re
regex = re.compile('^https?://(?:(?:[A-Z0-9](?:[A-Z0-9-]{0,61}[A-Z0-9])?\\.)+[A-Z]{2,6}\\.?|\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3})(?::\\d+)?(?:/?|[/?]\\S+)$', re.IGNORECASE)
print regex
if regex.match(actionName) is None:
print "Befinde mich im if-Zweig"
return old_NotificationsActionsHandlers_handleAction(self, model, typeID, entityID, actionName)
else:
print "Befinde mich im else-Zweig"
from gui.shared import g_eventBus, events
g_eventBus.handleEvent(events.OpenLinkEvent(events.OpenLinkEvent.SPECIFIED, actionName))
return
return
|
print regex → Schreibt dir den Inhalt der Variable regex raus print "Befinde mich im if-Zweig" → Zeigt auf das du dich im if-Zweig befindest und die jeweilige Methode returnt wird print "Befinde mich im else-Zweig" → Zeigt auf das du dich im else-Zweig befindest und irgendwas returnt wird, ist mir nicht ganz klar geworden aus dem Code Mfg, Dominik
|
noisefloor
Ehemaliger
Anmeldungsdatum: 6. Juni 2006
Beiträge: 29064
Wohnort: WW
|
Hallo,
Wie gesagt ich möchte rein nur das wenn man auf dem Button klickt das Teamspeak geöffnet wird, mehr will ich ja garnicht und alles andere ist ja vorgegeben oder hat eine Konfiguration Section.
Oh Mann... Was _ich_ möchte ist, dass du mal auf die grundlegenden Fragen antwortest. Mit dem Antwortverhalten, was du hier an den Tag legst, bist du in 100 Jahren noch keinen Millimeter weiter. Da ich mit meiner Supportzeit auch was sinnvolleres anfangen kann, bin ich hier auch raus. Gruß, noisefloor
|