Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Mailing lists / lazarus / 2015-11

Lazarus Mailinglist Reader

12 messages · 7 people · –

Reply by email Subscribe to this list Your subscription

Read-only archive. Use j and k to move between messages.

Werner Pamler

This mailing list is fully loaded with valuable information for both new and experienced users. Unfortunately, it is a bit difficult to access this information. There is an archive of previous mails (http://lists.lazarus.freepascal.org/pipermail/lazarus/), but it is a pain to open each mail one by one, and there are no searching capabilities.

Therefore, I wrote a little tool which downloads the archived mail threads into a searchable tree structure. Mails can be selected by month. The initial building-up of the tree takes some time, but the tree can be saved, and then subsequent loads are fast. Unfortunately the archived mails do not contain any attachments of the original mails.

Works fine on Windows 7, some issues on Linux.

Download of executable:
http://sourceforge.net/projects/wp-laz/files/Laarzus%20MailingList%20Reader/LazarusMailingListReader-trunk.zip

Download of source:
svn://svn.code.sf.net/p/wp-laz/code/
<https://sourceforge.net/p/wp-laz/code/HEAD/tree/Lazarus%20MailingList%20Reader/>

Compilation requires some third-party packages:

* VirtualTreeView
<http://sourceforge.net/p/lazarus-ccr/svn/HEAD/tree/components/virtualtreeview-new/>
* synapse <http://synapse.ararat.cz/>
* TurboPower Abbrevia <http://tpabbrevia.sourceforge.net>
* Facil Syntax Highlighter
<http://=http://github.com/t-edson/SynFacilSyn/> (since this is not a package the relevant files are included directly)

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus/attachments/20151115/7d64ccda/attachment.html>

Reply by email

Torsten Bonde Christiansen
to Werner Pamler: This mailing list is fully loaded with valuable information for both new and experienced…
Werner Pamler wrote 6 lines
This mailing list is fully loaded with valuable information for both new and experienced users. Unfortunately, it is a bit difficult to access this information. There is an archive of previous mails (http://lists.lazarus.freepascal.org/pipermail/lazarus/), but it is a pain to open each mail one by one, and there are no searching capabilities.

A very nice tool indeed.

I would love to see a single improvement though - the ability to have mails sorted according to date AND shown as threaded in the same time.

Regards,
Torsten.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus/attachments/20151116/8dfe604a/attachment.html>

Reply by email

Werner Pamler
to Torsten Bonde Christiansen
Torsten Bonde Christiansen wrote
I would love to see a single improvement though - the ability to have mails sorted according to date AND shown as threaded in the same time. http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus

Maybe a bit confusing, but if the sort marker is in the "Subject" column, mails are sorted by the date (of course only if the nodes share the same level). If you click on the "Subject" header, sort order is reversed. The primary criterion, however, is here the response-relationship, i.e. which mails respond to a previous message.

If the sort marker is in the "Date" column mails are sorted by date irrespective of the parent message. The same with "From"

Reply by email

Graeme Geldenhuys
to Werner Pamler: This mailing list is fully loaded with valuable information for both new and experienced…
Werner Pamler wrote
Therefore, I wrote a little tool which downloads the archived mail threads into a searchable tree structure.

How are the messages stored locally? In a large MBOX file, and then create an external index to speed up message access?

I have had a similar idea in the past, but instead wrote a full email client that can import MBOX files, but also work with POP3 and IMAP4 (NNTP will be supported too at some point). I store all emails in highly optimised SQL tables, primarily using Firebird, but other databases are also supported (thanks to tiOPF).

The email "client" is actually just a database client application - it doesn't do any actual email communications. The second other part of the project is a Service/Daemon application that does all the real work like importing, filtering etc. I don't use "folders" to organise messages either. Instead I set up filters that apply tags to messages. A single message can have multiple tags and can form a hierarchy too. So you can organise messages in any way you want. Full Text Search is also supported on the message headers and message bodies. I based the "client" application's UI on the classic PM-Mail/2 (for OS/2), or aka PM-Mail 2000 (for Windows).

I haven't decided if I want to open source the project or not. I'm still thinking about it.

Regards,
- Graeme -

fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal http://fpgui.sourceforge.net/ My public PGP key: http://tinyurl.com/graeme-pgp

Reply by email

Werner Pamler
to Graeme Geldenhuys
Graeme Geldenhuys wrote
How are the messages stored locally? In a large MBOX file, and then create an external index to speed up message access?

Maybe I should have gone a database way. But knowing the speed of TAvlTree from fpspreadsheet, I store the decoded mails in this structure (a simpler TList should do as well), and create two index AvlTrees for the MailID and the ReplyToID. The TVirtualStringTree at the left of the form has pointers to these mails in its node data. The file finally is written and read by using the built-in methods of the virtualtree.

Reply by email

Ondrej Pokorny
to Werner Pamler: This mailing list is fully loaded with valuable information for both new and experienced…

Thank you Werner for sharing it!

I wanted to build the application from the sources and I had the following problems.

1.) What CCR version do you use? I used trunk virtualtreeview-new and it reported a streaming problem in
TVirtualStringTree.Header.Style - hsXPStyle doesn't exist.

For me:
TVTHeaderStyle = (
hsThickButtons, // TButton look and feel
hsFlatButtons, // flatter look than hsThickButton, like an always raised flat TToolButton
hsPlates // flat TToolButton look and feel (raise on hover etc.)

   );

2.) Whenever I click on a thread, I get an AV:

