Commit Graph

226 Commits

Author SHA1 Message Date
Thor77 52f5cc3ac1 Add test for invalid log line 2017-09-14 22:37:56 +02:00
Thor77 b9f798d04d Add test for Clients.__str__ 2017-09-14 22:37:32 +02:00
Thor77 6345c3f1f5 Remove test for serverstop with connected clients
because it is non-trivial to implement with the new architecture and
probably not worth the effort, because it basically can't happen.
A warning/exception should be added instead.
2017-09-10 00:15:21 +02:00
Thor77 b1b80f657a Use parse_logs instead of _parse_details 2017-09-10 00:04:11 +02:00
Thor77 cbc76b5541 Add missing identmap-lookup for new clients 2017-09-09 18:44:41 +02:00
Thor77 1c224fa0ee Use parse_logs instead of _parse_details 2017-09-09 18:36:43 +02:00
Thor77 c79dd08bc0 Don't accept infinite arguments
leftover from old parse_logs-func
2017-09-09 18:04:56 +02:00
Thor77 147c41ffce Use parse_logs instead of _parse_details
because _parse_details is not available anymore
2017-09-09 17:35:55 +02:00
Thor77 df268f1c2a Add return and rtype to parse_logs-funcdoc 2017-09-08 15:39:39 +02:00
Thor77 602e6c4d51 Log start/end of parsing logfile 2017-09-08 15:39:39 +02:00
Thor77 91a9b8e4c7 Implement online_dc again 2017-09-08 15:39:39 +02:00
Thor77 90a367da27 Warn about online clients on logfile end 2017-09-08 15:39:39 +02:00
Thor77 59d4c88701 Add Client.__repr__ 2017-09-08 15:39:39 +02:00
Thor77 3d6c41538b Indent return of parsed_events correctly 2017-09-08 15:39:39 +02:00
Thor77 96d6e9f050 Only yield Server if there are clients for it 2017-09-08 15:39:39 +02:00
Thor77 7077446627 Add test for Client.nick-property 2017-09-08 15:39:39 +02:00
Thor77 3acf282470 Don't drop current nick in prepare_clients
because that's already handled in the Client.nick-property now
2017-09-08 15:39:39 +02:00
Thor77 c2fb6aa6c1 Handle set_nick event-action with .nick-property 2017-09-08 15:39:39 +02:00
Thor77 088d905196 Convert Client.nick into property
to add previous nick to .nick_history on set
2017-09-08 15:39:39 +02:00
Thor77 a084101ced Add Clients.apply_events
to apply events to a Clients-collection
2017-09-08 15:39:39 +02:00
Thor77 da2b773bf6 Add tsstats/event.py for easy event-initialization 2017-09-08 15:39:39 +02:00
Thor77 08b4e06f10 Refactor and simplify log-parsing
* _parse_line parses one line at a time for simplified testing
and return a list of event.Event's instead of applying changes directly
to a Clients-obj
* parse_log just bundles the logs (using _bundle_logs), opens them,
parses them (using _parse_line) and applies returned events to a
Clients-obj in the correct order

With these changes some sort of caching is possible because events are
not bound to a specific client-object and are easily sortable due to
their attached timestamp.
2017-09-08 15:39:39 +02:00
Thor77 20d40c8890 Add string-representation for Clients
to simplify debug-output
2017-09-08 15:39:39 +02:00
Thor77 caff246f9a Don't raise InvalidLog
because there's nothing you can do about it anyways, so there's no need
to stop.
2017-09-08 14:12:48 +02:00
Thor77 edff1e956d Optionally Pendulum.diff_for_humans instead of frmttime
for relative last seen time (default)

* introduce --lastseenabsolute
* introduce tsstats.template.render_servers(lastseen_relative=True)
2017-07-07 14:23:10 +02:00
Thor77 65a8379261 Use pendulum instead of plain datetime
because it is more intuitive to use and doesn't require the
tz_aware_datetime-workaround.
2017-07-07 14:22:24 +02:00
Thor77 3d469ce28c Sort imports 2017-06-02 23:34:33 +02:00
Thor77 11acf9f9b6 Add space between identifier and nick
mainly used in debug mode
2017-05-15 22:50:05 +02:00
Thor77 992d35ec87 Fix UnicodeEncodeError in debug mode with Python 2 2017-05-15 22:49:18 +02:00
Thor77 f209573d04 Fix Clients.__add__ not using identmap 2017-05-14 23:28:59 +02:00
Thor77 a4c04e34c8 Close log files after parsing 2017-05-11 11:32:11 +02:00
Thor77 8299c73eb9 Move output-fixture to confest.py and yield path
* Modify test_log and test_template to use these changes
2017-04-28 23:27:05 +02:00
Thor77 97d58254b3 Remove unnecessary variable-declaration
possibly leading to faster access-time
2017-03-31 22:39:57 +02:00
Thor77 8d18b9c4ae Fix not using defined variable for match-access
possibly leading to slower access-times
2017-03-31 22:21:54 +02:00
Thor77 1bc555d66c Add IdentMap-lookup for new clients
added to clients-collection during log-parsing

Fix #18
2017-03-30 20:10:08 +02:00
Thor77 683f9b984a Add testcase for wrong identifier with identmap
If a client connects with a secondary identifier first,
this one is used as the identifier for the Client-object instead of the
primary one.
2017-03-29 12:45:35 +02:00
Thor77 270b20d385 Fix E501 (line too long) 2017-03-24 23:19:48 +01:00
Thor77 0081ac9939 Log parse time of individual logs 2017-03-24 23:18:26 +01:00
Thor77 e4212f28fb Log total execution time to info 2017-03-24 23:17:58 +01:00
Matthew a83d6de253 Add ability to pass a directory for --log option (#17)
If you pass a directory, it will now tack a '*.log' glob on the end of
the path to automatically use all log files inside this directory.
2017-03-08 22:54:07 +01:00
Thor77 aaf5f2b851 Convert filter to list
because filters are (non-subscriptable) objects in py3
2017-03-04 00:02:41 +01:00
Thor77 a694a2bc58 Refactor test_onlinetime
to require only one iteration and simplify testing
2017-03-03 23:59:24 +01:00
Thor77 cd01eb433a Use hyperlinks instead of onclick-events
to link to positions.
Disabled color-change and text-decoration to keep a clean and consisten
look.
2017-02-27 22:16:16 +01:00
Thor77 6c35aed767 Only log to file if not logging to stdout 2017-02-27 13:37:05 +01:00
Thor77 8f49c3e95d Add debugstdout flag/config-directive
to enable debug logging to stdout

Fix #15
2017-02-27 13:37:04 +01:00
Thor77 0033ce186f Move logger-setup to tsstats.logger
and handlers are now attached as desired in __main__.cli
2017-02-27 13:37:00 +01:00
Thor77 2753f548fe Test disconnect on server-stop 2017-02-23 21:51:42 +01:00
Thor77 962fd486af Test reading config from disk again 2017-02-23 21:38:59 +01:00
Thor77 709c573b65 Refactor config-tests
by just testing the return-value of tsstats.config.load instead of
writing and reading a config-file from disk as there's absolutely no
need to test that as it's just basic ConfigParser-functionality
2017-02-22 22:00:09 +01:00
Thor77 5e19e38965 Fix E501 (line too long) 2017-02-19 17:17:14 +01:00