summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* Replace inspect.getargspec usage to support python 3.11HEADmasterJuan Orti Alcaine2022-06-27
|
* compensate for torrc logfile entry when tab-delimitedh3xagonal2022-06-15
|
* nyxrc.sample: fix default for `graph_bound`Alexander Batischev2021-11-18
|
* nyxrc.sample: comment out options without defaultsAlexander Batischev2021-11-18
| | | | | This is a cosmetic change that prevents Nyx from complaining about missing directories.
* nyxrc.sample: specify defaults inlineAlexander Batischev2021-11-18
| | | | | | This allows the user to simply copy the config and start Nyx. Prior to this commit, Nyx won't start in that case, because some of the settings had placeholders instead of their actual defaults.
* Clarify what `color_override none` meansAlexander Batischev2021-11-09
| | | | Cf. #39.
* Replace references to a nyxrcDamian Johnson2020-10-28
| | | | | | | | | | | | | | | | | | | | | | | | | | | Back in our old 'arm' days users could configure us through a file at ~/.armrc. Nyx changed this location to ~/.nyx/config but continued to call it a 'nyxrc'. Caught thanks to Sai... https://github.com/torproject/nyx/pull/27 Mostly this changes internal references, but there are two user visible changes... * This fixes our FAQ which incorrectly said that we read from ~/.nyx/nyxrc. * Removes the sample nyxrc path from our man page. Our setup.py no longer installs such a file. This intentionally keeps two references to a nyxrc... * Our website's url for a sample is... https://nyx.torproject.org/nyxrc.sample We can't change this prior to our next release without confusing users. * Our legacy changelog entries still call it a nyxrc because that's what it was called back then.
* Fix unit testsDamian Johnson2020-10-28
| | | | | | | | | | | | | | | | | I don't run Nyx's unit tests very often so a few regressions slipped in. Some due to Nyx adjustments, some from Stem. Stem renamed its is_pep8_available() function to is_pycodestyle_available() because the upstream project renamed itself... Traceback (most recent call last): File "./run_tests.py", line 80, in <module> main() File "/home/atagar/Desktop/nyx/stem/util/conf.py", line 289, in wrapped return func(*args, **kwargs) File "./run_tests.py", line 46, in main if stem.util.test_tools.is_pep8_available(): AttributeError: module 'stem.util.test_tools' has no attribute 'is_pep8_available'
* Config options mistakenly reported as unusedDamian Johnson2020-10-27
| | | | | | Oops, these config options were used after the 'warn if unused' check... https://github.com/torproject/nyx/issues/32
* Whitespace breaks logged_eventsDamian Johnson2020-10-27
| | | | | | | When our logged_events has whitespace within it Nyx confusingly claims that the events are not recognized. Caught thanks to Sai... https://github.com/torproject/nyx/issues/31
* color_override config broken if different caseDamian Johnson2020-10-26
| | | | | | | | Oops, our code that validates color values normalizes into camel case, but doesn't persist that normalization for its usage. As a result Nyx gets into a pretty broken state. Caught thanks to Sai. https://github.com/torproject/nyx/issues/30
* AttributeError when using --debug argumentDamian Johnson2020-10-25
| | | | | | | | | | | | | | | | | | | | | | | | | Python 3.8 removed platform.dist(), causing us to error with... Traceback (most recent call last): File "./run_nyx", line 14, in <module> nyx.main() File "/home/atagar/Desktop/nyx/nyx/__init__.py", line 199, in main nyx.starter.main() File "/home/atagar/Desktop/nyx/stem/util/conf.py", line 287, in wrapped return func(*args, config = config, **kwargs) File "/home/atagar/Desktop/nyx/nyx/starter.py", line 68, in main _setup_debug_logging(args) File "/home/atagar/Desktop/nyx/nyx/starter.py", line 174, in _setup_debug_logging platform = ' '.join(platform.dist()), AttributeError: module 'platform' has no attribute 'dist' Python doesn't have a builtin replacement, instead advising that users install the distro package... https://pypi.org/project/distro/ This information isn't worth a new dependency so simply dropping it from our debug output.
* Show FAQ when javascript is disabledDamian Johnson2020-10-24
| | | | | | Minor adjustment of a patch from Sai... https://github.com/torproject/nyx/issues/21
* Drop is_geoip_unavailable() usageDamian Johnson2020-10-16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Another deprecated method that has been removed from Stem. This fixes... Traceback (most recent call last): File "./run_nyx", line 14, in <module> nyx.main() File "/home/atagar/Desktop/nyx/nyx/__init__.py", line 199, in main nyx.starter.main() File "/home/atagar/Desktop/nyx/stem/util/conf.py", line 287, in wrapped return func(*args, config = config, **kwargs) File "/home/atagar/Desktop/nyx/nyx/starter.py", line 128, in main nyx.curses.start(nyx.draw_loop, acs_support = config.get('acs_support', True), transparent_background = True, cursor = False) File "/home/atagar/Desktop/nyx/nyx/curses.py", line 219, in start curses.wrapper(_wrapper) File "/usr/lib/python3.8/curses/__init__.py", line 105, in wrapper return func(stdscr, *args, **kwds) File "/home/atagar/Desktop/nyx/nyx/curses.py", line 217, in _wrapper function() File "/home/atagar/Desktop/nyx/nyx/__init__.py", line 257, in draw_loop interface.redraw(force = not key.is_null()) File "/home/atagar/Desktop/nyx/nyx/__init__.py", line 733, in redraw panel.redraw(force = force, top = occupied) File "/home/atagar/Desktop/nyx/nyx/panel/__init__.py", line 175, in redraw self._last_draw_size = nyx.curses.draw(self._draw, top = self._top, height = self.get_height(), draw_if_resized = draw_dimension) File "/home/atagar/Desktop/nyx/nyx/curses.py", line 760, in draw func(_Subwindow(subwindow_width, subwindow_height, curses_subwindow)) File "/home/atagar/Desktop/nyx/nyx/panel/connection.py", line 476, in _draw _draw_line(subwindow, scroll_offset, y, lines[line_number], lines[line_number] == selected, subwindow.width - scroll_offset, current_time) File "/home/atagar/Desktop/nyx/nyx/panel/connection.py", line 608, in _draw_line x = _draw_address_column(subwindow, x, y, line, attr) File "/home/atagar/Desktop/nyx/nyx/panel/connection.py", line 630, in _draw_address_column elif not tor_controller().is_geoip_unavailable() and not line.entry.is_private(): AttributeError: 'Controller' object has no attribute 'is_geoip_unavailable'
* Replace deprecated LogBufferDamian Johnson2020-10-15
| | | | | | | | | | | | | | | | Stem 2.x drops deprecated classes. As a result we error with... Traceback (most recent call last): File "./run_nyx", line 7, in <module> import nyx File "/home/atagar/Desktop/nyx/nyx/__init__.py", line 779, in <module> import nyx.panel.log File "/home/atagar/Desktop/nyx/nyx/panel/log.py", line 69, in <module> NYX_LOGGER = log.LogBuffer(log.Runlevel.DEBUG, yield_records = True) AttributeError: module 'stem.util.log' has no attribute 'LogBuffer' This was removed in stem commit 76b6b49. Fortunately it's a simple class to replace.
* Documented graph_bound incorrectDamian Johnson2020-10-11
| | | | | | Oops, inverted the words. Caught thanks to saizai... https://github.com/torproject/nyx/issues/22
* Drop incorrect maintainer linkDamian Johnson2020-09-07
| | | | This link is to the wrong person. Caught thanks to jg71.
* File and signature documentationDamian Johnson2020-09-07
| | | | | | Nyx's website is based on Stem's. Porting over the following... https://gitweb.torproject.org/stem.git/commit/?id=0c558be
* Replace all trac linksDamian Johnson2020-08-26
| | | | | Trac is read-only and will be discontinued at some point. Moving our links to GitLab.
* Drop OnionView from list of other UIsDamian Johnson2020-08-26
| | | | OnionView's link is now a 404. Caught thanks to Julian.
* Merge pull request #19 from arthtyagi/patch-1Damian2020-06-11
|\ | | | | Update index.html
| * Update index.htmlArth Tyagi2020-06-11
|/
* Update copyright dates for 2020Damian Johnson2020-01-02
| | | | | | | Happy new year! Bumping the dates for 2020... % find . -type f -iname '*.py' -exec sed -i 's/-2019/-2020/g' "{}" +; % grep -R "# Copyright 2019," ./*
* Change bug tracker links to githubDamian Johnson2019-12-21
| | | | Nyx counterpart of https://gitweb.torproject.org/stem.git/commit/?id=7852f52
* Basic readmeDamian Johnson2019-12-21
| | | | Adding a basic readme similar to Stem's for our GitHub page.
* No-op changeDamian Johnson2019-12-21
| | | | There was a permission issue. Trying again.
* No-op changeDamian Johnson2019-12-21
| | | | | Pushing a commit to hopefully trigger this repository to be mirrored within GitHub (https://github.com/torproject/nyx).
* Typo correctionDamian Johnson2019-12-02
| | | | Fixing a typo k0nsl notified me about via email.
* Provide stem installation instructionsDamian Johnson2019-11-18
|\ | | | | | | | | | | | | Oops! We used stem's is_available() to provide installation instructions for... stem. Thanks to bounteous17 for fixing this chicken-and-egg... https://trac.torproject.org/projects/tor/ticket/32538
| * Simplify stem install instructionsDamian Johnson2019-11-18
| | | | | | | | | | | | | | | | | | | | | | | | | | Condensing and providing the same installation advice as Stem's site. Also, we cannot use shutil.which() because it was added in python 3.3... Traceback (most recent call last): File "./run_nyx", line 7, in <module> import nyx File "/home/atagar/Desktop/nyx/nyx/__init__.py", line 80, in <module> if shutil.which(cmd): AttributeError: 'module' object has no attribute 'which'
| * Fix is_available() ternaryDamian Johnson2019-11-18
| | | | | | | | | | | | | | | | | | This was simply returning the result of shutil. The proper ternary is... return True if shutil.which(command) else False That said, this really doesn't matter. Usage within conditionals implicitly converts this to a boolean anyway.
| * Detect package manager in case of not finding pkg python-stemBounteous2019-11-18
|/
* Fix couple copyright datesDamian Johnson2019-04-16
| | | | | Oops. I missed these dates when I bumped them for 2019 because they were already out of date.
* Use controller's get_start_time() methodDamian Johnson2019-04-03
| | | | | | | | | | Tor just added a getinfo option to retrieve our uptime, so taking advantage of it here. As a new method naturally this is only present at the moment in the stem git repo. From a user perspective this should be transparent. Nyx will now present uptime when connected to a remote tor process and under the covers we make one fewer system calls, but that's about all.
* Nyx development version tagDamian Johnson2019-01-12
|
* Nyx release 2.1.02.1.0Damian Johnson2019-01-12
|
* Drop website's frontpage note of our old nameDamian Johnson2019-01-12
| | | | | We renamed ourselves well over a year ago. Past due we stopped noting our old name on the frontpage.
* Fix python 3.x test regressionDamian Johnson2019-01-12
| | | | | | | | | | | | | | | | | | Oops, my recent change to skip the installation test when offline broke python3... ====================================================================== ERROR: installation (unittest.loader._FailedTest) ---------------------------------------------------------------------- ImportError: Failed to import test module: installation Traceback (most recent call last): File "/usr/lib/python3.5/unittest/loader.py", line 428, in _find_test_path module = self._get_module_from_name(name) File "/usr/lib/python3.5/unittest/loader.py", line 369, in _get_module_from_name __import__(name) File "/home/atagar/Desktop/nyx/test/installation.py", line 6, in <module> import urllib2 ImportError: No module named 'urllib2'
* Deduplicate common notice logsDamian Johnson2019-01-12
| | | | Just deduplicating a few notice runlevel messages hat pop up a lot on my relay.
* Drop dependency on distutilsDamian Johnson2019-01-11
| | | | | | | | | | | | | Python 3.x no longer includes distutils by default... https://trac.torproject.org/projects/tor/ticket/26099 This is perfectly fine. We only used it to check if pip or apt-get was installed. We should be using stem for this anyway. I already dropped our dependency on distutils in stem for this reason... https://gitweb.torproject.org/stem.git/commit/?id=9fa85ec
* Avoid double counting connectionsDamian Johnson2019-01-11
| | | | | | | | | | | | When a guard, bridge, or exit we scrub sensitive connection data but also aggregate it into graphs that present the client locales we're being used from or exit ports. In reviewing this for an old ticket [1] realized we're counting each connection made with us rather than unique clients or exit usage. As such, limiting our counts to one per a remote address. [1] https://trac.torproject.org/projects/tor/ticket/4281
* Skip installation test when offlineDamian Johnson2019-01-10
| | | | | | On my morning bus commute I was pretty puzzled why our tests broke. Turns out we fail in a rather confusing way that says our PYTHONPATH is misconfigured when unable to install stem from pypi.
* Fix interpreter panel unit testsDamian Johnson2019-01-10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Oops, line wrapping broke our tests... ====================================================================== FAIL: test_multiline_panel (panel.interpreter.TestInterpreter) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/atagar/Desktop/nyx/test/__init__.py", line 59, in wrapped return func(self, *args, **kwargs) File "/usr/local/lib/python2.7/dist-packages/mock/mock.py", line 1305, in patched return func(*args, **keywargs) File "/home/atagar/Desktop/nyx/test/panel/interpreter.py", line 107, in test_multiline_panel self.assertEqual(EXPECTED_MULTILINE_PANEL, test.render(panel._draw).content) AssertionError: 'Control Interpreter:\n>>> GETINFO version\n250-version=0.2.4.27 (git-412e3f7dc9c6c01a)\n>>> to use this panel press enter' != u'Control Interpreter:\n>>> to use this panel press enter' ====================================================================== FAIL: test_scrollbar (panel.interpreter.TestInterpreter) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/atagar/Desktop/nyx/test/__init__.py", line 59, in wrapped return func(self, *args, **kwargs) File "/usr/local/lib/python2.7/dist-packages/mock/mock.py", line 1305, in patched return func(*args, **keywargs) File "/home/atagar/Desktop/nyx/test/panel/interpreter.py", line 120, in test_scrollbar self.assertEqual(EXPECTED_WITH_SCROLLBAR, test.render(panel._draw).content) AssertionError: 'Control Interpreter:\n |>>> GETINFO version\n |250-version=0.2.4.27 (git-412e3f7dc9c6c01a)\n |\n |\n |\n |\n |\n |\n |\n |\n |\n |\n |\n |\n |\n |\n |\n |\n |\n |\n |\n |\n |\n-+' != u'Control Interpreter:\n>>> to use this panel press enter' ---------------------------------------------------------------------- With commit 75052e8 tests should no longer directly modify their private '_lines' attribute. We need to call the _add_line() helper instead to ensure the wrapped and unwrapped attributes stay in sync.
* Drop bold tag from changelog ticketsDamian Johnson2019-01-09
| | | | | | I've been inconsistent on if tickets are wrapped with a bold tag or not. Cursory glance indicates links are already a bold typeface so the presence or omission of these tags don't look any different.
* Implement delete keyDamian Johnson2019-01-09
| | | | | | | Special keys (arrows, home/end, etc) require for us to implement their handling. Doing so for the delete key. https://trac.torproject.org/projects/tor/ticket/5835
* Notify when connection information is unavailableDamian Johnson2019-01-09
| | | | | | | Provide a notice explaining why connection information is unavailable when the user's system lacks /proc content. Ususally Mac and BSD users. https://trac.torproject.org/projects/tor/ticket/24958
* Issue a RESETCONF when a blank value is enteredDamian Johnson2019-01-08
| | | | | | | | | | | | | | | | | We lacked a mechanism for resetting values to their initial value. For instance, take the following scenario... * Our ExcludeNodes torrc is unset. The config panel shows it as '<none>'. * We change the value to 'stuff'. * We want to change it back to '<none>'. There wasn't a way of doing so. If we cleared the value and hit enter we'd change it to an empty string. I can't think of any scenarios where users would *want* to set things to blank strings (and in those edge cases they can always do so via the torrc). Now if a user deletes a config value and hits enter we'll reset it, in the above scenario changing the config option back to '<none>'.
* Pressing 'esc' when changing config values set them to 'none'Damian Johnson2019-01-08
| | | | | | | | | Yikes, surprised I let this one slip in. When pressing 'esc' on the configuration editor if the configuration option already had a value then it was changed to 'None'. Definitely not what users would rightfully expect... https://trac.torproject.org/projects/tor/ticket/28334
* Line wrap interpreter contentDamian Johnson2019-01-04
| | | | | | | | | When lines exceed our terminal width we cropped the content. Clearly this sucks since it makes that content impossible to... well, get. Wrapping lines that exceed our panel width with a two space indentation. https://trac.torproject.org/projects/tor/ticket/28297
* Voluminous content slowed interpreter panelDamian Johnson2019-01-03
| | | | | | | | | | Each refresh of our interpreter panel iterated over every line of its content, regardless of if it was visible or not. This is silly. Limiting the range the draw function consults to only what's visible. Caught thanks to wagon... https://trac.torproject.org/projects/tor/ticket/28902