-->> This may have something to do with the VirtualTree version I use.

3.) FPC 3.1.1 has some issues with SynFacil code. See patch.

=> What did you use to build lmlr? "FPC 3.1.1 trunk + Lazarus 1.5 trunk
+ CCR trunk" seem not to work properly.

Ondrej

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus/attachments/20151116/cc00166b/attachment.html> -------------- next part --------------
A non-text attachment was scrubbed...
Name: eedcfcgd.png
Type: image/png
Size: 4001 bytes
Desc: not available
URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus/attachments/20151116/cc00166b/attachment.png> -------------- next part --------------
Index: Lazarus MailingList Reader/trunk/source/3rdParty/synfacilsynhighlighter/SynFacilBasic.pas =================================================================== --- Lazarus MailingList Reader/trunk/source/3rdParty/synfacilsynhighlighter/SynFacilBasic.pas (revision 53) +++ Lazarus MailingList Reader/trunk/source/3rdParty/synfacilsynhighlighter/SynFacilBasic.pas (working copy) @@ -118,7 +118,7 @@

     firstSec  : TFaSynBlock; //secci??n que se debe abrir al abrir el bloque
   end;
-  TEvBlockOnOpen = procedure(blk: TFaSynBlock; var Cancel: boolean = false) of object;
+  TEvBlockOnOpen = procedure(blk: TFaSynBlock; var Cancel: boolean) of object;
   TArrayTokSpec = array of TTokSpec;
   //clase para manejar la definici??n de bloques de sintaxis
Index: Lazarus MailingList Reader/trunk/source/3rdParty/synfacilsynhighlighter/SynFacilHighlighter.pas
===================================================================
--- Lazarus MailingList Reader/trunk/source/3rdParty/synfacilsynhighlighter/SynFacilHighlighter.pas	(revision 53)
+++ Lazarus MailingList Reader/trunk/source/3rdParty/synfacilsynhighlighter/SynFacilHighlighter.pas	(working copy)
@@ -670,7 +670,7 @@
 genera una excepci??n}
 var
   tok  : TPtrTokEspec;
-  tmp: String;
+  tmp, tmpnew: String;
   procedure ActProcRange(var r: TTokSpec);
   //Configura el puntero pRange() para la funci??n apropiada de acuerdo al delimitador final.
   begin
@@ -703,10 +703,10 @@
   //configura token especial
   for tmp in lisTmp do begin
     if (tmp'') and (tmp[1]='^') then begin
