mirror of
https://github.com/Tautulli/Tautulli.git
synced 2025-07-10 07:22:37 -07:00
* Bump cherrypy from 18.8.0 to 18.9.0 Bumps [cherrypy](https://github.com/cherrypy/cherrypy) from 18.8.0 to 18.9.0. - [Changelog](https://github.com/cherrypy/cherrypy/blob/main/CHANGES.rst) - [Commits](https://github.com/cherrypy/cherrypy/compare/v18.8.0...v18.9.0) --- updated-dependencies: - dependency-name: cherrypy dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> * Update cherrypy==18.9.0 --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com> [skip ci]
61 lines
1.8 KiB
Python
61 lines
1.8 KiB
Python
import traceback
|
|
|
|
import pythoncom
|
|
from win32com.axdebug import axdebug
|
|
from win32com.client.util import Enumerator
|
|
|
|
|
|
def DumpDebugApplicationNode(node, level=0):
|
|
# Recursive dump of a DebugApplicationNode
|
|
spacer = " " * level
|
|
for desc, attr in [
|
|
("Node Name", axdebug.DOCUMENTNAMETYPE_APPNODE),
|
|
("Title", axdebug.DOCUMENTNAMETYPE_TITLE),
|
|
("Filename", axdebug.DOCUMENTNAMETYPE_FILE_TAIL),
|
|
("URL", axdebug.DOCUMENTNAMETYPE_URL),
|
|
]:
|
|
try:
|
|
info = node.GetName(attr)
|
|
except pythoncom.com_error:
|
|
info = "<N/A>"
|
|
print("%s%s: %s" % (spacer, desc, info))
|
|
try:
|
|
doc = node.GetDocument()
|
|
except pythoncom.com_error:
|
|
doc = None
|
|
if doc:
|
|
doctext = doc.QueryInterface(axdebug.IID_IDebugDocumentText)
|
|
numLines, numChars = doctext.GetSize()
|
|
# text, attr = doctext.GetText(0, 20, 1)
|
|
text, attr = doctext.GetText(0, numChars, 1)
|
|
print(
|
|
"%sText is %s, %d bytes long" % (spacer, repr(text[:40] + "..."), len(text))
|
|
)
|
|
else:
|
|
print("%s%s" % (spacer, "<No document available>"))
|
|
|
|
for child in Enumerator(node.EnumChildren()):
|
|
DumpDebugApplicationNode(child, level + 1)
|
|
|
|
|
|
def dumpall():
|
|
dm = pythoncom.CoCreateInstance(
|
|
axdebug.CLSID_MachineDebugManager,
|
|
None,
|
|
pythoncom.CLSCTX_ALL,
|
|
axdebug.IID_IMachineDebugManager,
|
|
)
|
|
e = Enumerator(dm.EnumApplications())
|
|
for app in e:
|
|
print("Application: %s" % app.GetName())
|
|
node = (
|
|
app.GetRootNode()
|
|
) # of type PyIDebugApplicationNode->PyIDebugDocumentProvider->PyIDebugDocumentInfo
|
|
DumpDebugApplicationNode(node)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
try:
|
|
dumpall()
|
|
except:
|
|
traceback.print_exc()
|