-
Notifications
You must be signed in to change notification settings - Fork 4
/
Builds.txt
467 lines (407 loc) · 21.3 KB
/
Builds.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
Welcome to the build list!
This tells you the date of each build, and perhaps some brief details.
The format for build names is "Build [build number] ([date]-[time(24hr)]) [Build series name]
Build 59 (07122011-034350) Twister
* Improved the flow of the API client.
* Fixed some inherent problems in the oauth client.
* Added to `dAmnViper.dA.api.APIClient`.
** Added a `refresh` method.
*** The response to this is handled by `handle_grant`.
** Improved error handling in the client.
* Made some changes to dAmnViper/examples/da_api.py.
** Improved flow of the example.
** Improved the error handling.
** Added a test for the `refresh` method.
* Merged branches.
* Updated documentation.
Build 58 (27082011-022134) Twister
* Updated code comments.
* Fixed bugs in protocol parser.
** And that's why we have unit tests.
* Fixed ``ChatClient.kill``.
** Was using malformed namespace.
** And that's why we have blazer-flamewing.
* Updated oAuthClient unit tests to test things properly.
* Changed license from GNU GPLv3 to ISCL.
Build 57 (31072011-192229) Twister
* Created dAmnViper.base.IClient.
** This class acts as an interface definition for clients.
* Added documentation for IClient.
* Updated documentation for other objects.
* Created the tests package dAmnViper.test!
* Added dAmnViper.test.__init__!
* Added dAmnViper.test.test_packet_object!
* Added dAmnViper.test.test_protocol_parser!
* Added dAmnViper.test.test_client_connection!
* Added dAmnViper.test.test_packet_event_object!
* Added test suites for the dAmnViper.dA package!
* Improved performance of dAmnViper.base.Client.handle_pkt.
* Renamed Channel.head to Channel.Head.
* Modified setup.py to cite dependencies.
* Edited dAmnViper.base.Client.close to call loseConnection on the transport.
** Now sets flag.quitting to True also.
* Created the PacketEvent object.
* Fixed a bug in Client.pkt_recv_part.
* Reorganised the flow of the library a bit.
** Client does not try to reconnect if the connection was closed in a non-clean fashion.
** Reasons for disconnects are properly displayed.
* Implemented dAmnViper.parse.PacketEvent.
* Fixed errors in grant handling... probably...
* Loosely implemented deviantART's API.
** Created dAmnViper.dA.
*** Created dAmnViper.dA.oauth.
*** Created dAmnViper.dA.api.
* Modified base client classes so it is easier to change the method used for output to screen.
Build 56 (26072011-013703) Twister
* Cleaned up the Login class a little.
* Renamed some of the nexted classes in dAmnViper.base.dAmnSock.
* dAmnSock.populate_objects now uses the form self.Class().
** This allows subclasses to define their own nested classes.
* Bug fixes.
** dAmnSock.timeout_delay was being treated as a deferred.
* Reorganised function definitions.
* Renamed class dAmnViper.base.dAmnSock to Client.
* Client class no longer fetches an authtoken.
* Made the Client class cleaner.
* Most of dAmnViper.net.ConnectionFactory has been abstracted to the Client class.
* Added method `handshake()` to the Client class.
* Refactored the `onDisconnect` method.
* Renamed `onDisconnect` to `persist`.
* Removed authtoken example.
* Updated bot example.
* Updated bare example.
* Updated documentation some more!
* Updated the README files.
* Bumped the build number!
Build 55 (03062011-170934) Twister
* Using Twisted!
** Massive code overhaul.
* Changed examples to fit PEP 008 more closely.
** Lower case names for the modules.
* Created dAmnViper.examples.util.
** Provides get_input.
** get_input is used by examples to get input from the user.
** Made to work on python 2.6+ and python 3.
* Holy crap asynchronous magic.
* Organised the methods in dAmnSock a little more logically.
* Changed the README files a bit.
* Modified the example bot to be a little easier on the eyes.
* Made sure there are no callLater's still running when we exit.
* Created a teardown method which subclasses should override.
** Override this to call reactor.top().
** If this is left untouched, applications may run forever.
* Updated examples to override dAmnSock.teardown().
* Got rid of dAmnSock.handle_pkt_deferred().
* Updated examples so they don't start the reactor if we fail to get an authtoken.
* Wrapped dAmnSock.teardown() calls in try...except blocks.
** This prevents unsightly messages in cases where application developers are lazy.
** This is mainly for the sake of keeping the examples simple.
* "Refreshing" now works!
** This not working may have been caused by other bugs.
* Updated dAmnViper.examples.authtoken to work with synchronous methods.
* Added more descriptive comments to dAmnViper.examples.bot.
* dAmnViper.deviantART patched.
** Reports the correct error when no internet connection can be made.
* Made sure connection attempts are monitored properly. Needs testing.
* on_token is now only called when we have actually managed to get an authtoken.
** This makes far more sense semantically.
** Maybe create an on_token_failure method?
** Passing a boolean to on_token may be better.
* Changed comments slightly in the _auth* modules.
* Made comments and documentation more useful.
* Added documentation showing the example modules.
* Updated documentation some more, again.
* God damn this build log is getting long.
* PUSHING BUILD!!!!
** Bumped to version 3!
** Changed series to "Twister"!
** Changed state to Beta!
* TODO: In order of priority
** Create tutorials.
** Change to using CookieAgent in dAmnViper.deviantART.
Build 54 (29052011-122308) Swift
* Fixed dAmnViper._auth3
** Forgot to use .encode and .decode on data.
* Created setup.py.
* Moved examples to dAmnViper.examples.
** Should be run with python3 -m.
Build 53 (14042011-200417) Swift
* Made even more changes to compensate for changes to deviantART.
** MAKE UP YOUR DAMN MINDS dT!
Build 52 (20022011-002000) Swift
* Changed the authtoken grabber so it isn't case sensitive.
* Fixed bugs with the connection attempt limiters.
** Mainly typos.
** Thanks to blazer for spotting that.
* Split up dAmnViper.ReconnectingClient.start into separate methods.
Build 51 (18022011-002117) Swift
* Guess what dA did...
** The authtoken for dAmn is now not included in any cookies.
** The token is only given in the actual chat page.
** Updated dAmn Viper to retrieve this page after getting dA cookies.
** Restructured the authtoken grabbing code to accommodate for the changes.
Build 50 (10022011-144923) Swift
* dA changed the cookies again!
** This build is a patch.
** dAmnViper.deviantART.Login now uses a cookie jar! Yay!
Build 49 (09022011-220339) Swift
* Minor bug fix.
Build 48 (09022011-174317) Swift
* Patched to work with changes made to deviantART's login system.
** The cookie returned by dA changed!
Build 47 (23012011-180841) Swift
* Made the dAmnViper.stream.Connection class threaded.
** Updated code in the dAmnViper.base classes to compensate.
** Responses to ping (pong!) now happen in the Connection class.
* ^C stops dAmn Viper gracefully.
** Usually this would not kill an app using threads.
Build 46 (19012011-000611) Swift
* Changed the structure of the object returned by dAmnViper.parse.Protocol().mapper()
** Updated the rest of the source to compensate.
* Changed the format of the output used in the logger methods.
Build 45 (06122010-010954) Swift
* Improved dAmnViper.deviantART.Login.
** The object now handles errors better.
** Login().status has changed.
*** Login().status = (error_code, error_message)
*** Known error codes and messages are as follows:
**** Code: 0; Message: Nothing has happened yet.
**** Code: 1; Message: Authtoken retrieved!
**** Code: 2; Message: Authtoken not given. Not sure why.
**** Code: 3; Message: Could not connect to the internet.
**** Code: 4; Message: Incorrect username or password provided.
**** Code: 5; <Message unknown. Something went wrong during the request.>
**** Code: 6; Message: Something went wrong. I do not know why.
*** Changed ReconnectingClient to compensate.
* Character encoding latin-1 now used for sending and receiving data.
* Changed dAmnViper.stream.Connection to actually encode outgoing data with latin-1.
* Updated the protocol message for the login packet.
Build 44 (07112010-202103) Swift
* dAmnViper.stream.Connection().read now catches EINTR.
** This stops the bot from crashing on Linux if the window is resized.
* Changed the structure for Tablumps parsing.
* Changed the logger mapping so that raw packet data is available to client loggers.
Build 43 (05112010-205739) Swift
* Using sys.stdout.write instead of print!
** Should have done this a long time ago...
** Should make porting to 2.x easier.
* Changed dAmnViper.deviantART so that it works on both Python 2.6+ and 3.x
** dAmnViper now works on any version of Python ABOVE 2.5!
Build 42 (13102010-001919) Swift
* Added code to limit connection attempts.
** Default limit is 3 attempts.
Build 41 (14042010-162150) Swift
* Fixed a small error that made programs crash.
** base.dAmnSock.me tried calling a non-existent method.
* Split up base.Client.mainloop.
** base.Client.run and base.Client.mainloop.
* Cleaned up code a bit.
Build 40 (06042010-030857) Swift
* Made dAmnViper.base.ReconnectingClient.start iterative rather than recursive.
** This is to prevent a stack overflow.
** Thanks to blazer-flamewing for suggesting this.
Build 39 (05032010-155244) Swift
* Fixed a bug in the method parse.Protocol.logger.
** Thanks, once again, to blazer-flamewing for finding the bug.
* Created the method parse.Tablumps.populate.
** This method populates the data needed to parse tablumps correctly.
** Updated ~/parse.py to compensate.
* Moved attribute base.Client.autorejoin to base.ReconnectingClient.flag.autorejoin.
** Updated ~/base.py to actually use this flag.
Build 38 (24012010-221752) Swift
* Fixed the method base.Client.format_ns to format pchats properly.
** Thanks to blazer-flamewing for finding the bug and solution.
Build 37 (24112009-223106) Swift
* Fixed a bug in the dAmnSock.demote method.
* Renamed class tablumps to Tablumps.
* Rearranged the whole API!
** Broken up the source code into separate files.
** Moved files into a self-contained package, dAmnViper.
** dAmnViper.data contains:
*** Class Channel
*** dAmnViper.data depends on the class dAmnViper.parse.Packet
** dAmnViper.deviantART contains:
*** Class HTTPNoRedirect
*** Class Login
** dAmnViper.parse contains:
*** Class Packet
*** Class Tablumps
*** Class Protocol
** dAmnViper.stream contains:
*** Class Connection
** dAmnViper.base contains:
*** Class dAmnSock
*** Class Client
*** Class ReconnectingClient
*** dAmnViper.base depends on all other dAmnViper modules.
Build 36 (28082009-185230) Swift
* Fixed a bug involving the admin showverbose packet.
* Fixed logging bugs.
Build 35 (28082009-150835) Swift
* Fixed a small bug in dAmnViper.Packet.
** The first arguments of a packet would not get parsed if there were no command or parameter.
Build 34 (28082009-042020) Swift
* Fixed a small bug in dAmnViper.dAmnSock.get_token that caused applications to crash.
Build 33 (27082009-234836) Swift
* Fixed methods start and mainloop in the client classes.
* Fixed disconnection handling in the reconnecting client class.
** Above fixes now allow the variables given passed to .start to stay in the loop.
* Refactored the Packet class.
* Moved tablumps parsing into the Protocol class.
** Add an asterisk to the beginning of a field to parse tablumps in the content.
*** recv_packet Protocol sorting data:
*** [None, [('from', 'user')], '*message'],
*** Here, the body is stripped of tablumps and stored under the index "message".
* Added methods to dAmnViper.dAmnSock for extension purposes;
** .on_get_token - called when .get_token is called.
** .on_token - called when .get_token is finished.
* Slightly edited the dAmnViper.Connection class.
* Reduced the chances of dAmnViper.ReconnectingClient.logger crashing the bot.
** dAmn sends random character encodings, so it is difficult to accomodate for.
Build 32 (19082009-130832) Swift
* Created method dAmnViper.Client.on_loop.
** Called after every loop in dAmnViper.Client.mainloop.
* dAmnViper.ReconnectingClient.start now accepts any input.
** Input is passed to dAmnViper.ReconnectingClient.mainloop.
*** Input is passed to dAmnViper.ReconnectingClient.on_loop.
Build 31 (18082009-230658) Swift
* Renamed class SocketManager to Connection.
** Updated code accordingly.
* Added the @staticmethod decorator to the dAmnViper.tablumps methods.
* Added method pkt_generic to dAmnViper.Client class.
** This method is called for every packet received from the server.
** Overwrite this method to do stuff on every packet event.
* Tweaked packet sending methods in the dAmnViper.dAmnSock class.
** Stopped using the dAmnViper.nl variable, as it was pointless.
* Created class dAmnViper.Channel.header.
** Channels use instances of this to store their titles and topics.
* Made some minor tweaks.
Build 30 (14062009-143636) Swift
* Renamed class Socket to SocketManager.
* Added class dAmnSock.
** Moved most of class Client to dAmnSock.
** Added nested class CONST.
** Moved version info to nested class platform.
*** Holds attributes "name", "version", "author", "build", "stamp" and "series".
** Class Client now inherits dAmnSock.
* Added class ReconnectingClient. Inherits Client.
* Made changes to the Protocol class.
* Changed protocol strings.
* Packet-sending methods now return the number of bytes written.
* Channel object now stores channel title and topic as subclasses.
** Updated method "process_property" to compensate for changes.
* Added comments in various places.
* Made changes to Client.py.
* Made changes to Basic.py.
* Added file Bare.py as an example of a very simple client.
* Added Bot.py as an example of an extremely simple bot.
Build 29 (09062009-223948) Swift
* Made more changes to make it more awesome!
** Removed the need for threading.Timer.
** Other changes I either can't remember or can't be arsed to list.
Build 28 (08062009-032209) Swift
* Restructured the entire dAmnViper module.
** Class "Client" contains a full API and connection handling system.
** Class "Protocol" is now used as an object.
** Class "tablumps" is now used as an object.
** Topics and titles now stored as nested classes.
** Added timeout checking.
* Updated Client.py to compensate for these changes.
* Added Basic.py as an example of a very basic dAmn client.
Build 27 (29052009-171521) Swift
* Made soooooo many changes!
* Stopped using threading.
* Added tablumps class.
* Added Channel class.
* Added protocol class.
* Added client class.
* Updated the simple client in Client.py.
* Updated Authtoken.py.
* Fixed several problems originating from earlier ideas.
Build 26 (12022009-005421) Jackson
* Made the Login stuff cleaner.
** Uses urllib instead of sockets+SSL.
* Fixed some bugs.
Build 25 (25012009-184836) Jackson
* Updated the login code.
** Uses urllib only!
** No need for specific stuff!
* Made some bug fixes.
Build 24 (10012009-014022) Jackson
* Made some really important bug fixes.
Build 23 (08012009-154821) Jackson
* Changed the version number back to the right one.
* Changed license to GNU GPL v3.
Build 22 (06012009-215142) Jackson
* Restructured the module a bit.
** No more Interface class.
*** Methods from class Interface are now module functions.
** Added class resource.
** Added class flag.
** Required variables are stored in class resource and class flag.
* Updated the sample scripts to work with the new structure.
Build 21 (21122008-181002) Jackson
* Added a README file.
* Added an example authtoken script.
* Added an example client script.
* Cleaned up the code in dAmnViper.py slightly.
* Finished up the comments.
Build 20 (19122008-171345) Merger
* Cleanup code in places.
* Renamed class Client to Interface.
* Added comments everywhere.
Build 19 (14122008-160253) Merger
* Fixed some small bugs.
* Added comments to the Login class.
Build 18 (11122008-162510) Merger
* Now using urllib.parse rather than urllib.
Build 17 (11122008-003846) Merger
* Updated code to meet standards defined in PEP 8.
** URL: http://www.python.org/dev/peps/pep-0008/
* Removed lambda functions.
** Replaced them with normal methods.
Build 16 (08122008-185904) Merger
* Ported to Python 3000.
* Fixed various small bugs.
Build 15 (01122008-174621) Merger
* Surpressed expected socket timeout's.
* Updated and fixed lambda protocol!
** Lol, lambda protocol...
Build 14 (27112008-193129) Merger
* Cleaned up the read method.
Build 13 (27112008-122346) Vortican
* Added tablump parsing to class Packet.
** Stolen from Futurism 0.8
* Added method close() to Client.
* Made Socket.read() less error prone.
Build 12 (26112008-182716) Vortican
* Fixed a small error in the Packet class.
Build 11 (25112008-234907) Vortican
* Rearranged socket error packets.
* Fixed a minor bug in Socket.read()
Build 10 (24112008-133423) Vortican
* Added namespace methods to the client!
* Removed __init__ method as it is useless.
Build 9 (23112008-165709) Vortican
* Changed client methods to lambda functions!
Build 8 (22112008-161237) Vortican
* Fixed a small error in the login method.
Build 7 (22112008-122545) Vortican
* Created methods to send packets to dAmn!
* Added method send() to the client class.
* Changed development state to Beta.
Build 6 (16112008-203823) Squirmer
* Fixed a bug in the read method.
Build 5 (16112008-202042) Squirmer
* Expanded on reading from the socket.
* Added some basic error handling.
Build 4 (13112008-225834) Squirmer
* Added flags to the Client interface for different processes during connecting.
* Expanded on a few methods.
Build 3 (13112008-175454) Fissures
* Fixed a tiny syntax error.
Build 2 (13112008-173038) Revelation
* Changed name to "dAmn Viper" because doofsmack already took "pydAmn"... damnit.
* Got a little more structure to the lib.
Build 1 (13112008-125702) First Get
* Organised things into a somewhat logical structure.