home
products
contribute
download
documentation
forum
Home
Forums
New posts
Search forums
What's new
New posts
All posts
Latest activity
Members
Registered members
Current visitors
Donate
Log in
Register
What's new
Search
Search
Search titles only
By:
New posts
Search forums
Search titles only
By:
Menu
Log in
Register
Navigation
Install the app
Install
More options
Contact us
Close Menu
Forums
MediaPortal 1
MediaPortal 1 Plugins
Notification: Extending "My Mail" plugin
Contact us
RSS
JavaScript is disabled. For a better experience, please enable JavaScript in your browser before proceeding.
You are using an out of date browser. It may not display this or other websites correctly.
You should upgrade or use an
alternative browser
.
Reply to thread
Message
<blockquote data-quote="bigj" data-source="post: 63577" data-attributes="member: 10940"><p>Hey <ok|, I guess I'd have to say it is stalled at best! - I've had even less time than anticipated and its only going to get worse over these next few months as we're hitting a crunch at work.</p><p></p><p>If you are happy to pick this up then go for it! I've uploaded my sources which you are free to continue with or ignore as you want!</p><p></p><p><a href="http://www.topflat.charitydays.co.uk/mp/messaging/MESSAGING_MERGED_9_JULY_2006.zip" target="_blank">http://www.topflat.charitydays.co.uk/mp/messaging/MESSAGING_MERGED_9_JULY_2006.zip</a></p><p></p><p></p><p></p><p>It sounds like our aims are similar.</p><p>My sources are stripped down/refactoring of mymail. Now called MyMessages.</p><p>My ambition was to have a common messaging plugin that could be extended to support any number of 'providers'. It was to make adding new providers really simple since all the GUI, Database, Notifications etc should be common.</p><p>My zip includes my stubbed out class design, I added a message database and config loading for abstract provider. I was starting with the pop3 provider - began moving over agrees mymail implementation code.</p><p></p><p>The code I have kicks off a timer thread for each provider at low priority and would every N seconds retrieve new messages.</p><p></p><p>There is a ComplexMatch class there I wrote which will do filtering on multiple fields. (strings only atm, but was to be extended to numbers, dates etc). It supports REGEXP. Expressions of this sort can be written:</p><p>((PROVIDER IS POP3) AND (SENDER CONTAINS "Bob"))</p><p></p><p></p><p>My idea was that all messages (from all providers) would get put into the single database.</p><p></p><p>Providers would be defined via the MP config app:</p><p></p><p>MyMessages Setup:</p><p></p><p>-Add Provider:</p><p>***********************</p><p>--Generic Params:</p><p>---Message Count (so only newest N messages from each provider are held in the DB).</p><p>--Specifiy Type (eg POP3) </p><p>---Type Specific Params: Server etc.</p><p></p><p>-Add Folder(View):</p><p>***********************</p><p>--Folder Name </p><p>--Folder FilterString (for ComplexMatch).</p><p>--Notify? (on/off)</p><p>--Notification Count (so every Nth message that qualifies for this folder triggers a GUI notification popup).</p><p></p><p></p><p>A single message can match zero, one or more filters (folders). The folder's filter is run on each message as it's retrieved from the provider and a bitmask of matched folders is created and stored with the message in the database. It's then easy at viewing time to determine which messages match a specific folder view.</p><p></p><p>Supporting user defined folders via filterstrings allows for rich expression of views. Regular (common) views such as 'Not Read' can be added via this too. Users can dump all messages from all providers into a single folder or have folder per provider, per sender, per receiver etc etc </p><p></p><p>The notification count is used so that high-frequency folders don't keep swamping the user with popups.</p><p></p><p>The provider message count is used so that user doesn't have to worry about deleteing messages - the database is self-trimming - it's just a 'cached view' onto the newest messages (from each provider).</p><p></p><p>Other provider types (these exist as multiple plugins, but my hope was that if a single abstract messaging plugin could be show to work (for pop3) that these would be integrated here.):</p><p></p><p>- Forums</p><p>- SVN Checkins</p><p>- GMail</p><p>- MSN Messager</p><p>etc</p><p></p><p>The interface with the Provider resolves to something as simple as:</p><p></p><p>IProvider::RefreshNewestMessages( int count )</p><p></p><p>How a provider gets its messages is an implementation detail (provider specific).</p><p></p><p></p><p>Hope all this makes sense - none of it is that complicated, but I think would provide for a really powerful and flexible yet consistent system.</p><p>As I say feel free to ignore my ramblings/ideas!</p><p></p><p>Cheers,</p><p>BigJ</p></blockquote><p></p>
[QUOTE="bigj, post: 63577, member: 10940"] Hey <ok|, I guess I'd have to say it is stalled at best! - I've had even less time than anticipated and its only going to get worse over these next few months as we're hitting a crunch at work. If you are happy to pick this up then go for it! I've uploaded my sources which you are free to continue with or ignore as you want! [url]http://www.topflat.charitydays.co.uk/mp/messaging/MESSAGING_MERGED_9_JULY_2006.zip[/url] It sounds like our aims are similar. My sources are stripped down/refactoring of mymail. Now called MyMessages. My ambition was to have a common messaging plugin that could be extended to support any number of 'providers'. It was to make adding new providers really simple since all the GUI, Database, Notifications etc should be common. My zip includes my stubbed out class design, I added a message database and config loading for abstract provider. I was starting with the pop3 provider - began moving over agrees mymail implementation code. The code I have kicks off a timer thread for each provider at low priority and would every N seconds retrieve new messages. There is a ComplexMatch class there I wrote which will do filtering on multiple fields. (strings only atm, but was to be extended to numbers, dates etc). It supports REGEXP. Expressions of this sort can be written: ((PROVIDER IS POP3) AND (SENDER CONTAINS "Bob")) My idea was that all messages (from all providers) would get put into the single database. Providers would be defined via the MP config app: MyMessages Setup: -Add Provider: *********************** --Generic Params: ---Message Count (so only newest N messages from each provider are held in the DB). --Specifiy Type (eg POP3) ---Type Specific Params: Server etc. -Add Folder(View): *********************** --Folder Name --Folder FilterString (for ComplexMatch). --Notify? (on/off) --Notification Count (so every Nth message that qualifies for this folder triggers a GUI notification popup). A single message can match zero, one or more filters (folders). The folder's filter is run on each message as it's retrieved from the provider and a bitmask of matched folders is created and stored with the message in the database. It's then easy at viewing time to determine which messages match a specific folder view. Supporting user defined folders via filterstrings allows for rich expression of views. Regular (common) views such as 'Not Read' can be added via this too. Users can dump all messages from all providers into a single folder or have folder per provider, per sender, per receiver etc etc The notification count is used so that high-frequency folders don't keep swamping the user with popups. The provider message count is used so that user doesn't have to worry about deleteing messages - the database is self-trimming - it's just a 'cached view' onto the newest messages (from each provider). Other provider types (these exist as multiple plugins, but my hope was that if a single abstract messaging plugin could be show to work (for pop3) that these would be integrated here.): - Forums - SVN Checkins - GMail - MSN Messager etc The interface with the Provider resolves to something as simple as: IProvider::RefreshNewestMessages( int count ) How a provider gets its messages is an implementation detail (provider specific). Hope all this makes sense - none of it is that complicated, but I think would provide for a really powerful and flexible yet consistent system. As I say feel free to ignore my ramblings/ideas! Cheers, BigJ [/QUOTE]
Insert quotes…
Verification
Post reply
Forums
MediaPortal 1
MediaPortal 1 Plugins
Notification: Extending "My Mail" plugin
Contact us
RSS
Top
Bottom