-      tmp := copy(tmp,2,length(tmp));
-      CreaBuscEspec(tok, tmp, 1); //busca o crea
+      tmpnew := copy(tmp,2,length(tmp));
+      CreaBuscEspec(tok, tmpnew, 1); //busca o crea
     end else begin
-      CreaBuscEspec(tok, tmp, 0); //busca o crea
+      CreaBuscEspec(tok, tmpnew, 0); //busca o crea
     end;
     //actualiza sus campos. Cambia, si ya exist??a
     tok^.dEnd  :=dEnd;

Reply by email

Werner Pamler
to Ondrej Pokorny
Ondrej Pokorny wrote
1.) What CCR version do you use? I used trunk virtualtreeview-new and it reported a streaming problem in TVirtualStringTree.Header.Style - hsXPStyle doesn't exist.

I don't use the trunk of TVirtualStringTree because I know it still has issues with Linux --> branches/4.8 of virtualtreeview-new

3.) FPC 3.1.1 has some issues with SynFacil code. See patch. => What did you use to build lmlr? "FPC 3.1.1 trunk + Lazarus 1.5 trunk + CCR trunk" seem not to work properly.

fpc 2.6.4 & Laz 1.5 trunk. Abbrevia is no longer needed in current lmlr trunk. Thanks for providing the SynFacil patch, I'll pass it to forum user "edson", it's his code.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus/attachments/20151116/d3f75f21/attachment-0001.html>

Reply by email

Ondrej Pokorny
to Werner Pamler

Thanks for the info.

When I use the 4.8 branch and FPC 3.1.1, I still get the same AV when clicking on a message:

#0 TBASEVIRTUALTREE__PACKARRAY(0x0, 1378976, <error reading variable>) at VirtualTrees.pas:13233
#1 TBASEVIRTUALTREE__INTERNALADDTOSELECTION(0x150aa0, 1, false, <error reading variable>) at VirtualTrees.pas:21446
#2 TBASEVIRTUALTREE__ADDTOSELECTION(0xd55a298, <error reading variable>) at VirtualTrees.pas:16814
#3 TBASEVIRTUALTREE__HANDLEMOUSEDOWN({MSG = 513, KEYS = 1, XPOS = 127, YPOS = 31, POS = {X = 127, Y = 31}, DUMMY = 2031743, RESULT = 0}, {HITNODE = 0xd55a298, HITPOSITIONS = [HIONITEM, HIONITEMLABEL], HITCOLUMN = 0}, <error reading variable>) at VirtualTrees.pas:21135 #4 TBASEVIRTUALTREE__WMLBUTTONDOWN({MSG = 513, KEYS = 1, XPOS = 127, YPOS = 31, POS = {X = 127, Y = 31}, DUMMY = 2031743, RESULT = 0}, <error reading variable>) at VirtualTrees.pas:16232

I'll have to check FPC 2.6.4. It is probably an internal VTW issue.

For now I tested your compiled EXE and it works just great. Thank you very much for this utility!

Ondrej

Reply by email

Bo Berglund
to Werner Pamler: This mailing list is fully loaded with valuable information for both new and experienced…
Werner Pamler wrote 5 lines
This mailing list is fully loaded with valuable information for both new and experienced users. Unfortunately, it is a bit difficult to access this information. There is an archive of previous mails (http://lists.lazarus.freepascal.org/pipermail/lazarus/), but it is a pain to open each mail one by one, and there are no searching capabilities.

Have yoiu tested a newsreader and the gmane server? It has the comnplete mail list posts since many years back and is very fast also. I am writing this response via Gmane and using Forte Free Agent, but there are other good news readers also available. The point is that Gmane provides the server capacity (blindingly fast too) and with a newsreader you get an organized local message cache.

No need to re-invent the wheel...

Server: news.gmane.org
Newsgroups: gmane.comp.ide.lazarus.general (lazarus) gmane.comp.compilers.free-pascal.general (fpc)

Bo Berglund Developer in Sweden

Reply by email