summaryrefslogtreecommitdiff
path: root/src/io
AgeCommit message (Collapse)AuthorFilesLines
2014-05-26Small bugfixes to the SearchImplHEADmasterMaurice Laveaux1-19/+28
* Convers ids to longs instead of ints * input and output fiel correctly named * RateLimit is handled better. Signed-off-by: Maurice Laveaux <maurice@localhost.localdomain>
2014-05-26Improved the requesterMaurice Laveaux2-13/+28
* Reads a gzip stream. * Uses the http request date for interval measurement.
2014-05-26Fixed small bug.Maurice Laveaux1-1/+1
2014-05-22Correctness fixesPeter Wu3-41/+46
* Throw interrupted exception when interrupted instead of swallowing it, otherwise shutdown will take a longer time. * Decrease number of tweets that must be requested after confirming that the request was successful. * Style: convert to foreach; white-space. * Properly terminate if stop is requested. * Make executeRequest take care of re-queing requests if needed.
2014-05-22Properly close files after load/savePeter Wu1-16/+14
2014-05-22Rename getResp to getJsonPeter Wu3-14/+14
2014-05-22Removed unused port.Maurice Laveaux1-2/+0
* I dun goofed.
2014-05-22Added saving and loaded the search cache.Maurice Laveaux1-12/+56
* TODO: threads don't exit safe, so cache is not valid.
2014-05-22Implemented basic search functionality.Maurice Laveaux1-0/+321
* Usage, search <screen_name> <amount_tweets>.
2014-05-22Removed all JSON references.Maurice Laveaux2-5/+0
2014-05-22Refactored JSON to GSON's implementation.Maurice Laveaux2-36/+46
* Changed JSONException to JsonParseException.
2014-05-22Updated the Requesters to throw RateLimitException.Maurice Laveaux5-17/+54
* The exception contains the reset timestamp in unix time.
2014-05-22Changed Request response to a new Response class.Maurice Laveaux5-62/+83
* Response contains the JsonElement, tickrate, reset and leftover data. * Removed getJsonRelaxed, because it was not used elsewhere.
2014-05-08CompressableDataWriter: fix corruption for cfilePeter Wu1-0/+4
2014-05-07Fix null ptr when close/commitPeter Wu1-1/+8
commit closes everything via safeClose, so ensure that tweetGenerated re-opens it if necessary. Fixes: ƒ commit € Exception in thread "Thread-7" java.lang.NullPointerException at io.DataWriter.writeObject(DataWriter.java:137) at io.DataWriter.tweetGenerated(DataWriter.java:85) at provider.CompositeResultListener.tweetGenerated(CompositeResultListener.java:51) at io.StreamImpl$Poller.processObject(StreamImpl.java:255) at io.StreamImpl$Poller.run(StreamImpl.java:245) at java.lang.Thread.run(Thread.java:744)
2014-05-07Display user for tweet, strip whitespace around keywordPeter Wu1-0/+1
2014-05-07Add flush commandPeter Wu1-1/+13
2014-05-07Get rid of separate profilesPeter Wu3-42/+7
These are always available from the tweets themselves...
2014-05-07Allow commit to disconnect for empty keywords, detect dead connectionPeter Wu1-6/+6
2014-05-07Set read timeout for streamingPeter Wu1-0/+3
2014-05-07Fix deadlock in Poller if worker thread stops/diesPeter Wu1-0/+10
2014-05-07StreamImpl: make (un)watchKeywords support a listPeter Wu1-4/+20
2014-05-07Use IOUtils.closeQuietly for less verbosityPeter Wu1-13/+3
2014-05-03DataWriter: first read, then open for writingPeter Wu1-2/+3
Prevents occasional "Unexpected end of ZLIB input stream" errors.
2014-05-03DataWriter: better detect errors in reading dataPeter Wu1-6/+13
Now print the faulty line and line number. Using BufferedReader instead of Scanner also gave me a hint of the error, so let's stick to it.
2014-05-03CompressableDataWriter: use separate .gz-suffixed filePeter Wu1-91/+72
Do not use the same name for compressed and uncompressed files, it is confusing and non-standard. Now it'll use a ".gz"-suffixed file, writing all changes from the uncompressed file if requested.
2014-05-03Display stats when converting an uncompressed filePeter Wu1-0/+18
2014-05-03More compression fixesPeter Wu1-9/+12
* Fix magic check (bytes are read as signed numbers...). * Assume that a file can be compressed if the file is too small. * Try to convert a file only if the gzip detection is correctly closed.
2014-05-02Properly close files and stream on exitPeter Wu1-1/+2
2014-05-02Fix compression move which actually lost some dataPeter Wu1-28/+21
rename tricks somehow failed, but apparently there is a reliable Files.move() operation. Add some more debugging messages.
2014-05-02DataWriter should not open files in constructorPeter Wu2-21/+46
Right now Store instances are created in the constructor of DataWriter. This causes issues, namely that Store instances are unable to use DataWriter in its constructor. The real-world implication is that convertUncompressed in CompressableDataWriter is unusable for the CompressedStore.
2014-05-02Reject commits without keywordsPeter Wu1-0/+4
2014-05-02Fix typo in DataWriterPeter Wu1-1/+1
2014-05-02Abort if file cannot be read, don't leak on errorPeter Wu1-11/+17
2014-05-02CompressableDataWriter: Implement conversion from uncompressedPeter Wu1-1/+64
2014-05-02Support compressed filesPeter Wu1-0/+88
2014-05-02DataWriter: don't leak input fdPeter Wu1-1/+10
2014-05-02Refactor DataWriter once more to group a filePeter Wu1-37/+79
The input and output file are closely related, do not burden others with tracking which output and input need to be matched.
2014-05-02Make DataWriter more genericPeter Wu1-11/+40
Prepare for compressed file formats, this requires that the data writer can handle compressed files. In theory an implementation can even write stuff over the network instead of a file.
2014-05-02Don't ignore IOException stupid!Peter Wu1-34/+23
Files may not be accessible if they are read-only, or if the directory is read-only, or ... whatever. So, let the caller handle IOException in DataWriter. Return a set if it can be read. Do some misc cleanups (remove unused imports, fix docs, remove obsolete TODOs).
2014-05-02Avoid hang during closePeter Wu1-4/+29
Apparently the socket operations are blocking in a way such that even interrupt() cannot stop it. Close the socket (which will generate an IOException masked as JSONException) to immediately close the socket. Also do not leak a socket if an error occurred in the Worker constructor (when a Stream connection is set up).
2014-05-01Add command to print active keywordsPeter Wu1-0/+15
2014-05-01Don't leak connectionsPeter Wu2-34/+42
2014-05-01New thread for notifying of new objectsPeter Wu1-13/+95
* Use volatile boolean instead of AtomicBoolean. There will only be one one writer. * Store received objects in a queue instead of printing them. * Rename thread to clarify its I/O purpose. * Create new Thread for notifying observers of new tweets and users.
2014-05-01Get rid of unused and broken poll functionPeter Wu1-9/+0
2014-05-01Merge branch 'master' of git.lekensteyn.nl:tue/2IOC0-DBL/TwitterDataAnalyticsMaurice Laveaux1-5/+11
2014-05-01Added the target command with options: file, shell.Maurice Laveaux2-4/+19
* Implemented target file, which uses DataWriter as RequestListener which writes the tweets and profiles. * Added profiles-filename, tweets-filename to the config.
2014-05-01Close stream when stopping worker, English tweets only please...Peter Wu1-5/+11
2014-05-01Allow result and exception handler to be changedPeter Wu1-7/+29
2014-05-01Fix signing for OAuth POST messages, fix search paramPeter Wu3-6/+42