28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55 | #
#
""" project status """
#
# The application runs mostly stable. The GUI interfaces are workable.
# There haven't been any optimizations regarding memory usage and
# performance. The current internal API is acceptable. Documentation is
# coming up.
#
# current bugs:
# - audio- and list-format support is not very robust / needs better API
# - lots of GtkWarning messages
# - not all keyboard shortcuts work
# - in-list search doesn't work in our treeviews (???)
# - JSON files are only trouble: loading of data files might lead to more
# errors now, even if pson module still falls back on old method
# (unicode strings from json.load are useless to us, require typecasts)
# (nonsupport of tuples led to regression in mygtk.app_restore)
# (sometimes we receive 8bit-content, which the json module can't save)
#
# features:
# - treeview lists are created from datamap[] structure and stream{} dicts
# - channel categories are built-in defaults (can be freshened up however)
# - config vars and cache data get stored as JSON in ~/.config/streamtuner2/
#
# missing: |
>
|
<
<
<
<
<
<
<
<
| 28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48 | #
#
""" project status """
#
# The application runs mostly stable. The GUI interfaces are workable.
# It's supposed to run on Gtk2 and Gtk3. Python3 support is still WIP.
# There haven't been any optimizations regarding memory usage and
# performance. The current internal API is vastly undocumented.
#
# current bugs:
# - audio- and list-format support is not very robust / needs better API
# - not all keyboard shortcuts work
#
# features:
# - treeview lists are created from datamap[] structure and stream{} dicts
# - channel categories are built-in defaults (can be freshened up however)
# - config vars and cache data get stored as JSON in ~/.config/streamtuner2/
#
# missing: |
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82 | # to read the config data -> limited risk, since it's only local files
# - HIGH RISK: no verification of downloaded favicon image files (ico/png),
# as they are passed to gtk.gdk.Pixbuf (OTOH data pre-filtered by Google)
# - MEDIUM: audio players / decoders are easily affected by buffer overflows
# from corrupt mp3/stream data, and streamtuner2 executes them
# - but since that's the purpose -> no workaround
#
# still help wanted on:
# - any of the above
# - new plugins (local file viewer)
# - nicer logo (or donations accepted to consult graphics designer)
#
# standard modules
import sys
import os, os.path
import re |
<
<
<
<
<
| 57
58
59
60
61
62
63
64
65
66
67
68
69
70 | # to read the config data -> limited risk, since it's only local files
# - HIGH RISK: no verification of downloaded favicon image files (ico/png),
# as they are passed to gtk.gdk.Pixbuf (OTOH data pre-filtered by Google)
# - MEDIUM: audio players / decoders are easily affected by buffer overflows
# from corrupt mp3/stream data, and streamtuner2 executes them
# - but since that's the purpose -> no workaround
#
# standard modules
import sys
import os, os.path
import re |