forked from nanoboard/nanoboard
-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathChanges.txt
More file actions
2025 lines (1827 loc) · 133 KB
/
Copy pathChanges.txt
File metadata and controls
2025 lines (1827 loc) · 133 KB
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
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
Changes:
File .../nanoboard-restore/nanodb.exe-source/PngTransport/Aggregator.cs:
- Add code to get the "host_and_folder" "protocol://(domain/IP):PORT/folder"
and get this from the thread links, like this: "https://0chan.ml/_frct/res/1.html?query=some_query¶meter=value"
- Get (domain/IP):PORT only (variable "host"), and protocol://(domain/IP):PORT/ without folder (variable "protocol_host_port") - too.
Now IP:port can be used for threads in "Settings". This will be parsed correctly, if path of PNG is relative, in the response from server.
- Do this once for each thread, not for each picture.
- Add regular expression to get picture_host from imageAddress(url in parsed "href") if this contains "http://" or "https://"
- Block downloading pictures using unknown protocol. For example, "ftp://domain.com/picture.png" in "href" - will be blocked.
- Change imageAddress by adding pictures relative path from href:
to "protocol_host_port" (if in href "/images/pic.png" or "./images/pic.png")
to "host_and_folder" (if in href "../images/pic.png" or "images/pic.png").
- Add IP-logging attempt prevention:
if imageAddress contains keyword "logger", or URL shotrers "bit.ly" and "goo.gl" - picture downloading blocked.
if picture host not thie host of the thread (hard prevention).
There is possible to comparing protocols+host, because IP-loggers can working on another protocols,
but if HTTPS board load images using HTTP, this prevention not good.
- Change m-2ch.ru to m2ch.hk.
- Add description and second condition as operand for prevent IP-logging, but load pictures from "8ch.net (board)" -> "media.8ch.net (images)".
- At line 298: Add re-calculating the picture_host for each imageAddress, because many png's from dobrochan
was been blocked, after downloading PNG from iplogger.org - blocked...
File: .../nanoboard-restore/nanodb.exe-source/Server/DbApiHandler.cs
- At line 131: the function was been added parse_number(string string_number), because int.Parse and Int32.Parse not working correctly for me.
- At line 150-151: replaced using this. Now last 50 and las 500 messages working good.
_____________________________________________________________________________________________________________________________________________
Changes in nanoboard 3.2
_____________________________________________________________________________________________________________________________________________
Short changes:
- change style small fix.
- add show-hide post by click on eye. Like on 2ch.hk.
Two strings from makaba.css used in the tag <style> in index.html.
Functions added in nanoclient.js and can be founded by keyword "post_type_hidden".
Post hash saved in LocalStorage.
- add separate tab to create PNG.
- add queue there. Now you can pack specified or selected posts and customize randomizing packing.
- Add queue button for each post. Now by click to this button any post can be added and removed from queue.
- Add page to unpack custom container. Now this located by http://127.0.0.1:7346/pages/Open_container.html
- Add page to convert images to PNG. Now this located here: http://127.0.0.1:7346/pages/convert-to-PNG.html
- Add PNG generator. Bitmap or FractalGen. DataURL sent by GET or POST-query (for big images).
See method generate_PNG in /Server/DbApiHandler.cs
- Add more GET and POST-parameters for api-methods there.
- Update post count /count - now only when collect.
- Update places not by interval, now. There is separate link to update this by click.
- notif - update by long interval, but when notif, this swithed to short interval. See scripts/params.js
- Add check sha256 hash of the file captcha.nbc. This is checking once after try to load captcha. So no need captcha.nbc for readonly mode.
URL for downloading capcha is not hardcoded, and can be changed to custom URL - in config-3.json.
- Add static captcha hash to config-3.json and this value is hardcoded in the code. See nanoboard-source/Captcha/Captcha.cs
- Captcha not downloaded if fail, because:
1. Github using regirect.
2. This is not anonymous action.
Need to add proxy, so code to downloading captcha was been commented.
- Proxy! This was been added to collectPNG.
See AddProxy method in /PngTransport/DbApiHandler.cs
/proxy.txt - list of proxies + comment.
When collect, each proxy from this list try to ping, then first successfully proxy using as default, and pictures is downloading using this proxy.
- Change post validation to bypassValidation, when captcha.nbc not found. No error now.
- Add all changes from nanoboard 3.1. See thread http://127.0.0.1:7346/pages/index.html#thread70ca25ba04a241d3b3729611205bf4bb
All changes from [3.1 version](https://github.com/username1565/nanoboard/commit/e828b228af6d2a1cc507ff80a59c25a0f5a511f0)
According the comment https://github.com/username1565/nanoboard/issues/3#issuecomment-463904141 from issue https://github.com/username1565/nanoboard/issues/3
3 level for replyes, when thread loaded from main page.
Sorting last posts by date.
Bump for threads.
Add comparer to make avaiable to compile version 3.1 in .NET Framework 3.5. See post 082a06592e3b241e3c49063524a3ac25
_____________________________________________________________________________________________________________________________________________
Full changes:
\Changes.txt this file - changed. This info added.
\pages\index.html Just change version to 3.1
\pages\version.txt Just change version to 3.1
\scripts\nanoclient.js add function AddBriefView from 3.1
\scripts\reply.js Just change version to 3.1
\nanodb.exe-source\nanodb.csproj
\nanodb.exe-source\nanodb.sln
\nanodb.exe-source\Program.cs
copy this 3 files from 3.1 client with changes.
\nanodb.exe-source\app.config
\nanodb.exe-source\nanodb.csproj.user
Add this two files files.
\nanodb.exe-source\compile.bat - add this file to compile nanodb.exe from the source code, using MSBuild.exe
\nanodb.exe-source\Database\Post.cs - add changes from 3.1 client.
\nanodb.exe-source\Database\PostDb.cs - add changes from 3.1 client + define comparer: "DTComparer : IComparer"
\nanodb.exe-source\PngTransport\NBPack.cs - add two strings from 3.1 client, in the end, after Validate(posts);
\nanodb.exe-source\Server\DbApiHandler.cs - add API command "/api/getlastn" + method GetLastNPosts from 3.1 client.
\nanodb.exe-source\Server\ErrorHandler.cs - just change version.
Total changes 16 files: 13 files changed + 3 files added: app.config, nanodb.csproj.user + compile.bat.
Compiled win32 (x86) exe - in zip-archive, in Releases.
_____________________________________________________________________________________________________________________________________________
Full changes:
Changes in /root folder
- fractalgen_words.txt
add canonical words from OLD original FractalGen v1.1 + comments.
You can download standalone FractalGen here: https://github.com/username1565/FractalGen/releases
- proxy.txt - add proxy list + comments.
- update useragent.config - See aggregator.cs
- Changes.txt - full changes description.
Changes in "upload/" folder
- MORE-secrets-inside.png - add some container to test unpack
Changes in "styles/"
- \skins\futaba\nano.css
Change futaba style.
1. Download modified futaba from post 26cf46231ea152f7da224b572a071901 - there is font changed.
2. unzip it.
3. Added old code (commented), added comments there.
4. Change color for spoiler.
5. Set default background for spoiler on_hover.
6. Remove whitespaces between "[" and "]" for buttons.
7. Change "!important" to "important" for textareas. Now this have dynamic size in "Settings".
Changes in "images/" folder
- error.png - just add this picture when captcha not found or invalid. See another changes about captcha.
Changes in "scripts/" folder:
- checkver.js
Version not checking every time on load the page. Interval can be customized in the "Settings".
First interval is long (hours) - for checking update online.
Second interval is short (minutes) for remind, when updates available.
Also in settings saved the last version as text, and last update unix timestamp.
- img2base64.js
add filename in bb-code '\n' before picture in post.
- init.js
remove display the empty categories. [][]
add functions to working with queue.
change intervals of repeat XHR-queries - to repeat by timeouts, and release model with dynamic timeouts.
When fail or empty response, and no any notifications or count not changed - XHR-queries not repeated so often,
and repeat by long timeout. But when positive response received, timeout will be switched to shorter.
for png-collect-avail and png-create-avail this released - too.
Update post count when PNG collect - is in progress. No need to update this regularry.
/places now can be updated by click on the link. No need to download this every time, using interval, and compare then.
Add function function getPosts to load posts by their hashes to display posts in queue onclick by hash.
Check is collect finished, after update. When collect still in progress button "Collect PNG" is disabled.
"max_connections" = 10 by default. This can be changed in JavaScript and this is not hardcoded value now. This value go to \Server\DbApiHandler.cs using as one from parameters in POST-query.
two second parameters is "collect_using_files" and "save_files". RAM collect - added in Aggregator.cs.
Old code, with collect using files - saved. Files can be saved from RAM or just not deleted.
CreatePNG now sent some parameters in POST-query. Add custom PNG-file, after loading, like on Karasiq-nanoboard.
- last.js
add code from client 3.1, but commented.
add comment.
- nanoclient.js
add some functions
add function to relace found hashes to local posts/thread quotes. Now posts can be quoted, if hash only pasted. Also, links from karasiq nanoboard - contains local quote.
replace links on files, if bb-code [file] found.
add hide-show functions for each posts. Localstorage used to save hidden posts. Only hashes of posts saved there, in array.
add hash filename, for noname zipJPEGs
AddBriefView from nanoboard 3.1
- notif.js
pushNotification don't return now, this just not called.
- onadd.js
just add console.log. Maybe, retranslation working with BitMessage.
- params.js
add params.
repeat get param on fail.
modify function parseRegexps, to working with json. Now, keywords from spam-list saved as serialized JSON.
add params about check update.
add info about captcha.nbc to verify this. Verification of capcha working when try send first post, and try to load captcha, after start nanodb.
- post.js
regexp - changed. Parse big pictures without bytelimit (from karasiq nanoboard, for example).
if [filename] found after image, clickable link available to download it. No need to save noname image by open dataURL, now. filename appending onadd image.
add code to replace link to local post link inside links from karasiq nanoboard, for example (another format).
- reply.js
add function to check is base64 when tags must contains the base64. Append style with error, if not base64 there. Example: "[xmg=12]" in the text of post.
add function validate_symbols to validate symbols of captcha-answer. Press any no existing letter there to test.
add commented code to make captcha window draggable and resizable (not working).
add error, with info from params.js and config-3.json - download captcha, if captcha not found.
add length calculator in textarea.
- retranslate.js
just add console.log
- search.js
add code to replace span in href, and return correct result, after searching the link or fragment of the link.
- sha256.js
repair damaged file.
- polyfills.js
Add polyfills for endsWith and Array.slice functions, if somewhere this not supporting.
- karasiq-queue.jpg - just add screen with queue on karasiq nanoboard.
- jquery-1.12.0.js
In nanoboard 3.0 was used minified jquery.min.js.
Inside the source code is available version - v1.12.0.
After downloading it here: http://code.jquery.com/jquery-1.12.0.min.js
both minified versions was been compared and no any differences.
This is full version of this file with readable source code.
This was been downloaded here: http://code.jquery.com/jquery-1.12.0.js
jquery-1.12.0.js is not minified and have readable code.
And this can be used now. Just leave it here, without include.
- bootstrap.min.js
In nanoboard 3.0 using minified bootstap.min.js.
Inside the source code is available version - v3.3.6.
After downloading this version here: https://github.com/twbs/bootstrap/releases/download/v3.3.6/bootstrap-3.3.6-dist.zip
from archive was been extracted \bootstrap-3.3.6-dist\js\bootstrap.min.js
and compared with bootstrap.min.js from nanoboard client 3.0.
No any differences.
bootstrap.js from this archive is not minified and have readable code.
And this can be used now. Just leave it here, without include.
- bootstrap-3.3.6-dist.zip
archive with this bootstrap version. There is inside fonts with glyphicons and bootstrap.css
This archive need to verify the complete assembly of "bootstrap", by comparing the hash.
- Folder \bootstrap-3.3.6-dist\fonts\ inside
This was been compared with fonts from nanoboard-restore.zip archive.
No any differences.
boostrap.css is not minified version and have readable source code.
- \bootstrap-3.3.6-dist\css\bootstrap.css inside
is not minified and have readable code.
And this can be used now. Just leave it here, without include.
Changes in /pages folder
- index.html
add sha256.js and polyfills.js
add style from 2ch.hk "show-hide posts wakaba css" to hide posts by click on eye.
change version from 3.0 to 3.1
add tab to create png. This is not button now.
add div createPNG with the page and params for creating PNG.
Add script with functions to working with queue.
- params.html
Add params.js and checkver.js
Add default spam_filter value.
Add function to parse Unix timestamp.
Reload the page, after timeout, because not all values updated.
Add variable to get fontsize in textareas.
Resize textareas height by number of rows in content there.
working with different parameters.
repair ip:port values.
- version.txt
Changed automatically, after each compilation.
Generated from nanoboard-source/compile.bat
Link for update can be customized in scripts/checkver.js
- convert-to-PNG.html - convert image to PNG or generate PNG (random bitmap or fractal).
- download_as_binary.html - page to download base64 as binary file.
- generate_date_for_version.html - page to generate date and time in OLD canonical format, for version.txt
- generate_HTTP(S)_links.html - page to generate HTTP and HTTPS-links on the UNCOMMENTED thread with conteiners.
- Open_container.html - page to unpack custom container http://127.0.0.1:7346/pages/Open_container.html
file upload\MORE-secrets-inside.png by default there, as example.
- test_captcha.html - just page to test captcha symbol length. 5 is minimum and 5 is maximum I see.
nanodb.exe-source - full changes:
"\"
- app.config
- nanodb.csproj.user
Add this two files from 3.1 nanoboard client.
- nanodb.csproj update this file from 3.1 add FractalGen.cs, and change Prefer32Bit to true.
- nanodb.sln update from 3.1 nanoboard client.
- Program.cs update from 3.1 nanoboard client.
- compile.bat
add this file to compile source code, using MSBuild.exe,
and save win32 version in the "main"-folder
+ generate version.txt in "pages"-folder.
Generated version.txt have previous old format, with LF in the end.
Also, nanodb.exe is ready to start, if update copied, to unpacked
3.0 version with nanoboard 3.0 from restore-archive "nanoboard-restore.zip".
"Capctha\"
- Captcha.cs
add using with comment.
add public static variables about captcha state. This changed after validation and available in the program.
add SHA256CheckSum method to calculate sha256 from file.
add ToHex method to convert sha256-hash into string.
add download_captcha_file method and comment this.
read captcha pathway from config-3.json
set bool captcha_found if exists
add bypassValidation for posts, if captcha not found or damaged. For readonly mode - no need any captcha now.
return 0 in CaptchaIndex because there was been error after try to devide by null, when captcha not found.
"Database\"
- FileUtil.cs - add stream.Close() and stream.Dispose() in three places.
- Post.cs - add changes from nanoboard 3.1 + comment
- PostDb.cs
add changes from nanoboard 3.1 + comment.
Define DTComparer : IComparer for .NET Framework 4.0 and maybe v3.5
call PostsValidator.Validate with value of bypassValidation
- PostsValidator.cs
Add bypassValidation to Validate method.
do not return false, if bypassValidation==true.
Add bypassValidation in captcha.Captcha.PostHasSolvedCaptcha method. See Captcha. cs.
"PngTransport\"
- Aggregator.cs - many changes.
Add proxy, add RAM collect, without using files, repair collect, using files...
Add variable to limit connections (as parameter of POST-query, from DbApiHandler.cs).
download_timeout_sec can be customized in "Settings" too.
Repair error about "file is busy by another process" when program try to delete it, but bitmap not .Dispose()
Repair srcIndex, by just replacing two strings (decrement and notif) - after catch.
add return to see finish status in the end in console.
- CurlWebClient.cs
Add p.WaitForExit(); and .Close(); .Dispose();
- NanoPostPackUtil.cs
Change int.Parse to nbpack.NBPackMain.parse_number because int.Parse working bad for me.
- NBPack.cs
Add two using for regexp and save image.
Change one word.
add more arguments to Create method.
add more arguments to Unpack methos.
add return to don't stop there, and continue.
add parse_number there, because int.Parse working bad for me.
param queue_image_params can be sent as parameter of POST-query. See scripts/init.js and Server/DbApiHandler.cs by keyword "png-create"
custom container available there, now from dataURL in POST-query.
different hardcoded parameters, now can be customized.
Unpack container can accept parameters from POST-query too. Search "run-nbpack" in the source code and see this in Open_container.html
etc..
- PngStegoUtil.cs
Add Console.WriteLine with filename, after saving PNG.
method ReadHiddenBytesFromPng can accept dataURL now. This is different method, which accept string parameter (pathway or dataURL).
another method ReadHiddenBytesFromPng accept Image as argument, and this contains old code.
- PngUtils.cs
Just add .Dispose() for bitmap, before return.
- WebClientX.cs
Don't replace "https://", "http://", but old code commented.
Add proxy as parameter for WebClientX method. Old method - commented.
That's all here.
- fractalgen.cs - modify the source of https://github.com/username1565/FractalGen/blob/master/Program.cs
to include this as module, and add there.
Add link to this file inside nanodb.csproj to compile this, using MSBuild.exe
- copy_WebClientX.cs
copy_Aggregator.cs
Try to using from Aggregator.cs the ParseImage method (with proxy),
for anonymous downloading "captcha.nbc",
from URL https://github.com/Karasiq/nanoboard/releases/download/v1.2.0/ffeaeb19.nbc
in /Capctha/Captcha.cs. But downloading failed, because github using redirecting.
Just leave this files here, to you see changes, after comparison, and leave this idea here.
"Server/"
- DbApiHandler.cs
using imaging to save PNG and fractalgen to generate it.
add api command /api/getlastn/ from nanoboard client 3.1 to get last N posts as response to POST query.
add api command /api/getposts/ to get posts by array with post-hashes. See comment there.
add method GetPosts to getlist with specified posts.
add comment for modified api command /api/prange to get last posts by range, or get hashes only by range. See comment there.
add comment for modified api command /api/png-create. There is possible to pack specified posts by send array with hashes there.
Also, can be sent custom PNG dataURL and something else. See source code.
add api command /api/run-nbpack to run nbpack.cs "Simple tool", after sent parameters in POST-query. See source code and description there.
add GET or POST parameters to /api/png-collect see comment there.
add api command /api/convert-to-PNG - see comment there.
add text response for avail functions (collect and create)...
add method generate_PNG /api/convert-to-PNG/?generate_PNG,PNG_WIDTH,PNG_HEIGHT - random bitmap or fractalgen.
- ErrorHandler.cs
Just change version to nanoboard 3.2
- GetCaptchaTokenHandler.cs
Set bool variable and return error if captcha not found. This error with customized link is showing as captcha, in this case.
- HttpServerBuilder.cs
Just replace int.Parse to nbpack.NBPackMain.parse_number
- NotificationHandler.cs
Just add Thread.Sleep(10);
- TcpServer.cs
Just replace int.Parse to nbpack.NBPackMain.parse_number
Also, add exception to catch in the end.
_____________________________________________________________________________________________________________________________________________
Short changes:
Captcha reloading onclick by captcha image.
Parsing container by specified URL.
Bytes for each posts and bytes to pack.
Repair queue. Return hashes of packed posts, and dequeue it, after packing.
Now available hashes of random posts, before packing. Random posts generated on client-side, and can be customized.
Addinfo for custom image. This available after loading, in the independent div.
Add two inputs in last posts tab to specify values there.
Now search is registry-independent.
Now files in /download/ folder available in browser.
Add list files in /download/ folder and switch this to PNG-only, by default. Now is available the collectPNG from "download" folder.
____________________________________________________
Changed files:
pages\index.html
pages\Open_container.html
pages\version.txt
scripts\checkver.js
scripts\init.js
scripts\last.js
scripts\nanoclient.js
scripts\params.js
scripts\polyfills.js
scripts\post.js
scripts\reply.js
scripts\search.js
nanodb.exe-source\Database\PostDb.cs
nanodb.exe-source\PngTransport\Aggregator.cs
nanodb.exe-source\PngTransport\NBPack.cs
nanodb.exe-source\Server\DbApiHandler.cs
nanodb.exe-source\Server\FileHandler.cs
nanodb.exe-source\Server\HttpServerBuilder.cs
nanodb.exe-source\Server\MimeType.cs
____________________________________________________
Full changes:
/pages
version.txt - regenerated after recompilation
Open_container.html
Added parsing container, by URL.
Added checkbox to enable/disable preview of loaded image, after downloading by URL.
Added function to parse image by URL.
index.html
Hide "CreatePNG"-tab onclick by last posts item.
Add imageInfo for selected custom image. There you can see info, after loading, included "bytes to pack".
Add bytes for total and bytes for each post (independent JSON object "var fullhl_bytes = {};").
Add info about hashes of random last posts. Now rancom posts can be generated on client-side.
Add two input field on last posts tab to specify start index and count of displayed posts.
Add variable to save replyTo_Hash+post, when captcha reloading.
Add variables to working with this all.
Add function to generate random posts.
request hashes of all posts with bytelength in GET-query.
/scripts
checkver.js
add whitespace.
Change link from link to zip to link to releases page.
init.js
comment console.log()
move notifyAboutNotifications() in the end.
add max_bytelength_in_container_to_resize
add option to collect without saving, but without deleting previous files.
turn back POST-query for packing with queue, and comment previous GET-query, without queue.
if random_on_client_side - shuffle array with random posts.
Unlock button, after createPNG many times.
Add function check_avails_once
Add modified notifyAboutNotifications function in the then.
Add comment.
comment interval for retranslate.
Add function run_retranslate
last.js
working with values in inputs, on show last posts tab.
nanoclient.js
just add '/n', after queue
params.js
change default values to the values specified in variables, in beginning. This will be setted if config-3.json not hava this value. Of from this.
polyfills.js
Change comments
add polyfill for Math.trunc() function.
post.js
Add another function replaceAll_search() to replase highlithting in text.
Change regexp in function detectURLs(text) to match URLs with cyrillic symbols.
search.js
Add code $.get('../api/search/'+search) to test first parameter in the Search method in DbApiHandler (commented). Test passed.
Add $.post('../api/search', search+'|'+post_count_limit_for_searching)
Repair replace URLs when search.
Now search is registry independent.
reply.js
Add reload captcha onlick.
2reply.js
working_reply.js
dump of reply.js.
/nanodb.exe-source - рассмотреть подробно.
/bin changed, after compilation
/Database
PostDb.cs
Return bytes in method RangePresent, when only_hashes=with_bytelength
/PngTransport
Aggregator.cs
Add do_not_save_and_do_not_delete variable to don't save files, but don't delete previous. (This need to collect from "download" folder).
Skip empty strings in proxy.txt
Add method DownloadPNG to download PNG only by specified link, and download, using proxy (if specified).
NBPack.cs
In PNG Create method, max_bytelength value for PNG list - not hardcoded now and can be sent as parameter of POST-query.
Rewrite Create PNG method. See changes there.
Add shuffle for result list to pack posts randomly - for more anonymize PNG creator.
Return hashes of packed posts.
Send one notif for extracted post while collect PNG progress...
Server\
DbApiHandler.cs
Add new API command: (/api/download-png, url) to download single PNG container, by specified URL.
Add method DownloadPNG.
Rewrite Search method to add registry-independent searching.
Change
//if (msg.Contains(searchString))
to
if (msg.IndexOf(searchString, StringComparison.CurrentCultureIgnoreCase)!=-1)
Now searching is registry-independent.
Unlock hardcoded post count limit. Now this can be specified as parameter in POST-query.
See search.js: $.post('../api/search', search+'|'+post_count_limit_for_searching).
Value of post_count_limit_for_searching defined earlier there.
HttpServerBuilder.cs
Add "download" folder as handler for local HTTP-server.
Now is possible to open files http://127.0.0.1:7376/download/image.PNG
This need to preview and download container in browser, which was been parsed by specified URL.
FileHandler.cs
Add dictionary with mime-types
private static IDictionary<string, string> _mappings = new Dictionary<string, string>(StringComparer.InvariantCultureIgnoreCase) { //get mime type by file extension
This need to return correct mime-type of file in "download" folder.
Add filelist there and switch this to PNG-only, by default.
Now is possible to make collectPNG from http://127.0.0.1:7376/download/
MimeType.cs
Add specified string for "dynamic" mime type. This means mime-type select by file extension in "download folder".
____________________________________________________
Short changes:
Add download-posts and upload-posts functions.
Now is possible to download database without parsing containers,
and upload posts to another server with API, using functions in retranslate.js.
See pages/TEST_download-upload-posts.html
Add function to download any file, using list of proxies in proxy.txt.
Now captcha.nbc can be downloaded using proxy, from anywhere. But github test - failed.
Parameters in params.html now displaing as table. Link to check updates online added there.
Small-fixes.
Full changes:
Source code:
\nanodb.exe-source\Server\DbApiHandler.cs
Lines 38-39: Add API commands to download-posts and upload-posts in JSON.
Lines 410-414: read second argument, if this sent as parameter of POST-query.
Lines 538, 548: Comment test strings.
Lines 620, 659: Add methods Download_Posts and Upload_Posts.
\nanodb.exe-source\Database\PostDb.cs
Lines 573-582: Add function isMD5() to validate hash format.
Lines 583-642: Add function to download posts by any URL with API.
Lines 644-660: Add function to upload posts to API.
\nanodb.exe-source\PngTransport\Aggregator.cs
Lines 499-601: Try to rewrite function Method DownloadPNG to download any files (captcha.nbc, as example), using proxies.
Add option to download large file, using proxies. For example, captcha.nbc.
\nanodb.exe-source\PngTransport\WebClientX.cs
Lines 92-96: Add method DownloadFile for WebClientX, to download file, using proxy.
Styles:
\styles\skins\futaba\nano.css
Lines 7-10: Add background color for tables in futaba skin.
Scripts:
\scripts\checkver.js
Line 66: Enable checkVersion check online onclick by link, if online===true
\scripts\init.js
Line 257-342: Update total_posts_available up to postCount after finishing collect PNG.
fix default value in function check_avails(hide=false) to make this working in Google Chrome
\scripts\last.js
Lines 52-80: Changes in function showLast.
fix default value in function showLast(N, from_index=false) to make this working in Google Chrome.
\scripts\nanoclient.js
Replace unknown files to links. Now this can be downloaded as txt files with binary code, and renamed then.
Add supporting RIFF-files - .webp, .wav, .avi.
Fix base64 verification.
Insert eye to show-hide posts inside the link. Now this working with other styles. Add spaces. Show-hide functions - rewrited.
\scripts\params.js
Lines 104-116: Change default params.
_checkVersion - true -> false; temporary disabled.
\scripts\post.js - Comment old test code.
\scripts\search.js
Changed maximum post count to default 500 + add comment.
//now this value not hardcoded in the method Search in \Server\DbApiHandler.cs
var post_count_limit_for_searching = 500;
fix serarhing value in base64 fragment of picture.
Pages:
pages\index.html
Add code to display posts onclick or by input hashes. Add code to check hash in input value.
pages\Open_container.html
Lines 187-203: Add test code to try download captcha.nbc from github. Fail, because dynamic link...
pages\params.html
Change displaing params as table.
pages\version.txt
\nanodb.exe
Regenerated, after compilation.
pages\TEST_download-upload-posts.html
Added the function for download-posts by custom URL with API and upload-posts to custom URL, using API.
See pages/TEST_download-upload-posts.html source code.
\scripts\karasiq-queue.jpg
remove this file from releases, to make archive smaller.
____________________________________________________
Changes:
\nanodb.exe-source\Database\PostDb.cs
Fix uploading and downloading.
Add two variables and rename variables inside methods.
Now this methods not running until another process in progress.
\pages\TEST_download-upload-posts.html
Uncomment all methods for test.
Now all tests working if database was deleted before running nanodb.exe
\pages\version.txt
Updated, after recompilation.
____________________________________________________
10 files changed.
Changes:
\nanodb.exe - recompiled exe.
\changes.txt - update changes.
\nanodb.exe-source\PngTransport\Aggregator.cs
- Repair PNG collection - "Collect PNG":
Now downloading threads will be stopped if no any response after timeout of timer.
Default timeout = DOWNLOAD_TIMEOUT_SEC - and this value can be changed in Settings.
Console notification text - changed.
- No more than "max_connection" items will be added to downloading list.
- Same for downloading images, before parsing.
- Now I don't see the OutOfMemoryException within all process "Collect PNG",
But this can be because base64 there is in notifications.
When downloading and parsing fast, and this updating loading slowly,
usage of memory is growing in nanodb.exe server.
- change https to http for volgach.ru. Now images downloading there.
- Maybe need to add some headers, because many HTTPS threads return request-timeout...
\nanodb.exe-source\PngTransport\WebClientX.cs
Add CancelAsync() for WebClient in WebClientX.
\pages\index.html
Fix value for input, when this is a first input of hash.
Comment some test console.log()
\pages\version.txt
Regenerated after recompilation.
\pages\TEST_download-upload-posts.html
Just add descriptions.
\scripts\init.js
Add comments.
\scripts\last.js
Fix undefined parameter from_index in POST-query, when selected the item
with LastN post in the list, and when page was been updated.
Add new from_index as first value of POST input and add it to input field.
\scripts\on_add.js
Add quotes.
____________________________________________________
21.05.2019 (18 files changed.)
Short changes:
Fix bump for threads. Add Fast comparing.
Fix srcIndex and OutOfMemoryException errors when parsing and collect PNG from http://02ch.su/b/res/7379.html
Add new bb-codes [o], [quote], [sub], [sup], [code]
Fix styles when this codes inside spoiler (for dark and futaba only).
Add code of the post in separate hidden <pre> and button to show-hide this code.
Add links to thread and post in the search.
Add searching by post hash.
Fix replacement links for posts. Replace HTML-code inside to HTML entitiex before replacement.
Do not replace_hash to local quote if this the part of another hash.
Exclude PNG and GIF files from change this to hash_binary.txt. Exclude icon with link to download_as_binary.html. Now this displayed as images.
Add tilda to regexg for detectURLs. Now URLs with ~ will be parsed good.
Add polyfills for String.includes и String.StartsWith to support this in old browsers.
_____________________________________________________________________
Full Changes:
Source code:
\nanodb.exe-source\Database\PostDb.cs
Fix bump for threads:
Lines 15-16: Add two commented string in DTComparer to see how often this calling. So often...
Lines 511-547: Method GetLastNAnswers changed.
Add bool fast = false to skip old posts, make array length lesser, and comparing faster.
Rename res to res_ln to don't conflict with res in GetReplies method.
Add if(fast==true){ and skip posts with date oldest than 2 years old }.
Now, res_ln.Count not so large, and comparing faster.
Add output of res_ln.Count in console.
Lines 548-641: Method GetReplies - changed.
550, 552, 556, 558: Add figure brackets.
560, 605: Add sleep 10 milliseconds.
563: Add hash f682830a470200d738d32c69e6c2b8a4 as replyTo for post bdd4b5fc1b3a933367bc6830fef72a35
572, 573: Comment previous comparer.
575, 607: Rewrite this comparer.
Using temp_res now, to don't rewrite previous res.
Add skip date in future,
using GetLastNAnswers(fast=true),
and return unsetted date on catch.
603: Add .Reverse()
608, 637: Add commented code to see sorted array and dates by which this was been sorted.
\nanodb.exe-source\PngTransport\Aggregator.cs
688, 728: Add try-catch for all stadies of parsing.
757: Add display InProgress when catch.
\nanodb.exe-source\PngTransport\NBPack.cs
Disable notifications and fix srcIndex error and OutOfMemoryException.
Lines 436-512: Method ParseFile rewrited.
443: Add int posts_added = 0;
448-452: Add try-catch for PutPost
456-470: Add try-catch and comment sent notification.
Now no posts with post-content in notifications, and this was been disabled.
Now no any catch with srcIndex and OutOfMemoryException.
471: Just increment posts_added++;
473-503: Show numbers of available posts, added posts and skipped posts - in notif only.
try-catch added, code commented.
\nanodb.exe-source\Server\DbApiHandler.cs
487-488: Change Convert.ToInt32 to nbpack.NBPackMain.parse_number. Now value "5" parsing good.
\pages\index.html
362-364: Just add _detectURLs === 'true' to disable replace local quotes, when Detect URLs = false in Settings.
\pages\TEST_download-upload-posts.html
41-44: Add console.log with synthesis the link with escaped URL.
This link can be used to initialize downloading from API of remote nanodb.exe.
Downloading test passed. Non existing posts was been successfully added.
\scripts\init.js - small fix of text and add post.query to save pictures in download folder. save_files parameter there.
After disable posts in notification - collect from thread http://02ch.su/b/res/7379.html
is successfully, also success for saving all pictures in download,
and collect from http://127.0.0.1:7346/download/ then successfully too.
No any srcIndex errors and OutOfMemoryException.
\scripts\last.js - Add links for thread and post for posts in list of last posts.
\scripts\nanoclient.js
Fix some bugs in parsing.
Line 129: Add replacing html-code inside post to html-entities. Now HTML inside the post - will be displaying as HTML-code.
Lines 427-442: Add show_hide_post_code(hash) - to show code of the post, by hash of this post.
Now this display in separate hidden <pre>.
Also, available the button for switch post content and code of post.
Lines 523-527: Add figure brackets.
Lines 566-568: Add figure brackets. replace_local_quotes only when _detectURLs === 'true' in "Settings"
Lines 581-600: Append hidden <pre> with the code of post.
Lines 641-647: Exclude PNG and GIF signatures from replacing. Now PNG and GIF images displaying as images.
Lines 671-681: Exclude icon to download as binary. Now this not replaced.
Lines 874-915: Rewrite tabs in code, add figure brackets.
\scripts\polyfills.js
Lines 133-163: Add two polyfills for "String.includes" and "String.startsWith"
\scripts\post.js
Line 250: Add tilda "~" to URL regexp in detectURLs. Now URL's with tilda will be parsed.
Lines 262-290: Exclude closed bracket if another not found in url, and dot in the end of URL.
Now this URL will be splitted before replacement.
Line 305,326: Add addition_string, after replacement.
Lines: 363-373: Add new bb-codes [o], [quote], [sub], [sup], [code].
\scripts\reply.js
Line 597: Change client version from 3.1 to 3.2
Line 629-697: Add double quotes and add buttons for tags [o], [quote], [sub], [sup], [code] in reply window.
\scripts\search.js
Lines 50-274: Search by hash and return post/thread/cathegory, if search query seems like hash of post.
\styles\skins\dark\nano.css
Lines 149-182: Fix tags style inside spoiler.
\styles\skins\futaba\nano.css
Lines 193-239: Fix tags style inside spoiler.
\pages\version.txt - changed, after recompilation.
\nanodb.exe - recompiled win32 (x86) exe.
\changes.txt - add this changes.
_____________________________________________________________________
_____________________________________________________________________
(25.05.2019) Changed 15 files:
Short changes:
styles - Fix styles for bb-codes and link, inside spoiler and quote. Make spoiler more hidden and links inside spoiler.
Add preview post in reply window, before send it.
Add swich for preview button (show-hide).
Add hide preview onclick on some button.
Add closing powModal and captcha modal onclick outside.
Add autosend captcha onpress EnterKey. If captcha invalid this will be requested again.
Add exit to compile.bat, Add start_compile.bat to compile from command-line.
Fix deleting the posts. Now this deleting by two steps. Deleted with half-opacity, to show replies, and deleted forever.
_____________________________________________________________________
Full changes:
nanodb.exe-source\Database\PostDb.cs
Fix post deletion. Now posts can be removed by two steps - deleted with show replies, and deleted_forever.
Fix _index rewrite (sometimes NULL bytes there).
Lines 178 - 181: Do not add deleted forever post for updating database.
Lines 224 - 227: If post have replyTo:"deleted_forever" add to _free and remove from _refs.
Lines 403 - 405: Skip deleted_forever posts which not contains in _refs. Maybe, need to add just deleted posts...
Lines 454 - 473: DeletePost method - rewrited.
Skip post don't Contains in _refs (nothing to delete).
If already deleted - delete forever.
Remove from _deleted, add to _free, update values in _refs, rewrite 0.db3 and diff-3.list, and remove from _refs.
Add comments to for first delete actions.
Lines 540 - 548: GetLastNAnswers method - rewrited.
return empty posts:
if hash contains in _free - (for deleted forever)
if hash not contains in _rrefs - (no any reply)
or if hash contains in _deleted. (maybe no need to exclude this)...
Lines 558 - 568: If post deleted forever - skip this.
if post == null - skip this.
Lines 596 - 598: GetReplies method - rewrited. Skip deleted_forever posts.
Line 628: Return default date if (a == null)
Lines 699 - 711: Flush method rewrited. Write _index (index-3.json) after verification, because sometimes there is null bytes.
nanodb.exe-source\Server\DbApiHandler.cs
Line 489: Try to add fast GetReplies, but code was been commented.
Line 699: Add 999 times to try to delete post (was been 100).
Line 709: Add i to timeout to make timeout dynamic, up to 15 seconds.
Line 719: Add text with hash for server response.
nanodb.exe-source\compile.bat
Line 69. Add exit to close window on press by any key.
nanodb.exe-source\start_compile.bat
Add start compile.bat to run this from command line.
Now, compilation can be runned by next steps:
1. WinKey+R -> cmd.exe
2. cd [path_to start_compile.bat]
3. start_compile.bat
4. Wait compilation. Press any key in the end.
5. Window closed. Success. No any WMICTempBatchFile.bat created and WMIC working good in this case.
\scripts\api.js
Lines 23 - 30: function deletePostFromDb changed.
Add get-query and console.log when this .done
\scripts\last.js
Lines 125 - 128: Add opacity for posts, deleted once.
\scripts\nanoclient.js
Lines 481 - 484: Remove <gr>.
Lines 728 - 730: Add opacity for posts, deleted once.
Line 740: skip, when arr[i]===null, was been break at first, but continue now.
Lines 763: commented console.log
Line 767: Add comment.
Lines 771 - 775: Add opacity for posts, deleted once.
Line 909: if(arr[i]===null)continue;
\scripts\post.js
Lines 9 - 39: Remove test console.log
Lines 219 - 226: skip '[' in url.
Line 320: Add style for <pre> with code.
\scripts\reply.js
Lines 477 - 497: In function validate_symbols - add autosend captcha, when '\n' in the end (Enter key pressed).
Lines 512 - 536: Add function to close powModal and captchaModal onclick outside, like for "Insert image" modal.
Lines 537 - 648: rewrite fuction generate_captcha.
Lines 667 - 674: Add remove preview, onclick by button.
Lines 684 - 701: Add Show/Hide Preview button.
Lines 709 - 712: Add remove preview, onclick by button.
Line 779: Add style for <pre> for button with [code]
\scripts\search.js
Lines 104 - 106: Add opacity for posts, deleted once.
\styles\skins\futaba\nano.css
Lines 193 - 204: Fix color for spoiler. Make this more hidden.
Lines 210 - 214: Now background color of spoiler will be transparent onhover.
Lines 216 - 220: Add tags in spoiler.
Lines 221 - 241: Add slow hover for links and fast hide this. Now link in spoiler more hidden.
Lines 243 - 246: Add show <pre> ([code]) in spoiler, on hover.
Lines 248 - 261: Add style for <gr> and styling other tags inside [quote]
\pages\index.html
Line 239: Just change text for preview button, when reply window opened.
\pages\version.txt - changed after recompilation.
\nanodb.exe - changed, after recompilation.
\Changes.txt - Add this changes.
_____________________________________________________________________
(19.10.2019) Changed 24 files, added 1 file - in 11 folders:
Changes and additions:
Source code:
\nanodb.exe-source\PngTransport\NBPack.cs
Fix showing the part of dataURL, in catch, if image not parsed correctly, and if this was been parsed from dataURL.
No long base64 in console, now.
Fix some compile warnings
\nanodb.exe-source\Server\DbApiHandler.cs
Change type for variable "deleted" from bool to int and add additional cases for response when post is deleted.
Fix some compile warnings
\nanodb.exe-source\Server\FileHandler.cs
Add title tooltip for h1-element on the page http://IP:PORT/download
\nanodb.exe-source\Database\Post.cs
Fix some compile warnings
\nanodb.exe-source\Database\PostDb.cs
Fix post deletion. Now posts are deleted by two steps. "Delete once" (replies availale in this case) and "Delete forever".
Add two additional bool variables to lock files _index and DiffFile, while data is writting there.
Switch this to true before each read and write operation, and turn back to false, after.
Wait while this is true, and don't read-write, while file is locked.
Add the same variable PutPostBusy to don't call PutPost, while it still working.
Turn this to true, after call this method, and to false, before each return.
Comment the code in the method Flush(), and turn back old code. Maybe this will not write null bytes, if file will be unlocked.
Now, there is no any throw exceptions, about file is busy by another process...
\nanodb.exe-source\PngTransport\WebClientX.cs
Fix OutOfMemoryException:
Make WebClientX IDisposable
remove bytes - set bytes = null, in DownloadDataAsync, after check e.Result
Add some strings to clear memory, in the end of DownloadDataCompleted
Add new method DownloadData + curl downloading there.
Add new method Dispose to dispose WebClient.
This still eating many memory...
\nanodb.exe-source\PngTransport\Aggregator.cs
Fix DOWNLOAD_TIMEOUT_SEC when float.TryParse not working.
Fix OutOfMemoryException:
Copy method ParseImage, and rename this to ParseImage2
Rewrite parseImage to using DownloadData, not DownloadDataAsync with DownloadDataCompleted...
Now memory usage not so large.
Add memory limit as parameter in config, now this can be customized in the settings (bytes). Default value - 200 MBytes.
Now the program wait the garbage collecting,
before run another thread of downloading,
if this limit was been reached until collectPNG runned.
Comment WebClientX.Interrupt() in _Main, and add this before "Finished"
Now collectPNG will be processed even after stop the program, or disconnected from Internet.
WebClients are pending in the memory, connections is opened.
This will be closed for each WebClient, after DOWNLOAD_TIMEOUT_SEC
Comment notifs about opened connections. Was been added - just for test.
Fix proxy usage. Now PNGCollect working through HTTP and HTTPS proxy.
Switch to WebClient to HTTPWebClient.
Add modify Ping function, now this TryPingProxy, and this try to ping proxy using itself.
Add TryConnectProxy method. This get External IP and compare this IP with IP of used proxy.
Modify the cycle to search working proxy.
Now proxy can be specified without http:// and https://, just IP:PORT in proxy.txt
In this case http:// and https:// proxy will added to the list and can be checked.
Add randomize of proxy list.
\proxy.txt
update proxy list, change format for the items in strings, and add some sources to find HTTP and HTTPS proxies.
HTML, CSS, JS:
\pages\index.html
Change version to 3.2
Update post count, when this was been changed, after deletion of the post, for example.
Update array with byte-lengths of posts, if post-count was been changed.
comment test console.log()
Add link to draw image in canvas.
Add second div with post count, in the top of the page.
\pages\draw_image.html
add page to draw image in canves. This can return file as PNG-picture to download, or xmg-code to insert this image in the post.
\scripts\api.js
Update post count and show title tooltip, when post is deleted.
\scripts\init.js
Add array list_of_categories_hashes, to save the hashes of the posts with categories and find supcategories.
show notification, if count of posts - changed.
Update post count in the div in the top of the page.
\scripts\nanoclient.js
fix post deletion and add function append_thread_and_post_links
\scripts\on_add.js
Don't show long JSON in console.log, when try to using BitMessage transport. Just notify.
\scripts\reply.js
Add preview for post, before sent.
Remove elements powModal and captchaModal onclick outside this, like for modal for "Attach image".
function check_base64. Add update preview while textarea is editing, if preview is opened.
add left padding for preview.
Add function focus_in_the_end_of_last_textarea
Hide reply-div and textarea, after post was been sent.
\scripts\post.js
fix function detectImages when the same image posted many times.
Now this available in preview without errors. Array with indexes generated additionally.
fix detect_files in preview - function applyFormatting. Now the link to files are showing in preview.
replace type to "image/png", for PNG pictures, if PNG signature found in base64.
\scripts\search.js
remove image \images\spinner.gif, and add text notify "Wait SEARCH...", to nanomize nanoboard source.
add function interval in var dots to move the dots for this notify.
Add in 3 places, the text notify if nothing not found, to don't continue rotate spinner, when 404 response was been received.
\scripts\params.js
Add default places, and default skin - "futaba". This will be updated, if there will be empty values, when config.json deleted, for example...
Add autoreload the page after set the default values.
\styles\skins\futaba\nano.css
Add resize for post div.
Add padding for spoiler.
Add resize: none; for .post-inner
Add id's for two divs for post-count, in the top and in the bottom.
\styles\skins\photon\nano.css
\styles\nano.css
\styles\skins\dark\nano.css
Fix spoilers and quotes dark, photon and default skin. Style two divs statusd1, and statusd2.
Other:
\nanodb.exe - changed after re-compilation.
\pages\version.txt - generated after re-compilation.
\Changes.txt - this text added.
That's all.